Možnosti překladu názvů DNS pro virtuální počítače s Linuxem v Azure

Upozornění

Tento článek odkazuje na CentOS, linuxovou distribuci, která se blíží stavu Konec životnosti (EOL). Zvažte své použití a odpovídajícím způsobem naplánujte. Další informace najdete v doprovodných materiálech CentOS End Of Life.

Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️

Azure ve výchozím nastavení poskytuje překlad názvů DNS pro všechny virtuální počítače, které jsou v jedné virtuální síti. Vlastní řešení překladu názvů DNS můžete implementovat konfigurací vlastních služeb DNS na virtuálních počítačích, které Azure hostuje. Následující scénáře by vám měly pomoct zvolit ten, který bude vyhovovat vaší situaci.

Typ překladu ip adres, který používáte, závisí na tom, jak spolu virtuální počítače a instance rolí potřebují komunikovat.

Následující tabulka ukazuje scénáře a odpovídající řešení překladu ip adres:

Scénář Řešení Přípona
Překlad názvů mezi instancemi rolí nebo virtuálními počítači ve stejné virtuální síti Překlad názvů, který Azure poskytuje název hostitele nebo plně kvalifikovaný název domény (FQDN)
Překlad názvů mezi instancemi rolí nebo virtuálními počítači v různých virtuálních sítích Servery DNS spravované zákazníkem, které předávají dotazy mezi virtuálními sítěmi pro překlad pomocí Azure (proxy serveru DNS). Podívejte se na překlad názvů pomocí vlastního serveru DNS. Pouze plně kvalifikovaný název domény
Řešení místních počítačů a názvů služeb z instancí rolí nebo virtuálních počítačů v Azure Servery DNS spravované zákazníkem (například místní řadič domény, místní řadič domény jen pro čtení nebo sekundární dns synchronizované pomocí přenosů zón). Podívejte se na překlad názvů pomocí vlastního serveru DNS. Pouze plně kvalifikovaný název domény
Řešení názvů hostitelů Azure z místních počítačů Předávat dotazy na proxy server DNS spravovaný zákazníkem v odpovídající virtuální síti. Proxy server předá dotazy do Azure za účelem řešení. Podívejte se na překlad názvů pomocí vlastního serveru DNS. Pouze plně kvalifikovaný název domény
Reverzní DNS pro interní IP adresy Překlad názvů s využitím vlastního serveru DNS Není k dispozici

Překlad názvů, který Azure poskytuje

Kromě překladu veřejných názvů DNS poskytuje Azure interní překlad názvů pro virtuální počítače a instance rolí, které jsou ve stejné virtuální síti. Ve virtuálních sítích založených na Azure Resource Manageru je přípona DNS v rámci virtuální sítě konzistentní; plně kvalifikovaný název domény není potřeba. Názvy DNS je možné přiřadit oběma síťovým kartám (NIC) i virtuálním počítačům. I když překlad adres IP, který Azure poskytuje, nevyžaduje žádnou konfiguraci, není to vhodná volba pro všechny scénáře nasazení, jak je vidět v předchozí tabulce.

Funkce a důležité informace

Funkce:

  • K použití překladu ip adres, které Poskytuje Azure, není nutná žádná konfigurace.
  • Služba překladu ip adres, kterou Azure poskytuje, je vysoce dostupná. Nemusíte vytvářet a spravovat clustery vlastních serverů DNS.
  • Službu překladu ip adres, kterou Azure poskytuje, je možné použít společně s vašimi vlastními servery DNS k překladu místních názvů i názvů hostitelů Azure.
  • Překlad názvů se poskytuje mezi virtuálními počítači ve virtuálních sítích bez nutnosti plně kvalifikovaného názvu domény.
  • Místo práce s automaticky generovanými názvy můžete použít názvy hostitelů, které nejlépe popisují vaše nasazení.

Aspekty:

  • Příponu DNS, kterou Azure vytvoří, nelze upravit.
  • Nemůžete ručně zaregistrovat vlastní záznamy.
  • Wins a NetBIOS nejsou podporovány.
  • Názvy hostitelů musí být kompatibilní s DNS. Názvy musí používat pouze 0-9, a-z a -, a nesmí začínat ani končit písmenem -. Viz RFC 3696 Oddíl 2.
  • Provoz dotazů DNS je omezený pro každý virtuální počítač. Omezování by nemělo mít vliv na většinu aplikací. Pokud se zjistí omezování požadavků, ujistěte se, že je povolené ukládání do mezipaměti na straně klienta. Další informace najdete v tématu Získání maximum z překladu ip adres, které Azure poskytuje.

Získání maximum z překladu ip adres, které Azure poskytuje\

Ukládání do mezipaměti na straně klienta:

Některé dotazy DNS se neposílají přes síť. Ukládání do mezipaměti na straně klienta pomáhá snížit latenci a zlepšit odolnost vůči nekonzistenci sítě tím, že přeloží opakované dotazy DNS z místní mezipaměti. Záznamy DNS obsahují hodnotu TTL (Time-To-Live), která umožňuje ukládání záznamu co nejdéle, aniž by to mělo vliv na aktuálnost záznamů. V důsledku toho je ukládání do mezipaměti na straně klienta vhodné pro většinu situací.

Některé linuxové distribuce ve výchozím nastavení nezahrnují ukládání do mezipaměti. Po kontrole, že ještě není místní mezipaměť, doporučujeme přidat mezipaměť do každého virtuálního počítače s Linuxem.

K dispozici je několik různých balíčků pro ukládání do mezipaměti DNS, například dnsmasq. Tady je postup instalace dnsmasq u nejběžnějších distribucí:

  1. Nainstalujte balíček dnsmasq:
sudo apt-get install dnsmasq
  1. Povolte službu dnsmasq:
sudo systemctl enable dnsmasq.service
  1. Spusťte službu dnsmasq:
sudo systemctl start dnsmasq.service

Opakování na straně klienta

DNS je primárně protokol UDP. Vzhledem k tomu, že protokol UDP nezaručuje doručení zpráv, zpracovává samotný protokol DNS logiku opakování. Každý klient DNS (operační systém) může v závislosti na preferovaném tvůrci vykazovat jinou logiku opakování:

  • Operační systémy Windows se opakují po jedné sekundě a potom znovu po dalších dvou, čtyřech a dalších čtyřech sekundách.
  • Výchozí nastavení Linuxu se po pěti sekundách opakuje. Toto nastavení byste měli změnit tak, aby se v intervalech jedné sekundy zkusily opakovat pětkrát.

Pokud chcete zkontrolovat aktuální nastavení na virtuálním počítači s Linuxem, cat /etc/resolv.conf, a podívejte se na řádek Možnosti, například:

sudo cat /etc/resolv.conf
options timeout:1 attempts:5

Soubor /etc/resolv.conf se automaticky vygeneruje a neměl by se upravovat. Konkrétní kroky, které přidávají řádek options, se liší podle distribuce:

Ubuntu (používá překladconf)

  1. Přidejte řádek možností do /etc/resolvconf/resolv.conf.d/head souboru.
  2. Spusťte sudo resolvconf -u aktualizaci.

SUSE (používá netconf)

  1. Přidejte timeout:1 attempts:5 do parametru NETCONFIG_DNS_RESOLVER_OPTIONS="" v souboru /etc/sysconfig/network/config.
  2. Spusťte sudo netconfig update aktualizaci.

CentOS by Rogue Wave Software (dříve OpenLogic) (používá NetworkManager)

  1. Add RES_OPTIONS="timeout:1 attempts:5" to /etc/sysconfig/network.
  2. Spusťte systemctl restart NetworkManager aktualizaci.

Překlad názvů s využitím vlastního serveru DNS

Vaše potřeby překladu ip adres můžou být nad rámec funkcí, které Azure poskytuje. Můžete například vyžadovat překlad DNS mezi virtuálními sítěmi. K pokrytí tohoto scénáře můžete použít vlastní servery DNS.

Servery DNS ve virtuální síti můžou předávat dotazy DNS rekurzivním překladačům Azure za účelem překladu názvů hostitelů, které jsou ve stejné virtuální síti. Například server DNS, který běží v Azure, může reagovat na dotazy DNS na vlastní soubory zóny DNS a předávat všechny ostatní dotazy do Azure. Tato funkce umožňuje virtuálním počítačům zobrazit jak vaše položky v souborech zóny, tak názvy hostitelů, které Azure poskytuje (prostřednictvím služby předávání). Přístup k rekurzivním překladačům Azure se poskytuje prostřednictvím virtuální IP adresy 168.63.129.16.

Předávání DNS také umožňuje překlad DNS mezi virtuálními sítěmi a umožňuje místním počítačům překládat názvy hostitelů, které Azure poskytuje. Pokud chcete přeložit název hostitele virtuálního počítače, musí se virtuální počítač serveru DNS nacházet ve stejné virtuální síti a musí být nakonfigurovaný tak, aby předával dotazy na názvy hostitelů do Azure. Vzhledem k tomu, že přípona DNS se v každé virtuální síti liší, můžete k odesílání dotazů DNS do správné virtuální sítě pro překlad použít pravidla podmíněného předávání. Následující obrázek ukazuje dvě virtuální sítě a místní síť provádějící překlad DNS mezi virtuálními sítěmi pomocí této metody:

Překlad DNS mezi virtuálními sítěmi

Když použijete překlad adres IP, který Azure poskytuje, poskytne se interní přípona DNS každému virtuálnímu počítači pomocí protokolu DHCP. Pokud používáte vlastní řešení překladu názvů, tato přípona se virtuálním počítačům nedodává, protože přípona koliduje s jinými architekturami DNS. Pokud chcete odkazovat na počítače podle plně kvalifikovaného názvu domény nebo nakonfigurovat příponu na virtuálních počítačích, můžete k určení přípony použít PowerShell nebo rozhraní API:

  • Pro virtuální sítě spravované Pomocí Azure Resource Manageru je přípona k dispozici prostřednictvím prostředku síťové karty . Můžete také spustit azure network public-ip show <resource group> <pip name> příkaz, který zobrazí podrobnosti o vaší veřejné IP adrese, včetně plně kvalifikovaného názvu domény síťové karty.

Pokud předávání dotazů do Azure nevyhovuje vašim potřebám, musíte poskytnout vlastní řešení DNS. Vaše řešení DNS musí:

  • Zadejte odpovídající překlad názvů hostitelů, například prostřednictvím DDNS. Pokud používáte DDNS, možná budete muset zakázat úklid záznamů DNS. Zapůjčení DHCP v Azure je velmi dlouhé a úklid může předčasně odebrat záznamy DNS.
  • Zadejte vhodné rekurzivní rozlišení, které umožňuje překlad názvů externích domén.
  • Být přístupné (TCP a UDP na portu 53) z klientů, které obsluhuje, a mít přístup k internetu.
  • Zabezpečení před přístupem z internetu za účelem zmírnění hrozeb, které představují externí agenti.

Poznámka:

Pokud používáte virtuální počítače na serverech Azure DNS, zakažte protokol IPv6 a přiřaďte veřejnou IP adresu na úrovni instance ke každému virtuálnímu počítači serveru DNS.