VPN перахапіў DNS і зламаў лакальныя імёны: адрамантуйце спіс
Тунэль, які ўсталёўвае ўласныя рэзалверы, хавае імёны LAN. Адрамантуйце спіс DNS інтэрфейса, адфільтруйце push і праверце яшчэ раз пасля перападлучэння.
Тунэль падымаецца, інтранэт загружаецца, і імя прынтара перастае вырашацца. Або наадварот: лакальныя імёны ўсё яшчэ працуюць, пакуль усё ўнутры карпаратыўнай сеткі сканчаецца тайм-аўтам. Абодва сімптомы паходзяць з аднаго месца — спісу рэзалвераў, які кліент VPN перазапісаў пры падключэнні.
Адрамантуйце спіс свядома, потым асобна разбярыцеся з механізмам push. Маршруты — гэта трэцяя тэма, і не тая, што выпраўляецца тут.
Які спіс насамрэч выкарыстоўваюць праграмы
Windows вырашае праз налады ўзроўню інтэрфейса, а не праз тое, што паказвае дыялог, таму пачніце з эфектыўных спісаў па кожным інтэрфейсе. Аліяс важнейшы за адлюстраванае імя, бо кожная каманда ніжэй звяртаецца да інтэрфейса. Памыліцеся з аліясам — і рамонт трапіць на няправільны адаптар. Ён будзе выглядаць працоўным да наступнага перападлучэння, калі вернецца ўласны запіс тунэля.
Пытанне ў тым, якія серверы апынуліся наперадзе і ці прыйшлі яны як статычныя запісы, ці як арэнда DHCP. Абодва факты вызначаюць, які рамонт вам даступны.
netsh interface ipv4 show dnsservers
Get-DnsClientServerAddress -AddressFamily IPv4
Прачытайце вывад для адаптара тунэля і для фізічнага адаптара і запішыце кожны адрас на кожным. Статычны запіс можна выдаліць палітыкай або скрыптом; запіс, атрыманы праз DHCP, прывязаны да арэнды і вернецца, што змяняе выбар рамонту. Імёны ў аддаленай сетцы вырашаюцца абвешчаным рэзалверам, імёны ў лакальнай LAN — фізічным адаптарам, а запыт ідзе да таго спісу, які разглядаецца першым.
Выдаліце прасунутыя серверы або пастаўце іх ніжэй
Выдаліце прасунутыя серверы, калі ўнутры тунэля нічому яны не патрэбныя, бо ўласныя рэзалверы фізічнага адаптара зноў бяруць верх. Пакіньце іх, толькі калі аддаленая сетка валодае зонамі, на якія могуць адказаць выключна яе серверы, і ў такім разе пастаўце лакальны рэзалвер перад імі. Дзве каманды ніжэй пакрываюць абодва варыянты, таму выберыце тую, што адпавядае сітуацыі, а не запускайце абедзве.
netsh interface ipv4 delete dnsservers name="Corp VPN" address=all validate=no
netsh interface ipv4 add dnsservers name="Corp VPN" address=172.16.20.1 index=1 validate=no
Індэкс 1 разглядаецца першым, таму прасунутыя адрасы застаюцца даступнымі, але перастаюць быць адказам па змаўчанні на кожны запыт. Сцяг validate=no прапускае праверку дасяжнасці, якая часта правальваецца, пакуль тунэль яшчэ ўсталёўваецца, таму пацвердзіце вынік камандай show, а не давярайце коду выхаду.
Варта ведаць дзве межы, перш чым спадзявацца на гэта. Windows не выдаліць серверы, што прыйшлі праз DHCP праз netsh, і гэтыя значэнні застаюцца як DhcpNameServer пад ключом рэестра інтэрфейса, таму правака рэестра — апошні сродак, які трэба пераправерыць пасля наступнай арэнды. Парадак прывязкі адаптараў таксама не надзейны механізм ранжыравання, бо кліент VPN можа ўставіць свой запіс у пачатак спісу.
Дзе можна адфільтраваць push
Лепшы рамонт прыбірае опцыю да яе прымянення. Кліент Community OpenVPN можа адфільтраваць прасунутую дырэктыву па імені, і гэта пакідае канфігурацыю сервера некранутай.
pull-filter ignore "dhcp-option DNS "
Канцавы прабел належыць супадзенню, і фільтр называе опцыю, а не адрас сервера. Калі профіль таксама змяшчае дырэктыву block-outside-dns, яе выдаленне змяняе абарону ад уцечкі, а не вырашэнне імён, таму вырашайце гэта асобна, а не звязвайце дзве праўкі.
Для аднаго ўпартага імя хоста адзін радок у файле hosts Windows устойлівейшы за пераўпарадкаванне рэзалвераў для ўсёй машыны. Ён таксама нябачны для наступнага чалавека, таму запішыце яго там, дзе дакументуецца канфігурацыя машыны.
Зрабіце так, каб рамонт перажыў перападлучэнне
Вырашэнне імён трэба праверыць двойчы, адзін раз супраць выбранага сервера і адзін раз у той форме, якую выкарыстоўвае праграма. Гэтая пара аддзяляе праблему парадку рэзалвераў ад сервера, які наогул не адказвае. Калі прапусціць першую праверку, дзве прычыны застануцца сплеценымі.
Resolve-DnsName intranet.corp.example -Server 172.16.20.1
Resolve-DnsName printer.lan
Перападключыце тунэль і паўтарыце абедзве каманды. Усё, што вы змянілі ўручную, трымаецца толькі да наступнага злучэння, бо кліент перабудоўвае стан рэзалвераў, падымаючы адаптар. Змясціце радкі netsh у падтрыманы скрыпт падключэння вашага кліента, дайце гэтаму скрыпту паспяхова завяршыцца і дадайце кароткае чаканне перад яго запускам. Кліент, які ўжывае DNS пасля скрыпта, усё роўна перазапіша вынік.
Калі публічныя імёны вырашаюцца, а ўнутраныя пасля рамонту ўсё яшчэ не, то спіс рэзалвераў ужо не падазроны. Запыт, хутчэй за ўсё, зусім не дасягае сервера, што ўказвае на маршрутызацыю або правіла фэйрвола, а не на чарговую наладу DNS. Запішыце аліяс інтэрфейса і адрасы, на якіх вы спыніліся, бо абодва адрозніваюцца паміж машынамі і ні адзін не перажыве перабудову сам па сабе.