Reverse DNS CNAME’s (Swedish)

Also check out my text about IP adresses!

Subject: Re: [networking] Reverse DNS

MA> Det finns “classless reverse-DNS”, dvs de kan delegera vidare subnät som
MA> är mindre än /24. Det finns en RFC som behandlar detta, jag är inte 100%
MA> säker på hur det fungerar (jag har har aldrig behövt göra det) men det
MA> involverar att man lägger upp 64 st IN NS (eller om det var CNAME) när det
MA> gäller reverse-dns som sen pekar på kundens DNS. Typ:
MA>
MA> 0-63.209.85.195.in-addr.arpa. IN NS kund-dns.domän.se
MA> 1.209.85.195.in-addr.arpa. IN CNAME 1.0-63.209.85.195.in-addr-arpa.
MA> 2.209.85.195.in-addr.arpa. IN CNAME 2.0-63.209.85.195.in-addr-arpa.
MA> 3.209.85.195.in-addr.arpa. IN CNAME 3.0-63.209.85.195.in-addr-arpa.
MA> 4.209.85.195.in-addr.arpa. IN CNAME 4.0-63.209.85.195.in-addr-arpa.

Jag kör reverse via CNAMES i flera steg. Det funkar såhär:

Reverse DNS vänder ju på adressen och lägger dit in-addr.arpa på slutet, så att
195.42.219.125 blir 125.219.42.194.in-addr.arpa, sedan fungerar det i princip
som “vanlig” DNS, fast med toppdomänen .arpa

195.42.219.0/24 handhas utav Wineasys DNS-server. Alltså ser NS-record och SOA
för domänen 219.42.219.in-addr.arpa ut såhär:

219.42.195.in-addr.arpa. IN SOA ns.wineasy.se. registry.wineasy.se.
219.42.195.in-addr.arpa. IN NS ns.wineasy.se.
219.42.195.in-addr.arpa. IN NS ns2.wineasy.se.

Primär DNS för 219.42.219.in-addr.arpa är alltså ns.wineasy.se och sekundär är
ns2.wineasy.se.

PXS (där min burk står) har adresserna 195.42.219.65 till 195.42.219.126 (64 är
nätet och 127 är broadcast). Först måste man döpa domänen till något. I Wineasys
fall kör de med nät-netmask.219.42.in-addr.arpa vilket i detta fall blir
64-26.219.42.195.in-addr.arpa. Tittar man på det ser man att det blir en
underdomän till 219.42.195.in-addr.arpa. Sedan lägger de in följande i sin
zonfil:

64-26.219.42.195.in-addr.arpa. IN SOA wormhole.pxs.se. hostmaster.pxs.se.
64-26.219.42.195.in-addr.arpa. IN NS stargate.pxs.se.
64-26.219.42.195.in-addr.arpa. IN NS ns.wineasy.se.
64-26.219.42.195.in-addr.arpa. IN NS wormhole.pxs.se.

Primär DNS för 64-26.219.42.219.in-addr.arpa är alltså wormhole.pxs.se, och de
andra två är sekundärer.

En klient som vill reverse-lookupa (eller vad fan verbet blir) ett IP-nummer
skickar ju sin förfrågan efter om.vänt.ip.nummer.in-addr.arpa vilket för
195.42.219.125 blir 125.219.42.195.in-addr.arpa. Eftersom NS för domänen
219.42.195.in-addr.arpa är ns.wineasy.se och ns2.wineasy.se kommer ju klienten
(eller snarare dennes DNS) att fråga dessa två servrar efter ovanstående
adress. Alltså måste Wineasy lägga in följande i zonfilen för
219.42.219.in-addr.arpa:

65.219.42.219.in-addr.arpa. IN CNAME 65.64-26.219.42.219.in-addr.arpa.
66.219.42.219.in-addr.arpa. IN CNAME 66.64-26.219.42.219.in-addr.arpa.
67.219.42.219.in-addr.arpa. IN CNAME 67.64-26.219.42.219.in-addr.arpa.
[...]
124.219.42.219.in-addr.arpa. IN CNAME 124.64-26.219.42.219.in-addr.arpa.
125.219.42.219.in-addr.arpa. IN CNAME 125.64-26.219.42.219.in-addr.arpa.
126.219.42.219.in-addr.arpa. IN CNAME 126.64-26.219.42.219.in-addr.arpa.

Då kommer klienten/DNS-servern som frågar att fråga efter NS för
64-26.219.42.219.in-addr.arpa för att kunna fråga efter den nya adressen den
fick via CNAME. Då får den svaret:

64-26.219.42.195.in-addr.arpa. IN NS stargate.pxs.se.
64-26.219.42.195.in-addr.arpa. IN NS ns.wineasy.se.
64-26.219.42.195.in-addr.arpa. IN NS wormhole.pxs.se.

… och följaktligen kan sedan fråga någon av ovanstående servrar efter den nya
adressen. I zonfilen för 64-26.219.42.219.in-addr.arpa (som ju wormhole
“bestämmer” över) kan sedan PXS skriva in vad de vill. Det behöver inte ens
stämma överens med A-records som pekar på det IP-numret, även om vissa
programvaror (t ex IRC-servrar) kollar att A-records och PTR-records
(reverse) stämmer överens.

PXS (eller snarare jag) har sedan i sin zonfil (den för
64-26.219.42.219.in-addr.arpa) lagt in följande NS-pekare och CNAME’s för alla
IP-nummer som ligger på min burk:

pal.64-26.219.42.195.in-addr.arpa. SOA nic.pal.pp.se. hostmaster.pal.pp.se.
pal.64-26.219.42.195.in-addr.arpa. IN NS nic.pal.pp.se.
118.64-26.219.42.195.in-addr.arpa. IN CNAME 118.pal.64-26.219.42.195.in-addr.arpa.
119.64-26.219.42.195.in-addr.arpa. IN CNAME 119.pal.64-26.219.42.195.in-addr.arpa.
120.64-26.219.42.195.in-addr.arpa. IN CNAME 120.pal.64-26.219.42.195.in-addr.arpa.
121.64-26.219.42.195.in-addr.arpa. IN CNAME 121.pal.64-26.219.42.195.in-addr.arpa.
122.64-26.219.42.195.in-addr.arpa. IN CNAME 122.pal.64-26.219.42.195.in-addr.arpa.
123.64-26.219.42.195.in-addr.arpa. IN CNAME 123.pal.64-26.219.42.195.in-addr.arpa.
124.64-26.219.42.195.in-addr.arpa. IN CNAME 124.pal.64-26.219.42.195.in-addr.arpa.
125.64-26.219.42.195.in-addr.arpa. IN CNAME 125.pal.64-26.219.42.195.in-addr.arpa.

Alltså kommer klienten/DNS-servern som frågar ännu en gång kolla upp NS för
adressen den får från CNAME, och då få svaret nic.pal.pp.se, varefter den kommer
att fråga nic.pal.pp.se efter PTR-pekaren.

Så kan man i teorin hålla på i evighet, men varje DNS-uppslagning tar ju lite
tid, så fler än två steg är nog inte tillrådligt. Redan med min config så orkar
en del otåliga applikationer inte vänta på svaret, utan kör med IP-numret direkt
istället.

I alla ovanstående exempel har jag använt hela namnet inklusive domän och
in-addr.arpa och hela köret, och sedan avslutat med en extra punkt. De flesta
DNS-servrar lägger till domännamnet som zonfilen är för automagiskt om man
struntar i punkten. Således kunde t ex:

125.64-26.219.42.195.in-addr.arpa. IN CNAME 125.pal.64-26.219.42.195.in-addr.arpa.

..i zonfilen för 64-26.219.42.195.in-addr.arpa lika gärna ha skrivits:

125 IN CNAME 125.pal

..istället. Detta gäller alla sorters records. Jag har dock använt hela namnet i
alla exempel för att göra det lättare att se alla samband.

Ett exempel på en PTR-uppslagning efter 195.42.219.125:

Till någon rootserver (eller iaf någon server högre upp i hierarkien som har
hand om 195.in-addr.arpa (ns.ripe.net) eller liknande):
Fråga: NS för 219.42.195.in-addr.arpa.
Svar: ns.wineasy.se. (och ett par andra). I svaret får man även IP-numret till
NS-servrarna, varför man slipper slå upp dessa också.

Till ns.wineasy.se:
Fråga: PTR för 125.219.42.195.in-addr.arpa.
Svar: CNAME: 125.64-26.219.42.195.in-addr.arpa.

Till ns.wineasy.se:
Fråga: NS för 64-26.219.42.195.in-addr.arpa.
Svar: wormhole.pxs.se. (och ett par andra)

Till wormhole.pxs.se:
Fråga: PTR för 125.64-26.219.42.195.in-addr.arpa.
Svar: CNAME: 125.pal.64-26.219.42.195.in-addr.arpa.

Till wormhole.pxs.se:
Fråga: NS för pal.64-26.219.42.195.in-addr.arpa.
Svar: nic.pal.pp.se.

Till nic.pal.pp.se:
Fråga: PTR för 125.pal.64-26.219.42.195.in-addr.arpa.
Svar: wield.the.scythe.of.the.soulreaper.net.

Det är inte klienten som frågar det ovan (om jag har fattat allt rätt) utan
DNS-servrarna som frågar varandra i en kedja tills de hittar rätt svar. Svaret
till klienten ser alltså ut såhär:

125.219.42.195.in-addr.arpa. IN CNAME 125.64-26.219.42.195.in-addr.arpa.
125.64-26.219.42.195.in-addr.arpa. IN CNAME 125.pal.64-26.219.42.195.in-addr.arpa.
125.pal.64-26.219.42.195.in-addr.arpa. IN PTR wield.the.scythe.of.the.soulreaper.net.

/P

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>