WireGuard DNS на iPhone-у: домен је само суфикс за претрагу
Додавање домена у DNS линију изгледа као подељени DNS. На Apple клијентима оно допуњава само кратка имена, и сваки упит и даље иде ка резолверу тунела.
Пишете једну линију са адресом резолвера и доменом компаније, очекујући да само имена у том домену користе резолвер тунела. На Apple клијенту сада сва имена иду тамо, а кратка имена у домену се такође решавају. Линија ради две одвојене ствари, и само једна од њих тиче се тога које упите тунел обрађује. Друга је погодност за куцање коју је жељно читање уздигло у политику.
На шта се DNS линија разлаже
Клијент чита запис као листу и класификује сваку ставку по облику. Све што личи на адресу постаје DNS сервер; све што личи на домен постаје суфикс за претрагу. Оба завршавају у подешавањима тунела, али у различитим пољима. Илустративна линија за тунел који носи приватни резолвер и један интерни домен изгледа овако.
DNS = 10.24.8.53, lab.internal.exampleАдреса даје резолвер. Домен даје суфикс који омогућава клијенту да откуца кратко име, а систему да пре питања дода остатак. Ниједна од њих ништа не говори о ограничавању резолвера на тај домен, а то је управо део који људи очекују и не добијају. Само једно поље на платформи може да изрази то ограничење, и то није ово поље.
Два Apple поља, два различита посла
Apple открива ту разлику у свом објекту DNS подешавања. Листа домена за претрагу документована је као листа која се користи за квалификовање имена домаћина са једном ознаком: откуцајте голи назив домаћина и систем може редом да дода сваки суфикс. То је правило допуњавања, а не правило усмеравања. Ништа на тој листи не одлучује који се сервер пита.
Листа домена за подударање је друга особина. Она одлучује који именски простори користе овај скуп DNS подешавања, а празан запис значи подразумевани домен, а не један одређени суфикс. генератор подешавања пакетног тунела на Apple клијенту следи тај модел. Он ставља анализиране суфиксе за претрагу на листу за претрагу, и када има сервера, поставља листу за подударање на празан низ. Резултат је резолвер тунела који одговара на све што му систем пошаље, плус суфикс који помаже са кратким именима.
Дакле, домен на тој линији није бирач именског простора. Додавање још једног не сужава упите које тунел користи, а уклањање их такође не проширује. Једино што се мења јесте колико се кратких имена допуни.
Зашто свако име ипак стигне до резолвера тунела
Са празним записом за подударање, тунел је кандидат-резолвер за обична имена, не само за домен компаније. У подешавању пуног тунела то обично мало значи, јер је сав саобраћај ионако у тунелу. У подељеном тунелу то много значи. Јавна имена сада може да реши резолвер који држи само приватну зону, а кварење изгледа као покварен VPN када је у ствари резолвер који одговара само на део именског простора. Тунел је у реду, упити излазе, а одговори се враћају празни.
Доступна су два поправка и то су различите одлуке. Учините резолвер тунела потпуним резолвером који прослеђује јавна имена одобреним путем, или престаните да шаљете јавна имена тамо мењајући конфигурацију клијента, а не листу домена. Први задржава сваки упит на тунелу и верује надређеном. Други задржава неке упите локално и прихвата да приватна имена могу да престану да се решавају док је тунел искључен.
Шта би подељени DNS заиста захтевао
Политика резолвера ограничена на именски простор захтева клијента који вам омогућава да је изразите: подударајте домене на Apple платформама, или еквивалентно подешавање у производу који користите. Поље конфигурације које прихвата само сервере и суфиксе не може да је изрази, како год да је пунктуирано. Профил може да носи политику јер описује управљану конфигурацију, а не наговештај у време повезивања. Може да именује домен, сервере и шта треба да се догоди када тај домен није доступан. То је разлика између подешавања и уговора.
На управљаним Apple уређајима то се обично доставља преко конфигурационог профила који носи DNS подешавања специфична за домен. То је други механизам од конфигурационе датотеке WireGuard, и обоје могу да постоје заједно само ако клијент поштује профил. Проверите како ваш клијент заиста назива то поље пре него што претпоставите да се два производа понашају исто. Скрипта wg-quick на Mac-у и WireGuard апликација на iPhone-у читају сличне линије и инсталирају их кроз различите слојеве.
Читајте инсталирана подешавања, не конфигурацију
На Mac-у можете да проверите до чега је систем дошао, што је информативније од поновног читања датотеке коју сте написали. Листа резолвера показује који су сервери конфигурисани за које домене, а ограничени упити показују који је победио. Клијент који поквари линију то показује овде, а не у датотеци коју сте написали. На iOS-у нема еквивалентне командне линије, па је доказ тамо резултат: приватно име које се решава кроз тунел, и јавно име чији одговор открива који је резолвер одговорио.
scutil --dns | grep -A3 resolver
networksetup -getdnsservers Wi-FiОве две команде исписују тренутну конфигурацију резолвера и DNS сервере за активну услугу. Ако се резолвер тунела појављује као подразумевани резолвер без ограничења домена, конфигурација ради тачно оно што је клијент тражио. Поправите то променом механизма, а не додавањем другог суфикса и надом да ће се понашање променити.