Сервер у лакальнай сетцы дасягае віртуальнай машыны Azure па прыватным адрасе і ўсё роўна не можа развязаць яе прыватнае імя хоста, што прымушае людзей шукаць зламаны тунель. З тунелем усё ў парадку. Бракуе мяжы DNS: нішто на лакальным баку не ведае, што на пэўную прыватную зону Azure павінен адказваць resolver унутры VNet. Гэтую прагаліну закрываюць дзве схемы, і яны адрозніваюцца тым, чым вы ў выніку кіруеце, а не тым, ці працуюць запыты.

Тунель пераносіць запыты, а не веданне зон

Злучэнне «сайт-сайт» дае пакетам маршрут паміж двума сеткамі. Яно не паведамляе лакальнаму серверу DNS, якая прастора імёнаў належыць Azure і які адрас павінен адказваць, таму запыт альбо ідзе ў інтэрнэт і вяртаецца пустым, альбо зусім не пакідае лакальны resolver.

Выпраўленне мае дзве паловы, якія лёгка раздзяліць. Адна палова — resolver унутры VNet, які прымае запыты, што прыходзяць праз тунель. Другая — умоўны forwarder на лакальным баку, які накіроўвае роўна адну прастору імёнаў да гэтага resolver. Ні адна палова не працуе сама па сабе.

Для далейшага разгляду будзем лічыць, што зона — cloud.corp.example, а ўсе адрасы — ілюстрацыйныя.

Варыянт A: кіраваная ўваходная канцавая точка

Azure DNS Private Resolver прадастаўляе ўваходную канцавую точку, якая прымае запыты DNS з-за меж VNet. Вы разгортваеце яе ў асобнай дэлегаванай падсетцы, звязваеце прыватную зону з гэтай VNet і запісваеце ўваходны адрас, які прызначае служба.

Затым на лакальным серверы DNS вы ствараеце ўмоўны forwarder для дакладнай прасторы імёнаў на гэты адрас:

Namespace: cloud.corp.example
Forward to: 10.20.2.4

Працэдура гібрыднага DNS ад Microsoft апісвае і звязванне зоны, і крок з forwarder. Кіраваны шлях пакідае вам без праграм DNS, якія трэба латаць, а адрас канцавой точкі застаецца стабільным на ўвесь тэрмін існавання рэсурсу.

Коштам гэтага з’яўляецца тое, што вы цяпер валодаеце рэсурсам resolver, яго дэлегацыяй падсеткі і яго выдаткамі, якія рэальныя нават пры мізэрным аб’ёме запытаў.

Варыянт B: forwarder на VM унутры VNet

Старэйшая схема запускае праграмнае забеспячэнне DNS на звычайнай VM у VNet: Windows DNS, BIND або dnsmasq, прычым прыватная зона альбо размяшчаецца лакальна, альбо перасылаецца ў resolver Azure па адрасе 168.63.129.16. Лакальны ўмоўны forwarder паказвае на прыватны адрас гэтай VM.

Гэты варыянт знаёмы камандам, якія ўжо трымаюць серверы DNS, і ён можа несці дадатковую логіку, напрыклад журналіраванне або адказы split-horizon. Ён таксама ўспадкоўвае ўсе эксплуатацыйныя абавязкі сервера DNS: латанне, другі асобнік для даступнасці, маніторынг і шлях перабудовы, калі VM замяняюць і яе адрас змяняецца.

Звычайны хост VNet не з’яўляецца проксі DNS, пакуль служба не ўсталяваная і не мае дазволу адказваць гэтым кліентам; менавіта гэты крок прапускаюць, калі клануюць VM.

Які варыянт падыходзіць вашай эксплуатацыі

Параўнанне не пра тое, якая схема хутчэйшая. Яно пра тое, ці хочаце вы наогул эксплуатаваць праграмнае забеспячэнне DNS і ці апраўдвае аб’ём запытаў кіраваны рэсурс, які білюецца па канцавой точке і па запытах.

QuestionManaged inbound endpointForwarder VM
Software to patchNoneThe DNS service on every instance
Address stabilityFixed for the resource lifetimeTied to the VM or its reserved address
Availability workHandled by the serviceSecond instance, health checks, failover
Extra logicLimited to resolver featuresWhatever the DNS software supports

Які б радок ні вырашыў, правіла forwarder на лакальным баку выглядае аднолькава. Менавіта гэтая частка павінна існаваць у абедзвюх схемах, і менавіта яе часцей за ўсё няма, калі хтосьці паведамляе, што развязанне працуе знутры Azure, але не з офіса.

Праверце шлях па парадку

Пераканайцеся, што зона злучана з VNet, у якой знаходзіцца resolver, і што лакальны forwarder называе прастору імёнаў, а не бацькоўскі дамен. Forwarder для corp.example не супадзе з cloud.corp.example, калі сам resolver не дэлегуе, і гэтая няўзгодненасць дае чысты адмоўны адказ, які выглядае як адсутны запіс.

Затым праверце, што запыт дасягае канцавой точкі: лакальнай крыніцы патрэбны маршрут да адраса resolver і зваротны шлях, а порт 53 для UDP і TCP павінен быць дазволены там, дзе гэта дазваляе палітыка. NSG не можа даць адсутны запіс зоны, а правільная зона не можа адказаць на запыт, які ніколі не дайшоў.

Трымайце запытанае FQDN побач з выбраным resolver, калі дыягнастуеце, і аддзяляйце таймаўт ад адмоўнага адказу. Таймаўт — гэта праблема шляху або палітыкі. Адмоўны адказ азначае, што запыт дайшоў, а прастора імёнаў не супала. Парадак працы: злучыце зону, дадайце ўмоўны forwarder, адкрыйце порт 53 у абодва бакі, праверце адно імя з лакальнага боку і толькі потым глядзіце на ўласную аўтарызацыю праграмы.

Падобныя артыкулы