Verdeelde DNS oor OpenVPN: wat 'n routeringsdomein op elke bedryfstelsel moet doen
'n Soekagtervoegsel, 'n routeringsdomein en 'n IP-roete is drie verskillende dinge. Stel die beleid per platform in en bewys daarna watter bediener die navraag beantwoord het.
Elke split-DNS-navraag begin met dieselfde sin: maatskappyname gaan na die maatskappy se DNS, alles anders bly werk. Om daardie sin in 'n konfigurasie te omskep, beteken om drie vrae per bedryfstelsel te beantwoord, en die antwoorde gebruik op elkeen verskillende meganismes. Profiele wat op 'n Linux-skootrekenaar werk, misluk dikwels op Windows om redes wat niks met die tonnel te doen het nie. Die gaping is gewoonlik 'n DNS-instelling wat vir 'n roete aangesien word.
Noem eers die beleid en kies dan die platformprimitief wat dit uitdruk.
Drie instellings wat maklik verwar word
'n Soekagtervoegsel brei 'n kort naam uit: as jy files tik, word dit files.corp.example wanneer die DNS-resolver agtervoegsels in volgorde probeer. 'n Routeringsdomein kies watter resolver navrae binne 'n naamruimte beantwoord. 'n IP-roete maak net die gekose resolver bereikbaar. Daardie drie leef in verskillende lae, en om die een vir die ander te ruil, lewer 'n konfigurasie wat reg lyk en niks oplos nie.
Die verwarring het 'n prys: om 'n soekagtervoegsel by te voeg, stuur elke kort naam na die werk-resolver, insluitend name wat elders hoort. Om 'n routeringsdomein te kies, hou onverwante navrae by die plaaslike resolver terwyl *.corp.example steeds deur die tonnel gestuur word.
Linux: 'n slegs-roete-domein, nie 'n soekagtervoegsel nie
Op systemd-resolved is 'n domein met 'n tilde vooraan 'n slegs-roete-domein, wat beteken navrae vir daardie naamruimte gaan na die gekoppelde resolver sonder om ook 'n soekagtervoegsel te word. resolvectl domain tun0 '~corp.example' stel dit in, en resolvectl dns tun0 10.8.0.1 noem die bediener. Albei instellings hoort by die koppelvlak, so hulle verdwyn daarmee saam. Die tilde is die deel wat mense weglaat, en sonder dit begin kort name deur die werk-resolver oplos.
Moenie ook dieselfde domein as 'n globale soekagtervoegsel installeer nie. Die twee instellings is nie oorbodig nie; die een roeteer en die ander herskryf wat jy getik het.
Windows het 'n naamruimtebeleid nodig, nie 'n agtervoegsel nie
Windows hou split-DNS-beleid in die Name Resolution Policy Table, nie in die adapter se DNS-agtervoegsel nie. 'n Reël koppel 'n naamruimte aan spesifieke bedieners: Add-DnsClientNrptRule -Namespace .corp.example -NameServers 10.8.0.1. Om net die agtervoegsel in te stel, verander hoe kort name lyk; dit rig nie die navraag na 'n ander bediener nie.
Kontroleer die effektiewe beleid met Get-DnsClientNrptPolicy nadat jy gekoppel het, want 'n reël van 'n vroeëre verbinding kan die tonnel oorleef. Verwyder reëls op naam wanneer die tonnel afgaan, en hou die vertoonnaam stabiel sodat die opruiming die regte inskrywing tref.
Hou een resolver-eienaar per platform
'n Burobladbestuurder, 'n OpenVPN up script en 'n plaaslike resolver-daemon kan almal probeer om dieselfde konfigurasie te skryf. Wanneer hulle verskil, wen die laaste skrywer en die resultaat hang van die afbreekorde af. Kies een komponent om resolver-toestand te besit, laat die ander rapporteer eerder as skryf, en toets 'n herverbinding: die beleid moet dit oorleef sonder om reëls te dupliseer. Toets ook 'n ontkoppeling, want oorblywende toestand is wat die volgende verbinding anders laat optree.
Toepassings wat hul eie geënkripteerde resolver saambring, ignoreer die bedryfstelsel se beleid heeltemal. Dit is 'n eienskap van die toepassing, nie 'n gebrek in die tonnel nie.
Verifieer die resultaat, nie die profielteks nie
Los een naam op wat deur die tonnel moet gaan en een wat nie moet nie, op elke platform, en bevestig watter bediener geantwoord het. resolvectl query host.corp.example en Resolve-DnsName host.corp.example rapporteer albei die bediener wat gereageer het. Herhaal dit na 'n herverbinding. Bevestig dan dat die tonnel se resolver bereikbaar is by die adres wat die profiel stuur, want 'n korrekte beleid wat na 'n onbereikbare bediener wys, misluk dieselfde as geen beleid nie.
Teken die bedoelde gedrag in die profiel se notas aan: watter agtervoegsel roeteer, watter bediener dit beantwoord, en wat met alles anders gebeur. Die volgende platform wat jy ondersteun, sal daardie sin meer nodig he as die konfigurasielêeer.