A241227 Linux -järjestelmät TI09TIVE Joni Ruotsalainen DNS- ja DHCP-palvelut Linuxissa 1.12.2011
SISÄLLYS 1 DNS... 3 1.1 Lähiverkon palveluna... 3 1.2 Autoritatiivinen nimipalvelu... 3 1.3 Nimipalvelimen konfigurointi... 4 1.3.1 Dnsmasq... 4 1.4 BIND (named)... 5 1.4.1 Konfigurointi... 5 1.4.1.1 A (Address Records)... 5 1.4.1.2 NS (Name Server Records)... 6 1.4.1.3 C (CName Records)... 6 1.4.1.4 MX (Mail Server Records)... 6 1.4.1.5 Konfigurointi Webminillä... 6 1.5 Nimipalvelun toiminnan tutkiminen... 10 1.5.1 Toimivuuden todentaminen... 10 1.5.2 Nimipalvelun nopeuden mittaus... 11 2 DHCP... 13 2.1 ISCDHCP... 13 LÄHTEET
1 DNS Domain Name Service, nimipalvelu, on internetin tärkeimpiä palveluita. Se muodostuu puumaisesta hajautetusta tietokannasta. Se palauttaa verkkotunnukselle IPosoitteen (Forward DNS) tai IP-osoitteelle verkkotunnuksen (Reverse DNS). IPosoitteiden rinnalle. Muunnokset suoritetaan aina puun juuresta lähtien etsimällä haluttu kohta. [1.] Nimipalvelu on erittäin kätevä työkalu myös lähiverkoissa, joissa on useita laitteita, käyttäjiä tai palveluita ja eri laitteille halutaan helposti muistettavat nimet, joilla niihin saa yhteyden. Tyypillisesti kaikki yritykset joilla on tietokoneita hyötyvät lähiverkon DNS-palvelusta. 1.1 Lähiverkon palveluna DNS-palvelinten osoitteet jaellaan yleensä DHCP-palvelimen avulla. Mikäli nimipalvelin toimii resolverina (välittävä nimipalvelin), sen täytyy tietää koko DNSpuun rakenne aina juurinimipalvelimille asti, jolloin se kykenee välittämään nimipalvelupyynnöt eteenpäin. Esimerkiksi Internet-operaattorit ylläpitävät tällaisia nimipalvelimia. Natattuun kotiverkkoon nimipalvelimen rooliin soveltuu hyvin yksinkertainen reititinlaite. 1.2 Autoritatiivinen nimipalvelu Autoritatiivinen nimipalvelin tarkoittaa sellaista nimipalvelinta, joka ylläpitää vähintään yhtä verkkotunnusta. Se vastaa paitsi lähiverkon, myös muiden nimipalvelinten välittämiin kyselyihin. Tällaisia ovat mm. Internetin juurinimipalvelimet ja eri maatunnuksia ylläpitävät palvelimet. Esimerkiksi FIverkkotunnuksen ylläpidosta vastaa Viestintävirasto. Autoritatiivinen nimipalvelu vaatii kaksi erillistä nimipalvelinta, fyysisesti mielellään eri paikoissa palvelun vikasietoisuuden parantamiseksi ja kuormantasausta varten. Näistä yksi (master) jakaa kopion domainista muille nimipalvelimille (slave).
1.3 Nimipalvelimen konfigurointi 1.3.1 Dnsmasq Kuten palvelinkoneissa yleensä, on syytä tehdä staattiset IP-asetukset. Useissa Linuxjärjestelmissä /etc/network/interfaces tiedostoon seuraavanlaisesti: #LAN auto eth0 iface eth1 inet static address 10.0.0.10 network 10.0.0.0 netmask 255.255.255.0 gateway 10.0.0.1 broadcast 10.0.0.255 Helpoin vaihtoehto palomuurin takana olevan pienen verkon nimipalveluiden tarjoamiseen on Dnsmasq, joka sisältää myös DHCP-palvelimen. Se löytyy useista reitittimiin tarkoitetuista Linux-jakeluista ja on suoraan saatavilla suosituimpien Linux-jakeluiden paketinhallinnasta. Jaettavat nimet voidaan määritellään /etc/hosts tiedostoon Asennus Fedorassa: su yum install dnsmasq chkconfig dnsmasq on /etc/init.d/dnsmasq start Ohjelmiston esimerkkikonfiguraatiotiedosto on hyvin kommentoitu, mutta yksinkertaisimmillaan toimiva DNS-palvelu saadaan muokkaamalla seuraavat kohdat omaan verkkoon sopivaksi: /etc/dnsmasq.conf - konfiguraatiotiedosto interface=eth0 liitynnät joissa DNS käytössä dhcp-option=3,10.0.0.1 default-gateway domain=domainin.nimi dhcp-range=10.0.0.100,10.0.0.200,24h DHCP-osoitealue ja lease-aika dhcp-host=00:26:c6:10:fb:38,destiny,10.0.0.1 staattiset määritykset Mikäli staattisia määrityksiä tai muita asetuksia on runsaasti, kannattaa harkita niiden asettamista erillisiin tiedostoihin kansioon: /etc/dnsmasq.d/.
1.4 BIND (named) Internetissä yleisimmin käytössä oleva DNS-palvelinohjelmisto, jonka kehitys alkoi 1980-luvulla Berkeleyn yliopistossa. Nykyisin BIND:ia kehittää ISC. [5.] Ohjelmisto tukee mm. IPv6:tta ja zone-tietojen tallentamista tietokantoihin. BIND:iin on myös eniten hallintatyökaluja, joiden käytettävyys ja monipuolisuus vaihtelee. Muutamia vaihtoehtoja web-hallintaan: MySQLBind/unxsBind (vielä keskeneräinen) http://probind.org/ ISPConfig3 -binäärit vain.rpm-paketeissa (Yum -paketinhallinta, mm. Red Hat, Fedora Core, CentOS) -asiakkaiden luonti ja erillinen kirjautuminen admin/asiakkaat asiakas voi hallita omia muuttuvia tietojaan (alidomainit, email-osoitteet, tilastot) -ilmainen open source, dokumentaatio maksaa 5 http://www.ispconfig.org/ispconfig-3/ispconfig-3-manual/ 1.4.1 Konfigurointi Uutta domainia varten on luotava DNS master zone. Esimerkki /etc/named.conf konfiguraatiotiedostosta yksinkertaisimmillaan: $ttl 38400 yourdomain.com. IN SOA ns1.yourdomain.com. webmaster.yourdomain.com. ( 1055026205 6H 1H 5D 20M ) yourdomain.com. IN A 1.2.3.4 mysql.yourdomain.com. IN A 1.2.3.4 www.yourdomain.com. IN CNAME yourdomain.com. ns1.yourdomain.com. IN A 1.2.3.4 ns2.yourdomain.com. IN A 1.2.3.5 yourdomain.com. IN NS ns1.yourdomain.com. yourdomain.com. IN NS ns2.yourdomain.com. mail.yourdomain.com. IN MX 1 yourdomain.com. 1.4.1.1 A (Address Records) Domainin IP-osoitteet - pakollinen tieto.
1.4.1.2 NS (Name Server Records) Domainin nimipalvelinten osoitteet. Näitä väihntään kaksi. 1.4.1.3 C (CName Records) Aliakset eri palveluille joilla sama IP. Tyypillisesti WWW- ja FTP-palvelimet. CNAME-alias ei saa esiintyä muissa tietueissa[4] 1.4.1.4 MX (Mail Server Records) Myös postipalvelimen osoite on domainille pakollinen tieto. 1.4.1.5 Konfigurointi Webminillä Webminin asentaminen vaatii toimivan web-palvelimen ja PHP:n. Useimpien jakeluiden paketinhallinta hoitaa riippuvuussuhteet kuntoon. Kuva 1Servers> BIND> Create Master Zone Refresh time: kauanko sekundäärinimipalvelin odottaa päivitysten välillä Transfer retry time: Odotusaika epäonnistuneen zone-siirron jälkeen Expiry time: Sekundääripalvelimen zone-tietojen vanhenemisaika Negative cache time: Kertoo muille nimipalvelimille, kauanko tietoja pitää säilyttää
Kuva 2Address > add address record Kuva 3Mail server > add mail server record
Kuva 4Name server> lisätään toissijaiset DNS-palvelimet Kuva 5lisätään toissijaiset DNS-palvelimet
Kuva 6Määritellään zone transfer asetukset Kuva 7Määritellään zone transfer asetukset Sallitaan ns1.varadns.com (222.222.222.1) ja ilmoitetaan sille myös muutoksista Sekundääripalvelimelta on myös muistettava tehdä vastaavat asetukset
1.5 Nimipalvelun toiminnan tutkiminen 1.5.1 Toimivuuden todentaminen Nimipalvelun toimivuuden voi todeta vaikkapa seuraavasti: [root@destiny ~]# nslookup > reititin Server: 10.0.0.180 Address: 10.0.0.180#53 Name: reititin.chevron Address: 10.0.0.1 > destiny Server: 10.0.0.180 Address: 10.0.0.180#53 Name: destiny.chevron Address: 10.0.0.180 Edellä kysyttiin nimipalvelimelta reititin ja destiny nimille ip-osoitteita. Koska isännät ovat samassa lähiverkossa, osasi oma nimipalvelimemme osoitteessa 10.0.0.180 vastata tähän. > google.com Server: 10.0.0.180 Address: 10.0.0.180#53 Non-authoritative answer: Name: google.com Address: 173.194.32.49 Name: google.com Address: 173.194.32.48 Name: google.com Address: 173.194.32.52 Name: google.com Address: 173.194.32.51 Name: google.com Address: 173.194.32.50 Internetissä olevalle osoitteelle lähiverkon palvelimemme ei osannut palauttaa osoitetta, joten kysely ohjattiin ylöspäin palveluntarjoajan DNS-palvelimelle.
1.5.2 Nimipalvelun nopeuden mittaus Linuxilla käytössä olevan DNS-palvelun nopeuden testaamiseksi on yksinkertaisinta yhdistää time ja nslookup komennot. Tehdään kysely: time nslookup www.cert.fi. Tämä tulostaa esimerkiksi seuraavanlaisen tuloksen: Server: 10.0.0.1 Address: 10.0.0.1#53 Non-authoritative answer: Name: www.cert.fi Address: 87.239.126.114 real user sys 0m0.013s 0m0.004s 0m0.008s Mikäli tarvitaan seurantaa omien nimipalvelinten suorituskyvylle, voidaan ottaa käyttöön esimerkiksi smokeping-ohjelmisto, jolle on mahdollista kertoa seurattavien palvelinten osoitteet ja muokata esimerkiksi kyselyiden tiheyttä. Ohjelma kerää kiistatonta statistiikkaa nimipalvelun laadusta ja piirtää kuvaajia, jotka ovat kätevästi selattavissa web-selaimella.
Windowsilla DNS-palvelinten vasteaikoja voidaan mitata seuraavanlaisella ohjelmalla. Ohjelma sisältää suuren listan avoimia DNS-palvelinosoitteita ja omien lisäys on myös mahdollista: http://www.grc.com/dns/benchmark.htm Kuva 8
2 DHCP 2.1 ISCDHCP Dynamic Host Configuration Protocol jakelee verkon laitteille tietoja, kuten nimipalvelimet, domainin ja IP-osoitteet. Asennus tuttuun tapaan Fedora Corella: su yum install dhcp chkconfig dhcpd tai dhcpd6 on Konfigurointi hyvin samaan tapaan kuin Dnsmasq:ssa, joka käsiteltiin kohdassa 1.3.1. DHCP:lle aktiiviset interfacet määritellään /etc/sysconfig/dhcpd tai dhcpd6 riippuen siitä, kumpaa IP-protokollan versiota halutaan käyttää. Molempia voidaan käyttää rinnakkain. Pääkonfiguraatiotiedosto on myös protokollan version mukaan joko /etc/dhcpd.conf tai dhcpd6.conf. Seuraavassa esimerkki yksinkertaisesta dhcpd.conf-tiedostosta, jossa on määritelty aliverkolle 10.0.0.0/24 DHCP:n avulla jaettaviksi osoitteiksi väli.100.200 ja staattinen ip-osoite 10.0.0.180 nimipalvelimelle destiny. # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.sample # see dhcpd.conf(5) man page # # sisaverkko subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.100 10.0.0.200; # destiny, the name server host destiny { hardware ethernet 00:26:C6:10:FB:38; fixed-address 10.0.0.180; } }
IPv6:n DHCP:n toiminta eroaa merkittävästi versioon 4 verrattuna, mutta itse konfiguraatio on hyvin samantapainen. default-lease-time 600; max-lease-time 7200; log-facility local7; subnet6 2001:db8:0:1::/64 { # Range for clients range6 2001:db8:0:1::129 2001:db8:0:1::254; # Additional options option dhcp6.name-servers fec0:0:0:1::1; option dhcp6.domain-search "domain.example"; # Prefix range for delegation to sub-routers prefix6 2001:db8:0:100:: 2001:db8:0:f00:: /56; # Example for a fixed host address host specialclient { host-identifier option dhcp6.client-id 00:01:00:01:4a:1f:ba:e3:60:b9:1f:01:23:45; fixed-address6 2001:db8:0:1::127; } [6] LÄHTEET 1. Internetin juurinimipalvelimet, Ficix. Viitattu 1.12.2011. Saatavissa: http://www.ficix.fi/nimipalvelimet.php 2. Fi-verkkotunnusten whois-palvelun ohjeet, Ficora. Viitattu 1.12.2011. Saatavissa: http://www.ficora.fi/index/palvelut/palvelutaiheittain/fiverkkotunnukset/fiverkkotu nnustenwhoispalvelu/whoispalvelunohjeet.html 3. Domain Name System, Wikipedia. Viitattu 1.12.2011. Saatavissa: https://en.wikipedia.org/wiki/domain_name_system 4. CNAME record, Wikipedia. Viitattu 1.12.2011. Saatavissa: https://en.wikipedia.org/wiki/cname 5. What is BIND and what does it do?, ISC. Viitattu 1.12.2011. Saatavissa: https://www.isc.org/software/bind/whatis 6. Linux IPv6 HOWTO, TLDP. Viitattu 1.12.2011. Saatavissa: http://tldp.org/howto/linux+ipv6-howto/hints-daemons-isc-dhcp.html Kuva 1-7: Joni Ruotsalainen, 2011 Kuva 8: https://www.grc.com/dns/dnsbench.png