Baliktarin ang delegasyon ng zone sa mga subnet na mas mababa sa /24 sa BIND. Paano ito gumagana

Isang araw ay nahaharap ako sa gawaing bigyan ang isa sa aking mga kliyente ng karapatang mag-edit ng mga tala ng PTR ng /28 subnet na nakatalaga sa kanya. Wala akong automation para sa pag-edit ng mga setting ng BIND mula sa labas. Samakatuwid, nagpasya akong kumuha ng ibang ruta - upang italaga sa kliyente ang isang piraso ng PTR zone ng /24 subnet.

Mukhang - ano ang maaaring maging mas simple? Irerehistro lang namin ang subnet kung kinakailangan at ididirekta ito sa nais na NS, tulad ng ginagawa sa isang subdomain. Pero hindi. Ito ay hindi ganoon kasimple (bagaman sa katotohanan ito ay karaniwang primitive, ngunit ang intuwisyon ay hindi makakatulong), kaya't isinusulat ko ang artikulong ito.

Maaaring basahin ng sinumang gustong malaman ito para sa kanilang sarili RFC
Sino ang gustong isang handa na solusyon, maligayang pagdating sa pusa.

Upang hindi maantala ang mga mahilig sa copy-paste method, ipo-post ko muna ang practical part, at pagkatapos ay theoretical part.

1. Magsanay. Delegasyon zone /28

Sabihin nating mayroon tayong subnet 7.8.9.0/24. Kailangan nating italaga ang subnet 7.8.9.240/28 sa dns client 7.8.7.8 (ns1.client.domain).

Sa DNS ng provider kailangan mong maghanap ng file na naglalarawan sa reverse zone ng subnet na ito. Hayaan na 9.8.7.in-addr.harp.
Nagkokomento kami sa mga entry mula 240 hanggang 255, kung mayroon man. At sa dulo ng file isinusulat namin ang sumusunod:

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

huwag kalimutang taasan ang serial zone at gawin

rndc reload

Kinukumpleto nito ang bahagi ng provider. Lumipat tayo sa dns ng kliyente.

Una, gumawa tayo ng file /etc/bind/master/255-240.9.8.7.in-addr.arpa sumusunod na nilalaman:

$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.

At sa pinangalanan.conf magdagdag ng paglalarawan ng aming bagong file:

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

B i-restart ang proseso ng pagbubuklod.

/etc/init.d/named restart

Lahat. Ngayon ay maaari mong suriin.

#>  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.

Pakitandaan na hindi lamang ang PTR record ang ibinigay, kundi pati na rin ang CNAME. Ganyan dapat. Kung nagtataka kayo kung bakit, welcome sa susunod na kabanata.

2. Teorya. Paano ito gumagana.

Mahirap i-configure at i-debug ang isang itim na kahon. Mas madali kung naiintindihan mo kung ano ang nangyayari sa loob.

Kapag nagtalaga kami ng subdomain sa isang domain domain, pagkatapos ay sumulat kami ng ganito:

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

Sinasabi namin sa lahat na nagtatanong na hindi kami mananagot para sa site na ito at sinasabi namin kung sino ang may pananagutan. At lahat ng mga kahilingan para sa client.domain i-redirect sa 7.8.7.8. Kapag sinusuri, nakikita namin ang sumusunod na larawan (aalisin namin kung ano ang mayroon ang kliyente doon. Hindi mahalaga):

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

Yung. na-inform kami na may ganyang A record at ang ip nito ay 7.8.9.241. Walang hindi kinakailangang impormasyon.

Paano magagawa ang parehong bagay sa isang subnet?

kasi ang aming DNS server ay nakarehistro sa RIPE, pagkatapos kapag humiling ng isang PTR IP address mula sa aming network, ang unang kahilingan ay sa amin pa rin. Ang lohika ay kapareho ng sa mga domain. Ngunit paano ka magpasok ng isang subnet sa isang zone file?

Subukan nating ipasok ito tulad nito:

255-240  IN  NS      7.8.7.8

At... hindi nangyari ang himala. Hindi kami nakakatanggap ng anumang kahilingan sa pag-redirect. Ang bagay ay na bind ay hindi kahit na alam na ang mga entry na ito sa reverse zone file ay mga IP address, at higit pa sa gayon ay hindi nauunawaan ang saklaw ng entry. Para sa kanya, ito ay isang uri lamang ng simbolikong subdomain. Yung. para sa pagbigkis walang magiging pagkakaiba sa pagitan ng "255-240"At"aming superclient". At para sa kahilingang pumunta kung saan ito kailangang pumunta, ang address sa kahilingan ay dapat magmukhang ganito: 241.255-240.9.8.7.in-addr.arpa. O tulad nito kung gumagamit kami ng subdomain ng character: 241.oursuperclient.9.8.7.in-addr.arpa. Ito ay naiiba sa karaniwan: 241.9.8.7.in-addr.harp.

Magiging mahirap na gawin ang naturang kahilingan nang manu-mano. At kahit na ito ay gumagana, hindi pa rin malinaw kung paano ilalapat ito sa totoong buhay. Pagkatapos ng lahat, kapag hiniling 7.8.9.241 Ang DNS ng provider ang sumasagot pa rin sa amin, hindi ng kliyente.

At dito sila pumapasok CNAME.

Sa panig ng provider, kailangan mong gumawa ng alias para sa lahat ng IP address ng subnet sa isang format na magpapasa ng kahilingan sa DNS ng kliyente.

255-240  IN  NS      ns1.client.domain.
241     IN  CNAME   241.255-240
242     IN  CNAME   242.255-240
ΠΈ Ρ‚.Π΄.

Para ito sa masipag =).

At para sa mga tamad, ang disenyo sa ibaba ay mas angkop:

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

Humiling ngayon ng impormasyon sa 7.8.9.241 ng 241.9.8.7.in-addr.harp sa DNS server ng provider ay mako-convert sa 241.255-240.9.8.7.in-addr.arpa at pumunta sa dns client.

Kakailanganin ng panig ng kliyente na pangasiwaan ang mga naturang kahilingan. Alinsunod dito, lumikha kami ng isang zone 255-240.9.8.7.in-addr.arpa. Sa loob nito, maaari naming, sa prinsipyo, maglagay ng mga reverse entries para sa anumang ip ng buong /24 subnet, ngunit tatanungin lang nila kami tungkol sa mga ipinapasa sa amin ng provider, kaya hindi kami makakapaglaro =).
Upang ilarawan, muli akong magbibigay ng isang halimbawa ng mga nilalaman ng isang reverse zone file mula sa panig ng kliyente:

$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.

Ito ay dahil ginagamit namin ang CNAME sa panig ng provider, at bilang tugon sa isang kahilingan para sa data sa pamamagitan ng IP address ay nakakatanggap kami ng dalawang tala, hindi isa.

#>  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.

At huwag kalimutang i-configure nang tama ang ACL. Dahil walang saysay na kumuha ng PTR zone para sa iyong sarili at hindi tumugon sa sinuman mula sa labas =).

Pinagmulan: www.habr.com

Magdagdag ng komento