Kategória: OpenWrt

Zmenené: 11. január 2009

OpenWrt a DNS

Nastavnie vlastného kešovacieho servera DNS je výhodné, pretože potom nie je každá požiadavky na preklad mena na IP adresu riešená cez internet ale váš DNS server sa pokúša nájsť odpoveď vo vyrovnávacej pamäti.

Po nainštalovaní X-Wrt je v systéme pripravený kešovací DNS server dnsmasq. Jedná sa o odľahčený, ľahko konfigurovateľný DNS a DHCP server. Je navrhnutý na poskytovanie služieb DNS a, voliteľne aj, DHCP pre malú sieť. Dokáže obsluhovať mená lokálnych strojov, ktoré nie sú v globálnom DNS. DHCP server je integrovaný s DNS serverom a dovoľuje strojom s adresou priradenou DHCP objaviť sa v DNS.

Server dnsmasq podporuje statické aj dynamické DHCP zápožičky a BOOTP pre sieťový boot bezdiskových staníc. Dokáže tiež prenášaj bootovacie jadrá pomocou TFTP. A to všetko v jednom konfiguračnom súbore. Je pre malú sieť ešte niečo treba?

Spúšťanie dnsmasq

Nie, nebojte sa dnsmasq je spúšťaný automaticky po štarte a vlastne nepotebujte nič meniť na to aby fungoval. Ale… Predvolený štartovací skript používa NVRAM, teda niektoré voľby načítava z tejto pamäte. Aby ste zaistili, že dnsmasq bude používať výhradne s nastaveniami konfiguračnom súbore (/etc/dnsmasq.conf) je potrebné nahradiť tento štartovací skript zmeniť (/etc/init.d/dnsmasq) takto:

Neviem prečo, ale reštartovanie dnsmasq na načítanie novej konfigurácie nestačilo, ale reštart smerovača pomohol. Potom je dnsmasq pripravený na naše nasatvenia z konfiguračného súboru.

Nastavenie DNS

Nebudem sa tu zdržiavať popisom syntaxe konfiguračného súboru, ale prejdemrovno k popisu jednotlivých nastavení. Záujemcov odkážem na domovskú stránku programu a googla.

Konfigurácia systému DNS je postavená na dvoch súboroch. Prvým je samotný konfiguračný súbor dnsmasq (/etc/dnsmasq.conf) a druhým súbor /etc/hosts, ktorý obsahuje zoznam IP adries a mien počítačov. Čiže v dnsmasq nenastavujete zónové súbory, takže neposkytuje úplné zónové informácie, ale pre malú domácu či firemnú sieť to postačuje.

Začnem nastavením zoznamu IP adries a mien počítačov v súbore /etc/hosts. Jeho syntax je rovnaká ako v štandardnom systéme, ale lokálne počítače stačí uvádzať bez mena domény, ktorú dnsmasq (ak mu to nastavíte) bude pridávať sám. Môj súbor /etc/hosts vyzerá napríklad takto:

127.0.0.1 localhost.

192.168.0.253   openwrt asus
192.168.0.1     bonifac
192.168.0.3     pankrac
192.168.0.10    debian
192.168.0.133   etchfull
192.168.0.132   etchcons

Všimnite si, že môžete pridať aj úplné doménové meno (to som použil, keď mala daná doména problém a nebola v DNS záznamoch), dnsmasq k takému menu počítača už meno lokálnej domény nepridáva.

Konfigurácia dnsmasq, ako som už spomínal, je v súbore /etc/dnsmasq.conf. V mojom konfiguračnom súbore nájdete:

# filter what we send upstream
domain-needed
bogus-priv
filterwin2k

Parameter domain-needed hovorí, aby server nepredával nadradeným serverom požiadavky na doménové mená bez DNS prípony. Parameter bogus-priv zas udáva, že nemajú byť predávané požiadavky na preklad súkromných adries. No a voľba filterwin2k slúži na odfiltrovanie zbytočných požiadaviek z OS Windows:

local=/skk/
domain=skk
expand-hosts
no-negcache
resolv-file=/tmp/resolv.conf.auto

Parameter local nastavuje meno lokálnej domény (skk) a parameter domain zase udáva doménovú príponu, ktorá bude pridávaná k menám počítačov z /etc/hosts, čo nastavuje voľba expand-hosts. Parameter no-negcache nariaďuje neukladať vo vyrovnávacej pamäti negatívne odpovede nadriadených serverov. V parametri resolv-file je nasatvená cesta k súboru s adresami DNS serverov.

Verte mi alebo nie, DNS server dnsmasq je nastavený a spravuje lokálnu doménu skk s nasatvenými šiestimi strojmi v doméne.

NastavenieDHCP

Nastavenie DHCP servera nie je o nič zložitejšie, ako nastavenie DNS, pre základné nastavenie pridajte do konfiguračného súboru:

dhcp-range=192.168.0.100,192.168.0.150,8h

A tým je nastavený DHCP server, ktorý bude na príslušnom rozhraní (podľa podsiete) dynamicky prideľovať IP adresy z rozsahu 192.168.0.100 - 150, s dobou zápožičky 8 hodín.

Ak chcete cez DHCP prideľovať statické IP, pridajte meno počítača a IP adresu do súboru /etc/hosts a nastavte klienta, aby posielal svoje meno. Windows to robí automaticky, v Linuxe je potebné do konfiguračného súboru DHCP klienta ISC /etc/dhclient.conf pridať:

send host-name "workstation1";

… samozrejme so správnym menom stroja.

Nastavenie sieťového zavádzania

Od verzie 2.36 poskytuje dnsmasq aj možnosti TFTP, stačí v /etc/dnsmasq.conf povoliť TFTP, nastaviť jeho koreňový adresár a samozrejme určiť súbor zavádzača:

enable-tftp
tftp-root=/var/lib/tfptboot
dhcp-boot=pxelinux.0

Samozrejme, môžete použiť aj iný TFTP server, potom je potrebné nastaviť zavádzací súbor, meno a adresuTFTPservera:

dhcp-boot=/var/ftpd/pxelinux.0,boothost,192.168.0.3

Tieto nastavenia dnsmasq nie sú úplne vyčerpávajúce, ale plne postačujú pre malú domácu a často i firemnú sieť.