Slovenský DNS anycast
Delší dobu jsme nepsali o upgrade nebo přípravě nových lokalit DNS anycastu pro ccTLD .cz. Je to tím, že máme nové lokality zatím pouze rozjednány, koronakrize nám samotnou realizaci dost komplikuje. Dalším důvodem je, že jsme se v posledních měsících soustředili na upgrade sítě v našich datacentrech, o čemž se ale rozepíšu někdy příště. Přesto máme menší, ale o to zajímavější, novinku ze světa DNS anycastu pro .CZ doménu. Tentokrát nepůjde o žádnou větší instalaci nebo exotickou lokalitu, ale o spuštění DNS serveru u našich nejbližších sousedů, bratrů Slováků.
Umístit DNS server/y do Bratislavy se může na první pohled zdát jako zbytečné. I dle našich statistik získaných z projektu Adam víme, že to není lokalita se zásadním provozem pro ccTLD .cz. I když další geograficky odlehlá lokalita, v jiném datacentru, které je napájeno z rozvodné soustavy jiné země, znamená vždycky posílení bezpečnosti provozu celého anycastu. Naší hlavní motivací pro zprovoznění další části DNS anycastu právě v Bratislavě ale bylo zlepšení odezev DNS anycastu pro region střední Evropy při dotazování jednoho konkrétního IPv4/IPv6 prefixu, interně „písmenka“.
Čtyři prefixy
Nejdříve krátké opakování. DNS anycast pro .CZ se totiž skládá ze čtyř IPv4/IPv6 prefixů, zjednodušeně řečeno z písmen A, B, C a D. Z různých lokalit se pomocí protokolu BGP oznamují jen některé z nich. V zahraničních lokalitách je to vždy jen jedno písmeno v případě tzv. „standalone“ serverů, v případě malých DNS stacků jedno až dvě. Výběr vhodného písmena vždy závisí na analýze DNS provozu a také rovnoměrnému rozložení mezi ostatními lokalitami.
V České republice, díky provozu dvou velkých DNS stacků, oznamujeme do internetu písmena tři. A proč ne rovnou všechny čtyři? Je to proto, abychom v případě neočekávaných skutečností jako jsou např. masivní DDoS útoky, blackouty datacenter a jiných mnohdy až katastrofických scénářů měli jedno písmeno DNS anycastu z České republiky nedotčené. A tím je anycast C.
Písmeno C, tedy prefix 194.0.14.1/2001:678:11::1 oznamujeme záměrně z jiného ASN, než z našeho primárního AS25192 a pouze ze zahraničních lokalit. Konkrétně, v době psaní tohoto blogpostu, z Brazílie, Japonska, Rakouska a Velké Británie. Udělali jsme však výjimku pro naše ISP stacky. Je to proto, že routery ISP poskytovatelů typicky „vidí“ nejkratší cestu k písmenům A, B a D přes peeringový uzel NIX.CZ. Proto dává největší smysl v této uzavřené DNS instanci, kterou používají vybraní ISP pouze ve své síti, použít také anycast C.
Proč právě Bratislava
Ale vraťme se zpět k novému uzlu a vysvětlení, proč právě v Bratislavě. Jak jsem psal výše, anycast C se nepropaguje veřejně v České republice a v rámci peeringového uzlu NIX.CZ je ve skutečnosti dostupný díky peeringu sdružení CESNET s rakouskou akademickou sítí acoNET, ve které provozujeme malý DNS stack.
Spuštěním ISP stacku právě ve sdružení CESNET jsme dostupnost ccTLD .cz v této síti zlepšili, ale paradoxně kvůli zákazu propagace tohoto prefixu mimo síť CESNET (dle podmínek provozu ISP stacků) jsme trochu „zhoršili“ dostupnost anycastu C pro všechny připojené sítě v peeringovém uzlu NIX.CZ.
Slovo zhoršili záměrně dávám do uvozovek, protože to pro běžné uživatele neznamenalo žádný rozpoznatelný problém, jen se některým DNS dotazům přibližně o 20 ms prodloužila latence, protože nejčastěji na anycast C odpovídal DNS stack až ve Velké Británii. Tato skutečnost nás vedla k zamyšlení, jak tuto situaci napravit a současně i vylepšit bez toho, abychom museli měnit konfiguraci daného ISP stacku.
V červnu nás tedy napadlo, že bychom mohli využít spojení peeringových uzlů NIX.CZ a NIX.SK, kdy servery připojené v NIX.SK mohou být připojeny samostatnou VLAN do Prahy. Nabízely se dvě možnosti. Server umístit do nějakého datacentra v České republice, kde bychom si mohli pronajatou trasu až do NIX.SK. A nebo server umístit fyzicky přímo do Bratislavy. Druhá varianta se ukázala jako výhodnější, protože server vlastně nebude umístěn v České republice, nebude v naší síti, v žádném datacentru a připojení nebude závislé na další konektivitě. Tím se poměrně elegantně objeví anycast C přímo v NIX.CZ a samozřejmě také v NIX.SK.
Peeringové uzly NIX.CZ a NIX.SK mají od této chvíle dostupná všechna písmena DNS anycastu ccTLD .cz. Přímo a bez jakýchkoliv zprostředkování. Pokud je váš poskytovatel Internetu připojen do peeringového uzlu NIX.CZ nebo NIX.SK, můžete si vyzkoušet, že níže uvedeným DNS dotazem na NS záznamy domény .CZ odpoví server na Slovensku.
linux> dig +nsid ns cz @c.ns.nic.cz
A závěrem ještě přikládám graf průměrného počtu QPS dne 20. července 2020 ve všech lokalitách, které oznamují anycast C. Je patrné, že server na Slovensku odbavuje poměrně významný provoz.
(Původně napsáno pro blog CZ.NIC.)