W normalnych wpisach DNS nazwy wskazują na adresy IP. Oczywiście adres IP może także wskazywać na nazwę. Takie coś nazywamy rDNS (reverse DNS - DNS odwrotny). Wpisy takie są zapisane w specjalnych domenach in-addr.arpa, i są w nich przechowywane w formie odwrotnej. Jak to by wytłumaczyć... Hm. Otóż reversdns dla adresu IP 213.25.100.23 jest zapisany w postaci 23.100.25.213.in-addr.arpa - czyli jak widać odwrotnej ;). No i oczywiście służy do tego specjalny typ rekordu - PTR. Czyli taki rekord to przykładowo:
23.100.25.213.in-addr.arpa IN PTR netserv.baseciq.eu.org.
Dzięki takiemu rekordowi wiemy, że pod adresem IP 213.25.100.23 kryje się nazwa 'netserv.baseciq.eu.org'. A jak z delegacją? Tutaj sprawa się komplikuje - minimalna domena w takim przypadku jaką można wydelegować to 100.25.213.in-addr.arpa, czyli 255 adresów. Jeżeli dostaliśmy od providera tak dużą ilość adresów IP to wtedy on nam deleguje takiego typu domene. Zasady jej tworzenia są tak jak w przypadku normalnych domen (napisałem już jak je się tworzy), z tym że możemy sobie darować rekordy IN MX, IN CNAME czy inne. Poprostu postępujemy tak jakby ktoś nam wydelegował (dla przykładu) domenę 100.25.213.in-addr.arpa. Oczywiśc można np. utworzyć host www.100.25.213.in-addr.arpa ale po co ? :-). Oto taka przykładowa domenka (dla 255 adresów z klasy 213.25.100.*):
$TTL 86400 $ORIGIN 100.25.213.in-addr.arpa. ;; Start of authority i czasy ... @ IN SOA dns1.naszadomena.pl. hostmaster.naszadomena.pl. ( 2001073001 21600 7200 1209600 86400 ) ;; Serwery dns dla tej domeny @ IN NS dns1.naszadomena.pl. @ IN NS secdns.provider.pl. ;; No i już konkretne hosty. Jako że są to hosty w tejże domenie, ;; piszemy kolejno 1 dla 213.25.100.1, 2 dla 213.25.100.2, itd.. ;; Nie zapominajmy o kropkach na końcu wpisów. Jeżeli przy ;; 1 IN PTR napiszemy router.naszadomena.pl bez kropki, ;; to faktyczny rDNS dla 213.25.100.1 przyjmie wartość ;; router.naszadomena.pl.100.25.213.in-addr.arpa. - czyli te same ;; uwagi co wcześniej co do kropek. 1 IN PTR router.naszadomena.pl. 2 IN PTR netserv.baseciq.eu.org. 3 IN PTR www.baseciq.eu.org. 40 IN PTR komp40.naszadomena.pl. ;; i tak dalej...
Oki. Teraz kilka zasad. W sumie najważniejsze w dzisiejszych czasach wykorzystanie rDNS to IRC. Tak więc kilka zasad. Otóż poza tym że jest rekord PTR w rDNS'ie, potrzeba jeszcze aby host na który wkazuje adres IP, wskazywał na ten adres. Dobrze a jak provider nam daje mniejszą ilość adresów? Możemy albo jego poprosić o ustawienie rdns'a u siebie, albo o delegacje pojedyńczych hostów. Delegacje pojedyńczych hostów robi się poprzez wskazanie w domenie odwrotnej za pomocą rekordów IN CNAME na hosty w innej domenie (którą my możemy kontrolować) i ustawienie w tamtej domenie odpowiednich rekordów PTR. Oto przykład (zakładając że delegowane są adresy 213.25.100.0-7, a my możemy kontrolować domene naszadomena.pl):
;; W domenie 100.25.213.in-addr.arpa muszą być stworzone wpisy: ;; (oczywiście pamiętamy o kropkach na końcu!) 0 IN CNAME rdns0.naszadomena.pl. 1 IN CNAME rdns1.naszadomena.pl. 2 IN CNAME rdns2.naszadomena.pl. 3 IN CNAME rdns3.naszadomena.pl. 4 IN CNAME rdns4.naszadomena.pl. 5 IN CNAME rdns5.naszadomena.pl. ;; Hm, adres IP 213.25.100.6 należy do mojego prywatnego ;; servera i ja w swojej własnej domenie będę ustawiał ;; reverse-dns dla mnie ;-))) 6 IN CNAME revdns.dla.baseciq.eu.org. 7 IN CNAME rdns7.naszadomena.pl. ;; A w naszadomena.pl ustawiamy sobie już właściwy rDNS. rdns0 IN PTR netaddr.naszadomena.pl. rdns1 IN PTR router.naszadomena.pl. rdns2 IN PTR netserv.naszadomena.pl. rdns3 IN PTR dyrekcja.naszadomena.pl. rdns4 IN PTR sekretariat.naszadomena.pl. rdns5 IN PTR serwis.naszadomena.pl. ;; rdns6 nie ma bo go ustawiamy w innej domenie ;))) rdns7 IN PTR broadcast.naszadomena.pl. ;; No i oczywiście muszę sobie ustawić reverse dns ;; dla mojego servera pod 213.25.100.6 w mojej domenie - ;; - baseciq.eu.org: revdns.dla IN PTR boski.baseciq.eu.org.
Powyższe zmiany należy wprowadzić w trzech plikach oczywiście (provider w strefie odwrotnej, my w domenie naszadomena.pl i ja sam dla siebie w baseciq.eu.org). Oczywiście i tutaj hosty które ustawimy w rekordzie PTR muszą posiadać rekord IN A.
A może by tak sobie ułatwić?
W sumie wpisywanie '[cyfra] IN CNAME r[cyfra].costam.pl.' może być na dłuższą metę nużące. Równie dobrze, możemy powiedzieć binowi (z tego co wiem przynajmniej w wersji 9.x) aby zrobił coś z nas. Teoretycznie, chcemy wykonać wpisy '[cyferka] IN CNAME rev[cyferka].naszadomena.pl.', gdzie cyferka jest od 0 do 7 (czyli pierwsze 8 adresów). Zamiast klepać kolejne rekordy można użyć:
$GENERATE 0-7 $ CNAME rev$.naszadomena.pl.
Czyli: 'wygeneruj od 0 do 7 i zrób podany rekord wstawiając kolejne cyfry w miejsce znaku $'. Działa to oczywiście także dla stref prostych. Np:
$GENERATE 0-255 komp$ A 192.168.1.$
Co w efekcie da name wpisy 'komp0 IN A 192.168.1.0' ... 'komp255 IN A 192.168.1.255'. Fajne? Mi się też to podoba.
I taka mała uwaga na koniec: nie, nie pomogę ci na zmiane revdns dla twojego łącza z SDI/Neostrada/chello czy innego ustrojstwa - dlaczego ci nie pomoge? Bo sie nie da. Providerzy tychże usług odmawiają zmiany rDNS jak i jego delegacji.