Domain Name System (DNS) je kořenem internetu, který překládá název domény na IP adresu a naopak. Balíček BIND9 (Berkeley Internet Name Domain) poskytuje funkci převodu jména na IP.
Tento příspěvek vás provede konfigurací serveru DNS na Ubuntu 18.04 / Ubuntu 16.04.
Životní prostředí
Název domény:itzgeek.local | ||
---|---|---|
ns1.itzgeek.local | 192.168.0.10 | Hlavní server DNS |
Nastavení serveru DNS na Ubuntu 18.04 / Ubuntu 16.04
Předpoklady
Aktualizujte index úložiště.
sudo apt update
Ujistěte se, že server DNS má statickou IP adresu.
ČTĚTE: Jak nakonfigurovat statickou IP adresu v Ubuntu 18.04 / Ubuntu 16.04 pomocí ifupdown
Pokud používáte Netplan – nový síťový nástroj pro konfiguraci sítě v Ubuntu 18.04.
ČTĚTE :Jak nakonfigurovat statickou IP adresu v Ubuntu 18.04 pomocí Netplan
Instalace serveru DNS
Název balíčku pro server DNS na Ubuntu je bind9 a je dostupný v základním úložišti. Pomocí příkazu apt nainstalujte balíček bind9.
sudo apt install -y bind9 bind9utils bind9-doc dnsutils
Konfigurace serveru DNS
Adresář /etc/bind/ je hlavním konfiguračním adresářem DNS serveru a obsahuje konfigurační soubory a soubory pro vyhledávání zón.
Globální konfigurační soubor je /etc/bind/named.conf. Tento soubor byste neměli používat pro místní zónu DNS, ale můžete použít soubor /etc/bind/named.conf.local.
Vytvořit zóny
Začněme vytvořením dopředné zóny pro vaši doménu.
sudo nano /etc/bind/named.conf.local
Dopředná zóna
Následuje záznam dopředné zóny pro doménu itzgeek.local v souboru named.conf.local.
zone "itzgeek.local" IN { // Domain name type master; // Primary DNS file "/etc/bind/forward.itzgeek.local.db"; // Forward lookup file allow-update { none; }; // Since this is the primary DNS, it should be none. };
Reverzní zóna
Následující položky jsou pro reverzní zónu v souboru named.conf.local.
zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order type master; // Primary DNS file "/etc/bind/reverse.itzgeek.local.db"; //Reverse lookup file allow-update { none; }; //Since this is the primary DNS, it should be none. };
Vytvořit soubor vyhledávání zóny
Jakmile vytvoříte zóny, můžete pokračovat a vytvářet datové soubory zón, které obsahují záznamy DNS pro dopřednou zónu a reverzní zónu.
Vyhledávací soubor dopředné zóny
Zkopírujte ukázkové položky do souboru zóny s názvem forward.itzgeek.local.db pro dopřednou zónu pod /etc/bind adresář.
Typy záznamů v souboru zóny,
SOA – Začátek autority
NS – Jmenný server
A – Záznam
MX – Mail for Exchange
CN – Canonical Jméno
Názvy domén by měly končit tečkou (.).
sudo cp /etc/bind/db.local /etc/bind/forward.itzgeek.local.db
Upravte zónu.
sudo nano /etc/bind/forward.itzgeek.local.db
Aktualizujte obsah zobrazený níže.
Kdykoli změníte jakékoli záznamy ve vyhledávacím souboru, ujistěte se, že aktualizujete sériové číslo na nějaké náhodné číslo, vyšší než aktuální.$TTL 604800 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ;@ IN NS localhost. ;@ IN A 127.0.0.1 ;@ IN AAAA ::1 ;Name Server Information @ IN NS ns1.itzgeek.local. ;IP address of Name Server ns1 IN A 192.168.0.10 ;Mail Exchanger itzgeek.local. IN MX 10 mail.itzgeek.local. ;A – Record HostName To Ip Address www IN A 192.168.0.100 mail IN A 192.168.0.150 ;CNAME record ftp IN CNAME www.itgeek.local.
Vyhledávací soubor obrácené zóny
Zkopírujte ukázkové položky do souboru zóny s názvem reverse.itzgeek.local.db pro reverzní zónu v adresáři /etc/bind a vytvořte zpětné ukazatele pro výše uvedené záznamy dopředné zóny.
PTR – ukazatel
SOA – začátek autorizace
sudo cp /etc/bind/db.127 /etc/bind/reverse.itzgeek.local.db
Upravte soubor reverzní zóny.
sudo nano /etc/bind/reverse.itzgeek.local.db
Aktualizujte obsah zobrazený níže.
Kdykoli změníte jakékoli záznamy DNS ve vyhledávacím souboru, nezapomeňte aktualizovat sériové číslo na nějaké náhodné číslo, vyšší než je aktuální.$TTL 604800 @ IN SOA itzgeek.local. root.itzgeek.local. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ;@ IN NS localhost. ;1.0.0 IN PTR localhost. ;Name Server Information @ IN NS ns1.itzgeek.local. ;Reverse lookup for Name Server 10 IN PTR ns1.itzgeek.local. ;PTR Record IP address to HostName 100 IN PTR www.itzgeek.local. 150 IN PTR mail.itzgeek.local.
Zkontrolujte syntaxi konfigurace BIND
Použijte příkaz named-checkconf ke kontrole syntaxe a souborů named.conf* na případné chyby.
sudo named-checkconf
Pokud nejsou žádné chyby, příkaz se vrátí do shellu.
Také můžete použít named-checkzone ke kontrole syntaktických chyb v souborech zóny.
Dopředná zóna
sudo named-checkzone itzgeek.local /etc/bind/forward.itzgeek.local.db
Výstup:
zone itzgeek.local/IN: loaded serial 3 OK
Reverzní zóna
named-checkzone 0.168.192.in-addr.arpa /etc/bind/reverse.itzgeek.local.db
Výstup:
zone 0.168.192.in-addr.arpa/IN: loaded serial 3 OK
Restartujte službu vazby.
sudo systemctl restart bind9
Povolte jej při spuštění systému.
sudo systemctl enable bind9
Zkontrolujte stav služby bind9.
sudo systemctl status bind9
Aktualizace záznamu DNS
Kdykoli změníte DNS záznam, nezapomeňte změnit sériové číslo v souboru zóny a znovu načíst zónu.
Změňte itzgeek.local &0.168.192.in-addr.arpa pomocí názvů zón.
### Forward Zone ### sudo rndc reload itzgeek.local ### Reverse Zone ### sudo rndc reload 0.168.192.in-addr.arpa
Ověřte server DNS
Přejděte na libovolný klientský počítač a přidejte naši novou IP adresu DNS serveru do souboru /etc/resolv.conf.
sudo nano /etc/resolv.conf
Zadejte záznam jako níže.
nameserver 192.168.0.10
NEBO
Přečtěte si níže uvedený návod k nastavení IP serveru DNS v Linuxu.
ČTĚTE: Jak nastavit DNS IP adresu v CentOS / Fedora
ČTĚTE: Jak nastavit IP adresu DNS v Ubuntu / Debian – ifupdown
ČTĚTE: Jak nastavit IP adresu DNS v Ubuntu 18.04 – Netplan
Použijte příkaz dig ke kontrole přední zóny.
dig www.itzgeek.local
Pokud zjistíte, že příkaz nebyl nalezen, nainstalujte balíček bind-utils.
Výstup:
; <<>> DiG 9.10.3-P4-Ubuntu <<>> www.itzgeek.local ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18022 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.itzgeek.local. IN A ;; ANSWER SECTION: www.itzgeek.local. 604800 IN A 192.168.0.100 ;; AUTHORITY SECTION: itzgeek.local. 604800 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 604800 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Mon Dec 30 12:42:18 EST 2019 ;; MSG SIZE rcvd: 96
Odpověď serveru DNS pro dopředné vyhledávání:192.168.0.100 jako IP adresa pro www.itzgeek.local .
Potvrďte zpětné vyhledávání příkazem dig.
dig -x 192.168.0.100
Výstup:
; <<>> DiG 9.10.3-P4-Ubuntu <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37122 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;100.0.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.0.168.192.in-addr.arpa. 604800 IN PTR www.itzgeek.local. ;; AUTHORITY SECTION: 0.168.192.in-addr.arpa. 604800 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 604800 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Mon Dec 30 12:43:20 EST 2019 ;; MSG SIZE rcvd: 120
Odpověď serveru DNS pro zpětné vyhledávání:www.itzgeek.local jako název pro 192.168.0.100.
Tento výsledek potvrzuje, že obě vyhledávání zón fungují dobře.
Závěr
To je vše. Nyní jste úspěšně nakonfigurovali DNS server na Ubuntu 18.04 / Ubuntu 16.04 jako hlavní server. V našem dalším příspěvku nakonfigurujeme podřízený DNS server na Ubuntu 18.04 / Ubuntu 16.04.