Гүүр ба NAT нь нэг зочдыг таны VPN-д холбох хоёр арга биш; тэд туннель орж ирэхээс өмнө зочны пакетууд хэнийх болохыг шийддэг. NAT горимд гипервизор зочны траффикийг дахин бичиж, хост талын кодаас гаргадаг тул зочин хост тэр кодонд өгсөн маршрутаар явна. Гүүрэн горимд зочин физик сегмент дээр өөрийн холбоосын түвшний таних тэмдгийг авч, өөрийн анхдагч гарцыг сонгодог нь хостны туннелийг түүнд ач холбогдолгүй болгодог, хэрэв LAN чиглүүлэгч нь туннель хийж байгаа бол бусад тохиолдолд. Би VM-ийг VPN дээр байна гэж үзэхээ болиод, тэр зочны анхдагч маршрут хаашаа чиглэж байгаа тухай асуулт гэж үзэж эхэлсэн. Доорх туршилт горим бүрт хэдэн минут зарцуулж, таамаглалгүйгээр шийднэ.

NAT зочдыг гипервизорын кодын ард байлгадаг бөгөөд тэнд хостны маршрутууд үйлчилнэ

VirtualBox-д NAT зочин 10.0.2.0/24 дээр сууж, виртуал гарц 10.0.2.2, DNS прокси 10.0.2.3 дээр байх ба физик сүлжээ рүү өөрийн маршрутгүй. Гарах пакетуудыг NAT хөдөлгүүр авч, эх сурвалж нь хост байхаар дахин бичиж, хостны IP стек рүү дамжуулна. Тэндээс зочны траффик хостны урсгал бөгөөд маршрут хайлт очих газраар хийгдэнэ: хост дээр 0.0.0.0/1 ба 128.0.0.0/1 суулгасан бүрэн туннелийн клиент VM байгааг хэзээ ч мэдэхгүйгээр түүнийг барьж авна. Oracle-ийн VirtualBox сүлжээний бүлэг эдгээр анхдагч утгуудыг жагсаасан байдаг, хэрэв угсралт дээрх хаягуудыг баталгаажуулахыг хүсвэл.

libvirt-ийн анхдагч сүлжээ 192.168.122.0/24-өөс мөн адил газарт хүрдэг, тэнд dnsmasq лизинг тарааж, хост дэд сүлжээг маскарад хийдэг тул зочны пакетууд дахин хостны чиглүүлэлтийн шийдвэрт ирдэг. Үл хамаарах зүйл нь траффикийг маршрутаар бус процессоор сонгодог клиент юм. Хэрэв хуваагдсан туннелийн жагсаалтад зөвхөн таны хөтөч байгаа бол NAT хөдөлгүүр тэр жагсаалтад байхгүй бөгөөд зочин туннельгүйгээр машиныг орхино, хостны хөтөч хараахан бүрхэгдсэн мэт харагдана. Нэг дэд сүлжээ, эсрэг үр дүн.

Гүүр нь зочинд физик LAN дээр өөрийн байр суурийг өгдөг

Гүүрэн зочинд бодит адаптерт холбогдсон виртуал сүлжээний карт өгч, өөрийн MAC хаягыг авч, физик сүлжээнээс DHCP лизинг авдаг. Түүний анхдагч гарц нь LAN чиглүүлэгч, гипервизор биш, кадрууд нь тэр адаптераар дамжин утас руу гарна. Хостны туннелийн маршрутууд хостны хүснэгтэд амьдарч, хэзээ ч асуудаггүй, учир нь зочны кадрууд хэзээ ч хостны IP стек рүү ордоггүй.

Энэ нь хоёр тийшээ огтолно. mDNS болон SMB хөтлөлт ажиллаж эхэлдэг, учир нь зочин LAN-ийн нэвтрүүлгийн траффикийг хардаг, мөн зочин хооронд нь хостны галт ханагүйгээр ижил сегментийн бусад машинаас хүрч болно. Гүүр нь мөн одоо байгаа туннелээр зочдыг шахах арга биш: VM-ийг хостны WireGuard эсвэл OpenVPN интерфэйст холбох нь VirtualBox эсвэл libvirt таны төлөө хийдэг зүйл биш. Хэрэв гүүрэн зочин туннелээр гарах ёстой бол туннель тэр LAN дээр хаа нэгтээ дуусах ёстой.

Маргааныг дуусгах туршилт

Хоёр горимд ижил шалгалтуудыг хийж, хариултуудыг бичиж авна уу:

  • Хост дээр curl -s https://ifconfig.me нийтийн v4 хаягыг өгнө.
  • Зочинд мөн адил команд, нэмж анхдагч гарцын хувьд Linux дээр ip route эсвэл Windows дээр Get-NetRoute -DestinationPrefix 0.0.0.0/0.
  • Шийдэгчийн таних тэмдэг: зочинд resolvectl status эсвэл cat /etc/resolv.conf, 10.0.2.3 рүү эсвэл LAN сервер рүү чиглэж байгаа эсэхийг харах.
  • Хаягийн бүлэг: ip -6 addr show scope global ба нэг v6 хүсэлт, учир нь v4 туннель зочинд байж болох глобал v6 хаягийн талаар юу ч хэлэхгүй.

Давхцсан нийтийн хаягууд нь зочин хостны зам дээр байгааг илтгэнэ. LAN-ийн ердийн гаралттай давхцсан зочин хаяг нь тийм биш гэдгийг илтгэнэ. Хүмүүсийн алгасах алхам бол хяналт: хостны туннелийг буулгаад зочны хүсэлтийг давтана. Хэрэв зочин хөтлөлтөө үргэлжлүүлбэл, горимын нэр юу ч илтгэсэн, тэр хостны туннелээс хэзээ ч хамааралгүй байсан. NAT горимд хостны туннель буусан үед зочин интернэтээ алдах ёстой, хэрэв клиент туннельгүй траффикийг зөвшөөрөхөөр тохируулаагүй бол, үүнийг тусад нь мэдэх нь зүйтэй.

Хоёр дохио худал хэлдэг. Амжилттай ping хүртээмжийг нотолно, гарах замыг биш. DNS-д 10.0.2.3 прокси хостны шийдэгчээр дамжуулан хариулж болох бөгөөд тэр үед TCP өөр маршрут явдаг, ингэснээр ачаалагддаг хуудас ба хэзээ ч дуусдаггүй нэвтрэлт гардаг.

Аль горим ажилд тохирох вэ

Горим бол чиглүүлэлтийн шийдвэр тул зуршлаас бус шаардлагаас сонгоно уу:

RequirementMode that fits
Every guest flow must exit through the host tunnelNAT, with a host client that tunnels by route, verified from inside the guest
The guest needs its own VPN account or profileBridged, or NAT with a client running inside the guest, not both
The guest must serve SSH, SMB, or a dev server to the LANBridged; NAT needs a port forward, which does not change the outbound path
The guest must stay invisible to the LANNAT; a bridged guest is another host on the segment
The guest needs a real public IPv6 addressBridged; VirtualBox NAT mode has no IPv6 forwarding
Isolation from the LAN with access to the hostHost-only adapter, not NAT

Эхний мөр бол хүмүүс гацах газар: NAT ба хост дээрх бүрэн туннелийн клиент зочдыг үнэхээр бүрхдэг, гэхдээ клиент маршрутаар туннель хийж, хостны дээд холбоос нь тэр туннель байх хүртэл л. Клиентийг зөвхөн хөтчид зориулсан зөвшөөрлийн жагсаалт руу зөөвөл хаана ч алдаагүйгээр бүрхэлт алга болно. Дөрөвдүгээр мөр бол эсрэг алдаа: тав тухын тулд гүүрэлсэн зочин оффисын LAN дээр чимээгүйгээр SMB эсвэл SSH-д хариулж эхэлдэг.

VPN-д хамаатуулдаг гэмтлүүд

Windows дээр NAT орчуулга VirtualBox-ийн VM процесс дотор ажилладаг тул програм тус бүрийн клиент виртуал машинд зориулсан ерөнхий дүрмийн оронд яг тэр дүрсийг жагсаалтад байлгах хэрэгтэй. Клиентийн шинэчлэлт өөрийн процессын жагсаалтыг дахин бүтээхэд NAT зочид хамгийн түрүүнд бүрхэлтээ алдаж, тайлан нь хост хэвийн байхад LAN-д хүрдэг ч интернэтэд хүрдэггүй VM мэт уншигддаг.

Wi-Fi руу гүүрлэх нь өөр нэг сонгодог тохиолдол. Хандалтын цэгүүд гадны эх MAC-тай кадрыг ховор дамжуулдаг тул wlan0 руу гүүр нь бүрэн бүтэлгүйтэх эсвэл AP дээрх клиентийн тусгаарлалт түүнийг унагаж эхлэх хүртэл ажиллана. VirtualBox сүлжээгүй адаптерыг жагсаалтад нь санал болгоно. Хост Wi-Fi дээр байгаа бөгөөд зочныг гүүрлэх шаардлагатай бол таамаглахын оронд туршихаар төлөвлө.

MTU нь гурав дахь. Гүүрэн зочин LAN-ийн 1500 байтын MTU-г хадгалж, хэрэв өөрийн WireGuard клиентийг 1420 дээр ажиллуулбал том TLS гар барилт гацаж, жижиг хүсэлтүүд амжилттай болно. NAT-ийн дор хостны туннелийн MTU нь хостны асуудал, гэхдээ зочин 1500-д хараахан итгэдэг, don't-fragment биттэй UDP мөн адил алга болно.

Горимыг бичиж аваад адаптер солигдсоны дараа дахин шалга

Горим, гүүрийн ашигладаг хостны интерфэйс, зочны анхдагч гарц, түүний шийдэгч, түүний v4 ба v6 гаралтын хаягуудыг бичиж авна уу. Яг тэр бичлэг дараагийн гэмтлийг хямд болгодог: зөөврийн компьютер докоос Wi-Fi руу шилжихэд гүүрэн зочин гүүрээр дамжин өөр физик адаптер руу шилжиж, өөр дэд сүлжээнд дахин лизинг авч болно, харин NAT зочин 10.0.2.x хаягаа хадгалж, чимээгүйгээр өөр дээд холбоосыг өвлөнө.

Тасалбарыг хаахаас өмнө эдгээр бүрийг баталгаажуулна уу:

  • Зочны гаралтын хаяг хостны гаралтын хаягаас ялгаатай, тиймээс хостны туннель дээр биш.
  • Шийдэгч нь 10.0.2.3 прокси эсвэл LAN сервер бөгөөд аль нь хариулсныг та мэдэж байна.
  • Туннелийн төлөвлөгөө зөвхөн v4 бол зочинд глобал v6 хаяг байхгүй.
  • Хостны туннель буусан үед зочин хөтлөлтөө зогсоох, эсвэл энэ нь түүнээс хэзээ ч хамааралгүй байсныг та одоо мэдэж байна.
  • Зочин өөрт хамаагүй LAN нэвтрүүлгийн траффикийг хардаггүй.

Холбоотой нийтлэлүүд