Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

PowerDNS slave verhoogt SOA serial

Pagina: 1
Acties:

Vraag


  • bundit
  • Registratie: September 2014
  • Laatst online: 20:34
In verband met extra redundantie voor onze nameservers ben ik van plan om een extra nameserver als slave toe te voegen.

De zone domein.nl is voorzien van DNSSEC, deze signing vindt plaats binnen PowerDNS op ns1.domein.nl.

De situatie voor domein.nl is momenteel als volgt:
- ns1.domein.nl (master voor domein.nl);
- ns1.transip.nl (slave van domein.nl bij registrar);
- ns2.transip.eu (slave van domein.nl bij registrar);

Voor de desbetreffende reverse zones is de volgende opzet:
- ns1.domein.nl (master voor IPv4 en IPv6 reverse zone);
- ns2.domein.nl (slave voor IPv4 en IPv6 reverse zone);

Bovenstaande opzet werkt perfect qua master/slave synchronisatie, ook met betrekking tot DNSSEC én de hierbij behorende serial inrease bij een nieuwe key.

Nu wil ik ns2.domein.nl toevoegen als extra nameserver (slave) voor domein.nl. Op het moment dat ik dit probeer gebeurt er iets raars. Op ns2.domein.nl geef ik het volgende commando (net zoals voor de reverse zones is gedaan):
pdnsutil create-slave-zone domein.nl 2001:0DB8::53:1
Op dit moment wordt de zone domein.nl netjes als slave aangemaakt op ns2.domein.nl, echter verhoogt de serial voor deze zone op ns2.domein.nl met +2 (20191201 op master ns1.domein.nl en 2019011203 op slave ns2.domein.nl). Dit gedrag kan ik niet verklaren, is hier toevallig iemand die hier ervaring mee heeft?

Om uit te sluiten dat het iets eenmaligs is heb ik op ns1.domein.nl de serial verhoogt naar 2019011204, na een AXFR naar ns2.domein.nl is de serial op ns2.domein.nl dan wederom +2 (2019011206).

Het vreemde is dat de serials voor beide reverse zones gewoon juist werken tussen ns1.domein.nl en ns2.domein.nl. De nameservers van TransIP hebben dit probleem niet, dus ik vermoed dat ns2.domein.nl iets met de serial doet doordat PowerDNS iets vreemds doet bij het toevoegen van een slave zone die al DNSSEC gesigned is.... Of ben ik iets vergeten om mee te geven qua configuratie? De zone records voor domein.nl komen overigens netjes binnen op ns2.domein.nl. Ook is ns2.domein.nl als NS record aangemaakt voor domein.nl. Op ns2.domein.nl is binnen pdns.conf slave=yes geactiveerd.

Daarnaast ben ik nog benieuwd of het normaal is dat als één van de 3 (straks 4) nameservers onbereikbaar is, de gehele zone niet meer resolved. Dit merk ik namelijk ook, wat in mijn ogen vreemd is met de volgende TTL's:
Refresh: 14400
Retry: 1800
Expire: 2419200 4 weeks
Default TTL: 300

Hopelijk is hier iemand met meer kennis van PowerDNS die een antwoord of verklaring kan geven op bovenstaand gedrag om mij verder te helpen, of een stapje in de juiste richting kan geven.

Beide nameservers (ns1.domein.nl en ns2.domein.nl) draaien PowerDNS Authoritative Server 4.1.5.

[ Voor 1% gewijzigd door bundit op 12-01-2019 15:26 . Reden: Toevoeging PowerDNS versie ]

Beste antwoord (via bundit op 20-01-2019 13:46)


  • Habbie
  • Registratie: Juni 2002
  • Laatst online: 25-11 08:48
bundit schreef op maandag 14 januari 2019 @ 19:49:
[...]


Voor het toevoegen van ns2.domein.nl:
code:
1
2
3
ns1.domein.nl:  domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns2.transip.eu: domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns1.transip.nl: domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
Dus, alle drie de name servers geven dezelfde SOA.
Na het toevoegen van ns2.domein.nl:
code:
1
2
3
4
ns1.domein.nl:  domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns1.transip.nl: domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns2.transip.eu: domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns2.domein.nl:  domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
Dus, alle vier de name servers geven dezelfde SOA.
ns1.domein.nl (na het toevoegen van ns2.domein.nl)
code:
1
2
3
4
5
6
7
8
9
pdnsutil show-zone domein.nl
Jan 14 19:29:41 Backend launched with banner: OK        pipe-local-ipv6-wrapper.py ready with 49 prefixes configured
Jan 14 19:29:41 Backend launched with banner: OK        pipe-local-ipv6-wrapper.py ready with 49 prefixes configured
This zone is owned by Admin
This is a Master zone
Last SOA serial number we notified: 2019011114 == 2019011114 (serial in the database)
Metadata items:
        API-RECTIFY     1
        SOA-EDIT        INCEPTION-INCREMENT


Deze SOA-EDIT-regel (SOA-EDIT INCEPTION-INCREMENT) verhoogt je effectieve SOA ten opzichte van die in je database. Daar komt de +2 vandaan.
1) host -t SOA waarde geeft een juiste SOA serial, terwijl pdnsutil een andere waarde weergeeft;
Zie SOA-EDIT boven.
2) ns1.domein.nl en ns2.domein.nl hebben geven niet dezelfde DNSSEC gegevens terug;
ns1.domein.nl heeft je private keys; ns2 heeft alleen de signatures gemaakt met die private keys, daarom ziet de output er anders out.

Alles bij elkaar lijkt alles prima te werken!

-- Peter van Dijk

Alle reacties


  • Kabouterplop01
  • Registratie: Maart 2002
  • Laatst online: 28-11 07:44

Kabouterplop01

chown -R me base:all

Wat zegt je "host -t SOA domein.nl" per nameserver?

  • Habbie
  • Registratie: Juni 2002
  • Laatst online: 25-11 08:48
bundit schreef op zaterdag 12 januari 2019 @ 15:18:
Op dit moment wordt de zone domein.nl netjes als slave aangemaakt op ns2.domein.nl, echter verhoogt de serial voor deze zone op ns2.domein.nl met +2 (20191201 op master ns1.domein.nl en 2019011203 op slave ns2.domein.nl). Dit gedrag kan ik niet verklaren, is hier toevallig iemand die hier ervaring mee heeft?

Om uit te sluiten dat het iets eenmaligs is heb ik op ns1.domein.nl de serial verhoogt naar 2019011204, na een AXFR naar ns2.domein.nl is de serial op ns2.domein.nl dan wederom +2 (2019011206).
Wat zegt 'pdnsutil show-zone domein.nl' op ns2?
Daarnaast ben ik nog benieuwd of het normaal is dat als één van de 3 (straks 4) nameservers onbereikbaar is, de gehele zone niet meer resolved.
Nee, dat is niet normaal.

-- Peter van Dijk


  • bundit
  • Registratie: September 2014
  • Laatst online: 20:34
Kabouterplop01 schreef op zondag 13 januari 2019 @ 14:18:
Wat zegt je "host -t SOA domein.nl" per nameserver?
Voor het toevoegen van ns2.domein.nl:
code:
1
2
3
ns1.domein.nl:  domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns2.transip.eu: domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns1.transip.nl: domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300

Na het toevoegen van ns2.domein.nl:
code:
1
2
3
4
ns1.domein.nl:  domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns1.transip.nl: domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns2.transip.eu: domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns2.domein.nl:  domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
Habbie schreef op maandag 14 januari 2019 @ 18:01:
Wat zegt 'pdnsutil show-zone domein.nl' op ns2?
ns1.domein.nl (na het toevoegen van ns2.domein.nl)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
pdnsutil show-zone domein.nl
Jan 14 19:29:41 Backend launched with banner: OK        pipe-local-ipv6-wrapper.py ready with 49 prefixes configured
Jan 14 19:29:41 Backend launched with banner: OK        pipe-local-ipv6-wrapper.py ready with 49 prefixes configured
This zone is owned by Admin
This is a Master zone
Last SOA serial number we notified: 2019011114 == 2019011114 (serial in the database)
Metadata items:
        API-RECTIFY     1
        SOA-EDIT        INCEPTION-INCREMENT
        SOA-EDIT-API    DEFAULT
        SOA-EDIT-API/DNSUPDATE  DEFAULT
Zone has hashed NSEC3 semantics, configuration: 1 0 1 ab
keys:
ID = 4 (ZSK), flags = 256, tag = 49563, algo = 13, bits = 256     Active ( ECDSAP256SHA256 )
ID = 3 (KSK), flags = 257, tag = 25967, algo = 13, bits = 256     Active ( ECDSAP256SHA256 )
KSK DNSKEY = domein.nl. IN DNSKEY 257 3 13 IceQIlW+Ylh6nQfN9f93pSJ/byr4VVwNchzUDEGwKre2IMTETBIZGT35AZcs6UCZirNbBHP2ixCVj4InWoqKjw== ; ( ECDSAP256SHA256 )
DS = domein.nl. IN DS 25967 13 1 78fbb36f2a4698f5c89c75dc0a63bb57391e2746 ; ( SHA1 digest )
DS = domein.nl. IN DS 25967 13 2 05f5c8485fdcd1cc3ff1b4fdf3be9a801b268c3968afa90c6b6660e6714d89d1 ; ( SHA256 digest )
DS = domein.nl. IN DS 25967 13 4 344ea5badbc79bb71ccb2ad74a52c3b0722c284ceccc54903e479f66db9fdfb0c33a2b44cec53798d37c8ed9629a62d7 ; ( SHA-384 digest )

ns2.domein.nl
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 pdnsutil show-zone domein.nl
Jan 14 19:32:00 Backend launched with banner: OK        pipe-local-ipv6-wrapper.py ready with 49 prefixes configured
Jan 14 19:32:00 Backend launched with banner: OK        pipe-local-ipv6-wrapper.py ready with 49 prefixes configured
This is a Slave zone
Master: [2001:0DB8::53:1]:53
Last time we got update from master: Mon 2019-01-14 19:18:23
SOA serial in database: 2019011116
Refresh interval: 14400 seconds
Metadata items: None
Zone is presigned
Zone has hashed NSEC3 semantics, configuration: 1 0 1 ab
keys:
KSK, tag = 25967, algo = 13, bits = 256
DNSKEY = domein.nl. IN DNSKEY 257 3 13 IceQIlW+Ylh6nQfN9f93pSJ/byr4VVwNchzUDEGwKre2IMTETBIZGT35AZcs6UCZirNbBHP2ixCVj4InWoqKjw==; ( ECDSAP256SHA256 )
DS = domein.nl. IN DS 25967 13 1 78fbb36f2a4698f5c89c75dc0a63bb57391e2746 ; ( SHA1 digest )
DS = domein.nl. IN DS 25967 13 2 05f5c8485fdcd1cc3ff1b4fdf3be9a801b268c3968afa90c6b6660e6714d89d1 ; ( SHA256 digest )
DS = domein.nl. IN DS 25967 13 4 344ea5badbc79bb71ccb2ad74a52c3b0722c284ceccc54903e479f66db9fdfb0c33a2b44cec53798d37c8ed9629a62d7 ; ( SHA-384 digest )
ZSK, tag = 49563, algo = 13, bits = 256
DNSKEY = domein.nl. IN DNSKEY 256 3 13 KYgOkOgMxng1R4WDSI4BtoG2FGKeI4G9tQ/5e388dnvXbgK1qCw8XyrGCVa08k7NE8nBZK4b2wflWOQdhhjTNw==; ( ECDSAP256SHA256 )

De syslog op het moment van instellen ns2.domein.nl als slave.
Syslog ns1.domein.nl
code:
1
2
3
4
Jan 14 19:18:23 ns1 pdns_server[7529]: AXFR of domain 'domein.nl' initiated by 2001:0DB8::53:2
Jan 14 19:18:23 ns1 pdns_server[7529]: AXFR of domain 'domein.nl' allowed: client IP 2001:0DB8::53:2 is in allow-axfr-ips
Jan 14 19:18:23 ns1 pdns_server[7529]: AXFR of domain 'domein.nl' to 2001:0DB8::53:2 finished
Jan 14 19:18:51 ns1 pdns_server[7529]: No new unfresh slave domains, 0 queued for AXFR already, 0 in progress

Syslog ns2.domein.nl
code:
1
2
3
4
5
6
7
8
9
Jan 14 19:18:23 ns2 pdns_server[735]: 1 slave domain needs checking, 0 queued for AXFR
Jan 14 19:18:23 ns2 pdns_server[735]: Received serial number updates for 1 zone, had 0 timeouts
Jan 14 19:18:23 ns2 pdns_server[735]: Domain 'domein.nl' is stale, master serial 2019011116, our serial 0
Jan 14 19:18:23 ns2 pdns_server[735]: Initiating transfer of 'domein.nl' from remote '[2001:0DB8::53:1]:53'
Jan 14 19:18:23 ns2 pdns_server[735]: Starting AXFR of 'domein.nl' from remote [2001:0DB8::53:1]:53
Jan 14 19:18:23 ns2 pdns_server[735]: AXFR started for 'domein.nl'
Jan 14 19:18:23 ns2 pdns_server[735]: AXFR of 'domein.nl' from remote [2001:0DB8::53:1]:53 done
Jan 14 19:18:23 ns2 pdns_server[735]: Backend transaction started for 'domein.nl' storage
Jan 14 19:18:23 ns2 pdns_server[735]: AXFR done for 'domein.nl', zone committed with serial number 2019011116

De verschillen die ik uit bovenstaande trek is:
1) host -t SOA waarde geeft een juiste SOA serial, terwijl pdnsutil een andere waarde weergeeft;
2) ns1.domein.nl en ns2.domein.nl hebben geven niet dezelfde DNSSEC gegevens terug;

Daarnaast lijkt het erop dat de serial in de database van ns1.domein.nl niet correspondeert met de serial van het SOA record van ns1.domein.nl. Waarschijnlijk zal in deze richting iets verholpen moeten worden??

Acties:
  • Beste antwoord

  • Habbie
  • Registratie: Juni 2002
  • Laatst online: 25-11 08:48
bundit schreef op maandag 14 januari 2019 @ 19:49:
[...]


Voor het toevoegen van ns2.domein.nl:
code:
1
2
3
ns1.domein.nl:  domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns2.transip.eu: domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns1.transip.nl: domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
Dus, alle drie de name servers geven dezelfde SOA.
Na het toevoegen van ns2.domein.nl:
code:
1
2
3
4
ns1.domein.nl:  domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns1.transip.nl: domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns2.transip.eu: domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
ns2.domein.nl:  domein.nl has SOA record ns1.domein.nl. hostmaster.domein.nl. 2019011116 14400 1800 2419200 300
Dus, alle vier de name servers geven dezelfde SOA.
ns1.domein.nl (na het toevoegen van ns2.domein.nl)
code:
1
2
3
4
5
6
7
8
9
pdnsutil show-zone domein.nl
Jan 14 19:29:41 Backend launched with banner: OK        pipe-local-ipv6-wrapper.py ready with 49 prefixes configured
Jan 14 19:29:41 Backend launched with banner: OK        pipe-local-ipv6-wrapper.py ready with 49 prefixes configured
This zone is owned by Admin
This is a Master zone
Last SOA serial number we notified: 2019011114 == 2019011114 (serial in the database)
Metadata items:
        API-RECTIFY     1
        SOA-EDIT        INCEPTION-INCREMENT


Deze SOA-EDIT-regel (SOA-EDIT INCEPTION-INCREMENT) verhoogt je effectieve SOA ten opzichte van die in je database. Daar komt de +2 vandaan.
1) host -t SOA waarde geeft een juiste SOA serial, terwijl pdnsutil een andere waarde weergeeft;
Zie SOA-EDIT boven.
2) ns1.domein.nl en ns2.domein.nl hebben geven niet dezelfde DNSSEC gegevens terug;
ns1.domein.nl heeft je private keys; ns2 heeft alleen de signatures gemaakt met die private keys, daarom ziet de output er anders out.

Alles bij elkaar lijkt alles prima te werken!

-- Peter van Dijk


  • bundit
  • Registratie: September 2014
  • Laatst online: 20:34
Peter, bedankt voor je snelle reactie!

Als ik het dus goed begrijp hoef ik mij niet druk te maken dat de database een lagere serial heeft?

De optie INCEPTION-INCREMENT heb ik namelijk bewust ingesteld omdat TransIP dit formaat vereist.
Wanneer je eerst van de TransIP nameservers gebruik maakte, zullen de nameservers een serial number van het formaat YYYYMMDDXX bevatten, waarbij YYYYMMDD de datum van de laatste wijziging is en XX een volgnummer
Of kan ik dit op een nettere manier binnen PowerDNS oplossen, zodat daarnaast ook nog de serial met +1 wordt verhoogd bij een record wijziging?

Nu dus alles lijkt goed te staan ga ik nog wel valideren of alles nog netjes resolved als ns1.domein.nl of ns2.domein.nl offline is. Dit gaat echter wel morgen worden gezien ns2.domein.nl nog niet als authorative nameserver is doorgegeven voor domein.nl

  • Habbie
  • Registratie: Juni 2002
  • Laatst online: 25-11 08:48
bundit schreef op maandag 14 januari 2019 @ 20:18:
Peter, bedankt voor je snelle reactie!

Als ik het dus goed begrijp hoef ik mij niet druk te maken dat de database een lagere serial heeft?

De optie INCEPTION-INCREMENT heb ik namelijk bewust ingesteld omdat TransIP dit formaat vereist.
Het instellen van SOA-EDIT (even los van de keuze die je daarbinnen maakt) is nodig als je slaves hebt die geen PowerDNS draaien (zoals, bijvoorbeeld, TransIP).

TransIP vereist overigens niet per se dit formaat, maar ze vereisen wel dat je serial hoger is dan hij was - en hetzelfde formaat aanhouden is dan een prima aanpak natuurlijk.
Of kan ik dit op een nettere manier binnen PowerDNS oplossen, zodat daarnaast ook nog de serial met +1 wordt verhoogd bij een record wijziging?
Dat hangt er van af hoe je je records aanpast. Als je onze HTTP API gebruikt kan je SOA-EDIT-API instellen om dat vanzelf voor elkaar te krijgen. Als je 'pdnsutil edit-zone' gebruikt kan je daarna 'pdnsutil increase-serial' tikken. Als je nsupdate (RFC2136) gebruikt gaat het ook vanzelf. Tenslotte zijn er allerlei webfrontends (https://github.com/PowerDNS/pdns/wiki/WebFrontends) die dit ook kunnen.

-- Peter van Dijk

Pagina: 1