feat: add full Zonemaster stack with Docker and Spanish UI
- Clone all 5 Zonemaster component repos (LDNS, Engine, CLI, Backend, GUI) - Dockerfile.backend: 8-stage multi-stage build LDNS→Engine→CLI→Backend - Dockerfile.gui: Astro static build served via nginx - docker-compose.yml: backend (internal) + frontend (port 5353) - nginx.conf: root redirects to /es/, /api/ proxied to backend - zonemaster-gui/config.ts: defaultLanguage set to 'es' (Spanish) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
124
zonemaster/test-zone-data/Engine/Recursor-PM/recursor.cfg
Normal file
124
zonemaster/test-zone-data/Engine/Recursor-PM/recursor.cfg
Normal file
@@ -0,0 +1,124 @@
|
||||
|
||||
# ns1 and ns2 recursor.engine.xa
|
||||
recursor.engine.xa:53 {
|
||||
bind 127.30.1.21
|
||||
bind fda1:b2:c3:0:127:30:1:21
|
||||
bind 127.30.1.22
|
||||
bind fda1:b2:c3:0:127:30:1:22
|
||||
log
|
||||
file Engine/Recursor-PM/recursor.engine.xa recursor.engine.xa.
|
||||
}
|
||||
|
||||
# ns1 cname.recursor.engine.xa
|
||||
cname.recursor.engine.xa:53 {
|
||||
bind 127.30.1.31
|
||||
bind fda1:b2:c3:0:127:30:1:31
|
||||
log
|
||||
file Engine/Recursor-PM/cname.recursor.engine.xa cname.recursor.engine.xa.
|
||||
|
||||
# For scenario MULT-CNAME
|
||||
template IN A mult-cname.cname.recursor.engine.xa {
|
||||
answer "mult-cname.cname.recursor.engine.xa. 3600 IN CNAME mult-cname-target-1.cname.recursor.engine.xa."
|
||||
answer "mult-cname.cname.recursor.engine.xa. 3600 IN CNAME mult-cname-target-2.cname.recursor.engine.xa."
|
||||
#answer "mult-cname-target-1.cname.recursor.engine.xa. 3600 IN A 127.0.0.1" # Taken from the zone
|
||||
#answer "mult-cname-target-2.cname.recursor.engine.xa. 3600 IN A 127.0.0.2" # Taken from the zone
|
||||
}
|
||||
|
||||
# For scenario GOOD-CNAME-OUT-OF-ZONE
|
||||
template IN A good-cname-out-of-zone.cname.recursor.engine.xa {
|
||||
answer "good-cname-out-of-zone.cname.recursor.engine.xa. 3600 IN CNAME target.goodsub.cname.recursor.engine.xa."
|
||||
authority "goodsub.cname.recursor.engine.xa. 3600 IN NS ns1.goodsub.cname.recursor.engine.xa."
|
||||
additional "ns1.goodsub.cname.recursor.engine.xa 3600 IN A 127.30.1.34"
|
||||
additional "ns1.goodsub.cname.recursor.engine.xa 3600 IN AAAA fda1:b2:c3::127:30:1:34"
|
||||
}
|
||||
|
||||
# For scenario NXDOMAIN-VIA-CNAME
|
||||
template IN A nxdomain-via-cname.cname.recursor.engine.xa {
|
||||
answer "nxdomain-via-cname.cname.recursor.engine.xa. 3600 IN CNAME nxdomain-via-cname-target.cname.recursor.engine.xa."
|
||||
authority "cname.recursor.engine.xa. 3600 IN SOA ns1.cname.recursor.engine.xa. root.cname.recursor.engine.xa. 2023111502 86400 14400 3600000 3600"
|
||||
}
|
||||
|
||||
# For scenario NODATA-VIA-CNAME
|
||||
template IN A nodata-via-cname.cname.recursor.engine.xa {
|
||||
answer "nodata-via-cname.cname.recursor.engine.xa. 3600 IN CNAME nodata-via-cname-target.cname.recursor.engine.xa."
|
||||
authority "cname.recursor.engine.xa. 3600 IN SOA ns1.cname.recursor.engine.xa. root.cname.recursor.engine.xa. 2023111502 86400 14400 3600000 3600"
|
||||
}
|
||||
|
||||
# For scenario LOOPED-CNAME-IN-ZONE-2
|
||||
template IN ANY looped-cname-in-zone-2.cname.recursor.engine.xa {
|
||||
answer "looped-cname-in-zone-2.cname.recursor.engine.xa. 3600 IN CNAME looped-cname-in-zone-2-a.cname.recursor.engine.xa."
|
||||
answer "looped-cname-in-zone-2-a.cname.recursor.engine.xa. 3600 IN CNAME looped-cname-in-zone-2-b.cname.recursor.engine.xa."
|
||||
answer "looped-cname-in-zone-2-b.cname.recursor.engine.xa. 3600 IN CNAME looped-cname-in-zone-2-a.cname.recursor.engine.xa."
|
||||
authority "cname.recursor.engine.xa. 3600 IN NS ns1.cname.recursor.engine.xa."
|
||||
}
|
||||
|
||||
# For scenario TOO-LONG-CNAME-CHAIN
|
||||
template IN A too-long-cname-chain.cname.recursor.engine.xa {
|
||||
answer "too-long-cname-chain.cname.recursor.engine.xa. 3600 IN CNAME too-long-cname-chain-two.cname.recursor.engine.xa."
|
||||
answer "too-long-cname-chain-two.cname.recursor.engine.xa. 3600 IN CNAME too-long-cname-chain-three.cname.recursor.engine.xa."
|
||||
answer "too-long-cname-chain-three.cname.recursor.engine.xa. 3600 IN CNAME too-long-cname-chain-four.cname.recursor.engine.xa."
|
||||
answer "too-long-cname-chain-four.cname.recursor.engine.xa. 3600 IN CNAME too-long-cname-chain-five.cname.recursor.engine.xa."
|
||||
answer "too-long-cname-chain-five.cname.recursor.engine.xa. 3600 IN CNAME too-long-cname-chain-six.cname.recursor.engine.xa."
|
||||
answer "too-long-cname-chain-six.cname.recursor.engine.xa. 3600 IN CNAME too-long-cname-chain-seven.cname.recursor.engine.xa."
|
||||
answer "too-long-cname-chain-seven.cname.recursor.engine.xa. 3600 IN CNAME too-long-cname-chain-eight.cname.recursor.engine.xa."
|
||||
answer "too-long-cname-chain-eight.cname.recursor.engine.xa. 3600 IN CNAME too-long-cname-chain-nine.cname.recursor.engine.xa."
|
||||
answer "too-long-cname-chain-nine.cname.recursor.engine.xa. 3600 IN CNAME too-long-cname-chain-ten.cname.recursor.engine.xa."
|
||||
answer "too-long-cname-chain-ten.cname.recursor.engine.xa. 3600 IN CNAME too-long-cname-chain-target.cname.recursor.engine.xa."
|
||||
answer "too-long-cname-chain-target.cname.recursor.engine.xa. 3600 IN A 127.0.0.1"
|
||||
authority "cname.recursor.engine.xa. 3600 IN NS ns1.cname.recursor.engine.xa."
|
||||
}
|
||||
|
||||
# For scenario TARGET-NO-MATCH-CNAME
|
||||
template IN A target-no-match-cname.cname.recursor.engine.xa {
|
||||
answer "target-no-match-cname.cname.recursor.engine.xa. 3600 IN CNAME target-no-match-cname-two.cname.recursor.engine.xa."
|
||||
answer "target-no-match-cname-target.cname.recursor.engine.xa. 3600 IN A 127.0.0.1"
|
||||
authority "cname.recursor.engine.xa. 3600 IN NS ns1.cname.recursor.engine.xa."
|
||||
}
|
||||
|
||||
# For scenario BROKEN-CNAME-CHAIN
|
||||
template IN A broken-cname-chain.cname.recursor.engine.xa {
|
||||
answer "broken-cname-chain.cname.recursor.engine.xa. 3600 IN CNAME broken-cname-chain-two.cname.recursor.engine.xa."
|
||||
answer "broken-cname-chain-three.cname.recursor.engine.xa. 3600 IN CNAME broken-cname-chain-target.cname.recursor.engine.xa."
|
||||
#answer "broken-cname-chain-target.cname.recursor.engine.xa. 3600 IN A 127.0.0.1" # Taken from the zone
|
||||
authority "cname.recursor.engine.xa. 3600 IN NS ns1.cname.recursor.engine.xa."
|
||||
}
|
||||
|
||||
# For scenario WRONG-CNAME-OWNER-NAME
|
||||
template IN A wrong-cname-owner-name.cname.recursor.engine.xa {
|
||||
answer "wrong-cname-owner-name-1.cname.recursor.engine.xa. 3600 IN CNAME wrong-cname-owner-name-target.cname.recursor.engine.xa."
|
||||
#answer "wrong-cname-owner-name-target.cname.recursor.engine.xa. 3600 IN A 127.0.0.1" # Taken from the zone
|
||||
authority "cname.recursor.engine.xa. 3600 IN NS ns1.cname.recursor.engine.xa."
|
||||
}
|
||||
|
||||
# For scenario EXTRA-CNAME-IN-ANSWER
|
||||
template IN A extra-cname-in-answer.cname.recursor.engine.xa {
|
||||
answer "extra-cname-in-answer.cname.recursor.engine.xa. 3600 IN A 127.0.0.1"
|
||||
answer "extra-cname-in-answer-1.cname.recursor.engine.xa. 3600 IN CNAME extra-cname-in-answer-2.cname.recursor.engine.xa."
|
||||
authority "cname.recursor.engine.xa. 3600 IN NS ns1.cname.recursor.engine.xa."
|
||||
}
|
||||
}
|
||||
|
||||
# ns1 sub2.cname.recursor.engine.xa
|
||||
sub2.cname.recursor.engine.xa:53 {
|
||||
bind 127.30.1.32
|
||||
bind fda1:b2:c3:0:127:30:1:32
|
||||
log
|
||||
file Engine/Recursor-PM/sub2.cname.recursor.engine.xa sub2.cname.recursor.engine.xa.
|
||||
}
|
||||
|
||||
# ns1 sub3.cname.recursor.engine.xa
|
||||
sub3.cname.recursor.engine.xa:53 {
|
||||
bind 127.30.1.33
|
||||
bind fda1:b2:c3:0:127:30:1:33
|
||||
log
|
||||
file Engine/Recursor-PM/sub3.cname.recursor.engine.xa sub3.cname.recursor.engine.xa.
|
||||
}
|
||||
|
||||
# ns1 goodsub.ns1 cname.recursor.engine.xa
|
||||
goodsub.cname.recursor.engine.xa:53 {
|
||||
bind 127.30.1.34
|
||||
bind fda1:b2:c3:0:127:30:1:34
|
||||
log
|
||||
file Engine/Recursor-PM/goodsub.cname.recursor.engine.xa goodsub.cname.recursor.engine.xa.
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user