Kamarád mě požádal, abych se trošku vyjádřil o parádní možnosti, kterou máte, když provozujete tzv. split DNS (někdy split-brain DNS). Tedy skoro každý provozuje split DNS prostředí. Pokud nevíte co to je, určitě to hned poznáte z následujícího obrázku:

Jednoduše - vaše vnitřní doména Active Directory má nějaké vnitřní jméno, běžně tam bývá přípona .local, nebo v jako v mém případě gopas.virtual. K tomu máte uvnitř také DNS server, který obsahuje záznamy pro tato jména ve formě DNS zóny (DNS zone). Vnitřní DNS server je autoritou pro tuto gopas.virtual doménu, která navíc není z internetu přeložitelná.
Někde venku v internetu máte jiný DNS server, který obsahuje zónu pro vaši veřejnou doménu, něco jako v mém příkladu gopas.cz.
Většina A záznamů ve vnitřní zóně gopas.virtual budou privátní IP adresy. Zatímco většina A záznamů ve veřejné zóně gopas.cz budou nejspíš veřejné IP adresy vedoucí na nějaké web servery apod.
Web servery máte buď hostované v internetu, to nás tady nezajímá. Nebo je máte u sebe, například v DMZ, nebo přímo v intranetu v LAN. V našem obrázku jsou tam dokonce dva SharePoint servery, čistě pro příklad.
Oba dva SharePoint mají ve skutečnosti privátní IP adresy a oba ty počítače jsou členem vnitřní gopas.virtual domény. Mají tedy samozřejmě automaticky zaregistrovaná jména (A record) ve vnitřní DNS zóně gopas.virtual. To by vás asi nemělo překvapit.
Problém s přístupem ze vnitř a z venku
Když mají uživatelé přistupovat na ten SharePoint jak z vnitřní sítě (nebo z VPN), tak i přímo z internetu? Lidé to řeší různě.
Šlo by to samozřejmě udělat tak, že SharePoint bude dostupný na více URL, například http://intranet.gopas.virtual (nebo jen krátce http://intranet) a https://intranet.gopas.cz. Tedy dvě různá URL, jedno je čisté HTTP na vnitřní .virtual doméně, zatímco druhé je veřejné a ještě HTTPS. Technicky to samozřejmě vyřešit lze, na to máte na SharePoint technologii Alternate Access Mapping (AAM).
Ale uživatelsky je to nepohodlné a vede to k chaosu jak v hlavách lidí, tak v lincích, které si lidi posílají mailem, nebo které mají uložené v oblíbených poližkách apod. Proč bych to tak dělal? Mám lepší řešení.
Jedno jméno vládne všem
Proč proboha neudělat ten SharePoint rovnou na jednom společném jméně, pěkně veřejném, ideálně tedy https://intranet.gopas.cz. Ze všech směrů to bude přístupné a pořeší se jen technické problémy, zatímco lidi budou fungovat hladce. Plus, až se rozhodně te, že to celé přesunete do Office365, tak si toho nikdo ani nevšimne.
Jenže ty technické problémy...
Ve vnějším DNS, které je autoritou pro veřejnou zónu gopas.cz samozřejmě ten záznam vytvoříte a dáte mu veřejnou IP adresu. Nastane problém s přístupem zevnitř. Vnitřní DNS server toto jméno nezná, bude tedy pouze rekurzivně nechávat překládat název intranet.gopas.cz venku v internetu. Výsledkem bude opět ona veřejná IP adresa.
Ale to se tam nejspíš zevnitř nedostanete, aniž by to váš firewall nějak podporoval (loopback publishing, DNS rewrite apod.). Protože se budete snažit zevnitř dostat přes ten firewall a jeho veřejnou IP adresu zase zpět dovnitř.
Nene, potřebujeme to zařídit tak, aby rovnou vnitřní DNS server znal ono veřejné jméno intranet.gopas.cz a překládal ho rovnou na privátní IP adresu.
Takže dáme do vnitřního DNS serveru celou veřejnou zónu gopas.cz? Uf. Buď tam dáte jen jeden záznam intranet.gopas.cz a všechno ostatní se tím stane automaticky nedostupné (protože vnitřní DNS server bude autoritou pro tuto celou zónu), nebo tam budete muset opsat všechny ostatní záznamy z veřejného DNS serveru.
Samostatná zóna pro jeden jediný záznam?
Právě toto! Ono se to moc neví, ale proč byste nemohli udělat do vnitřního DNS serveru zónu přímo pro jméno intranet.gopas.cz. Do ní už pak jenom vložíte A záznam (neuvedete jméno a bude se to zobrazovat s nápisem (same as parent folder)), který povede na privátní IP adresu SharePoint NLB a je to.
Takto si nezakryjete veřejnou zónu a přitom budete mít maximální flexibilitu.
Chápu, že se to člověkovi na první pohled nezdá, dělat "celou DNS zónu" pro "jeden jediný záznam", ale proč ne? Celá zóna je navíc jeden jediný objekt v Active Directory, A záznam je taky jeden objekt v AD. Takže spotřeba je minimální, výkon netrpí a bezpečnost? Stačí vypnout automatické aktualizace (dynamic update) a není co řešit. Naopak, máte to plně pod kontrolou, to je podle mě spíš výhoda. Ve větších prostředích uvidíte třeba i desítky takových "zóneček".
Nemusíte se starat o zástupce a linky pro víc URL, DNS překlad si řešíte sami na Windows DNS serverech a nemusíte se bavit se síťaři. Pohodička.