Сервер у локалној мрежи достиже Azure VM преко приватне адресе и ипак не може да реши његово приватно име домаћина, што натера људе да траже покварен тунел. Тунел је у реду. Недостаје 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

Microsoft-ов поступак хибридног DNS-а документује и повезивање зоне и корак са 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 у оба смера, тестирајте једно име из локалне мреже и тек онда погледајте сопствену ауторизацију апликације.

Повезани чланци