Op in dei waard ik konfrontearre mei de taak om ien fan myn kliïnten it rjocht te jaan om PTR-records te bewurkjen fan it /28 subnet dat him tawiisd is. Ik haw gjin automatisearring foar it bewurkjen fan BIND-ynstellingen fan bûten. Dêrom besleat ik in oare rûte te nimmen - om in stik fan 'e PTR-sône fan it /24-subnet oan de kliïnt te delegearjen.
It soe lykje - wat koe wêze ienfâldiger? Wy registrearje it subnet gewoan as nedich en rjochtsje it nei de winske NS, lykas dien wurdt mei in subdomein. Mar nee. It is net sa ienfâldich (hoewol't it yn 'e realiteit oer it algemien primityf is, mar yntuysje sil net helpe), dêrom skriuw ik dit artikel.
Elkenien dy't it sels útfine wol, kin lêze
Wa wol in klearebare oplossing, wolkom by kat.
Om dejingen dy't fan 'e copy-paste-metoade hâlde net te fertrage, sil ik earst it praktyske diel pleatse, en dan it teoretyske diel.
1. Oefenje. Delegearjende sône /28
Litte wy sizze dat wy in subnet hawwe 7.8.9.0/24. Wy moatte it subnet delegearje 7.8.9.240/28 oan dns kliïnt 7.8.7.8 (ns1.client.domain).
Op de DNS fan de provider moatte jo in bestân fine dat de omkearsône fan dit subnet beskriuwt. Lit it wêze 9.8.7.in-addr.harp.
Wy kommentearje op ynstjoerings fan 240 oant 255, as der ien binne. En oan 'e ein fan it bestân skriuwe wy it folgjende:
255-240 IN NS 7.8.7.8
$GENERATE 240-255 $ CNAME $.255-240
ferjit net te fergrutsjen de serial sône en dwaan
rndc reload
Dit foltôget de provider diel. Lit ús gean nei de client dns.
Litte wy earst in bestân oanmeitsje /etc/bind/master/255-240.9.8.7.in-addr.arpa de folgjende ynhâld:
$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 yn neamd.konf foegje in beskriuwing ta fan ús nije triem:
zone "255-240.9.8.7.in-addr.arpa." IN {
type master;
file "master/255-240.9.8.7.in-addr.arpa";
};
B werstart it bineproses.
/etc/init.d/named restart
Alle. No kinne jo kontrolearje.
#> 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.
Tink derom dat net allinich it PTR-record wurdt jûn, mar ek de CNAME. Sa moat it wêze. As jo jo ôffreegje wêrom, dan wolkom by it folgjende haadstik.
2. Teory. Hoe't it wurket.
It is lestich om in swarte doaze te konfigurearjen en te debuggen. It is folle makliker as jo begripe wat der binnen bart.
As wy delegearje in subdomain yn in domein domein, dan skriuwe wy sa'n ding:
client.domain. NS ns1.client.domain.
ns1.client.domain. A 7.8.7.8
Wy fertelle elkenien dy't freget dat wy net ferantwurdlik binne foar dit gebiet en fertelle wa't ferantwurdlik is. En alle oanfragen foar client.domain trochferwize nei 7.8.7.8. By it kontrolearjen sjogge wy de folgjende ôfbylding (wy sille wegerje wat de kliïnt dêr hat. It makket neat út):
# host test.client.domain
test.client.domain has address 7.8.9.241
Dy. wy waarden op 'e hichte dat der sa'n A-record is en syn ip is 7.8.9.241. Gjin ûnnedige ynformaasje.
Hoe kin itselde ding dien wurde mei in subnet?
Omdat ús DNS-tsjinner is registrearre yn RIPE, dan by it oanfreegjen fan in PTR IP-adres fan ús netwurk, sil it earste fersyk noch oan ús wêze. De logika is itselde as mei domeinen. Mar hoe fiere jo in subnet yn in sône triem?
Litte wy besykje it sa yn te fieren:
255-240 IN NS 7.8.7.8
En... it wûnder barde net. Wy ûntfange gjin fersyk trochferwizing. It ding is dat bind net iens wit dat dizze yngongen yn 'e omkearde sône-bestân IP-adressen binne, en noch mear begrypt de berikyngong net. Foar him is dit gewoan in soarte fan symboalysk subdomein. Dy. foar bine sil d'r gjin ferskil wêze tusken "255-240"En"ús superclient". En foar it fersyk om te gean wêr't it moat, moat it adres yn it fersyk der sa útsjen: 241.255-240.9.8.7.in-addr.arpa. Of sa as wy in karakter subdomein brûke: 241.oursuperclient.9.8.7.in-addr.arpa. Dit is oars as de gewoane: 241.9.8.7.in-addr.harp.
It sil lestich wêze om sa'n fersyk manuell te meitsjen. En sels as it wurket, is it noch ûndúdlik hoe't it yn it echte libben tapasse moat. Ommers op oanfraach 7.8.9.241 De DNS fan de provider antwurdet ús noch, net dy fan de klant.
En dit is wêr't se yn spiel komme CNAME.
Oan 'e kant fan' e provider moatte jo in alias meitsje foar alle IP-adressen fan it subnet yn in formaat dat it fersyk trochstjoert nei de DNS fan 'e kliïnt.
255-240 IN NS ns1.client.domain.
241 IN CNAME 241.255-240
242 IN CNAME 242.255-240
и т.д.
Dit is foar de hurdwurkjende =).
En foar de lui is it ûndersteande ûntwerp mear geskikt:
255-240 IN NS ns1.client.domain.
$GENERATE 240-255 $ CNAME $.255-240
No freegje ynformaasje by 7.8.9.241 fan 241.9.8.7.in-addr.harp op de DNS-tsjinner fan de provider wurdt omboud ta 241.255-240.9.8.7.in-addr.arpa en giet nei de dns client.
De klantkant sil sokke oanfragen moatte behannelje. Dêrtroch meitsje wy in sône 255-240.9.8.7.in-addr.arpa. Dêryn kinne wy yn prinsipe omkearde yngongen pleatse foar elke ip fan it heule /24-subnet, mar se sille ús allinich freegje oer dyjingen dy't de provider nei ús trochstjoert, dus wy kinne net omgean =).
Om te yllustrearjen sil ik nochris in foarbyld jaan fan 'e ynhâld fan in omkearde sônebestân fan' e kliïntside:
$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.
It is om't wy CNAME brûke oan 'e kant fan' e provider, en as antwurd op in fersyk foar gegevens troch IP-adres krije wy twa records, net ien.
#> 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 ferjit net om de ACL goed te konfigurearjen. Om't it gjin sin hat om in PTR-sône foar josels te nimmen en net op ien fan bûten te reagearjen =).
Boarne: www.habr.com