VPN на Android разрешава пълното име на хоста, но не краткото
Доменът за търсене и адресът на DNS сървъра са отделни полета в Android. Решете кое липсва, преди да променяте тунела или данните за достъп.
Въвеждатеfilesв емулатор на терминал и нищо не се връща; въвеждатеfiles.corp.exampleи същият сървър отговаря веднага. Нищо в данните за достъп на VPN не е променено и частният DNS сървър никога не е бил счупен. В Android краткият етикет и пълното име минават по различни пътища през резолвера и един от тези пътища зависи от настройка, която собственикът на тунела трябва да предостави. Решението пред вас не е кой DNS сървър да смените, а кой контролира мрежата, която приложението всъщност използва.
Доменът за търсене не е адрес. Той е списък от наставки, които резолверът добавя към гол етикет, преди да се откаже.
Наставката за търсене и DNS сървърът са отделни полета
Адресът на резолвера казва на Android къде да пита. Наставката за търсене му казва за какво да пита, когато подадете само най-левия етикет. И двете живеят върху един и същ мрежов обект и всяко от тях може да липсва самостоятелно.
Тази независимост е точно причината пълното име на хоста да работи. Напълно квалифицираното име не се нуждае от наставка, защото то вече е низът, който отива към сървъра.
Android показва разделението чрезLinkProperties. Списъкът с DNS сървъри и списъкът за търсене на домейни седят върху един и същ обект и вторият обичайно е празен, дори когато първият е напълно запълнен. Мрежа с резолвер, но без домейн, е мрежа, в която наставката никога не е прилагана — а не сървър, който е отказал краткото име.
Прочетете ефективната мрежа, преди да променяте нещо
Wi-Fi, мобилната мрежа и VPN интерфейсът са три отделни мрежи и тунелът става по подразбиране, щом се вдигне. Затова наставката, която е работила в офис Wi-Fi, не е автоматично наставката в сила, докато тунелът е активен. Проверете мрежата, върху която приложението реално е избрано, а не тази, която сте настроили миналата седмица.
Терминалната обвивка на устройството е слаб свидетел тук, защото нейниятresolv.confотразява един изглед на резолвера, а не изгледа на всяко приложение.
Адресните ленти на браузъра добавят още един слой: гола дума може да бъде третирана като заявка за търсене или разрешена чрезсобствената политика на браузъра за криптиран DNS, така че страница, която се зарежда в Chrome, не доказва нищо за системните резолюции. Тествайте с нещо, което използва платформения резолвер и отпечатва какво е върнало. След това пуснете кратката и пълната форма в същата сесия, в същата мрежа, и отбележете коя е дала отговор.
Ако изграждате приложението VPN, прикачете наставката в конструктора
Когато приложението ви установява интерфейса чрезVpnService,addSearchDomainе поддържаният вход за това. Той приема низ за домейн, напримерcorp.example, и не е алтернативен начин да подадете адрес на сървър.
Извикването обвързва наставката с мрежата, която изграждате, затова няма глобална настройка, която да обърнете после. Ако приложението разглоби интерфейса и го изгради отново при повторно свързване, новият конструктор трябва да добави наставката отново, иначе заместващата мрежа се вдига без нея.
Тук много импортирания на профили от настолен компютър губят полето. Експортьорът записва домейна в своя модел, Android интерфейсът преобразува само опциите, които познава, и полученият интерфейс изглежда правилен във всяко друго отношение. Профил, който работи на лаптоп и се проваля на телефон, обичайно е пропуск в преобразуването, а не проблем в протокола.
Ако само ползвате VPN, това не е ваше да го настройвате
Няма клиентска редакция, която добавя наставка, и няма глобално свойство, което да промените, за да си я фалшифицирате. Стойността се доставя от този, който притежава тунела: в профила на управлявания клиент, в преобразуването му за всяка платформа или чрез каквото сървърът изпрати. Кажете на коя платформа сте и кое име се проваля, защото настолният и мобилният интерфейс се разминават точно в това поле.
Повторното импортиране на настолен профил отново не доказва нищо за мобилното преобразуване.
Три условия решават дали имате дефект, или очаквано ограничение. Първо, третира ли организацията краткия етикет изобщо като поддържано име, или това е удобство, което някога е работило само в офис Wi-Fi? Второ, идва ли неуспешната резолюция от браузър, който може напълно да заобиколи системния резолвер? Трето, трябва ли краткото име да е достъпно през тунела, или само от LAN? Ако последният отговор е само LAN, добавянето на наставка би създало име, което се разрешава извън офиса и след това не се маршрутизира.
Когато наставката присъства, а кратките имена пак се провалят
Ако списъкът за търсене на домейни вече показваcorp.example, спрете да обвинявате наставката. Проверете дали резолверът изобщо връща отговор за разширеното име, защото наставката променя само въпроса, който задавате. Тя никога не прави сървъра авторитетен за зона, която той не хоства.
След това проверете маршрута. Адрес, който се разрешава, но не се носи от тунела, се проваля при свързване и това изглежда идентично на неуспешна резолюция в браузър, който тихо се отказва.
Сертификатите заслужават отделно споменаване. Валидацията по HTTPS използва името на хоста, което всъщност сте въвели, затова кратко име, което се разширява правилно, все пак представяfilesпри ръкостискането. Сертификат, издаден заfiles.corp.exampleняма да се валидира за него, и тази грешка е правилно поведение, а не симптом на DNS проблема, с който сте започнали.
Какво да правите след това
Потвърдете разделението, преди да пипате нещо: пълното име се разрешава, краткото — не, същото приложение, същата сесия. След това намерете избраната мрежа и прочетете списъка ѝ за търсене на домейни редом със списъка с резолвери. Който от двата е празен, ви казва кой трябва да действа — вие, ако притежавате приложението; операторът на тунела, ако не.
Накрая, предпочитайте пълното име на услугата в отметки и клиентска конфигурация, където преносимостта е важна. То оцелява при смяна на мрежа, не зависи от преобразуване, което мобилният интерфейс може да не реализира, и съвпада с името, за което е издаден сертификат.