Апп VPN-ийн хаягт холбогддог ч холболт ердийн үндсэн маршрутаар гарсаар байна. Холболтод юу ч бүтэлгүйтээгүй; энэ нь холболтын хийдэг зүйлийг яг хийсэн. Сокетийг локал хаягт холбох нь цөм толгой хэсэгт оруулах эх хаягийг сонгодог. Энэ нь маршрут суулгадаггүй бөгөөд тэр эх сурвалжийг агуулсан пакетуудыг тодорхой туннель руу илгээх бодлогын дүрэм үүсгэдэггүй.

Энэхүү гарын авлагын үлдсэн хэсэг нь миний ашигладаг шалгалтын дараалал болон ажиглалт бүрийг өгдөг команд юм.

Холболт яг юуг шийддэг

Холболт сокетод локал хаяг оноодог. Дараа нь бодлогын дүрэм тухайн хайлтын унших хүснэгтийг өөрчлөхгүй л бол цөм өөрөөр хийх байсан ижил маршрутын хайлтыг хийдэг.

Тиймээс пакет физик интерфейс дээр VPN-ийн эх хаягтай гарч болно. Нөгөө талд нь сүлжээ тэр замд хэзээ ч хүлээгээгүй хувийн мужаас ирдэг, буцах урсгалд буцах маршрут байхгүй, холболт өлгөгдөх эсвэл дахин тохируулагдана.

Linux IP сокетийн лавлагаа холболтын утга санааг баримтжуулдаг. Маршрутжуулалтын хагас нь ip-rule болон ip-route-д амьдардаг бөгөөд тэдгээр нь ямар нэг шалтгаанаар тусдаа гарын авлага юм.

Хаяг энэ нэрийн орон зайд хамаарахыг баталгаажуулна уу

Таны холбож болох хаяг нь апп ажиллаж буй сүлжээний нэрийн орон зайн доторх интерфейс дээр байх ёстой. Хосын хаяг, гарцын хаяг эсвэл зөвхөн өөр нэрийн орон зайд байдаг хаягийг холбох боломжгүй бөгөөд дуудлага EADDRNOTAVAIL-ээр бүтэлгүйтнэ.

ip -br addr show
ip netns identify <pid>
ss -tanp | grep <port>

Тэдгээрийг апп-тай ижил контекстэд ажиллуулна уу: ижил нэрийн орон зай, боломжтой бол ижил хэрэглэгч. Хуучин net30 диаграм нь таны одоогийн топологи клиентэд аль хаягийг өгсний нотолгоо биш. Бодитоор идэвхтэй байгаа интерфейсийг уншина уу.

Тухайн эх сурвалж болон очих газарт зориулсан хайлтыг уншина уу

Нэг команд холболтын хариулаагүй асуултад хариулна:

ip route get 203.0.113.10 from 10.8.0.2
ip rule show

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

Дараа нь ip rule show ямар нэг дүрэм өөр хүснэгт сонгох байсан эсэхийг хэлнэ. Энд тэргүүлэх чиглэл чухал, учир нь эхний тохирох дүрэм ялж, таны дүрмийн дээр байх бүгдийг барьдаг дүрэм таны дүрмийг үл үзэгдэх болгоно.

Бодлогын дүрмийг зөвхөн энэ нь загвар бол үед суулгана уу

Эх сурвалжид суурилсан маршрутжуулалт бол санаатай загвар, нэг аппын засвар биш. Хэрэв бодлогын эзэн туннелийн дэд сүлжээний урсгал туннелийг ашиглахыг хүсвэл, дүрэм түүний тохиргоонд хамаарна, таны зөөврийн компьютер дээрх нэг удаагийн командонд биш.

Ажиллах хэлбэр нь туннелээр дамжих үндсэн маршруттай тусдаа хүснэгт, дээр нь VPN-ийн эх мужийг тэр хүснэгт рүү илгээх дүрэм юм. Загварт шаардлагатай үл хамаарах зүйлсийг нэмнэ үү, учир нь зөвхөн туннелийн үндсэн маршрут агуулсан хүснэгт локал хэвээр байх ёстой эсвэл физик замаар хүрэх ёстой очих газруудыг ч барина.

ip route add default dev tun0 table 100
ip rule add from 10.8.0.2 table 100 priority 100
ip route get 203.0.113.10 from 10.8.0.2

ip rule del болон ip route flush table 100-оор буцаана уу. Ингэж нэмсэн бүхэн дахин ачаалахад алга болно, хэрэв менежер бичихгүй бол; энэ нь нэгэн зэрэг аюулгүй байдлын шинж чанар бөгөөд цорын ганц хуулбарыг shell-ийн түүхэд хадгалахгүй байх шалтгаан юм.

Гурван ажиглалтаар шалгана уу

Апп хүссэн эх сурвалж, хайлтын сонгосон маршрут, серверийн бодитоор харсан эх сурвалжийг тэмдэглэнэ үү.

Эдгээр гурав зөрчилдөж болох бөгөөд зөрчил бүр өөр газар заана. Туннелийн интерфейс дээрх бичлэг пакет зөв эх сурвалжтай гарсныг нотолно. Физик интерфейс дээрх бичлэг буруу замаар гарсныг нотолно. Замыг эхнээс нь дуустал нотолдог зүйл бол серверийн талын харагдац л юм.

Хэрэв апп төхөөрөмжид холбох сонголт эсвэл апп тус бүрийн маршрутжуулалтын горим санал болговол түүнийг өөр хязгаарлалттай өөр механизм гэж үзнэ үү. Харагдах байдал нь ижил тохиргоо бүгд цөмийн нэг шийдвэрт хүрдэггүй.

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