baseciq.org

Reverse DNS

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.