Verder Terug Inhoud

4. Een voorbeeld van een simpel domein

Het opzetten van je eigen domein

4.1 Maar eerst wat droge theorie

Voordat we echt met deze sectie aan de slag gaan, behandel ik eerst wat droge theorie met voorbeelden. Lees dit onderdeel, of neem het tenminste vluchtig door. Als je het vluchtig doorneemt, pak de draad dan weer op bij het gedeelte waar named.conf aangepast wordt.

DNS is een hierarchisch systeem met een boom-structuur. De 'top' heet . en dit wordt 'root' genoemd. Onder . zijn een aantal Top Level Domains (TLD), waarvan de meest bekende COM, NET, ORG, en EDU zijn. Net als een boom begint de stuctuur ergens, en het breidt zich steeds verder uit. Als je een informatica-achtergrond hebt, dan herken je in DNS een 'search tree' met knooppunten, eindpunten, en begrenzingen.

Als je een machinenaam opvraagt, begint de zoektocht in de top van de hierarchie. Als je bijvoorbeeld prep.ai.mit.edu zoekt dan moet je nameserver de server vinden die het edu domein verzorgt. Daarvoor ondervraagt het een . server. Van deze servers heeft de nameserver al het adres, dat staat namelijk in het root.hints bestand. De . server geeft een lijst van edu servers:

$ nslookup
Default Server:  localhost
Address:  127.0.0.1

Ondervraag een root server:

> server c.root-servers.net.
Default Server:  c.root-servers.net
Address:  192.33.4.12

Zet het 'query type' op NS (Name Server gegevens):

> set q=ns

Vraag naar edu:

> edu.

De . achter edu is erg belangrijk. Het vertelt nslookup dat edu onder . zit, en niet onder een van onze `search' domeinen. Dit versnelt het zoeken.

edu     nameserver = A.ROOT-SERVERS.NET
edu     nameserver = H.ROOT-SERVERS.NET
edu     nameserver = B.ROOT-SERVERS.NET
edu     nameserver = C.ROOT-SERVERS.NET
edu     nameserver = D.ROOT-SERVERS.NET
edu     nameserver = E.ROOT-SERVERS.NET
edu     nameserver = I.ROOT-SERVERS.NET
edu     nameserver = F.ROOT-SERVERS.NET
edu     nameserver = G.ROOT-SERVERS.NET
A.ROOT-SERVERS.NET      internet address = 198.41.0.4
H.ROOT-SERVERS.NET      internet address = 128.63.2.53
B.ROOT-SERVERS.NET      internet address = 128.9.0.107
C.ROOT-SERVERS.NET      internet address = 192.33.4.12
D.ROOT-SERVERS.NET      internet address = 128.8.10.90
E.ROOT-SERVERS.NET      internet address = 192.203.230.10
I.ROOT-SERVERS.NET      internet address = 192.36.148.17
F.ROOT-SERVERS.NET      internet address = 192.5.5.241
G.ROOT-SERVERS.NET      internet address = 192.112.36.4

Dit vertelt ons dat alle ROOT-SERVERS.NET vragen beantwoorden over EDU, dus we kunnen op dezelfde server blijven doorvragen. We blijven de server C ondervragen. Nu willen we weten wat de server is voor mit.edu:

> mit.edu.
Server:  c.root-servers.net
Address:  192.33.4.12

Non-authoritative answer:
mit.edu nameserver = W20NS.mit.edu
mit.edu nameserver = BITSY.mit.edu
mit.edu nameserver = STRAWB.mit.edu

Authoritative answers can be found from:
W20NS.mit.edu   internet address = 18.70.0.160
BITSY.mit.edu   internet address = 18.72.0.3
STRAWB.mit.edu  internet address = 18.71.0.151

strawb, w20ns en bitsy zijn allemaal nameservers voor mit.edu. We kiezen hieruit een nameserver en gaan weer een stap verder, naar ai.mit.edu:

> server W20NS.mit.edu.

Het maakt niet uit of je hoofd- of kleine letters gebruikt in de servernaam. Maar ik gebruik m'n muis om te knippen en plakken zodat ik geen spelfouten maak.

Server:  W20NS.mit.edu
Address:  18.70.0.160

> ai.mit.edu.
Server:  W20NS.mit.edu
Address:  18.70.0.160

Non-authoritative answer:
ai.mit.edu      nameserver = ALPHA-BITS.AI.MIT.EDU
ai.mit.edu      nameserver = GRAPE-NUTS.AI.MIT.EDU
ai.mit.edu      nameserver = TRIX.AI.MIT.EDU
ai.mit.edu      nameserver = MUESLI.AI.MIT.EDU
ai.mit.edu      nameserver = LIFE.AI.MIT.EDU
ai.mit.edu      nameserver = BEET-CHEX.AI.MIT.EDU
ai.mit.edu      nameserver = MINI-WHEATS.AI.MIT.EDU
ai.mit.edu      nameserver = COUNT-CHOCULA.AI.MIT.EDU
ai.mit.edu      nameserver = MINTAKA.LCS.MIT.EDU

Authoritative answers can be found from:
AI.MIT.EDU      nameserver = ALPHA-BITS.AI.MIT.EDU
AI.MIT.EDU      nameserver = GRAPE-NUTS.AI.MIT.EDU
AI.MIT.EDU      nameserver = TRIX.AI.MIT.EDU
AI.MIT.EDU      nameserver = MUESLI.AI.MIT.EDU
AI.MIT.EDU      nameserver = LIFE.AI.MIT.EDU
AI.MIT.EDU      nameserver = BEET-CHEX.AI.MIT.EDU
AI.MIT.EDU      nameserver = MINI-WHEATS.AI.MIT.EDU
AI.MIT.EDU      nameserver = COUNT-CHOCULA.AI.MIT.EDU
AI.MIT.EDU      nameserver = MINTAKA.LCS.MIT.EDU
ALPHA-BITS.AI.MIT.EDU   internet address = 128.52.32.5
GRAPE-NUTS.AI.MIT.EDU   internet address = 128.52.36.4
TRIX.AI.MIT.EDU internet address = 128.52.37.6
MUESLI.AI.MIT.EDU       internet address = 128.52.39.7
LIFE.AI.MIT.EDU internet address = 128.52.32.80
BEET-CHEX.AI.MIT.EDU    internet address = 128.52.32.22
MINI-WHEATS.AI.MIT.EDU  internet address = 128.52.54.11
COUNT-CHOCULA.AI.MIT.EDU        internet address = 128.52.38.22
MINTAKA.LCS.MIT.EDU     internet address = 18.26.0.36

muesli.ai.mit.edu is dus een nameserver voor ai.mit.edu:

> server MUESLI.AI.MIT.EDU
Default Server:  MUESLI.AI.MIT.EDU
Address:  128.52.39.7

Nu verander ik het query type. We hebben de nameserver gevonden, dus kunnen nu kijken wat muesli weet over prep.ai.mit.edu.

> set q=any
> prep.ai.mit.edu.
Server:  MUESLI.AI.MIT.EDU
Address:  128.52.39.7

prep.ai.mit.edu CPU = dec/decstation-5000.25    OS = unix
prep.ai.mit.edu
        inet address = 18.159.0.42, protocol = tcp
          ftp  telnet  smtp  finger
prep.ai.mit.edu preference = 1, mail exchanger = gnu-life.ai.mit.edu
prep.ai.mit.edu internet address = 18.159.0.42
ai.mit.edu      nameserver = beet-chex.ai.mit.edu
ai.mit.edu      nameserver = alpha-bits.ai.mit.edu
ai.mit.edu      nameserver = mini-wheats.ai.mit.edu
ai.mit.edu      nameserver = trix.ai.mit.edu
ai.mit.edu      nameserver = muesli.ai.mit.edu
ai.mit.edu      nameserver = count-chocula.ai.mit.edu
ai.mit.edu      nameserver = mintaka.lcs.mit.edu
ai.mit.edu      nameserver = life.ai.mit.edu
gnu-life.ai.mit.edu     internet address = 128.52.32.60
beet-chex.ai.mit.edu    internet address = 128.52.32.22
alpha-bits.ai.mit.edu   internet address = 128.52.32.5
mini-wheats.ai.mit.edu  internet address = 128.52.54.11
trix.ai.mit.edu internet address = 128.52.37.6
muesli.ai.mit.edu       internet address = 128.52.39.7
count-chocula.ai.mit.edu        internet address = 128.52.38.22
mintaka.lcs.mit.edu     internet address = 18.26.0.36
life.ai.mit.edu internet address = 128.52.32.80

We zijn gestart op . en vonden nameservers voor elke laag van de machinenaam. Als je eigen DNS server zo'n zoektocht zou ondernemen, zou het gecached worden en voorlopig niet meer opgezocht hoeven worden.

In de boomstructuur is elke . in de machinenaam een vertakking. En elk woord dat tussen twee punten staat is een "tak" in de boomstructuur.

We zoeken steeds hoger in de boom, op zoek naar prep.ai.mit.edu. We beginnen bij . en zoeken naar de eerstvolgende tak. In dit geval edu. Als we die hebben gevonden gaan we een stapje hoger, en komen bij de edu server. Daar kunnen we vragen naar het domein mit. Als we die tak hebben gevonden gaan we weer een stapje hoger en komen op mit.edu. Als we nog een stapje hoger zitten, komen we bij ai.mit.edu en dan zijn we bij de laatste nameserver beland. De laatste stap is het zoeken naar prep.ai.mit.edu. In informaticatermen zou je prep een 'leaf', blad, of eindpunt van de boom kunnen noemen.

Een domein waar minder over gesproken wordt, maar wat minstens net zo belangrijk is, is het in-addr.arpa domein. Dit domein heeft net als de normale domeinen een boomstructuur. in-addr.arpa maakt het mogelijk dat een machinenaam opgezocht wordt, als je reeds het IP adres weet. Het is belangrijk op te merken dat IP adressen in omgekeerde volgorde worden genoteerd binnen het in-addr.arpa domein. Als je het adres van een machine hebt, bijvoorbeeld 192.128.52.43, dan werkt named op dezelfde manier als bij het prep.ai.mit.edu voorbeeld: zoek de arpa. servers. Zoek vervolgens de in-addr.arpa. servers, zoek 192.in-addr.arpa., zoek 128.192.in-addr.arpa., zoek 52.128.192.in-addr.arpa., zoek de benodigde informatie voor 43.52.128.192.in-addr.arpa. Handig, toch? (zeg 'ja'). Het omdraaien van de nummers kan echter verwarrend zijn.

Wat ik net verteld heb is niet helemaal waar. DNS werkt niet precies zoals hierboven beschreven staat. Maar het komt aardig dicht in de buurt.

4.2 Je eigen domein

Nu ga je een eigen domein maken. We maken het domein linux.bogus, en zetten daar machines in. We gebruiken expres een domein dat niet bestaat, zodat het geen conflict oplevert met echte domeinen.

Nog één ding voordat we beginnen: in machinenamen zijn niet alle tekens toegestaan. We mogen alleen letters (a-z), cijfers (0-9) en het minteken ('-') gebruiken. Gebruik dus alleen deze tekens. Hoofd- en kleine letters zijn voor DNS hetzelfde, dus pat.uio.no is hetzelfde als Pat.UiO.No.

We zijn eigenlijk al met dit onderdeel begonnen door de volgende regel in named.conf te plaatsen:


zone "0.0.127.in-addr.arpa" {
        type master;
        file "pz/127.0.0";
};

Merk op dat er geen . staat aan het eind van de domeinnamen in dit bestand. Dit zorgt ervoor dat, nu we de zone 0.0.127.in-addr.arpa configureren, we de master server voor deze zone zijn en dat het in een bestand staat genaamd pz/127.0.0. We hebben dit bestand al geconfigureerd, en er staat in:


@               IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                                1       ; Serial
                                8H      ; Refresh
                                2H      ; Retry
                                1W      ; Expire
                                1D)     ; Minimum TTL
                        NS      ns.linux.bogus.
1                       PTR     localhost.

Let op de . aan het eind van de volledige domeinnamen in dit bestand, in tegenstelling tot het named.conf bestand hierboven. Sommige mensen beginnen elk zone bestand graag met een $ORIGIN regel, maar dat is overbodig. De oorsprong van een zone bestand (de plaats die het inneemt in de DNS hierarchie) wordt gespecificeerd in het zone gedeelte van het named.conf bestand, in dit geval is het 0.0.127.in-addr.arpa.

Dit zone bestand bevat drie 'Resource Records' (RR's). Een SOA RR, een NS RR, en een PRT RR. SOA betekent Start Of Authority. De `@' is een notatie voor `oorsprong' en omdat in named.conf staat dat het domein voor dit bestand 0.0.127.in-addr.arpa is, staat er op de eerste regel eigenlijk:

0.0.127.in-addr.arpa.   IN      SOA ...

NS is de Name Server RR. Er staat geen '@' aan het begin van deze regel. Omdat de bovenstaande regel een '@' heeft staan, wordt verondersteld dat datzelfde ook bij deze regel hoort. Op de NS regel zou dus net zo goed kunnen staan:

0.0.127.in-addr.arpa.   IN      NS      ns.linux.bogus

Deze regel vertelt DNS wat de nameserver is voor het domein 0.0.127.in-addr.arpa, het is ns.linux.bogus. 'ns' is een veelgebruikte naam voor nameservers, net als 'www' dat is voor webservers. Maar net zoals bij webservers mag je van de naam maken wat je wilt.

Tenslotte zegt het PTR record dat de machine op adres 1 in het subnet 0.0.127.in-addr.arpa, ofwel 127.0.0.1, localhost heet.

Alle zone bestanden beginnen met een SOA record, en er mag er hoogstens 1 zijn in een zone bestand. Het beschrijft de zone, zegt waar het vandaan komt (een machine genaamd ns.linux.bogus), wie verantwoorlijk is voor de inhoud (hostmaster@linux.bogus, vul je eigen email adres hier in), welk versienummer van het zonebestand het is (hier: serienummer 1), en dingen die te maken hebben met cachen en secundaire DNS servers. Gebruik voor de andere velden (refresh, retry, expire, en minimum) de getallen die in deze HOWTO gebruikt worden, dan zit je goed.

Herstart nu named met "ndc restart" en gebruik nslookup om te kijken wat je hebt gedaan:

$ nslookup

Default Server:  localhost
Address:  127.0.0.1

> 127.0.0.1
Server:  localhost
Address:  127.0.0.1

Name:    localhost
Address:  127.0.0.1

named begrijpt dus dat 127.0.0.1 localhost heet, goed zo. Nu het belangrijke werk, het linux.bogus domein. Voeg een zone sectie aan named.conf toe:


zone "linux.bogus" {
        notify no;
        type master;
        file "pz/linux.bogus";
};

Let weer op het ontbreken van . aan het einde van de domein naam in het named.conf bestand.

In het linux.bogus zone bestand zetten we wat zelfbedachte gegevens:


;
; Zone file for linux.bogus
;
; The full zone file
;
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                        199802151       ; serial, todays date + todays serial #
                        8H              ; refresh, seconds
                        2H              ; retry, seconds
                        1W              ; expire, seconds
                        1D )            ; minimum, seconds
;
                NS      ns              ; Inet Address of name server
                MX      10 mail.linux.bogus     ; Primary Mail Exchanger
                MX      20 mail.friend.bogus.   ; Secondary Mail Exchanger
;
localhost       A       127.0.0.1
ns              A       192.168.196.2
mail            A       192.168.196.4

We maken nog twee opmerkingen over het SOA record. ns.linux.bogus moet een bestaande machinenaam zijn met een A record. Het is niet voldoende om een CNAME te hebben voor de machine die in het SOA record genoemd wordt. De naam hoeft niet 'ns' te zijn, je mag elke naam gebruiken die je wilt. Vervolgens, lees hostmaster.linux.bogus als 'hostmaster@linux.bogus'. Dit moet het email adres zijn van de persoon die verantwoordelijk is voor de DNS configuratie. Je mag zelf weten welk email adres je hier plaatst, maar hostmaster is een adres dat veel gebruikt wordt.

Er is een nieuw type 'resource record' in dit bestand, het MX record of Mail eXchanger RR. Mail servers kunnen hieraan zien dat mail voor iemand@linux.bogus naar mail.linux.bogus of mail.friend.bogus gestuurd moet worden. Het nummer voor elke machinenaam is de prioriteit van de MX records. De RR met het laagste nummer (10) is de machine waar mail heen gestuurd moet worden, indien mogelijk. Als dat niet lukt wordt de mail gestuurd naar een machine met een hoger nummer, in dit geval mail.friend.bogus, met prioriteit 20.

Herstart named weer door ndc restart te draaien, en controleer het resultaat met nslookup:

$ nslookup
> set q=any
> linux.bogus
Server:  localhost
Address:  127.0.0.1

linux.bogus
        origin = ns.linux.bogus
        mail addr = hostmaster.linux.bogus
        serial = 199802151
        refresh = 28800 (8 hours)
        retry   = 7200 (2 hours)
        expire  = 604800 (7 days)
        minimum ttl = 86400 (1 day)
linux.bogus     nameserver = ns.linux.bogus
linux.bogus     preference = 10, mail exchanger = mail.linux.bogus.linux.bogus
linux.bogus     preference = 20, mail exchanger = mail.friend.bogus
linux.bogus     nameserver = ns.linux.bogus
ns.linux.bogus  internet address = 192.168.196.2
mail.linux.bogus        internet address = 192.168.196.4

Als je goed kijkt zie je een bug. De regel:

linux.bogus     preference = 10, mail exchanger = mail.linux.bogus.linux.bogus

is verkeerd. Er zou moeten staan:

linux.bogus     preference = 10, mail exchanger = mail.linux.bogus

Ik heb expres deze fout gemaakt, zodat je ervan kan leren ;-). Als je in het zone bestand kijkt zie je dat de regel

                MX      10 mail.linux.bogus     ; Primary Mail Exchanger

een punt mist. Of er staat een ".linux.bogus" te veel. Als een machinenaam niet met een punt eindigt, dan wordt de oorsprong eraan toegevoegd. In dit geval wordt dat dus linux.bogus.linux.bogus. De regel moet zijn:


                MX      10 mail.linux.bogus.    ; Primary Mail Exchanger

of:


                MX      10 mail                 ; Primary Mail Exchanger

Ik geef de voorkeur aan de laatste regel, het is minder tikken. De meningen verschillen over wat beter zou zijn. In een zone bestand moet het domein voluit geschreven worden met een . erachter, of het domein moet er niet bijstaan. In het laatste geval wordt de oorsprong automatisch het domein.

Ik zeg hier nogmaals dat in het named.conf bestand geen punten achter domeinnamen moeten staan. Je hebt geen idee hoe vaak een simpele punt voor een hoop problemen heeft gezorgd.

Hier volgt het nieuwe zone bestand, nu met wat extra informatie:


;
; Zone file for linux.bogus
;
; The full zone file
;
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                        199802151       ; serial, todays date + todays serial #
                        8H              ; refresh, seconds
                        2H              ; retry, seconds
                        1W              ; expire, seconds
                        1D )            ; minimum, seconds
;
                TXT     "Linux.Bogus, your DNS consultants"
                NS      ns              ; Inet Address of name server
                NS      ns.friend.bogus.
                MX      10 mail         ; Primary Mail Exchanger
                MX      20 mail.friend.bogus. ; Secondary Mail Exchanger

localhost       A       127.0.0.1

gw              A       192.168.196.1
                HINFO   "Cisco" "IOS"
                TXT     "The router"

ns              A       192.168.196.2
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "Pentium" "Linux 2.0"
www             CNAME   ns

donald          A       192.168.196.3
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "i486"  "Linux 2.0"
                TXT     "DEK"

mail            A       192.168.196.4
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "386sx" "Linux 1.2"

ftp             A       192.168.196.5
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "P6" "Linux 2.1.86"

Er zijn een aantal nieuwe RR's te zien. Het HINFO (Host INFOrmation) heeft twee gedeeltes. Het is een goede gewoonte om aanhalingstekens om beide gedeeltes te zetten. Het eerste deel beschrijft de hardware van de machine, en het tweede deel beschrijft de software. De machine 'ns' heeft een pentium en draait Linux 2.0. De tweede nieuwe RR is CNAME (Canonical NAME). Met CNAME kan je een alias voor een machine maken. In dit voorbeeld is www een alias voor ns.

Het gebruik van het CNAME record is een beetje controversieel. Hou je in elk geval aan de regel dat een MX, CNAME, of SOA record nooit naar een CNAME record mag verwijzen, het moet altijd naar een machine met een A record verwijzen. De volgende regel is dus fout:


foobar          CNAME   www                     ; NO!

Maar de volgende regel is goed:


foobar          CNAME   ns                      ; Yes!

Je kan er ook van uit gaan dat CNAME geen geldige machinenaam is voor een email adres, webmaster@www.linux.bogus is dus fout in dit voorbeeld. Als je dit probleem wilt voorkomen, gebruik dan een A record, zoals:


www             A       192.168.196.2

Sommige BIND experts adviseren het CNAME record helemaal niet te gebruiken. Maar het zou te ver gaan daar in deze HOWTO verder op in te gaan.

Maar zoals je ziet houdt deze HOWTO zich, net als een hoop domeinen, zich niet aan die regel.

Laat named z'n configuratiebestanden opnieuw inlezen met het commando ndc reload

$ nslookup
Default Server:  localhost
Address:  127.0.0.1

> ls -d linux.bogus

Bovenstaand commando zegt dat alle records weergegeven moeten worden. Dit resulteert in:

[localhost]
$ORIGIN linux.bogus.
@                       1D IN SOA       ns hostmaster (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        1D IN NS        ns
                        1D IN NS        ns.friend.bogus.
                        1D IN TXT       "Linux.Bogus, your DNS consultants"
                        1D IN MX        10 mail
                        1D IN MX        20 mail.friend.bogus.
gw                      1D IN A         192.168.196.1
                        1D IN HINFO     "Cisco" "IOS"
                        1D IN TXT       "The router"
mail                    1D IN A         192.168.196.4
                        1D IN MX        10 mail
                        1D IN MX        20 mail.friend.bogus.
                        1D IN HINFO     "386sx" "Linux 1.0.9"
localhost               1D IN A         127.0.0.1
www                     1D IN CNAME     ns
donald                  1D IN A         192.168.196.3
                        1D IN MX        10 mail
                        1D IN MX        20 mail.friend.bogus.
                        1D IN HINFO     "i486" "Linux 1.2"
                        1D IN TXT       "DEK"
ftp                     1D IN A         192.168.196.5
                        1D IN MX        10 mail
                        1D IN MX        20 mail.friend.bogus.
                        1D IN HINFO     "P6" "Linux 1.3.59"
ns                      1D IN A         192.168.196.2
                        1D IN MX        10 mail
                        1D IN MX        20 mail.friend.bogus.
                        1D IN HINFO     "Pentium" "Linux 1.2"

Dat ziet er goed uit. Je ziet dat het lijkt op het zone bestand zelf. Laten we nu eens kijken wat er over www alleen gezegd wordt:

> set q=any
> www.linux.bogus.
Server:  localhost
Address:  127.0.0.1

www.linux.bogus canonical name = ns.linux.bogus
linux.bogus     nameserver = ns.linux.bogus
linux.bogus     nameserver = ns.friend.bogus
ns.linux.bogus  internet address = 192.168.196.2

Hierin zie je dat www.linux.bogus een alias is voor ns.linux.bogus, en het geeft voor programma's die een IP adres zoeken voldoende informatie over ns.linux.bogus om een verbinding met deze machine op te bouwen.

We zijn nu al halverwege!

4.3 De reverse zone

Nu kunnen programma's de namen in linux.bogus vertalen naar IP nummers waarmee ze een verbinding kunnen opbouwen. Maar wat ook nodig is, is een `reverse zone', die DNS in staat stelt van een IP adres naar een machinenaam te converteren. Deze naam wordt door veel servers (WWW, FTP, IRC) gebruikt om te besluiten of je een verbinding mag opbouwen en welke prioriteit je krijgt. Als je volledig van het Internet gebruik wilt maken heb je een reverse zone nodig.

Plaats het volgende in named.conf:


zone "196.168.192.in-addr.arpa" {
        notify no;
        type master;
        file "pz/192.168.196";
};

Dit is precies hetzelfde als met 0.0.127.in-addr.arpa, en de inhoud lijkt er ook op:


@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                        199802151 ; Serial, todays date + todays serial
                        8H      ; Refresh
                        2H      ; Retry
                        1W      ; Expire
                        1D)     ; Minimum TTL
                NS      ns.linux.bogus.

1               PTR     gw.linux.bogus.
2               PTR     ns.linux.bogus.
3               PTR     donald.linux.bogus.
4               PTR     mail.linux.bogus.
5               PTR     ftp.linux.bogus.

Herstart named weer met ndc restart en controleer het resultaat met nslookup:


> 192.168.196.4
Server:  localhost
Address:  127.0.0.1

Name:    mail.linux.bogus
Address:  192.168.196.4

Het ziet er goed uit. Nu kunnen we alle informatie over het domein bekijken:


> ls -d 196.168.192.in-addr.arpa
[localhost]
$ORIGIN 196.168.192.in-addr.arpa.
@                       1D IN SOA       ns.linux.bogus. hostmaster.linux.bogus. (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        1D IN NS        ns.linux.bogus.
1                       1D IN PTR       gw.linux.bogus.
2                       1D IN PTR       ns.linux.bogus.
3                       1D IN PTR       donald.linux.bogus.
4                       1D IN PTR       mail.linux.bogus.
5                       1D IN PTR       ftp.linux.bogus.
@                       1D IN SOA       ns.linux.bogus. hostmaster.linux.bogus. (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

Ziet er ook goed uit! Als je andere informatie op je scherm krijgt, zoek dan naar foutmeldingen in de syslog. Hoe dat gaat staat uitgelegd in het begin van dit hoofdstuk.

4.4 Dingen waar je op moet letten

Er zijn een paar dingen waar je goed op moet letten. Ten eerste, de IP nummers die in de voorbeelden gebruikt worden vallen binnen de verzameling "prive adressen"; deze adressen mogen niet op het Internet gebruikt worden, en zijn derhalve uitermate geschikt om te gebruiken in de voorbeelden in deze HOWTO. De tweede opmerking gaat over de notify no; regel. Deze regel vertelt named dat de secondary name servers niet op de hoogte gesteld moeten worden van de veranderingen. Als we dat wel zouden doen bij deze experimenten, dan zouden we daarmee alleen maar het Internet vervuilen.

En natuurlijk is het door ons gemaakte domein nep, net als de IP adressen. Voor een voorbeeld van een echt domein, zie het volgende hoofdstuk.

4.5 Waarom reverse lookups niet werken

Er zijn een aantal dingen die bij normale machinenaam lookups wel werken, en bij reverse lookups niet. Hieronder staat een uitleg en oplossing van deze zaken, maar eerst moet je zorgen dat de reverse lookups op je eigen machine werken. Als dat nog niet zo is, repareer dat en lees daarna verder.

Er zullen twee problemen met reverse lokups worden besproken:

De reverse zone is niet gemachtigd

Als je van een ISP een reeks IP adressen krijgt en een domein naam, dan is dat domein gewoonlijk gemachtigd nameserver informatie te verstekken aan computers die daarom vragen. Die machtiging bestaat uit een NS record dat vertelt dat de nameserver informatie over jouw domein op jouw nameserver gevonden kan worden. Deze methode van recursief machinenamen opzoeken staat hierboven beschreven, in de sectie "droge theorie".

De reverse zone moet ook gemachtigd worden. Als je de 192.168.196 netwerkadressen en het linux.bogus domein hebt gekregen, dan moet je provider ook NS records hebben voor je reverse zone en je forward zone. Als je de boom langsloopt van in-addr.arpa en bij je eigen domein probeert te komen, bestaat de kans dat er ergens iets niet werkt. Dat zal dan waarschijnlijk bij je ISP zijn. Neem in dat geval contact met je ISP op zodat ze een goed NS record aan kunnen maken.

Subnetten die niet in de A, B, of C class vallen.

Door gebrek aan IP nummers worden er regelmatig subnets uitgedeeld die kleiner zijn dan een class C netwerk (256 adressen). Zo'n netwerk heet een classless netwerk. Deze kleine subnets maken het mogelijk dat het Internet nog steeds draait. Bij subnets kleiner dan een class C netwerk, kunnen er problemen optreden. Deze problemen met de oplossingen staan beschreven bij Ask Mr. DNS, op http://www.acmebw.com/askmrdns/00007.htm.

Het probleem ligt iets te ingewikkeld om hier te behandelen, dus lees de `Mr. DNS' pagina goed door, en zorg dat je het begrijpt. Het kan gebeuren dat je ISP het probleem niet begrijpt. Dan zal je het dus moeten uitleggen, zodat ze toch een goede configuratie kunnen neerzetten die je vervolgens met nslookup kan testen.

De Mr. DNS uitleg van het probleem bespreekt o.a. een CNAME truuk en een truuk met het zone bestand. Niet elke resolver begrijpt deze CNAME truuk echter. Als je daar problemen mee krijgt, vraag je provider dan een PTR record rechtstreeks in het getruukte zone bestand te zetten in plaats van de CNAME truuk te gebruiken. Sommige ISP's hebben andere oplossingen voor dit probleem zoals een websysteem voor het bewerken van `reverse mappings'.


Verder Terug Inhoud