Služba DNS (Domain Name Service) je internetová služba, která mapuje IP adresy na plně kvalifikované názvy domén (FQDN) a naopak.
BIND je zkratka pro Berkley Internet Naming Daemon.
BIND je nejběžnější program používaný pro údržbu jmenného serveru v Linuxu.
V tomto tutoriálu vysvětlíme, jak nainstalovat a nakonfigurovat DNS server.
Pokud s DNS začínáte, měli byste nejprve porozumět základům DNS a tomu, jak funguje.
1. Informace o síti
V tomto tutoriálu nastavíme místní DNS server pro síť zobrazenou na níže uvedeném diagramu.
Jako příklad pro tuto instalaci DNS použijeme doménu „thegeekstuff.net“. „mail“, „web“, „ns“ jsou hostitelé, kteří sídlí v této doméně.
Je možné nakonfigurovat jeden systém, aby fungoval jako server jmen pro ukládání do mezipaměti, primární/hlavní a sekundární/podřízený. Tento DNS nakonfigurujeme jako Primay/Master a také jako Caching DNS server.
Nainstalujeme DNS server na „10.42.0.83“.
2. Nainstalujte Bind
Nainstalujte balíček bind9 pomocí příslušných obslužných programů pro správu balíčků pro vaše distribuce Linuxu.
U verzí Debian/Ubuntu proveďte následující:
$ sudo apt-get install bind9
Na příchutích Redhat/CentOS/Fedora proveďte následující:
# yum install bind9
Všechny konfigurace DNS jsou uloženy v adresáři /etc/bind. Primární konfigurace je /etc/bind/named.conf, která bude obsahovat další potřebné soubory. Soubor s názvem /etc/bind/db.root popisuje kořenové jmenné servery na světě.
3. Nakonfigurujte jmenný server mezipaměti
Úkolem mezipaměti serveru DNS je dotazovat se na jiné servery DNS a ukládat odpověď do mezipaměti. Až bude příště zadán stejný dotaz, poskytne odpověď z mezipaměti. Mezipaměť bude pravidelně aktualizována.
Vezměte prosím na vědomí, že i když můžete nakonfigurovat vazbu tak, aby fungovala jako primární a jako mezipaměťový server, z bezpečnostních důvodů se to nedoporučuje. Je vhodné mít samostatný server pro ukládání do mezipaměti.
Vše, co musíme udělat, abychom nakonfigurovali Cache NameServer, je přidat DNS server vašeho ISP (Internet Service Provider) nebo jakýkoli OpenDNS server do souboru /etc/bind/named.conf.options. Například použijeme veřejné servery DNS společnosti Google, 8.8.8.8 a 8.8.4.4.
Odkomentujte a upravte následující řádek, jak je uvedeno níže v souboru /etc/bind/named.conf.options.
forwarders { 8.8.8.8; 8.8.4.4; };
Po výše uvedené změně restartujte server DNS.
$ sudo service bind9 restart
4. Otestujte jmenný server mezipaměti
K testování služeb DNS můžete použít příkaz dig. Příklady příkazů DIG vysvětlují více o tom, jak provádět vyhledávání DNS.
$ dig ubuntu.com ;; Query time: 1323 msec
Nyní, když provedete kopání podruhé, mělo by dojít ke zlepšení doby dotazování. Jak vidíte níže, podruhé to trvalo jen 3 ms, protože získává informace z našeho serveru DNS pro ukládání do mezipaměti.
$ dig ubuntu.com ;; Query time: 3 msec
5. Nakonfigurujte primární/hlavní jmenný server
Dále nakonfigurujeme bind9 jako primární/hlavní pro doménu/zónu „thegeekstuff.net“.
Jako první krok při konfiguraci našeho primárního/hlavního jmenného serveru bychom měli do bind9 přidat dopředné a zpětné rozlišení.
Chcete-li do bind9 přidat rozlišení DNS Forward a Reverse, upravte /etc/bind9/named.conf.local.
zone "thegeekstuff.net" { type master; file "/etc/bind/db.thegeekstuff.net"; }; zone "0.42.10.in-addr.arpa" { type master; notify no; file "/etc/bind/db.10"; };
Nyní bude soubor /etc/bind/db.thegeekstuff.net obsahovat podrobnosti pro převod názvu hostitele na IP adresu pro tuto doménu/zónu a soubor /etc/bind/db.10 bude mít podrobnosti pro převod IP adresy na název hostitele .
6. Sestavení dopředného rozlišení pro primární/hlavní jmenný server
Nyní přidáme podrobnosti potřebné pro dopředné rozlišení do /etc/bind/db.thegeekstuff.net.
Nejprve zkopírujte /etc/bind/db.local do /etc/bind/db.thegeekstuff.net
$ sudo cp /etc/bind/db.local /etc/bind/db.thegeekstuff.net
Dále upravte /etc/bind/db.thegeekstuff.net a nahraďte následující.
- V řádku, který má SOA:localhost. – Toto je FQDN serveru odpovědného za tuto doménu. Nainstaloval jsem bind9 v 10.42.0.83, jehož název hostitele je „ns“. Nahraďte tedy „localhost“. s „ns.thegeekstuff.net“. Ujistěte se, že končí tečkou (.).
- V řádku, který obsahuje SOA:root.localhost. – Toto je e-mailová adresa osoby, která je odpovědná za tento server. Místo @ použijte tečku (.). Nahradil jsem lak.localhost.
- V řádku, který má NS:localhost. – Definuje jmenný server pro doménu (NS). Musíme to změnit na plně kvalifikovaný název domény jmenného serveru. Změňte jej na „ns.thegeekstuff.net“. Ujistěte se, že máte „.“ na konci.
Dále definujte záznam A a záznam MX pro doménu. Záznam je ten, který mapuje název hostitele na IP adresu a záznam MX sdělí poštovnímu serveru, aby jej pro tuto doménu použil.
Po provedení změn bude soubor /etc/bind/db.thegeekstuff.net vypadat takto:
$TTL 604800 @ IN SOA ns.thegeekstuff.net. lak.localhost. ( 1024 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.thegeekstuff.net. thegeekstuff.net. IN MX 10 mail.thegeekstuff.net. ns IN A 10.42.0.83 web IN A 10.42.0.80 mail IN A 10.42.0.70
6. Vytvořte obrácené rozlišení pro primární/hlavní jmenný server
Podrobnosti potřebné pro zpětné rozlišení doplníme do souboru /etc/bind/db.10. Zkopírujte soubor /etc/bind/db.127 do /etc/bind/db.10
$ sudo cp /etc/bind/db.127 /etc/bind/db.10
Dále upravte soubor /etc/bind/db.10 a v zásadě změňte stejné možnosti jako /etc/bind/db.thegeekstuff.net
$TTL 604800 @ IN SOA ns.thegeekstuff.net. root.localhost. ( 20 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.
Dále pro každý záznam A v /etc/bind/db.thegeekstuff.net přidejte záznam PTR.
$TTL 604800 @ IN SOA ns.thegeekstuff.net. root.thegeekstuff.net. ( 20 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns. 83 IN PTR ns.thegeekstuff.net. 70 IN PTR mail.thegeekstuff.net. 80 IN PTR web.thegeekstuff.net.
Kdykoli upravujete soubor db.thegeekstuff.net a db.10, musíte také zvýšit „sériové“ číslo. Obvykle admin používá pro sériová čísla DDMMYYSS a když je upraví, změňte odpovídajícím způsobem sériové číslo.
Nakonec restartujte službu bind9:
$ sudo service bind9 restart
7. Otestujte server DNS
Nyní jsme nakonfigurovali DNS server pro naši doménu. Otestujeme náš DNS server pingem na mail.thegeekstuff.net z web.thegeekstuff.net.
Pokud je ping úspěšný, pak jsme DNS úspěšně nakonfigurovali.
K testování serverů DNS můžete také použít nslookup a dig.
Na serveru web.thegeekstuff.net přidejte následující do /etc/resolv.conf
nameserver 10.42.0.83
Nyní odešlete příkaz ping na mail.thegeekstuff.net, který by měl adresu správně přeložit ze serveru DNS, který jsme právě nakonfigurovali.
$ ping mail.thegeekstuff.net PING mail.thegeekstuff.net (10.42.0.70) 56(84) bytes of data. 64 bytes from mail.thegeekstuff.net (10.42.0.70): icmp_req=1 ttl=64 time=0.482 ms 64 bytes from mail.thegeekstuff.net (10.42.0.70): icmp_req=2 ttl=64 time=0.532 ms