VPN маршрутын дараагийн үсрэлт: гарц яагаад локал байдлаар хүрэх боломжтой байх ёстой вэ
Маршрутын via хаяг таны илгээж буй холбоос дээр хүрэх боломжтой байх ёстой. Дамжуулалтыг хянаж, хайлтыг шалгаж, траффикийг эзэмшдэг хостоос туршина уу.
VPN сүлжээ рүү чиглэсэн маршрут нь андуурахад хялбар хоёр хаягыг зөөдөг: пакет хүрэхийг оролдож буй очих газрын префикс ба түүнийг нэг алхам ойртуулах дараагийн үсрэлт. LAN хост дээр тэр дараагийн үсрэлт нь таны нэг холбоос дээр үнэхээр хүрч чадах чиглүүлэгч байх ёстой. Алсын VPN хаяг нь таны санаанд буй очих газартай хэр зэрэг цэвэрхэн таарсан ч дараагийн үсрэлт биш юм.
Энэхүү гарын авлага нь ердийн тохиолдлыг хамарна: 192.168.20.0/24 дээрх зөөврийн компьютер, LAN хаяг нь 192.168.20.5 байх VPN гарц, тэр гарцын ард байх алсын сүлжээ 10.70.0.0/24. Доорх бүх команд нь өөрөөр заагаагүй бол та зөөврийн компьютер дээр байна гэж үзнэ.
Хоёр хаяг, нэг маршрут
Төлөвлөсөн бичлэг нь 10.70.0.0/24 via 192.168.20.5. Префикс нь пакет хаашаа явж буйг хэлнэ; via хаяг нь түүнийг тэнд хэн зөөж буйг хэлнэ. Цөм нь заасан интерфэйсээр гарц руугаа хүрч чадахгүй маршрутыг суулгахаас татгалздаг бөгөөд энэ татгалзал нь бүх утга учир юм: хүрэх боломжтой байхын тулд туннель хэрэгтэй дараагийн үсрэлт нь туннелийг барьдаг дараагийн үсрэлт байж чадахгүй.
Тиймээс эхний шалгалт нь «гарц ажиллаж байна уу» биш, харин «гарц энэ холбоос дээр байна уу» юм. Зөөврийн компьютерийн өөрийн дэд сүлжээ, түүний ARP эсвэл хөршийн бичлэг, маршрут дахь интерфэйс бүгд тохирох ёстой. Зөвхөн 10.70.0.0/24 дотор оршиж буй хаяг нь хоёр дахь маршрутын очих газар байж болно, гэхдээ эхнийхийн via хэзээ ч байж чадахгүй.
Дараагийн үсрэлт гарцыг юунд үүрэг болгодог
Зөөврийн компьютер дээр маршрут суулгах нь зөвхөн эхний дамжуулалтыг шийднэ. Дараа нь гарцад өөрийн зам хэрэгтэй: идэвхжсэн дамжуулалт, 10.70.0.0/24 рүү чиглэсэн туннелийн маршрут, хэн ашиглаж болохыг тодорхойлох аливаа хандалтын бодлого. Linux дээр энэ нь net.ipv4.ip_forward=1 ба туннелийн маршрут юм; түүний урд байх галт ханын хувьд дамжуулагдаж буй урсгалыг зөвшөөрөх дүрэм хэрэгтэй.
Буцах чиглэл нь хүмүүсийн мартаж буй хэсэг юм. Алсын талд 192.168.20.0/24 рүү буцах маршрут байх ёстой, эсвэл загвар нь зөөврийн компьютерийн эх үүсвэрийг алсын тал мэддэг зүйл рүү хөрвүүлэх ёстой. Гарцаас ажилладаг ping нь гарц алсын сүлжээнд хүрч чадна гэдгийг батална; зөөврийн компьютерийн пакетууд буцах замд тэсвэрлэх эсэх талаар юу ч хэлэхгүй.
Илгээж буй хостноос хайлтыг шалгана уу
Цөмөөс аль дараагийн үсрэлтийг сонгохыг асууж, хариулт дахь интерфэйсийг уншина уу:
ip route get 10.70.0.10
ip route show 10.70.0.0/24
ip neigh show 192.168.20.5
Хэрэв хайлт нь гарц ба LAN интерфэйсийг мэдээлвэл эхний хэсэг нь төлөвлөсний дагуу тохируулагдсан байна. Хэрэв туннелийн төхөөрөмжийг мэдээлвэл, хүснэгтэд эрт байгаа зүйл илүү тодорхой бөгөөд ялж байна. Хэрэв маршрут огт суулгагдахгүй бол цөм танд гарц хүрэх боломжгүй гэж хэлж байгаа бөгөөд тэр мессеж нь аливаа пакет барихаас илүү ашигтай.
Дараа нь туршилтыг зөв газраас давтана уу. Гарц дээр үүсгэсэн хүсэлт нь гарцын өөрийн эх үүсвэрийн хаягыг ашигладаг бөгөөд энэ нь алга болсон буцах маршрут эсвэл зөвхөн тодорхой эх үүсвэрийг зөвшөөрдөг бодлогыг нууж чадна. ip-route гарын авлага нь очих газрыг, гарцыг болон onlink дарж бичихийг тусгаарладаг бөгөөд дарж бичихийг ашиглахаас өмнө ойлгох нь зүйтэй.
Хүрэх боломжийг хуурамчаар үзүүлэхийн тулд onlink ашиглахгүй байх
onlink нь цөмд гарцын хүрэх боломжийн шалгалтыг алгасаж, гэсэн хэдий ч тийш илгээхийг заадаг. Энэ нь зам үүсгэхгүй, байхгүй хаягт ARP шийдэхгүй, алсын чиглүүлэгчийг таны Ethernet сегмент дээр хариу үйлдэл хийхэд хүргэхгүй. Хариу үйлдэл хийдэг боловч холбогдсон дэд сүлжээнд суудаггүй гарцуудад энэ нь хууль ёсны бөгөөд тайлбарлаагүй алдааг намжаахад ашиглавал энэ нь урхи юм.
Хэрэв маршрут зөвхөн onlink-тай суулгагддаг бол дараагийн асуулт нь гарц яагаад таны бодож байгаа газарт байхгүй байгаа юм. Буруу VLAN, буруу интерфэйс дээрх хоёр дахь хаяг, эсвэл сүүлийн октет дахь үсгийн алдаа энэ бүгдийг үүсгэдэг бөгөөд тэдгээр нь тус бүр траффик урсаж эхлэхэд буцах замыг ч эвддэг.
Цэгээс цэг хүртэлх туннель нь Ethernet биш
Туннелийн төхөөрөмж ARP хийдэггүй бөгөөд ихэвчлэн хөршүүдийн утга учиртай дэд сүлжээгүй байдаг. Түүний маршрутууд нь ихэвчлэн 10.70.0.0/24 dev tun0 шиг харагддаг бөгөөд via огт байхгүй, учир нь түнш нь цорын ганц нөгөө төгсгөлийн цэг юм. LAN загварын via-г тэр хүснэгтэд хуулах нь цөм татгалзаж болох маршрут, эсвэл бүр дор нь түнш хэзээ ч хариу өгдөггүй хаяг руу заасан маршрут үүсгэдэг.
Гарын авлагад хоёр загварыг тусад нь хадгал: LAN маршрут нь хүрэх боломжтой гарцтай, туннелийн маршрут нь интерфэйс ба түнштэй. WireGuard, OpenVPN болон IPsec бүгд бага зэрэг өөр хэлбэртэй байдаг тул нэг хостноос ерөнхийлөхийн оронд бодитоор ашигласан хэлбэрээ тэмдэглэ.
Нэмэх, баталгаажуулах, буцаах
Бүх өөрчлөлт нь гурван команд ба нэг шалгалт бөгөөд яг тэр дарааллаар бичигдэх ёстой:
sudo ip route add 10.70.0.0/24 via 192.168.20.5
ip route get 10.70.0.10
ping -c 3 10.70.0.10
sudo ip route del 10.70.0.0/24 via 192.168.20.5
Замыг баталгаажуул, нэг очих газрыг баталгаажуул, дараа нь өөрчлөлт хостдыг таны урьдчилан тооцоолоогүй байдлаар хүрэх боломжгүй болговол устгах мөрийг бэлэн байлга. Хэрэв маршрут дахин ачаалсны дараа ч үлдэх ёстой бол түүнийг shell профайлд биш, хостдын сүлжээний тохиргоонд хийж, түүнд найдахын өмнө дахин ачааллыг туршина уу. Зөвхөн өөрийг нь нэмсэн shell дотор оршиж буй маршрут бол та хоёр удаа дибаг хийх маршрут юм.