Dnsmasq

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Dnsmasq and the translation is 100% complete.
Resources

A dnsmasq egy egyszerű DHCP/DNS szerver, amely akár 1000 kliensből álló helyi hálózatban is használható. Fő jellemzői a könnyű beállíthatóság és a kis rendszerigény. Támogatja az IPv6 protokollt is.

Telepítés

USE jelölőzászlók

Készítsen megfelelő USE jelölőzászló kiválasztást:

USE flags for net-dns/dnsmasq Small forwarding DNS server

+dhcp Enable support for acting as a DHCP server.
+dumpfile Include code to dump packets to a libpcap-format file for debugging
+inotify Enable inotify filesystem monitoring support
+loop Include functionality to probe for and remove DNS forwarding loops
auth-dns Add support for acting as an authorative DNS server.
conntrack Add support for Linux conntrack connection marking.
dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
dhcp-tools Install extra command line tools for manually managing DHCP leases.
dnssec Enable support DNSSEC validation and caching.
id Whether report *.bind CHAOS info to clients, otherwise forward such requests upstream instead
idn Enable support for Internationalized Domain Names
ipv6 Add support for IP version 6
libidn2 Enable support for Internationalized Domain Names, via net-dns/libidn2 rather than net-dns/libidn
lua Enable Lua scripting support
nettlehash Use hashing functions from dev-libs/nettle
nls Add Native Language Support (using gettext - GNU locale utilities)
script Enable support for calling scripts when leases change.
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
static !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically
tftp Enables built in TFTP server for netbooting.

Emerge

Ezután telepítse a net-dns/dnsmasq szoftvercsomagot:

root #emerge --ask net-dns/dnsmasq

Beállítás

Számos erőforrás módosítható a dnsmasq viselkedésének megváltoztatásához. Ezek közé tartoznak:

  • A parancssori opciók, amelyeket a /etc/conf.d/dnsmasq fájlon keresztül lehet megadni.
  • A fő beállításfájl (/etc/dnsmasq.conf).

Szolgáltatás

OpenRC

Adja hozzá a dnsmasq szolgáltatást az alapértelmezett futási szinthez, ha azt automatikusan el kell indítani:

root #rc-update add dnsmasq default

A szolgáltatás azonnali elindításához:

root #rc-service dnsmasq start

Szolgáltatás beállítása

A /etc/conf.d/dnsmasq fájlban beállíthatóak azok a parancssori opciók, amelyeket indításkor kerülnek átadásra a dnsmasq szolgáltatásnak.

FILE /etc/conf.d/dnsmasqPélda a dnsmasq szolgáltatás beállítására
DNSMASQ_OPTS="--user=dnsmasq --group=dnsmasq -H /srv/virt/gentoo/hosts --max-cache-ttl=10"

Fő beállításfájl

A dnsmasq fő beállítása a /etc/dnsmasq.conf beállításfájlon keresztül történik. A fájl a kulcs[=érték] szintaxist használja, és a szoftvercsomaghoz mellékelt verzió jól dokumentált, ezért ajánlott áttanulmányozni. A fájlon belül, vagy a parancssori opciókon keresztül további erőforrásokra is lehet hivatkozni (például egy DHCP hosts fájlra).

Az alábbiakban egy minta beállításfájl található:

FILE /etc/dnsmasq.conf
# Kizárólag ezt az interfészt figyelje.
interface=eth1
  
# Neveket hozzárendelni a MAC-cím alapján.
dhcp-host=00:1e:68:c2:ff:ee,endor,192.168.0.54,24h
  
# Minden más DHCP kérés IP-címet kap ebből a tartományból.
dhcp-range=eth1,192.168.0.100,192.168.0.120,12h
  
# Engedélyezi a TFTP szervert, és beállítja a TFTP protokollon keresztül elérhető fájlok gyökérkönyvtárát.
enable-tftp
tftp-root=/var/lib/tftpboot
dhcp-boot=/pxelinux.0

A beállításfájl szerkesztése után a szolgáltatást újra kell indítani. Az újratöltés támogatott, de más erőforrásokra vonatkozik.

root #/etc/init.d/dnsmasq restart

Hosts fájl

A dnsmasq alkalmazás a /etc/hosts fájlt használja az egyik forrásként a DNS-szolgáltatások nyújtásához, hacsak a -h (--no-hosts) parancssori argumentum nem lett megadva.

Ha a /etc/hosts fájl frissül, akkor a dnsmasq szolgáltatásnak SIGHUP jelet kell kapnia a beállítások újratöltéséhez. Ezt az init szkriptek reload parancsán keresztül is támogatja:

root #/etc/init.d/dnsmasq reload

Ezt a viselkedést a beállításfájlban a no-hosts paraméterrel is le lehet tiltani.

További hosts fájl

Lehetőség van egy (további) hosts fájlra hivatkozni, amelyet DNS-lekérdezések forrásaként használhat. Ehhez adja hozzá a -H /path/to/hostsfile (--addn-hosts=/path/to/hostsfile) parancssori opciót. Lehetőség van egy könyvtár megadására is, ebben az esetben a könyvtárban található összes fájl további hosts fájlként lesz kezelve.

Hasonlóan a standard hosts fájlhoz, egy SIGHUP jel újratölti a fájlt.

Ezt a viselkedést a beállításfájlban az addn-hosts paraméterrel is be lehet állítani.

Upstream névszerverek

Alapértelmezés szerint a dnsmasq a /etc/resolv.conf fájlban megadott névszervereket használja upstream névszerverként.

Egy másik fájl használható a -r (--resolv-file) parancssori opcióval.

Ezt a viselkedést a beállításfájlban a resolv-file paraméterrel is be lehet állítani.

Jellemzők

A dnsmasq támogatja a DNS, TFTP, PXE, útválasztó-hirdetések és DHCP szolgáltatásokat. Ezáltal egy sokoldalú hálózatkezelési eszköz kis- és közepes méretű hálózatok számára.

DNS szolgáltatások

Ahhoz, hogy kizárólag csak DNS-szolgáltatást nyújtson, először azonosítsa a használni kívánt upstream névszervert. Ha ez megegyezik az /etc/resolv.conf fájlban megadott névszerverrel, akkor nincs szükség további lépésekre. Egyéb esetben irányítsa a dnsmasq szoftvert a megfelelő resolv.conf fájlra a -r (--resolv-file) parancssori opció segítségével. Ennek szintaxisa megegyezik az /etc/resolv.conf fájlban használttal, bár a dnsmasq csak a nameserver definíciókat veszi figyelembe.

Például:

root #echo "nameserver 8.8.8.8" >> /etc/dnsmasq.conf.resolv

Ezután irányítsa a dnsmasq alkalmazást erre a fájlra a beállításfájl segítségével:

FILE /etc/dnsmasq.confEgyéni resolv fájl beállítása.
resolv-file=/etc/dnsmasq.conf.resolv

A szolgáltatás működésének ellenőrzéséhez (miután újra lett indítva, mivel a beállításfájl megváltozott), használja a dig parancsot (melyet a net-dns/bind-tools szoftvercsomag biztosít), és kérje meg a DNS-szervert (az alábbi példában a localhost-on fut), hogy oldjon fel egy helyi vagy távoli címet.

user $dig @localhost +short www.gentoo.org
www-bytemark-v4v6.gentoo.org.
89.16.167.134

DNSSEC

A dnsmasq képes érvényesíteni a DNSSEC adatokat, miközben továbbítja azokat. Ezt az alábbi sorok beállításfájlhoz való hozzáadásával lehet megvalósítani (ne feledje el engedélyezni a dnssec USE jelölőzászlót):

FILE /etc/dnsmasq.confDNSSEC engedélyezése
# Vegye ki a megjegyzést ezekből a sorokból a DNSSEC érvényesítés és gyorsítótárazás engedélyezéséhez.
# (Ehhez szükséges, hogy a dnsmasq DNSSEC opcióval legyen lefordítva.)
conf-file=/usr/share/dnsmasq/trust-anchors.conf
dnssec

# Replies which are not DNSSEC signed may be legitimate, because the domain
# is unsigned, or may be forgeries. Setting this option tells dnsmasq to
# check that an unsigned reply is OK, by finding a secure proof that a DS 
# record somewhere between the root and the domain does not exist. 
# The cost of setting this is that even queries in unsigned domains will need
# one or more extra DNS queries to verify.
dnssec-check-unsigned

E változtatás után, ha az érvényesítés nem sikerül, akkor a dnsmasq SERVFAIL-t és semmilyen DNS-adatot nem ad vissza. Ha az érvényesítés sikeres, akkor beállítja az ad ("authenticated data", hitelesített adat) jelzőt. Abban az esetben, ha a domain nem támogatja a DNSSEC-et, akkor a dnsmasq az eddigi módon viselkedik.

DHCP szolgáltatások

A dnsmasq DHCP szolgáltatásainak engedélyezéséhez használja a dhcp-range beállítást.

Például, ha IPv6 címek beállítását szeretné engedélyezni útválasztó-hirdetésekkel (RA) végtelen bérleti idővel, és IPv4 címek beállítását szintén végtelen bérleti idővel, akkor az alábbi beállításokat kell megadni a beállításfájlban:

FILE /etc/dnsmasq.confIPv6 és IPv4 bérlés engedélyezése
dhcp-range=2001:db8:81:e2::,ra-only,infinite
dhcp-range=192.168.100.100,192.168.100.149,infinite

Lehetőség van ismert host számítógépekhez statikus definíciókat használni, akár a fő beállításfájlon keresztül (dhcp-host= beállítások), akár egy különálló fájlon keresztül. Ha külön fájlt használunk, akkor a dnsmasq szoftvert a --dhcp-hostsfile parancssori opcióval kell erre ráirányítani. Az utóbbi megközelítés előnye, hogy elegendő egy SIGHUP jelet küldeni (vagy újratölteni a szolgáltatást) a bejegyzések újraolvasásához, míg a beállításfájlban szereplő definíciók teljes szolgáltatás újraindítást igényelnek.

A dhcp-host paraméter szintaxisával kapcsolatban további információkért kérjük, tekintse meg a kézikönyv oldalát vagy a beállításfájlt, mivel annak szintaxisa nagyon kiterjedt.

Használat

Ez a szakasz a dnsmasq szolgáltatás különböző felhasználási forgatókönyveit (karbantartási és működési feladatokat) ismerteti.

Bérlések alaphelyzetbe állítása

Azok a kliensek, akiknek a hálózati interfésze frissült, és ez egy másik MAC-címet eredményezett, lehet, hogy nem kapják meg az eredetileg szánt IP-címet azonnal. Ennek oka, hogy a dnsmasq szolgáltatás az adott IP-címet a régi MAC-címhez rendelte, és megvárja, amíg az adott cím bérleti ideje lejár, mielőtt újra hozzárendelné azt.

A dnsmasq szolgáltatás a bérleteit a /var/lib/misc/dnsmasq.leases fájlban tárolja. Ha a bérletet gyorsabban kell eltávolítani, akkor állítsa le a dnsmasq szolgáltatást, távolítsa el a bérletet a dnsmasq.leases fájlból, majd indítsa újra a szolgáltatást.

root #/etc/init.d/dnsmasq stop
root #nano -w /var/lib/misc/dnsmasq.leases
root #/etc/init.d/dnsmasq start

Nem főbeállítások újratöltése

A dnsmasq.conf fájl mellett a dnsmasq szolgáltatás az alábbi szolgáltatásokhoz külső definíciókat is használhat:

  • DHCP host-beállítás bejegyzések (a --dhcp-hostsfile parancssori opció segítségével).
  • DHCP opciók (a --dhcp-optsfile parancssori opció segítségével).

Amikor ezek a fájlok módosulnak, egy SIGHUP jel hatására a dnsmasq újratölti ezeket a beállításfájlokat.

Note
A resolv.conf fájlokat a dnsmasq alapértelmezés szerint lekérdezi. Ezeknek a fájloknak a változásait automatikusan észleli, hacsak nincs beállítva a -n (--no-poll) parancssori opció, vagy nincs használva a no-poll beállításparaméter.