Яагаад нэг дэд сүлжээ VPN-ийн өгөгдмөл маршрутыг тойрч байгаа юм
Бүрэн туннелийн дор нэг дэд сүлжээ шууд гарах нь ихэвчлэн урт префикс ялдаг гэсэн үг, гоожсон биш. Хагас өгөгдмөл маршрут, бодлогын дүрэм, профайлын үл хамаарах зүйлсийг шалгана уу.
Та VPN-ийг бүрэн туннельд шилжүүлэхэд ихэнх урсгал дагаж, дараа нь нэг хаяг шууд хариулдаг — принтер, NAS, 10.x дээрх үсрэх хост. Ил тод уншилт нь туннель гоожиж байна гэсэн үг тул та өгөгдмөл маршрутын хэмжүүрийг бууруулдаг ч юу ч өөрчлөгдөхгүй. Тэр бүтэлгүй оролдлого нь сэжүүр: өгөгдмөл маршрут бол нөөц сонголт, шийдвэр биш. Маршрутын хайлт хэмжүүрүүдийг харьцуулахаас өмнө хамгийн урт тохирох префиксийг авдаг, тиймээс /24 нь аль нэгэнд нь ямар ч тоо хавсаргасан ч /0-ийг ялсаар байна. Энэ дараалал тодорхой болмогц гоожилт нь ихэвчлэн хэн нэгэн санаатайгаар суулгасан маршрут, эсвэл клиент хэзээ ч хаахыг зорьж байгаагүй префикс байдаг.
Өгөгдмөл маршрут үнэндээ юу амладаг вэ
0.0.0.0/0 нь IPv4-ийн аливаа очих газартай тэг битийн тодорхой байдалтай тохирдог. Энэ нь хост өөрийн хүснэгтэд илүү сайн дүрслээгүй бүхэнд хүрэх боломжийг олгохын тулд байдаг. 192.168.1.0/24 руу чиглэсэн маршрут 24 тохирох бит агуулдаг тул 192.168.1.40-ийн хувьд хэн нэгэн хэмжүүр, захиргааны зай эсвэл клиентийн нэрлэдэг давуу эрхийн талбарыг харьцуулахаас өмнө ялдаг. Мөн дүрэм Linux FIB, Windows-ийн маршрутын хүснэгт, macOS-ийн ард байх BSD стект үйлчилнэ.
Ердийн LAN дээр энэ зан үйл бол онцлог. Орон нутгийн дэд сүлжээ шууд холбогдсон, туннель таны вэб үзэлтийг зөөж байх хооронд принтер ажилласаар байна, юу ч буруу тохируулагдаагүй. Асуух вэ гэвэл тэр нэг хаяг яагаад шууд явдаг вэ гэхээс илүү, аль хүснэгтийн аль префикс түүнтэй тохирч байгаа, хэн түүнийг тэнд тавьсан бэ гэдэг нь чухал.
Хагас өгөгдмөл маршрутууд, эсвэл өгөгдмөл бичлэг яагаад хөндөгдөөгүй мэт харагддаг вэ
Хамгийн цэвэр жишээ бол redirect-gateway def1 OpenVPN дээрх юм. Өгөгдмөл маршрутыг устгаж орлуулахын оронд 0.0.0.0/1 ба 128.0.0.0/1-ийг нэмдэг. Хамтдаа энэ хос бүх IPv4-ийг хамарч, префикс бүр /0-ээс урт бөгөөд хоёулаа маршрутерын өгөгдмөлийг байранд нь үлдээж ялдаг. Дараа нь маршрутын жагсаалт ажиллуулахад анхны өгөгдмөл маршрут байсаар байна, таны гарц руу чиглэсээр байна; зүгээр л интернэтийн очих газарт хэзээ ч сонгогддоггүй.
WireGuard-ийн wg-quick нь бодлогод суурилсан маршрутжуулалтаар ижил үр дүнд хүрдэг. AllowedIPs 0.0.0.0/0-ийг хамарсан үед өөрийн хүснэгтийг үүсгэж, тэмдэглэсэн пакетуудыг тэнд илгээж, үндсэн хүснэгтийн тэг урттай префиксийг үл харгалздаг дүрэм нэмдэг. Үндсэн хүснэгт өөрийн өгөгдмөл бичлэгийг хадгалж, дүрмүүд интерфейсийн эзэмшдэг урсгалын хувьд эхлээд туннелийн хүснэгтээс асуудаг гэж шийддэг.
Хоёр загварт туннелийн гадна яг нэг маршрут хэрэгтэй: анхны гарцаар VPN серверийн өөрийн хаяг руу хост маршрут. Үүнгүйгээр клиент туннель бүтээдэг пакетуудыг туннелийн дотор зөөхийг оролдож, холболт хэзээ ч дуусахгүй. Тиймээс таны хүснэгтэд туннель бус маршрут байх нь хатуу бүрэн туннелийн профайл дээр ч хэвийн. Эргэлзэх ёстой маршрутууд нь таны үнэхээр санаа тавьдаг очих газруудыг хамардаг маршрутууд юм.
Хэмжүүр тэнцээг, префикс ялагчийг шийднэ
Хэмжүүрүүдийг зөвхөн очих газартай адил сайн тохирдог нэр дэвшигчдийн хооронд харьцуулдаг. Linux дээр ip route get 10.20.5.9 ялагчийг хүснэгтийнх нь хамт хэвлэж, ip route show table all нэр дэвшигчдийг жагсаадаг, үүнд аливаа хагас өгөгдмөл болон дүрэм заасан аливаа хүснэгт багтана. Windows дээр Find-NetRoute -RemoteIPAddress 10.20.5.9 сонгосон маршрут болон эх хаягийг буцааж, Get-NetRoute түүхий хүснэгтийг харуулдаг — гэхдээ үр дүнтэй зардал нь маршрутын хэмжүүр нэмэх интерфейсийн хэмжүүр тул удаан адаптер ялж байгаа мэт санагдах тэнцээг алдаж болно.
Харах зүйлийн ихэнхийг гурван тохиолдол хамардаг:
- Ижил очих газар, /24 ба /0: хэмжүүр юу ч гэсэн /24 префиксийн уртаар ялна.
- Ижил очих газар, өөр хэмжүүртэй хоёр /24: бага үр дүнтэй хэмжүүр ялна.
- Ижил очих газар, хоёр хүснэгт, нэгийг бодлогын дүрэм сонгоно: дүрэм эхлээд хүснэгтийг сонгож, префиксийн харьцуулалт дотор нь болдог.
Гурав дахь тохиолдол бол эдгээр тайлангийн ихэнх нь төгсдөг газар. Linux-ийн ip rule эсвэл Windows-ийн VPN урсгалын шүүлтүүр урсгалыг туннелийн өгөгдмөлийг хэзээ ч агуулаагүй хүснэгт рүү илгээж болох бөгөөд үндсэн хүснэгт бүх хугацаанд төгс харагдана.
Энэ тойролтыг ихэвчлэн хэн эзэмшдэг вэ
Хүснэгтээс биш, профайлаас эхэл. Split-tunnel тохиргоо болон апп тус бүрийн VPN тохиргоо нь нэрлэсэн префиксүүдийг санаатайгаар туннелийн гадна үлдээдэг; нэг хувийн дэд сүлжээг хамгаалж, ерөнхий вэб үзэлтийг шууд явуулдаг ажлын профайл зохион бүтээсэн шигээ ажилладаг бөгөөд түүнийг давж гарах нь түүний хэрэгжүүлэх ёстой бодлогыг эвддэг. Microsoft-ийн VPN маршрутжуулалтын заавар нь албадан туннельдсэн урсгал ба тодорхой үл хамаарах зүйлсийн хооронд ижил шугам тавьдаг нь үүнийг ямар нэгэн зүйлийг засахын өмнөх ашигтай хөндлөн шалгалт болгодог.
Дараа нь үлдэгдлийг хай. Одоо байхгүй интерфейс эсвэл өмнөх сүлжээний хаяг руу заасан маршрут нь док станц, USB адаптер, контейнер гүүрнүүд ирж явахын дараа гарч ирдэг. Нэг удаа устгах нь төгсгөл биш: NetworkManager холболтын профайл, netplan файл, Windows-ийн байнгын маршрутууд дараагийн холболт эсвэл ачаалалтад түүнийг дахин суулгадаг тул ямар нэгэн зүйлийг засахын өмнө түүнийг эзэмшдэг файл эсвэл профайлыг ол.
Дараа нь IPv6-г тусад нь шалга. ip -6 route ба Get-NetRoute -AddressFamily IPv6 нь тусдаа төлөв, тусдаа өгөгдмөл, тусдаа клиентийн зан үйл хадгалдаг. Зөвхөн IPv4-ийн аудит нь уугуул IPv6 замд чимээгүй давуу эрх өгдөг хос стект хост тухай юу ч хэлэхгүй бөгөөд зөвхөн энэ нь клиентийг split-tunnel мэт харагдуулж болно.
Аппликейшний өөрийн урсгалаар батал
Аппликейшн үнэхээр ашигладаг очих газрыг тэмдэглэж, дараа нь тухайн апп холбогддог эх хаягаас ямар зам авч байгааг системээс асуу. ip route get 10.20.5.9 from 192.168.1.40 Linux дээр үүнд хариулдаг; Find-NetRoute -RemoteIPAddress 10.20.5.9 дээр нэмсэн орон нутгийн хаяг Windows дээр үүнийг хийдэг. Үр дүнг профайлын мэдэгдэж буй зүйлтэй харьцуул. Хөтчийн нийтийн IP хуудас нэг протокол дээр нэг очих газрыг шалгадаг бөгөөд гомдол эхлүүлсэн хувийн хаягийн тухай юу ч хэлдэггүй.
Ялгааг тайлбарладаг хамгийн нарийн объектыг засаж янзал. Хэрэв үл хамаарах зүйл зөвшөөрөгдсөн бол префиксийг бичээд үлдье; үгүй бол маршрутыг устга эсвэл өгөгдмөлийн хэмжүүрийг бууруулахын оронд туннелиар дамжуулан тодорхой нарийн маршрут нэм. Хэмжүүр бууруулах нь урт префиксыг давахгүй бөгөөд хоёр /1 маршрут интернэтийн замыг эзэмшиж байхад өгөгдмөлийг засах нь ч юу ч өөрчлөхгүй.
Дараа нь туннелийг дахин холбож, ижил асуултыг давт. Клиентүүд холболт бүрт маршрутуудыг дахин суулгадаг тул дараагийн гар барих хүртэл л үргэлжлэх өөрчлөлт шалгагдаагүй байна. Зам нь зөрүүтэй хэвээр байвал үлдсэн сэжигтнүүд нь бодлогын дүрэм, хоёр дахь хүснэгт эсвэл клиентийн талын шүүлтүүр — өгөгдмөл маршрут биш.
- Апп үнэхээр ашигладаг очих газар болон эх хаягийг нэрлэ.
- Ялсан маршрутыг
ip route getэсвэлFind-NetRouteашиглан хэвлэ. - Интернэтийн замыг /1 хос эсвэл бодлогын хүснэгт аль нь эзэмшдэгийг шалга.
- /0-ээс урт, очих газартай тохирдог префикс бүрийг жагсаа.
- IPv6 шалгалтыг тусад нь давт.
- Үлдсэн маршрутыг түүнийг суулгадаг файл, профайл эсвэл шүүлтүүр рүү нь мөрд.
- Зассан гэж хэлэхийн өмнө дахин холбогдож асуултыг дахин ажиллуул.
Хэрэв бүх долоо нь профайлтай санал нийлж байвал туннель яг зоригдсоны дагуу ажиллаж байгаа бөгөөд засвар нь хэмжүүрт биш, профайлд хамаарна.