Ü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
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 reloadSellega 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 restartKõ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.8Me 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.241St. 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.8Ja… 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-240Nüü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
