Alamvõrgu PTR-ala delegeerimine vähem kui /24 BIND'is. Kuidas see töötab

Üks kord seisis mul ees ülesanne anda ühele kliendile õigus redigeerida PTR-kirjeid antud alamvõrgust \/28. Mul ei ole automaatikat BIND seadete kaugelt redigeerimiseks. Seetõttu otsustasin minna teistsugust teed — delegeerida kliendile tükk PTR-ala alamvõrgust \/24.

Tundub, et mis võiks olla lihtsam? Lihtsalt määrame vajadusel alamvõrgu ja suuname vajalikule NS-ile, nagu alamsadamate puhul. Aga ei. Kõik pole nii lihtne (kuigi tegelikult on üldiselt primitiivne, aga intuitsioon ei aita), mistõttu ma kirjutan seda artiklit.

Kes tahab ise aru saada, võib lugeda RFC
Kes soovib valmis lahendust, on teretulnud allapoole.

Kuna ma ei taha viivitada neid, kes armastavad kopipeistamist, alustan esmalt praktilise osaga ja pärast seda teoreetilise.

1. Praktika. Delegeerime ala \/28.

Oletame, et meil on alamvõrk 7.8.9.0/24. Peame delegeerima alamvõrgu 7.8.9.240/28 DNS-kliendile 7.8.7.8 (ns1.client.domain).

Teenusepakkuja DNS-is tuleb leida fail, mis kirjeldab selle alamvõrgu tagasipöördumist. Olgu see 9.8.7.in-addr.arpa.
Kirjed vahemikus 240 kuni 255 kommenteerime välja, kui need on olemas. Ja faili lõppu kirjutame järgmise:

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

ärge unustage suurendada ala seriali ja teha

rndc reload

Sellega on teenusepakkuja osa lõpetatud. Liigume kliendi DNS-i juurde.

Esmalt loome faili /etc/bind/master/255-240.9.8.7.in-addr.arpa järgneva sisu:

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

Ja failis named.conf lisame meie uue faili kirjelduse:

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

B käivitame bind protsessi uuesti.

/etc/init.d/named restart

Kõik. Nüüd saab kontrollida.

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

Pange tähele, et saabumist ei anta ainult PTR-kirje, vaid ka CNAME. Nii peab olema. Kui huvitab, miks, siis olete järgmise peatüki oodatud.

2. Teooria. Kuidas see töötab.

Must kasti seadistamine ja silumine on keeruline. Kaugel lihtsam on, kui mõistad, mis toimub seestpoolt.

Kui delegeerime alamdomeeni domeenis domain, siis kirjutame midagi sellist:

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

Me räägime kõigile, kes küsivad, et selle osa eest ei vastuta ja ütleme, kes vastutab. Ja kõik päringud client.domain suunatakse 7.8.7.8. Kontrollimisel näeme järgmist pilti (jätame kõrvale, mis seal kliendil on, see pole oluline):

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

St. meile öeldi, et on olemas selline A-kiri ja selle IP 7.8.9.241. Ei mingit liigset teavet.

Kuidas saab sama asja teha alamvõrguga?

Kuna meie DNS-server on registreeritud RIPE'is, siis päringu PTR IP-aadressist meie võrgust, on esimene päring ikkagi meie poole. Loogika on sama, mis domeenide puhul. Kuidas aga kirjutada alamvõrk tsoonifaili?

Proovime kirjutada nii:

255-240  IN  NS      7.8.7.8

Ja… imet ei juhtunud. Me ei saa mingit päringu suunamist. Probleem on selles, et bind ei tea üldse, et need kirjed tagurpidi tsoonifailis on IP-aadressid ega mõista ka vahemiku kirjet. Tema jaoks on see lihtsalt mingi sümboolne alamdomeen. St bindile ei ole vahet, kas255-240" ja "oursuperclient«. Ja päringuks, et päring läheks õigesse kohta, peab aadress päringus välja nägema nii: 241.255-240.9.8.7.in-addr.arpa. Või nii, kui kasutame sümboolset alamdomeen: 241.oursuperclient.9.8.7.in-addr.arpa. See erineb tavalisest: 241.9.8.7.in-addr.arpa.

Käsi-räti see päring teha on problemaatiline. Ja isegi kui õnnestub, on ikkagi ebaselge, kuidas seda reaalses elus kasutada. Sest päringu peale 7.8.9.241 vastab meile endiselt pakkuja DNS, mitte kliendi oma.

Kuid siia tuleb mängu CNAME.

Pakkuja poolel on vaja teha kõikidele alamvõrgu IP-aadressidele alias, mis suunab päringu kliendi DNS-ile.

255-240  IN  NS      ns1.client.domain.
241     IN  CNAME   241.255-240
242     IN  CNAME   242.255-240
jne.

See on usinatele =).

Aga laiskadele sobib rohkem allolev konstruktsioon:

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

Nüüd muudetakse päring teabe kohta aadressil 7.8.9.241 API-s 241.9.8.7.in-addr.arpa pakkuja DNS-serveris 241.255-240.9.8.7.in-addr.arpa ja saadetakse DNS-klientile.

Kliendi poolt tuleb nende päringutega tegeleda. Vastavalt sellele loome tsooni 255-240.9.8.7.in-addr.arpa. Selles saame põhimõtteliselt paigutada tagurpidi kirjed kõikidele IP-dele kogu alamvõrgus /24, kuid küsitakse meist ainult nende kohta, mida pakkuja meile edastab, seega ei saa eriti lõbutseda =).
Illustreerimiseks toon veel kord näite tagurpidi tsoonifaili sisust kliendi poolelt:

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

Kuna meie poolt pakkujana kasutame CNAME'i, saame vastuseks andmete päringu kohta IP-aadressile kaks kirjet, mitte üks.

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

Ärge unustage ACL-i õigesti seadistada. Sest pole mõtet endale PTR-ala võtta ja mitte vastata kellelegi väljast =).

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster