Domain Name System (zkráceně DNS) je internetová služba, která se používá k překladu názvu domény na IP adresu a naopak.
BIND (Berkeley Internet Name Domain) poskytuje funkci převodu jména na IP.
Tento příspěvek vám pomůže nakonfigurovat DNS server na Debianu 10 / Debianu 9.
Životní prostředí
Název domény:itzgeek.local | ||
---|---|---|
ns1.itzgeek.local | 192.168.0.10 | Hlavní server DNS |
Předpoklady
Aktualizujte index úložiště.
sudo apt-get update
Ujistěte se, že server DNS má statickou IP adresu.
ČTĚTE :Jak nastavit statickou IP adresu v Debianu
Instalace serveru DNS
Název balíčku DNS serveru v Debianu je bind9 a je dostupný v základním úložišti. K instalaci balíčku bind9 můžete použít příkaz apt.
sudo apt-get install -y bind9 bind9utils bind9-doc dnsutils
Konfigurace serveru DNS
/etc/bind/ je konfigurační adresář bind9, obsahuje konfigurační soubory a soubory pro vyhledávání zón. Globální konfigurační soubor je /etc/bind/named.conf.
Vytvořit zóny
Začněme vytvořením dopředné zóny pro vaši doménu.
Pro místní zónu DNS byste neměli používat globální konfigurační soubor, ale můžete použít soubor /etc/bind/named.conf.local.
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í text je 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 jsou zóny vytvořeny, můžete pokračovat a vytvářet datové soubory zón pro dopřednou zónu a zónu zpět.
Dopředná zóna
Zkopírujte ukázkové položky do souboru zóny nazvaného forward.itzgeek.local.db pro dopřednou zónu v adresáři /etc/bind.
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, jak je uvedeno 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í.; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ; Commentout below three lines ;@ 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.
Reverzní zóna
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, jak je uvedeno 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í.; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA itzgeek.local. root.itzgeek.local. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ; Commentout below two lines ;@ 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 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 2 OK
Reverzní zóna
sudo 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 2 OK
Restartujte službu vazby.
sudo systemctl restart bind9
Zkontrolujte stav služby bind9.
sudo systemctl status bind9
Ověřte 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
K ověření serveru DNS můžete použít příkaz nslookup nebo dig.
Pomocí příkazu dig ověřte dopředné vyhledávání.
dig www.itzgeek.local
Pokud zjistíte, že příkaz nebyl nalezen, nainstalujte bind-utils na deriváty Red Hat nebo dnsutils na balíček derivátů Debianu.
Výstup:
; <<>> DiG 9.11.5-P4-5.1-Debian <<>> www.itzgeek.local ;; global options: +cmd ;; Got answer: ;; WARNING: .local is reserved for Multicast DNS ;; You are currently testing what happens when an mDNS query is leaked to DNS ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41979 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: c51856f159ddf40dadc13b835e1024a996e2a306d7888afe (good) ;; 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: 1 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Sat Jan 04 05:37:45 UTC 2020 ;; MSG SIZE rcvd: 124
Odpověď serveru DNS pro dopředné vyhledávání www.itzgeek.local je 192.168.0.100.
Potvrďte zpětné vyhledávání příkazem dig.
dig -x 192.168.0.100
Výstup:
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33889 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 9806a5ee8f6645c178aa65b25e102530e49ae9a15456fbe1 (good) ;; 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: 192.168.0.10#53(192.168.0.10) ;; WHEN: Sat Jan 04 05:40:00 UTC 2020 ;; MSG SIZE rcvd: 148
Odpověď serveru DNS pro zpětné vyhledávání 192.168.0.100 je www.itzgeek.local.
Tento výsledek potvrzuje, že dopředné i zpětné vyhledávání zón funguje dobře.
Závěr
To je vše. Úspěšně jste nainstalovali DNS server na Debian 10 / Debian 9. V našem dalším článku nakonfigurujeme Slave DNS server na Debian 10 / Debian 9.