GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit Local DNS Resolver pomocí Dnsmasq na Ubuntu 20.04

Dnsmasq znamená „zkratka pro DNS maškaráda“ je jednoduchý, lehký a snadno použitelný DNS forwarder používaný pro malou síť. Lze jej nakonfigurovat jako mezipaměť DNS a server DHCP a podporuje protokoly IPv4 i IPv6. Když obdrží jakékoli dotazy DNS, odpoví na ně ze své mezipaměti nebo je předá jinému serveru DNS.

Dnsmasq se skládá ze tří podsystémů:

  • DNS subsystém: Používá se pro ukládání různých typů záznamů do mezipaměti, včetně A, AAAA, CNAME a PTR.
  • Podsystém DHCP: Podporuje DHCPv4, DHCPv6, BOOTP a PXE
  • Podsystém inzerce směrovače: Poskytuje základní autokonfiguraci pro hostitele IPv6. Může být použit samostatně nebo ve spojení s DHCPv6.

V tomto tutoriálu vám ukážeme, jak nastavit místní DNS server s Dnsmasq na serveru Ubuntu 20.04.

Předpoklady

  • Server se systémem Ubuntu 20.04.
  • Na serveru je nakonfigurováno heslo uživatele root.

Začínáme

Nejprve se doporučuje aktualizovat systémové balíčky na nejnovější verzi. Všechny balíčky můžete aktualizovat spuštěním následujícího příkazu:

apt-get update -y

Po aktualizaci všech balíčků budete muset ve vašem systému zakázat službu Systemd-resolved. Služba Systemd-resolved se používá k překladu názvů sítě do místních aplikací.

Můžete jej zakázat spuštěním následujícího příkazu:

systemctl disable --now systemd-resolved

Jakmile je služba deaktivována, budete muset odstranit výchozí soubor resolv.conf a vytvořit nový s podrobnostmi o vašem vlastním serveru DNS.

Výchozí soubor resolv.conf můžete odstranit pomocí následujícího příkazu:

rm -rf /etc/resolv.conf

Dále přidejte server DNS Google do souboru resolv.conf pomocí následujícího příkazu:

echo "nameserver 8.8.8.8" > /etc/resolv.conf

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Instalovat Dnsmasq

Ve výchozím nastavení je Dnsmasq k dispozici ve výchozím úložišti Ubuntu 20.04. Můžete jej nainstalovat pouhým spuštěním následujícího příkazu:

apt-get install dnsmasq dnsutils ldnsutils -y

Po dokončení instalace se automaticky spustí služby Dnsmasq. Stav Dnsmasq můžete zkontrolovat pomocí následujícího příkazu:

systemctl status dnsmasq

Měli byste získat následující výstup:

dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
     Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-11-02 11:02:01 UTC; 15s ago
   Main PID: 17726 (dnsmasq)
      Tasks: 1 (limit: 2282)
     Memory: 868.0K
     CGroup: /system.slice/dnsmasq.service
             ??17726 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e>

Nov 02 11:02:12 ubuntu2004 systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Nov 02 11:02:12 ubuntu2004 dnsmasq[17705]: dnsmasq: syntax check OK.
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: started, version 2.80 cachesize 150
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: DNS service limited to local subnets
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfi>
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: reading /etc/resolv.conf
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: using nameserver 8.8.8.8#53
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: read /etc/hosts - 7 addresses
Nov 02 11:02:12 ubuntu2004 systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Konfigurovat Dnsmasq

Dále budete muset nakonfigurovat Dnsmasq jako místní server DNS. Můžete to udělat úpravou hlavního konfiguračního souboru Dnsmasq:

nano /etc/dnsmasq.conf

Změňte následující řádky:

port=53
domain-needed
bogus-priv
listen-address=127.0.0.1,your-server-ip
expand-hosts
domain=dns-example.com
cache-size=1000

Po dokončení uložte a zavřete soubor.

Dále budete muset přidat IP adresu vašeho serveru jako primární jmenný server do vašeho souboru resolv.conf. Můžete jej přidat pomocí následujícího příkazu:

nano /etc/resolv.conf

Přidejte následující řádek nad řádek "nameserver 8.8.8.8":

nameserver your-server-ip

Po dokončení uložte a zavřete soubor. Dále ověřte server, zda nedošlo k chybě konfigurace, pomocí následujícího příkazu:

dnsmasq --test

Pokud je vše v pořádku, měli byste získat následující výstup:

dnsmasq: syntax check OK.

Nakonec restartujte službu Dnsmasq, aby se změny projevily:

systemctl restart dnsmasq

V tomto okamžiku se Dnsmasq spustí a naslouchá na portu 53. Můžete to ověřit pomocí následujícího příkazu:

ss -alnp | grep -i :53

Měli byste získat následující výstup:

udp     UNCONN   0        0                                             0.0.0.0:53                                                0.0.0.0:*                      users:(("dnsmasq",pid=41051,fd=4))                                             
udp     UNCONN   0        0                                                [::]:53                                                   [::]:*                      users:(("dnsmasq",pid=41051,fd=6))                                             
tcp     LISTEN   0        32                                            0.0.0.0:53                                                0.0.0.0:*                      users:(("dnsmasq",pid=41051,fd=5))                                             
tcp     LISTEN   0        32                                               [::]:53                                                   [::]:*                      users:(("dnsmasq",pid=41051,fd=7))                                             

Přidat záznamy DNS na server Dnsmasq

Dále budete muset upravit svůj soubor /etc/hosts a přidat položku místního serveru DNS.

nano /etc/hosts

Přidejte následující řádek:

your-server-ip host1.dns-example.com

Po dokončení uložte a zavřete soubor.

Ověřit rozlišení serveru Dnsmasq

V tomto okamžiku je Dnsmasq nainstalován a nakonfigurován. Ne, je čas ověřit překlad DNS.

Pro kontrolu rozlišení DNS můžete použít příkaz dig, jak je ukázáno níže:

dig host1.dns-example.com +short

Pokud je vše v pořádku, měli byste v následujícím výstupu vidět ip vašeho serveru:

your-server-ip

Externí překlad DNS můžete také ověřit pomocí následujícího příkazu:

dig howtoforge.com +short

Měli byste získat následující výstup:

172.67.68.93
104.26.3.165
104.26.2.165

Konfigurace vzdáleného klienta pro použití serveru DNS Dnsmasq

Dále budete muset nakonfigurovat vzdáleného klienta, aby používal váš server DNS Dnsmasq jako výchozí server DNS.

Nejprve nainstalujte nástroje DNS pomocí následujícího příkazu:

apt-get install dnsutils ldnsutils -y

Po instalaci budete muset upravit soubor /etc/resolv.conf a položku serveru DNS Dnsmasq.

nano /etc/resolv.conf

Na začátek souboru přidejte následující řádek:

nameserver your-server-ip

Po dokončení uložte a zavřete soubor.

Dále ověřte místní překlad DNS pomocí následujícího příkazu:

dig host1.dns-example.com

Měli byste vidět následující výstup:

; DiG 9.9.5-3ubuntu0.4-Ubuntu host1.dns-example.com
;; global options: +cmd
;; Got answer:
;; HEADER opcode: QUERY, status: NOERROR, id: 26401
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;host1.dns-example.com.		IN	A

;; ANSWER SECTION:
host1.dns-example.com.	0	IN	A	45.58.32.165

;; Query time: 301 msec
;; SERVER: 45.58.32.165#53(45.58.32.165)
;; WHEN: Mon Nov 02 16:49:37 IST 2020
;; MSG SIZE  rcvd: 66

Dále budete muset ověřit váš server DNS pro ukládání do mezipaměti. Můžete to zkontrolovat pomocí nástroje drill.

Nejprve spusťte následující příkaz:

drill google.com | grep "Query time"

Měli byste vidět následující výstup:

;; Query time: 290 msec

Poté znovu spusťte příkaz a zkontrolujte, zda ukládání do mezipaměti funguje nebo ne:

drill google.com | grep "Query time"

Měli byste vidět, že doba dotazu se nyní snižuje na 4 ms:

;; Query time: 4 msec

Závěr

Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali Dnsmasq jako místní server DNS a Ubuntu 20.04. Doufám, že jej nyní můžete snadno implementovat do vaší místní sítě pro překlad názvů.


Ubuntu
  1. 4 kroky k nastavení místního úložiště v Ubuntu pomocí APT-mirror

  2. Jak nastavit HAProxy v Ubuntu 16.04

  3. Jak nastavit UFW Firewall na Ubuntu 18.04

  1. Jak nainstalovat Unbound DNS resolver na Ubuntu 22.04

  2. Jak nastavit Unbound DNS Resolver na Ubuntu 20.04

  3. Jak nastavit DNS resolver ve Fedoře pomocí správce sítě?

  1. Jak nastavit DNS Nameservery na Ubuntu 18.04

  2. Jak nastavit místní server úložiště APT na Ubuntu 20.04

  3. Jak nainstalovat Maven na Ubuntu 18.04