DNS гасцявой сістэмы VirtualBox ламаецца пасля падключэння хаста да VPN
У гасцявой сістэмы свой рэзалвер, і NAT можа адказваць на DNS двума спосабамі. Чатыры праверкі: рэжым адаптара, шлях рэзалвера, рэжым рэзалвера хаста і перападключэнне VPN.
Унутраная праграма развязваецца на хасту Windows у момант падключэння VPN, а гасцявая сістэма Ubuntu за NAT у VirtualBox усё яшчэ не можа яе знайсці. У гасцявой сістэмы свой рэзалвер, і адаптар NAT можа апрацоўваць DNS не адным спосабам. Замена рэзалвера гасцявой сістэмы на публічны сервер робіць звычайныя сайты працоўнымі, а прыватныя імёны — неразвязальнымі, што пераносіць праблему ў іншае месца замест яе рашэння. Выканайце чатыры праверкі па чарзе і спыніцеся на першай, якая не вытрымае.
Пацвердзіце, які рэжым адаптара вы адладжваеце
Толькі адаптар у звычайным рэжыме NAT паводзіць сябе так, як апісана ў гэтым артыкуле. Маставы адаптар знаходзіцца ў фізічнай сетцы са сваёй ідэнтычнасцю, сетка NAT — гэта названы віртуальны камутатар са сваімі наладамі DHCP і DNS, а кліент VPN унутры гасцявой сістэмы дадае цалкам другі рэзалвер. Пацвердзіце рэжым перад чытаннем далей, бо рамонт адрозніваецца ў кожным з гэтых выпадкаў.
Адна віртуальная машына можа мець два адаптары ў розных рэжымах, і пацярпелы не заўсёды першы.
Таксама пацвердзіце, што хост наогул развязвае імя. Адкрыйце тую ж праграму на хасту з паднятым тунелем, выкарыстоўваючы тое ж поўнае імя, якое будзе выкарыстоўваць гасцявая сістэма. Калі хост таксама не спраўляецца, віна не ў гасцявой сістэме, і ніякае змяненне віртуальнай сеткі гэтага не выправіць.
Прасачыце за адным імем праз рэзалвер гасцявой сістэмы
Выберыце адно ўнутранае імя і адно публічнае кантрольнае імя, затым праверце абодва ў абодвух месцах. Публічнае імя, якое развязваецца, пакуль прыватнае не развязваецца, лакалізуе няспраўнасць на прыватным шляху, а не на развязанні імёнаў наогул. Праверка толькі прыватнага імя не дазваляе адрозніць зламаны рэзалвер ад зламанага маршруту.
Унутры гасцявой сістэмы паглядзіце, на што рэзалвер фактычна настроены. У гасцявой сістэме Ubuntu з systemd-resolved стан па кожным злучэнні паказвае серверы, якія прыйшлі, а файл resolv.conf можа змяшчаць толькі адрас-заглушку, што правільна, а не падазрона. Файл, адрэдагаваны ўручную, або асобны кліент шыфраванага DNS могуць накіроўваць запыты цалкам у іншае месца. Запішыце тое, што выявілі, перад змяненнем.
resolvectl status
resolvectl query app.internal.exampleТут аддзяліце развязанне ад дасяжнасці. Адрас, які прыйшоў, пакуль служба застаецца недасяжнай, — гэта пытанне маршруту або палітыкі, а не DNS.
Паспрабуйце рэжым рэзалвера хаста на гэтым адаптары
Опцыі NAT DNS у VirtualBox апісваюць розныя механізмы, і розніца мае значэнне, калі ўласны рэзалвер хаста змяняецца разам з тунелем. DNS-проксі перасылае запыты гасцявой сістэмы на серверы, якія яму перадалі. Рэжым рэзалвера хаста перахоплівае запыты і выклікае DNS API хаста, і гэта той рэжым, які ідзе за рэзалверам Windows, пераналаджаным кліентам VPN.
Уключыце няправільны механізм, і каманда ўсё яшчэ пройдзе, а паводзіны не зменяцца, што з'яўляецца блытаным спосабам страціць паўдня.
VBoxManage modifyvm "work-ubuntu" --natdnshostresolver1 onЗапішыце бягучыя налады віртуальнай машыны, выключыце яе і нацэльцеся на адаптар, які вы пацвердзілі раней. Апошняя лічба ў опцыі — гэта нумар адаптара, а не канстанта, таму прымяненне яе да машыны, у якой пацярпелы адаптар другі, — ціхая пустая аперацыя. Запусціце гасцявую сістэму і праверце канфігурацыю рэзалвера, якую яна фактычна атрымала, бо ўстаноўка ўручную ў гасцявой сістэме перавышае ўсё, што прапануе ўзровень NAT. Памятайце, што рэжым рэзалвера хаста таксама мяркуе, што ўласны шлях DNS хаста — гэта той, якім вы хацелі падзяліцца.
Паўтарыце тыя ж тэсты праз перападключэнне VPN
Паўтарыце абодва запыты ў гасцявой сістэме, затым адкрыйце сапраўдную праграму і дайце ёй самастойна праверыць сертыфікат. Тэст толькі па адрасе карысны для ізаляцыі развязання імёнаў і не раўназначны працоўнай сесіі TLS, таму не спыняйцеся на ping. Затым у дазволеным акне адключыце і зноў падключыце тунель хаста і паўтарыце яшчэ раз. Паводзіны, якія трымаюцца толькі на першым злучэнні пасля загрузкі, — гэта праблема жыццёвага цыклу, пра якую трэба паведаміць, а не DNS-загадка, за якой трэба ганяцца з іншым рэзалверам.
Працоўнае публічнае развязанне не даказвае, што прыватныя запыты засталіся на шляху, якога патрабуе ваша палітыка.
Калі рэжым рэзалвера хаста нічога не змяняе, вярніце запісаную канфігурацыю і захавайце чатыры назіранні: што вярнуў хост, што вярнула гасцявая сістэма, рэжым адаптара і стан рэзалвера. Недасяжны ўнутраны сервер, фільтр, які выключае трафік гіпервізара і перакрыццё на баку гасцявой сістэмы патрабуюць кожнае іншай папраўкі. Пераўтварэнне адаптара ў мост змяняе дызайн сеткі і не з'яўляецца скідам DNS.