VPN болон гэрийн LAN нэг дэд сүлжээнд: эхлээд маршрутыг шалгаарай
Хоёр адаптер хоёулаа 192.168.1.0/24-ийг шаардаж, зөвхөн нэг маршрут ялна. Дахин дугаарлах эсвэл DNS-ийг буруутгахаас өмнө адаптерын жагсаалт, ялсан маршрут, буцах замыг шалгаарай.
Та оффисын VPN-д холбогдоход тавиурын дүрс ногоон болж, интранет ачаалагдаж, хоёр метрийн зайд байгаа принтер хариу өгөхөө болино. Өглөө ажиллаж байсан хуваалцсан хавтас мөн машинд хугацаа хэтэрч, ямар ч лог принтерийг дурдахгүй. Эхний хариу үйлдэл нь DNS, учир нь шийдэгдэхгүй нэр байхгүй нэр шиг харагддаг, гэхдээ асуудал хаяг дээр байна: хоёр адаптер одоо 192.168.1.0/24-ийг шаардаж байгаа бөгөөд энэ угтварыг зөвхөн нэг маршрут авч чадна. Энэ дарааллаар шалгаарай, тэгвэл ямар нэгэн зүйл өөрчлөхөөс өмнө аль адаптер авсныг харах болно.
Шинжээс эхлээрэй, туннелээс биш
Шинж нь хүрээ юм. Хэрэв интранет ажиллаж, бүх локал төхөөрөмж бүтэлгүйтвэл туннель эрүүл, локал зам биш. Хэрэв локал төхөөрөмжүүд ажиллаж, интранет бүтэлгүйтвэл эсрэгээрээ. Нэг хостос бусад нь бүгд ажиллаж байвал хоёр талд байдаг нэг хаягийг харж байна.
Ямар нэг тохиргоог хүрэхээс өмнө нэг локал, нэг алсын хаягийг бичиж аваарай. „Принтер“-ийг шалгах боломжгүй; 192.168.1.40-ийг шалгаж болно. Энэ нэг алхам нь энэ асуудалд хамгийн их үрэгддэг нэг цагийг, өөрөөр хэлбэл маршрутлалтын шийдвэрийн төлөө DNS тохиргоог дахин бичихийг сэргийлнэ.
1-р алхам: угтварыг шаардаж буй хоёр адаптерыг хараарай
Сүлжээний холболт (ncpa.cpl) нээж, хоёр адаптерыг зэрэгцүүлэн уншина. Ethernet адаптер 192.168.1.50/24-ийг 192.168.1.1 гарцаар харуулна. VPN адаптер серверийн илгээсэн 192.168.1.201/24-ийг харуулна. Хоёулаа хууль ёсны, хоёулаа угтварыг on-link гэж үздэг бөгөөд стек түүнд нэг л маршрут хадгална.
Get-NetIPAddress -AddressFamily IPv4 хаягуудыг жагсааж, Get-NetIPInterface | Sort-Object InterfaceMetric стек тэдгээрийг ямар дарааллаар ашиглахыг харуулна. Тэр метрикийн багана бол яг одоо унших шийдвэр, тиймээс тоонуудыг цээжлэх гэж оролдохгүй бичиж аваарай.
DNS онолыг хямдхан няцаагаарай: Resolve-DnsName printer.office.lan өчигдрийн адил хаягийг буцаана. Нэр шийдэгдсэн; дараа нь пакет буруу адаптераар гарсан. Энд хоёр минут шийдэгчийн тохиргоонд хагас өдөр хэмнэнэ.
2-р алхам: үнэхээр ялсан маршрутыг уншина
Find-NetRoute -RemoteIPAddress 192.168.1.40 стек тухайн хаягт ашиглах интерфэйс, дараагийн үсрэлт, эх сурвалжийг хэвлэнэ. Энэ гаралтыг зөвлөмж биш, хариулт гэж үзээрэй. Аль бичлэг хэр их хожигдсоныг харахыг хүсвэл route print -4 бүх хүснэгтийг өгнө.
Тодорхой байдал санааг ялна. Илгээсэн 192.168.0.0/25 локал 192.168.0.0/24-ийг ялна, учир нь угтвар урт, тиймээс 192.168.0.0-ээс 192.168.0.127 хүртэл туннелээр гарч, дээд хагас нь локал хэвээр үлдэнэ. Хагас LAN алдааны мэдэгдэлгүй алга болох нь тэр хүснэгтийн зөв зан төлөв юм.
tracert -d 192.168.1.40 үүнийг хүснэгтийн гаднаас батална: хэрэв эхний үсрэлт өөрийн таны маршрутлагч биш туннелийн хаяг бол маршрут бол бүх түүх. Linux дээр ижил асуулт ip route get 192.168.1.40, энэ нь эх хаяг болон төхөөрөмжийг нэг мөрөнд хэвлэнэ. Хариулт tun0 гэж нэрлэвэл хөтөч рүү харахаа болино.
3-р алхам: клиентийг буруутгахаас өмнө буцах замыг шалгаарай
Зөв урагшлах маршрут ч алс тал хариу өгч чадахгүй бол бүтэлгүйтнэ. Клиентийн LAN-д туннелээр хүрэхэд тэр LAN-ийн гарц туннелийн сан хаана байгааг мэдэх ёстой: тэр маршрутлагч дээр ip route add 10.8.0.0/24 via 192.168.1.12, мөн клиентүүд буцах замыг мэдэхийн тулд серверээс push „route 192.168.1.0 255.255.255.0“.
Эхний бичлэггүй бол хариулт зорилтоос өөрийн анхдагч гарц руу гарч, тэр нь хувийн хаягийг үйлчилгээ үзүүлэгчид дамжуулаад хаядаг. Шинж нь нэг чиглэлтэй бөгөөд амархан буруу уншигддаг: хүсэлтүүд tun0 дээр харагдана, хариултууд хэзээ ч үгүй.
VPN хост дээрх masquerade дүрэм тэр статик маршрутын хэрэгцээг арилгана: iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE. Энэ нь жинхэнэ эх хаягуудыг ч нуудаг, энэ нь дараагийн лог асуулт бүрийг хүндрүүлнэ. Буруу анхдагч гарцтай зорилтот хост мөн адил чимээгүй байдлыг үүсгэдэг, хамгийн сайн тохиолдолд ICMP дахин чиглүүлэлт, ердийн тохиолдолд хар нүх, тиймээс бичлэг хоёр төгсгөлд хийгдэх ёстой.
4-р алхам: хамт амьдарч чадах засварыг сонгоорой
Үүнд таван засвар хэрэглэгддэг бөгөөд тэдгээр нь солигдохгүй. Аль команд богино вэ гэхээс илүү нэгэн зэрэг юу хүртээмжтэй байх ёстой вэ гэдгээр сонгоорой.
| Repair | What it fixes | What it costs |
|---|---|---|
| Flip interface metrics | Alternating access: office now, home later, never both | Get-NetAdapter -Name "Ethernet 2" | Set-NetIPInterface -InterfaceMetric 21; set the VPN adapter back to 5000. A client that rewrites metrics on connect defeats it |
| Renumber one side | Every host reachable in both directions | DHCP reservations, printer queues, firewall rules and hard-coded addresses all move |
| Narrow the advertised prefix | Remote hosts really live in the upper half | Breaks the day someone adds a host below the cut |
| Translate with client-nat | Both address plans stay untouched | Stateless per-client mapping, unreadable logs, anything embedding addresses breaks |
| Publish one service with DNAT | One service on the VPN host reachable from the LAN | Both address plans stay; source addresses and reverse lookups stop being meaningful |
Метрикийн үзүүлэлт нь хямд сонголт бөгөөд хүмүүс хамгийн түрүүнд түүн рүү тэмүүлдэг. Өөрчлөлт интерфэйсэд хамаарах тул туннель босоо байх үед ажиллана, мөн түүний байр нь клиентийн дэргэдэх скрипт дотор, мартах shell дотор биш. Энэ нь нэг хаяг руу хоёр сүлжээнд нэгэн зэрэг хандах боломж олгохгүй бөгөөд энэ хязгаар нь бусад бүгдийг хүснэгтийн доош илгээдэг.
Гэрийн LAN-ийг дахин дугаарлах 10.10.0.0/24 руу бол цэвэр шийдэл: нэг DHCP түрээсийн шинэчлэл дээр хуучин мужийг дурдсан захиалга, принтерийн дараалал, хатуу кодлосон хаягууд. Оффисын талыг дахин дугаарлах нь ихэвчлэн таны шийдвэр биш. IPv6 хоёр сүлжээнд байвал мөргөлдөөнийг бүрэн арилгана, санахад хялбар зүйлийн оронд fd00::/8-аас өвөрмөц локал угтвар ашиглаж, гэхдээ програмыг TCP-ээр туршаарай, ping-ээр биш, учир нь ICMP ажиллаж байхад үйлчилгээ ажиллахгүй байж болно.
OpenVPN-ийн өөрийн орчуулгын сонголт бол сүүлчийн арга, серверээс клиентэд тохирсон хавтасны бичлэг рүү илгээгддэг. Сонголтын нэрийн дараа дөрвөн параметр авна — чиглэл, сүлжээ, маск, хочийн нэр — хочийн нэр заавал: push "route 192.168.2.0 255.255.255.0" болон push "client-nat dnat 192.168.2.0 255.255.255.0 192.168.1.0". Сүлжээ ба маск нь клиент хардаг муж (192.168.2.0/24), хочийн нэр нь серверийн талын жинхэнэ оффисын муж (192.168.1.0/24), илгээсэн маршрут нь тэр харагдах мужийг хүртээмжтэй болгоно. Тэгэхэд оффис тэр клиентэд 192.168.2.x-ийн дор харагдана. Буулгалтыг профайлд баримтжуулаарай, эс бөгөөс дараагийн хүн үүнийг маршрутлалтын алдаа гэж засварлана.
Нэг үйлчилгээ нийтлэх нь орчуулгын нарийн хувилбар бөгөөд OpenVPN-ийн сонголт огт хэрэггүй. VPN хост дээрх DNAT дүрэм нэг портыг дахин нийтэлдэг, тиймээс LAN өөрийн хаягуудыг хадгалж, өөрөө аль хэдийн мэддэг хост хаягаар үйлчилгээнд хүрнэ. Өртөг нь ердийн: үйлчилгээ VPN хостыг эх сурвалж гэж хардаг тул клиент тус бүрийн лог, урвуу хайлт утгаа алдана. Энэ нь нэг принтерийн дараалал эсвэл нэг админ хуудсыг хамардаг, хоёр талын хост бие биедээ хүрэхийг биш.
Юу ажиллахгүй хэвээр байх, юуг бичих
Нэвтрүүлэлт нь маршрутлагдсан туннелээр дамждаггүй. DLNA, UPnP, NetBIOS хөтлөлт, Wake-on-LAN нь tun төхөөрөмж тээдэггүй нэвтрүүлэлт эсвэл олон дамжуулалтаас хамаардаг тул ямар ч маршрут илрүүлэлтийг засахгүй. dev tap-аар гүүр татах нь сегментийг өргөтгөж, түүнтэй хамт DHCP нэвтрүүлэлт, ARP болон бусад илрүүлэлтийн пакетыг өргөтгөнө; алс маршрутлагчийн LAN талын хаягт route 192.168.2.1 255.255.255.255 гэх мэт unicast хост маршрутыг илүүд үзээрэй.
Нэг зам дээр хоёулаа 192.168.1.1 ашигладаг хоёр маршрутлагч нь нэг асуудлын гэр бүлд хамаарна: локал хаяг үргэлж ялдаг тул нэг LAN нүүх хүртэл алс маршрутлагчийн хуудас хүртээмжгүй хэвээр байна. Хоёр дахь адаптер нэмэх нь хоёр тохиолдлын аль нэгэнд ч юу ч өөрчлөхгүй.
Ямар нэг зүйлийг засахаас өмнө нотолгоог бичиж аваарай: ip route get эсвэл Find-NetRoute, тухайн хаяг руу ping -c 3, traceroute, клиент дээр tcpdump -ni tun0 icmp, дараа нь сервер дээр маршрутлалтын хүснэгт болон NAT тоолуур. Нэг чиглэлд ажиллаж нөгөөд үхдэг ping нь туннелийг биш буцах замыг заана, яг энэ ялгаа нь дээрх засваруудын алийг нь танд үнэхээр хэрэгтэйг шийднэ.