Delegimi i zonës së kundërt në nënrrjeta më pak se /24 në BIND. Si punon

Një ditë u përballa me detyrën për t'i dhënë njërit prej klientëve të mi të drejtën për të redaktuar regjistrimet PTR të nënrrjetit /28 që i ishte caktuar. Unë nuk kam automatizim për redaktimin e cilësimeve BIND nga jashtë. Prandaj, vendosa të marr një rrugë tjetër - t'i delegoj klientit një pjesë të zonës PTR të nënrrjetit /24.

Do të duket - çfarë mund të jetë më e thjeshtë? Ne thjesht e regjistrojmë nën-rrjetin siç kërkohet dhe e drejtojmë atë në NS-në e dëshiruar, siç bëhet me një nëndomain. Por jo. Nuk është aq e thjeshtë (edhe pse në realitet është përgjithësisht primitive, por intuita nuk do të ndihmojë), prandaj po shkruaj këtë artikull.

Kushdo që dëshiron ta kuptojë vetë mund të lexojë RFC
Kush dëshiron një zgjidhje të gatshme, mirë se vini në cat.

Për të mos vonuar ata që pëlqejnë metodën copy-paste do të postoj fillimisht pjesën praktike dhe më pas pjesën teorike.

1. Praktikoni. Zona e delegimit /28

Le të themi se kemi një nënrrjet 7.8.9.0/24. Duhet të delegojmë nënrrjetin 7.8.9.240/28 te klienti dns 7.8.7.8 (ns1.klienti.domain).

Në DNS-në e ofruesit ju duhet të gjeni një skedar që përshkruan zonën e kundërt të këtij nënrrjeti. Lëre të jetë 9.8.7.in-adrr.arpa.
Ne komentojmë hyrjet nga 240 në 255, nëse ka. Dhe në fund të skedarit shkruajmë sa vijon:

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

mos harroni të rrisni zonën serike dhe bëni

rndc reload

Kjo plotëson pjesën e ofruesit. Le të kalojmë te klienti dns.

Së pari, le të krijojmë një skedar /etc/bind/master/255-240.9.8.7.in-addr.arpa përmbajtjen e mëposhtme:

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

Dhe në me emrin.konf shtoni një përshkrim të skedarit tonë të ri:

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

B rinisni procesin e lidhjes.

/etc/init.d/named restart

Të gjitha. Tani mund të kontrolloni.

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

Ju lutemi vini re se jepet jo vetëm rekordi PTR, por edhe CNAME. Kështu duhet të jetë. Nëse po pyesni veten pse, atëherë mirë se vini në kapitullin tjetër.

2. Teori. Si punon.

Është e vështirë të konfigurosh dhe korrigjosh një kuti të zezë. Është shumë më e lehtë nëse kupton se çfarë po ndodh brenda.

Kur delegojmë një nëndomain në një domen sferë, atëherë shkruajmë diçka si kjo:

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

Ne u themi kujtdo që kërkon që ne nuk jemi përgjegjës për këtë faqe dhe themi kush është përgjegjës. Dhe të gjitha kërkesat për klienti.domain ridrejto te 7.8.7.8. Kur kontrollojmë, shohim foton e mëposhtme (do të heqim atë që klienti ka atje. Nuk ka rëndësi):

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

Ato. ne u informuam se ekziston një rekord i tillë A dhe ip i tij është 7.8.9.241. Asnjë informacion i panevojshëm.

Si mund të bëhet e njëjta gjë me një nënrrjet?

Sepse serveri ynë DNS është i regjistruar në RIPE, atëherë kur të kërkoni një adresë IP PTR nga rrjeti ynë, kërkesa e parë do të jetë ende për ne. Logjika është e njëjtë si me domenet. Por si të futni një nënrrjet në një skedar zone?

Le të përpiqemi ta fusim në këtë mënyrë:

255-240  IN  NS      7.8.7.8

Dhe... mrekullia nuk ndodhi. Nuk po marrim ndonjë ridrejtim kërkese. Puna është se bind as nuk e di që këto hyrje në skedarin e zonës së kundërt janë adresa IP, dhe aq më tepër nuk e kupton hyrjen e diapazonit. Për të, ky është vetëm një lloj nënfushe simbolike. Ato. për lidhjen nuk do të ketë dallim mes "255-240"Dhe"superklienti ynë". Dhe që kërkesa të shkojë atje ku duhet të shkojë, adresa në kërkesë duhet të duket si kjo: 241.255-240.9.8.7.in-addr.arpa. Ose si kjo nëse përdorim një nëndomain karakteresh: 241.superklienti ynë.9.8.7.in-addr.arpa. Kjo është e ndryshme nga e zakonshme: 241.9.8.7.in-adrr.arpa.

Do të jetë e vështirë të bësh një kërkesë të tillë me dorë. Dhe edhe nëse funksionon, është ende e paqartë se si të zbatohet në jetën reale. Në fund të fundit, sipas kërkesës 7.8.9.241 DNS-ja e ofruesit ende na përgjigjet, jo e klientit.

Dhe këtu hyjnë në lojë CNAME.

Nga ana e ofruesit, ju duhet të bëni një pseudonim për të gjitha adresat IP të nënrrjetit në një format që do ta përcjellë kërkesën te klienti DNS.

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

Kjo është për punëtorët =).

Dhe për dembelët, dizajni më poshtë është më i përshtatshëm:

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

Tani kërkoni informacion në 7.8.9.241 nga 241.9.8.7.in-adrr.arpa në serverin DNS të ofruesit do të konvertohet në 241.255-240.9.8.7.in-addr.arpa dhe shkon te klienti dns.

Pala e klientit do të duhet të trajtojë kërkesa të tilla. Prandaj, ne krijojmë një zonë 255-240.9.8.7.in-addr.arpa. Në të, ne, në parim, mund të vendosim hyrje të kundërta për çdo ip të të gjithë nënrrjetit /24, por ata do të na pyesin vetëm për ato që na përcjell ofruesi, kështu që ne nuk do të jemi në gjendje të luajmë rreth =).
Për të ilustruar, unë do të jap edhe një herë një shembull të përmbajtjes së një skedari të zonës së kundërt nga ana e klientit:

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

Kjo ndodh sepse ne përdorim CNAME nga ana e ofruesit dhe në përgjigje të një kërkese për të dhëna nga adresa IP ne marrim dy regjistrime, jo një.

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

Dhe mos harroni të konfiguroni saktë ACL-në. Sepse nuk ka kuptim të marrësh një zonë PTR për vete dhe të mos i përgjigjesh askujt nga jashtë =).

Burimi: www.habr.com

Shto një koment