Proč je dobré rozdělit autoritativní a cache DNS servery

Narazil jsem nedávno na zajímavý problém, na serveru klienta nefungoval správně DNS překlad u několika domén. Přitom od něj z jiné sítě to fungovalo správně. Problém byl v nevhodném spojení rolí autoritativního a cache DNS serveru.

Rozdíl mezi autoritativním a cache DNS

Systém DNS se stará o překlad doménových jmen na jejich IP adresy. Vždy, když v prohlížeči kliknete na odkaz, provede se nejprve jeho překlad na IP (například seznam.cz na 77.75.72.3). Váš počítač pak dokáže stránku načíst. Tento překlad dělají DNS servery. Ty můžete mít buď autoritativní, nebo cachovací:

  • autoritativní – slouží přímo k uložení záznamů o doménách.
  • cache – nemají vlastní záznamy o doménách, když mají poslat záznam o adrese, zeptají se autoritativních serverů pro danou adresu a výsledek si na nějakou dobu uloží k sobě do cache.

Jádro problému

Zákazníkův server používal pro překlad DNS servery serverovny. Ty byly ale zároveň autoritativní i cache servery. Domény, které se špatně překládaly v něm byly (nejspíše v minulosti) vedeny a když se přesunuly jinam, tak se tyhle záznamy nepročistily. Kdyby to byla jen cache DNS, tak by se záznamy po nějaké době smazaly a při dalším pokusu o překlad by si je server nahrál od správného autoritativního serveru. V tomto případě si ale DNS stále myslelo, že doména je u něj a vracelo špatné záznamy.

Řešení

Pokud se dostanete do podobné situace, máte na výběr několik možností řešení:

  • opravit konfiguraci DNS serverů – ideální řešení, ale obtížné, musíte přesvědčit firmu, která servery spravuje, aby je nakonfigurovala správně.
  • upozornit majitele domény – majitel domény určitě nebude rád, když nepůjde doména z nějakého místa správně přeložit, pro ta místa se pak stává nedostupná a nápravu si zařídí sám.
  • můžete si změnit nastavení DNS na jiné. Nastavení provedete na linuxu v souboru /etc/resolv.conf. Můžete použít například volně dostupná google DNS:
    nameserver 8.8.8.8
    nameserver 8.8.4.4

 

Komentování je uzavřeno.