GNU/Linux >> Znalost Linux >  >> Linux

DNS cache v linuxu

Zde jsou dva další softwarové balíčky, které lze použít pro ukládání do mezipaměti DNS v systému Linux:

  • dnsmasq
  • svázat

Po konfiguraci softwaru pro předávání DNS a ukládání do mezipaměti pak nastavíte systémový DNS resolver na 127.0.0.1 v /etc/resolv.conf.

Pokud váš systém používá NetworkManager, můžete zkusit použít dns=dnsmasq možnost v /etc/NetworkManager/NetworkManager.conf nebo můžete změnit nastavení připojení na Automatické (pouze adresa) a poté použít skript v /etc/NetworkManager/dispatcher.d adresář pro získání názvového serveru DHCP, nastavte jej jako server pro předávání DNS ve vašem softwaru mezipaměti DNS a poté spusťte opětovné načtení konfigurace.


Na Linuxu (a pravděpodobně na většině Unixu) neexistuje žádné ukládání do mezipaměti DNS na úrovni OS, pokud není nainstalováno a spuštěno nscd. Dokonce i poté je funkce ukládání do mezipaměti DNS nscd ve výchozím nastavení zakázána alespoň v Debianu, protože je nefunkční. Praktickým výsledkem je, že váš linuxový systém velmi pravděpodobně neprovádí žádné ukládání DNS do mezipaměti na úrovni OS.

Do své aplikace byste mohli implementovat vlastní mezipaměť (jako to udělali pro Squid, podle diegowsova komentáře), ale nedoporučoval bych to. Je to hodně práce, je snadné to udělat špatně (nscd to má špatně!!!), pravděpodobně to nebude tak snadno laditelné jako vyhrazená mezipaměť DNS a duplikuje to funkce, které již existují mimo vaši aplikaci.

Pokud koncový uživatel používající váš software potřebuje mít ukládání DNS do mezipaměti, protože zatížení dotazů DNS je dostatečně velké na to, aby představovalo problém, nebo je RTT na externí server DNS dostatečně dlouhé na to, aby byl problém, může nainstalovat server DNS pro ukládání do mezipaměti, například Unbound na stejném počítači jako vaše aplikace, nakonfigurován pro ukládání odpovědí do mezipaměti a předávání chyb běžným překladačům DNS.


Zde máte příklad ukládání do mezipaměti DNS v Debianu pomocí dnsmasq:Místní ukládání do mezipaměti DNS, článek na ManageaCloud.

Shrnutí konfigurace:

/etc/default/dnsmasq

# Ensure you add this line
DNSMASQ_OPTS="-r /etc/resolv.dnsmasq"

/etc/resolv.dnsmasq

# Your preferred servers
nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 2001:4860:4860::8888

/etc/resolv.conf

nameserver 127.0.0.1

Poté stačí restartovat dnsmasq.

Srovnávací test pomocí DNS 1.1.1.1:

for i in {1..100}; do time dig slashdot.org @1.1.1.1; done 2>&1 | grep ^real | sed -e s/.*m// | awk '{sum += $1} END {print sum / NR}'

Srovnávací test pomocí vašeho lokálně mezipaměti DNS forwarderu (dnsmasq):

for i in {1..100}; do time dig slashdot.org; done 2>&1 | grep ^real | sed -e s/.*m// | awk '{sum += $1} END {print sum / NR}'

Linux
  1. Linux – Jak přepsat servery Vm DNS?

  2. Linuxový příkaz mv

  3. Linux du command

  1. Linuxový ip příkaz

  2. Linux cd příkaz

  3. Podmíněné předávání DNS s názvem na Linuxu

  1. Nastavení serveru DNS pouze s mezipamětí v systému RHEL 7 Linux

  2. Jaké jsou typy DNS Nameserverů v Linuxu

  3. Služba OS Linux „pojmenovaná“