Нэг ажлын ширээн дээрх хоёр VPN клиент: юу мөргөлдөж, юу ажилладаг
Хоёр клиент анхдагч маршрут, нэр шийдэгч болон шүүлтүүрийн драйверуудын төлөө тэмцдэг. Гарах замыг хэн эзэмшиж байгааг тэмдэглээд, дараа нь хоёр дахь туннелийг VM эсвэл netns-ээр тусгаарла.
Таны хоёр дахь клиент холбогдож, эхнийхийн нөөц шийдэгдэхээ болиод, бичигт ажлын VPN хувийн VPN-ийг эвдсэн гэж бичсэн байна. Гэмтлийн утгаар юу ч эвдээгүй: хоёр клиент өөрсдийн зориулалтаар ажилласан, машин зөвхөн нэг маршрутын хүснэгттэй. Мөргөлдөөн нь клиент бүр өөрийн гэж үздэг дөрвөн нөөцийн тухай. Тэдгээрийг дарааллаар нь шийдвэл засвар нь ихэвчлэн засвар биш, дизайны сонголт болдог.
1-р алхам: гарах замыг аль клиент эзэмшиж байгааг ол
Ямар нэгэн зүйл өөрчлөхөөс өмнө одоогийн гарах шийдвэрийг уншина уу. Нийтийн хаяг руу маршрут хайх нь пакет яг одоо аль интерфэйс, дараагийн алхмыг ашиглахыг хэлдэг бөгөөд энэ нь хэн ялсан гэдгийн хариулт юм. Үүнийг клиентүүдийн үүсгэсэн интерфэйсийн нэртэй харьцуул; тэдгээр нь ихэвчлэн бүтээгдэхүүн эсвэл протоколын нэрийг агуулдаг. Хайлт таны хүлээгээгүй туннель руу зааж байвал та мөргөлдөөнийг аль хэдийн олсон байна.
ip route get 1.1.1.1
ip route show default
route print
Зарим клиент анхдагч маршрутыг огт орлуулдаггүй; тэд хоёр хагас нэмдэг, нэг нь хаягийн орон зайн доод хагаст, нөгөө нь дээд хагаст, тэд хамтдаа бүх зүйлийг хамардаг. Энэ нь анхны анхдагч маршрутыг харагдахуйц үлдээж, гараар засахыг зөв мэт харагдуулдаг ч урсгал туннелиар гарсаар байна. Зөвхөн анхдагч бичлэг байгаа эсэхийг биш, метрик болон префиксийн уртыг унш.
Хоёр клиент ижил метрикээр ижил префиксийг шаардвал зогсоо. Цөм нэгийг сонгох ба нөгөө нь юу ч зөөхгүйгээр холбогдсон мэт харагдана.
2-р алхам: нэр шийдэгч болон давхцаж буй префиксүүдийг шалга
DNS бол хоёр дахь мөргөлдөөн бөгөөд өвөрмөц шинж тэмдэг өгдөг: хаягууд ажиллаж байхад нэрүүд бүтэлгүйтдэг. Клиент бүр өөрийн шийдэгчийг тулгадаг бөгөөд дараагийн асуулгад хамгийн сүүлд бичсэн нь ялдаг. Клиентийн тохиргооны хуудсыг уншихын оронд нэр шийдэгч үйлчилгээнээс холбоо тус бүрт юу ашигладагыг асуу.
resolvectl status
Get-DnsClientServerAddress
dig +short intranet.corp.example
Дараа нь хоёр сүлжээний ашигладаг хувийн префиксүүдийг харьцуул. Хэрэв хоёр тал нэг мужаас хуваарилж байвал клиентийн талын ямар ч тохиргоо үүнийг засахгүй, учир нь машин аль 10.0.0.0/8 очих газрыг аль туннельд хамаарахыг хэлж чадахгүй. Нэг талыг дахин дугаарлах эсвэл орчуулах шаардлагатай бөгөөд энэ нь тохиргооны өөрчлөлт биш, сүлжээний эзэмшигчидтэй хийх яриа юм. Давхцал бол «дизайныг өөрчлөх ёстой» гэсэн шударга хариулт байдаг цорын ганц мөргөлдөөн.
Префиксүүд давхцаж байвал энд зогсоо. Энэ жагсаалтын дараах бүхэн тэдгээр давхцдаггүй гэж үздэг.
3-р алхам: тогтвортой тусгаарлах загвар сонго
Найдвартай загварууд нэг маршрутын хүснэгтийн эсрэг хоёр клиент ажиллуулахаас зайлсхийдэг. хоёр хувийн сүлжээнд хүрдэг split-tunnel бодлоготой нэг клиент хамгийн энгийн, очих газрууд давхцахгүй бөгөөд бодлогын эзэн зөвшөөрвөл. Виртуал машин эсвэл сүлжээний нэрийн орон зай дараагийн алхам, учир нь тус бүр өөрийн хүснэгт, өөрийн шийдэгчтэй болдог.
sudo ip netns add vpn2
sudo ip netns exec vpn2 ip link show
sudo ip netns exec vpn2 curl -sI https://intranet.corp.example/
Нэрийн орон зай нь хоёр дахь үйлдлийн системгүйгээр виртуал машинтай ижил тусгаарлалт өгдөг, гэхдээ бүдүүн ирмэгтэй: туннелийн төхөөрөмжийг түүн рүү зөөх ёстой, програмыг дотор нь эхлүүлэх ёстой. Удирдлагатай ажлын клиентийн хажууд хувийн VPN-д тусдаа физик төхөөрөмж ихэвчлэн хамгийн бага гайхмаар сонголт. Нэг туннелийг нөгөөгийн дотор давхарлах нь тусгаарлах загвар биш; дотоод төгсгөлийн цэг гадаад туннелиар хүртээмжтэй хэвээр байх ёстой бөгөөд энэ зохион байгуулалт дээрээс MTU болон сааталтай холбоотой асуудал нэмдэг.
Нэг загвар сонгоод яагаад гэдгийг бич. Нэг програмын нэрийн орон зайг бусдын split-tunnel-тэй холих нь анхны мөргөлдөөнийг дибаг хийхэд хүндрэлтэй хэлбэрээр дахин бий болгодог.
4-р алхам: хоёр сүлжээг нэг сессээс шалга
Хувийн сүлжээ бүр дээр нэг нөөцийг програм үнэхээр ажилладаг орчноос турш, програм нэрийн орон зай дотор ажиллаж байвал өөрийн бүрхүүлээс биш. Гарах интерфэйс, шийдэгдсэн хаяг, хариу кодыг хамт шалга, учир нь гурвын нэг дэх амжилт бусдын бүтэлгүйтлийг нууж чадна. Дахин ачаалсны дараа давтаж шалга, учир нь клиентүүдийн эхлэх дараалал хэн ялзарыг тодорхойлдог. Яг тэр дарааллыг хүмүүс тэмдэглэхээ мартдаг.
curl -sI https://intranet.corp.example/
curl -sI https://files.personal.example/
ip route get 10.20.30.40
Сүлжээ бүрийн клиентийн хувилбар, интерфэйс, нэр шийдэгчийн төлөв, префиксүүдийг тэмдэглэ. Клиент шинэчлэгдэж маршрутын зан төлөвөө өөрчлөхөд тэр тэмдэглэл таван минутын засвар ба дахин бүтээх хоорондын ялгаа болно. Дараагийн хүн аль туннель түрүүлж боссныг таны ой санамжаас хуваалцахгүй.
Анхдагч маршрутыг эзэмшдэг интерфэйс, нэр бүрийн ашигладаг шийдэгч, хоёр дахь туннелийг тусгаарлах загвар, дахин ачаалсны дараа сүлжээ бүрийн нэг хүсэлтийн үр дүнг нэрлэж чадвал жагсаалт бүрэн болно. Үүнээс бага бүхэн өнөөдөр санамсаргүй ажиллаж байгаа тохиргоо юм.