Laboration i DNS, 2D1392/2G1305 Måns Nilsson, KTHNOC 27 september 2005 Namn: One Unix to rule them all, One Resolver to nd them, One IP to bring them all and in the zone to BIND them. Personnummer: Godkänd datum: Signatur: Sammanfattning I denna laboration ska du öva på bland annat: Skapa kongurationer för namnservers i Unixmiljö Driftsätta en namnserver och felsöka installationen $Id: dnslabb1.tex,v 1.11 2005/09/26 17:39:48 mansaxel Exp $ Spar den här laborationen! Den behövs som stöd för de följande DNS-laborationerna! (om ni ska göra nästa) 1
Innehåll 1 Inledning 2 2 Administrativia 3 3 Systemresolvern 3 4 Dokumentation 4 5 Handhavande av dig 4 5.1 Kontrollfrågor........................... 5 6 Konguration 5 6.1 named.conf............................ 5 6.2 rndc och rndc.conf....................... 6 6.3 Övriga ler............................ 6 7 Start och felsökning 7 8 Anmälan uppåt ansökan om delegering 8 8.1 Framlängesdomäner........................ 8 8.2 Baklängesdelegering........................ 9 9 Redovisning 9 1 Inledning Denna laboration fokuserar på de praktiska problem och situationer som uppstår när man driftsätter och underhåller en installation av BIND 9.3.1, den senaste versionen av den mest populära namnserverprogramvaran på Internet. Du kommer att få känna på era olika bitar av systemadministration och interaktion med andra, bl a: Sätta upp datorn så att den kan prata med det lokala nätet och med DNS-strukturen i övrigt. Öva dig i att använda diagnosverktyg, och tolka deras utmatning. Skapa kongurationer för namnservers i Unixmiljö Driftsätta en namnserver och felsöka installationen 2
Delegering och allmän administration av DNS-systemet. Detta är en ganska krävande laboration om du inte är van vid Unixsystemadministration. Gå noga igenom de instruktioner som nns för varje avsnitt, och följ dem noga. Du får förstås avvika från dem om du vet vad du gör och vi inte specikt skriver att du måste. Klok originalitet skadar inte! Försök att vara eektiv och vila inte på lagrarna! Ni bör inte sitta längre med dessa uppgifter än de tilldelade 4 timmarna. Laborationen är inte möjlig att genomföra utan att du läser manualer. Därför så ska du börja med att kursivt läsa ARM, manualblad för named, rndc samt dig och titta igenom allt utdelat material innan du börjar. Se nedan för information om dokumentation. 2 Administrativia Vi har tilldelat er ett antal olika domäner under zonen lab.kthnoc.net och var sitt RFC1918-IP-nät. (se separat papper) Ni ska... sätta upp namntjänst för tilldelad domän dito baklängesuppslag för ert IP-nät kontrollera att dessa fungerar skapa delegeringar till era namnservers. Moderzonen kommer att kontrollera att ert data är syntaktiskt korrekt innan delegering sker. 3 Systemresolvern Syfte: att förstå varför systemresolver behövs och hur den fungerar. Börja med att starta felsöknings- och snierverktyget ethereal. Programmet kräver att du har rooträttigheter för att snia nätverkstraken. Enklast löser du detta genom att göra su -m innan du startar ethereal. När sniern är igång, prova följande: Pinga www.sunet.se Pinga 192.36.125.18 3
Förklara varför de två försöken lyckades eller misslyckades. Läs manbladet 1 för resolv.conf och ändra i densamma (du behöver rooträttigheter för att få ändra). När du namnger en värddator på nätet som du vill ange som resolver kan du då använda IP-adress och/eller värddatornamn? Vad är nödvändigt för att systemresolvern skall fungera? Hur beroende är en användare av datorn av att systemresolvern fungerar? När du anser att resolv.conf ser ut som den borde göra, gör om ping försöken ovan. Båda skall då lyckas. Se till att du kan förklara de rader i sniern som har med försöket att göra. 4 Dokumentation Det är tre huvudslag av dokumentation som vi refererar till. Det första är manualbladen som de esta Unixsystem kommer med. I dem kan man hitta syntaxdenitioner och korthuggen information för den insatte; de fungerar som referenser. De du vill läsa är framförallt bladen för named och dig, men även named-checkconf och named-checkzone är värda studium. Den andra är Administrators Reference Manual, ARM, manualen till BIND, som i detalj förklarar hur man använder namnservern, inklusive en rask genomgång av DNS i stort. ARM hittar du på nätet, det kan dock vara svårt att hitta den version du skall använda under laborationen. ARM nns även i HTML-format lokalt på din maskin under /usr/local/src/bind-9.3.1/doc/arm/ Den tredje är RFC'erna. I dem hittar du det du behöver veta om du har ett verkligt krångligt problem. Det går utmärkt att ta sig genom laborationerna utan att läsa RFC'er men man får större utbyte om man läser dem. RFC'erna nns i urval i BIND-källkoden, i katalogen /usr/local/src/bind-9.3.1/doc/rfc/ 5 Handhavande av dig dig (Domain Information Groper) är ett kvalicerat felsöknings- och avlusningsverktyg för DNS. Det presenterar som de esta dylika verktyg mycket information, så det är lätt att bli överväldigad av mängden, men det ger också en oöverträad insikt i vad som händer. Den här delen av laborationen syftar till att göra dig bekant med programmet, så börja med att läsa manualbladet för dig ordentligt. 1 Manualbladet kommer du åt genom att skriva man resolv.conf. 4
5.1 Kontrollfrågor Dessa frågor bör du kunna besvara om du följt med på föreläsningarna och läst igenom materialet som refereras till ovan. Prova följande och förklara vad du ser: prompt> dig @root.lab.kthnoc.net. NS Hur hittar dig in i DNS-trädet? Vad gör optionen +trace? Hur förändrar den programmets beteende mot resolvers och namnservers? Hur ser du att ett svar kommer från en namnserver och inte en uppslagsserver? (sett ur en given zons perspektiv, eftersom en server kan spela bägge rollerna?) Försök ta reda på vad det är som är konstigt med zonen trasig.lab.kthnoc.net. Data kommer i era olika former i svaret från dig. Jämför svarspaketet med Header section format i RFC1035 och försök förstå de olika delarna. Välj ut ett domännamn (som inte har med laborationen att göra), formulera en domännamnsfråga, ställ frågan två gånger till din resolver och två gånger direkt till namnservern för zonen i fråga. Beskriv hur de fyra svaren skiljer sig åt. 6 Konguration Du har en installerad server med all nödvändig programvara, men ingen kon- guration. Du behöver börja med att skriva en kongurationsl och därefter ett antal zonler som pekas på ifrån kongurationslen. Kongurationslen ska heta /etc/named.conf och i den denieras var resten av lerna nns. 6.1 named.conf Kongurationslen är en ordinär textl, med ett antal olika sektioner. Det nns som brukligt ett sätt att sätta kommentarer och givetvis krav på att man håller sig till syntax. Det nns en allmän sektion som används för att sätta allmänna parametrar och sedan nns det sektioner för varje zon. Formatet och alla optioner är dokumenterade i detalj i kapitel 6 i Administrators Reference Manual och i DNS & BIND, kapitel 4, liksom i föreläsningsanteckningarna (nns på NADAs web). 5
I Tinas TV-kök är allt förberett För att ni ska kunna koncentrera er på det viktigaste att förstå DNS så har vi förberett ett litet paket med konguration. Det består av en tarkaka med kongler. Den hämtar ni så här: # cd / # wget http://www.nada.kth.se/kurser/kth/2d1392/05/stuff/named.tar # tar xvf named.tar Gå ner i named-katalogen och undersök lerna, och försök förstå dem med hjälp av ARM. 6.2 rndc och rndc.conf RNDC (Remote Nameserver Daemon Controller) är ett program som ersatt ndc i BIND 9. Det kan kongureras på lite olika sätt. Vi ska skapa en nyckell som automagiskt gör att rndc har lov att styra named på lokal dator. rndc kan egentligen mycket mer, inklusive styrsel av named-demoner på andra datorer via TCP/IP. Detta måste dock explicit kongureras. Den intresserade läser manualbladen för rndc och rndc.conf. Gör så här: prompt> /usr/sbin/rndc-confgen -a Nu skapas en l /etc/rndc.key som både rndc och named läser och på så sätt delar nyckel att styra med (på den lokala maskinen). Helt automagiskt. 6.3 Övriga ler Förutom named.conf så behövs det (normalt sett) en l per zon. Era databasler ska läggas i katalogen /var/named (som skapades av tar-kommandot ovan) i underkatalogerna master, slave och default. Öppna din favorit-texteditor och skriv, med hjälp av exemplen i föreläsningsanteckningar och ARM, ihop zonler för: Er framlängesdomän, <musikaliskt-ord>.lab.kthnoc.net <nät>.168.192.in-addr.arpa, 6
7 Start och felsökning Dra igång named och se att det hela fungerar. prompt> /usr/sbin/named -c /etc/named.conf named är tystlåten. Den skriker inte högt ifall era uppgifter inte stämmer. I stället måste ni titta i ler, till exempel /var/log/messages och lerna i katalogen /var/named/logs/ för att få reda på vad named tycker. Ett hett tips är att lära sig vad tail -f gör. Ett annat sätt att kvickt ta reda på om huruvida named fungerar är att starta den med aggan -g. Då stannar named kvar i förgrunden och släpper inte terminalen. Den loggar inte heller till ler utan bara till standard error. Det är bra att kontrollera vad som blir fel om man inte får named att fungera med det samma genom att använda just -g. När ni korrigerat eventuellt felaktiga uppgifter säger ni åt named att läsa sina initieringler igen med kommandot prompt> /usr/sbin/rndc reload som kontaktar named via tcp, byter nyckelhemligheter och till sist utför kommandot reload. OBS! named är normalt sett en demon (eng. daemon), dvs ett program som lägger sig i bakgrunden omedelbart, och lämnar tillbaka terminalen till er, om man inte startat med -g enligt ovan. Om man inte tänker på det är det lätt att tro att programmet inte kör, eftersom man inte ser nåt. Men! Inte ens i denna pekaklickatid är det så att saker måste synas för att nnas. named är där, ni måste bara veta hur ni ska leta. Om ni i loggen ser något som liknar Nov 22 10:13:16 named[2574]: [ID 866145 daemon.crit] loading configuration: failure Nov 22 10:13:16 named[2574]: [ID 866145 daemon.crit] exiting (due to fatal error) då kan det vara läge att starta named igen men annars är det stor chans att named fortfarande är igång, och nya åkallanden av /usr/sbin/named -c /etc/named.conf kommer inte att göra det ni tror.. Prova /usr/sbin/rndc status istället. Får ni svar tillbaka så är named vid liv, men om rndc säger: rndc: connect failed: connection refused 7
så kan man gå vidare och starta en ny named. Man kan också kolla med ps -ax grep named som ger en processlista på alla de processer som kör just nu och innehåller strängen named. Kommandot killall named kommer att terminera alla processer med namnet named. När inga felaktigheter rapporteras, använd dig för att fråga er namntjänst om vad den vet. Var noga med att kontrollera att det faktiskt är just er namntjänst som tillfrågas. dig har ett bra manualblad och en sektion i ARM om ni har problem med syntaxen. 8 Anmälan uppåt ansökan om delegering 8.1 Framlängesdomäner Eftersom det är administratören av den överliggande zonen som beslutar om hon ska delegera iväg administrationen av zonen till de enskilda länderna så måste man ansöka om delegering där. Vi har skapat ett system där ni själva kan stoppa in det data som behövs i moderzonen. Det går till så här: Skapa en textl med en editor på den lokala datorn. Den ska innehålla, i zonlsformat, det data ni behöver för att korrekt kunna få er zon delegerad till er. Filen ska heta <musikaliskt-ord>.lab.kthnoc.net för framlängeszonen respektive <nätnummer>.168.192.in-addr.arpa för baklängeszonen. Använd sedan tftp för att ladda upp den len till namnservern. Lägg den i underkatalogen "zoneles/"! Inom loppet av en minut skannar namnservern av tftp-katalogen, kontrollerar de inlämnade lerna, och inkorporerar de som är syntaktiskt korrekta; tomma och/eller trasiga ler hoppas över. (NB: Kontextkorrekt data är en delmängd av begreppet syntaktiskt korrekt!) Ett exempel (put raden skall skrivas som en rad): prompt> tftp root.lab.kthnoc.net tftp> put <musikaliskt-ord>.lab.kthnoc.net zonefiles/<musikaliskt-ord>.lab.kthnoc.net 8
När ni har skickat in datat, vänta en minut och kontrollera sedan om ni har fått delegeringen utförd. Om så, gå vidare, annars avlusa. När ni har fått rätt på framlängesdelen så gå vidare med: 8.2 Baklängesdelegering Det är dags att gå vidare med att be om delegering av era nätverk. Baklänges är inte annorlunda än framlänges, det bara ser ut så... Följ således proceduren under Framlängesdomäner men byt ut värdena mot det nätverk ni fått er tilldelat. Här är ett bra tillfälle att uppleva att man inte behöver delegera bara för att det nns en punkt i ett domännamn. 9 Redovisning När ni har fått kvitto på att er reversdelegering fungerar så är det dags att redovisa. Skriv upp ert nummer på tavlan och förbered: En muntlig redogörelse för konguration av BIND. Ett bevis för att er namnserver svarar med auktoritet för ert musikaliska ord och er /24. Bevis för att era zoner är delegerade korrekt från moderzonen. Förklara igen, nu med ledning av vad du har lärt dig, vad som är fel med trasig.lab.kthnoc.se. Skiljer sig dina insikter? Lycka till! 9