Omgekeerde sone-delegering na subnette minder as /24 in BIND. Hoe dit werk

Ek het eendag voor die taak gestaan ​​om een ​​van my kliënte die reg te gee om PTR-rekords van die /28-subnet wat aan hom toegewys is, te wysig. Ek het nie outomatisering om BIND-instellings van buite te wysig nie. Daarom het ek besluit om 'n ander roete te neem - om 'n stukkie van die PTR-sone van die /24-subnet aan die kliënt te delegeer.

Dit wil voorkom - wat kan eenvoudiger wees? Ons registreer eenvoudig die subnet soos vereis en rig dit na die verlangde NS, soos gedoen word met 'n subdomein. Maar nee. Dit is nie so eenvoudig nie (hoewel dit in werklikheid oor die algemeen primitief is, maar intuïsie sal nie help nie), daarom skryf ek hierdie artikel.

Enigiemand wat dit self wil uitpluis kan lees RFC
Wie 'n klaargemaakte oplossing wil hê, welkom om te kat.

Om diegene wat van die copy-paste-metode hou nie te vertraag nie, plaas ek eers die praktiese deel en dan die teoretiese deel.

1. Oefen. Delegerende sone /28

Kom ons sê ons het 'n subnet 7.8.9.0/24. Ons moet die subnet delegeer 7.8.9.240/28 aan dns kliënt 7.8.7.8 (ns1.kliënt.domein).

Op die verskaffer se DNS moet jy 'n lêer vind wat die omgekeerde sone van hierdie subnet beskryf. Laat dit wees 9.8.7.in-addr.harp.
Ons lewer kommentaar op inskrywings van 240 tot 255, indien daar enige is. En aan die einde van die lêer skryf ons die volgende:

255-240  IN  NS      7.8.7.8
$GENERATE 240-255 $ CNAME $.255-240

moenie vergeet om die reekssone te vergroot en te doen nie

rndc reload

Dit voltooi die verskaffergedeelte. Kom ons gaan aan na die kliënt dns.

Laat ons eers 'n lêer skep /etc/bind/master/255-240.9.8.7.in-addr.arpa die volgende inhoud:

$ORIGIN 255-240.9.8.7.in-addr.arpa.
$TTL 1W
@                       1D IN SOA       ns1.client.domain. root.client.domain. (
                        2008152607      ; serial
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum
@                       IN NS        ns1.client.domain.
@                       IN NS        ns2.client.domain.
241                     IN PTR          test.client.domain.
242                     IN PTR          test2.client.domain.
245                     IN PTR          test5.client.domain.

En in vernoem.conf voeg 'n beskrywing van ons nuwe lêer by:

zone "255-240.9.8.7.in-addr.arpa." IN {
        type master;
        file "master/255-240.9.8.7.in-addr.arpa";
};

B herbegin die bindproses.

/etc/init.d/named restart

Almal. Nou kan jy kyk.

#>  host 7.8.9.245 
245.9.8.7.in-addr.arpa is an alias for 245.255-240.9.8.7.in-addr.arpa.
245.255-240.9.8.7.in-addr.arpa domain name pointer test5.client.domain.

Neem asseblief kennis dat nie net die PTR-rekord gegee word nie, maar ook die CNAME. Dis hoe dit moet wees. As jy wonder hoekom, dan is welkom by die volgende hoofstuk.

2. Teorie. Hoe dit werk.

Dit is moeilik om 'n swart boks op te stel en te ontfout. Dit is baie makliker as jy verstaan ​​wat binne aangaan.

Wanneer ons 'n subdomein in 'n domein delegeer domein, dan skryf ons iets soos hierdie:

client.domain.	NS	ns1.client.domain.
ns1.client.domain.	A	7.8.7.8

Ons sê vir almal wat vra dat ons nie verantwoordelik is vir hierdie webwerf nie en sê wie verantwoordelik is. En alle versoeke vir kliënt.domein herlei na 7.8.7.8. Wanneer ons nagaan, sien ons die volgende prentjie (ons sal weglaat wat die kliënt daar het. Dit maak nie saak nie):

# host test.client.domain
test.client.domain has address 7.8.9.241

Dié. ons is ingelig dat daar so 'n A-rekord is en sy ip is 7.8.9.241. Geen onnodige inligting nie.

Hoe kan dieselfde ding gedoen word met 'n subnet?

Omdat ons DNS-bediener is in RIPE geregistreer, en wanneer 'n PTR IP-adres vanaf ons netwerk versoek word, sal die eerste versoek steeds aan ons wees. Die logika is dieselfde as met domeine. Maar hoe voer jy 'n subnet in 'n sonelêer in?

Kom ons probeer om dit so in te voer:

255-240  IN  NS      7.8.7.8

En... die wonderwerk het nie gebeur nie. Ons ontvang geen versoekherleiding nie. Die ding is dat bind nie eers weet dat hierdie inskrywings in die omgekeerde sone-lêer IP-adresse is nie, en selfs meer verstaan ​​nie die reeksinskrywing nie. Vir hom is dit net 'n soort simboliese subdomein. Dié. vir bind sal daar geen verskil wees tussen "255-240"En"ons superkliënt". En vir die versoek om te gaan waarheen dit moet gaan, moet die adres in die versoek soos volg lyk: 241.255-240.9.8.7.in-addr.arpa. Of so as ons 'n karakter subdomein gebruik: 241.ons superkliënt.9.8.7.in-addr.arpa. Dit is anders as die gewone: 241.9.8.7.in-addr.harp.

Dit sal moeilik wees om so 'n versoek met die hand te rig. En selfs al werk dit, is dit steeds onduidelik hoe om dit in die werklike lewe toe te pas. Na alles, op versoek 7.8.9.241 Die verskaffer se DNS antwoord steeds vir ons, nie die kliënt s'n nie.

En dit is waar hulle ter sprake kom CNAME.

Aan die verskaffer se kant moet jy 'n alias maak vir alle IP-adresse van die subnet in 'n formaat wat die versoek na die kliënt DNS sal stuur.

255-240  IN  NS      ns1.client.domain.
241     IN  CNAME   241.255-240
242     IN  CNAME   242.255-240
и т.д.

Dit is vir die hardwerkendes =).

En vir die lui is die ontwerp hieronder meer geskik:

255-240  IN  NS      ns1.client.domain.
$GENERATE 240-255 $ CNAME $.255-240

Vra nou inligting aan by 7.8.9.241 van 241.9.8.7.in-addr.harp op die verskaffer se DNS-bediener sal omgeskakel word na 241.255-240.9.8.7.in-addr.arpa en gaan na die dns-kliënt.

Die kliëntkant sal sulke versoeke moet hanteer. Gevolglik skep ons 'n sone 255-240.9.8.7.in-addr.arpa. Daarin kan ons in beginsel omgekeerde inskrywings plaas vir enige ip van die hele /24 subnet, maar hulle sal ons net vra oor dié wat die verskaffer vir ons aanstuur, so ons sal nie kan rondspeel nie =).
Ter illustrasie gee ek weereens 'n voorbeeld van die inhoud van 'n omgekeerde sone-lêer vanaf die kliënt se kant:

$ORIGIN 255-240.9.8.7.in-addr.arpa.
$TTL 1W
@                       1D IN SOA       ns1.client.domain. root.client.domain. (
                        2008152607      ; serial
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum
@                       IN NS        ns1.client.domain.
@                       IN NS        ns2.client.domain.
241                     IN PTR          test.client.domain.
242                     IN PTR          test2.client.domain.
245                     IN PTR          test5.client.domain.

Dit is omdat ons CNAME aan die verskaffer se kant gebruik, en in reaksie op 'n versoek om data per IP-adres ontvang ons twee rekords, nie een nie.

#>  host 7.8.9.245 
245.9.8.7.in-addr.arpa is an alias for 245.255-240.9.8.7.in-addr.arpa.
245.255-240.9.8.7.in-addr.arpa domain name pointer test5.client.domain.

En moenie vergeet om die ACL korrek op te stel nie. Want dit maak geen sin om 'n PTR-sone vir jouself te neem en nie op iemand van buite te reageer nie =).

Bron: will.com

Voeg 'n opmerking