Үүрэн холбооны шугам дээрх хоёр талбай хоёр чиглэлд ижил асуудалтай тулгардаг: аль нь ч хүсээгүй IPv4 холболтыг хүлээж авахгүй тул аль нь ч шууд туннельд серверийн үүрэг гүйцэтгэж чадахгүй. Ажилладаг архитектур голд хүрч болох гуравдагч талыг байрлуулна: талбай бүр гадагш залгаж, гол нь таны зөвшөөрсөн урсгалыг л дамжуулна. Тэр гол нь таны удирддаг маршрутжуулагч эсвэл түншүүдийг танилцуулдаг бүтээгдэхүүн байж болох бөгөөд эдгээр нь нэг зүйл биш. Доорх алхмууд дараагийнх нь түүнээс хамаарахаас өмнө алхам бүр нотолгоо гаргахаар эрэмбэлэгдсэн.

Аль ч талбай руу залгах боломжгүй тул хоёулаа гадагш залгах ёстой

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

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

Урд чинь байгаа талбайн хаягийн асуултад хоёр команд хариулна. Тэдгээрийг талбайн маршрутжуулагч дээр ажиллуул, ард нь байгаа зөөврийн компьютер дээр биш:

ip -4 addr show scope global
ip -6 addr show scope global

Хэн түншүүдийг танилцуулж, хэн пакетуудыг зөөдөг

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

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

Талбай бүрт нэг маршрут, түншийн эзэмшилд

Хаб талбай бүрт нэг туннель, тус бүрийн ард тусдаа LAN угтвар, угтвар бүрт эзэмшигчийг нь нэрлэсэн маршрут хэрэгтэй. Жишээнд хаб нь 10.61.0.1, А талбай нь LAN 10.60.10.0/24-тэй 10.61.0.11, В талбай нь LAN 10.60.20.0/24-тэй 10.61.0.12 байна. Доорх маршрут бүр туннелийн интерфейс биш, угтварыг эзэмшдэг түнш рүү заана:

ip route add 10.60.10.0/24 via 10.61.0.11 dev wg0
ip route add 10.60.20.0/24 via 10.61.0.12 dev wg0
sysctl net.ipv4.ip_forward
ip route get 10.60.20.55 from 10.60.10.77

Дамжуулалт асаалттай байх ёстой, эс бөгөөс пакетууд хаб дээр зогсох бөгөөд шалтгааныг заасан алдаа гарахгүй. Сүүлийн команд бодит асуултад хариулна, учир нь эх сурвалжийг хайлтад оруулан А талбайн LAN-аас В талбайн LAN руу пакет ямар замаар явахыг асуудаг. Туннелийн интерфейсийг нэрлэсэн хайлтыг нотолгоо гэж, өгөгдмөл маршрут руу унасныг нууц биш, дутуу маршрут гэж үз. Дараа нь дамжилтыг санаатай хязгаарла, учир нь түнш бүрийн хооронд дамжуулдаг хаб хоёр талбайг тэгш сүлжээ болгож, чи байна гэж бодсон хандалтын бодлого хүчинтэй байхаа болино.

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

Оператороор дамжуулан зураглал бүрийг амьд байлга

Талбай бүр өөрийн туннелийг эхлүүлдэг бөгөөд тус бүр хөрвүүлэлтийн зураглалыг амьд байлгах ёстой, эс бөгөөс оператор түүнийг мартна. Эхлүүлж буй талын амьд байлгах мессеж нь тэр зураглалыг гар барилтын хооронд хадгална. Зөвшөөрөгдсөн угтварыг хаб хаяг болон алслагдсан LAN-аар хязгаарла, ингэснээр эвдэрсэн түнш өөрийн бус угтвар шаардахгүй:

[Peer]
PublicKey = <hub public key>
Endpoint = 192.0.2.10:51820
AllowedIPs = 10.61.0.1/32, 10.60.20.0/24
PersistentKeepalive = 25

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

Хоёр чиглэлийг нотол, дараа нь сэргэлтийг нотол

Шалгалт нь чиглэлтэй тул A-аас B руу ping нь загварын хагасыг нотолж, буцах замын талаар юу ч хэлэхгүй. Хаб дээр ижил эх сурвалжийг мэддэг хайлтаар хариу замыг шалгаж, дараа нь нөгөө талаас тестийг давтана. Шинэ гар барилтууд ч нотолгоонд орно, учир нь нэг цаг идэвхгүй байсан туннель хуучин зураглалыг туршиж магадгүй:

wg show wg0 latest-handshakes
ping -c 3 10.60.20.55
traceroute -n 10.60.20.55

Дараа нь хүссэн амжилтаа биш, хүлээж буй алдааг туршиж үз. Нэг талбайн шугамыг дахин эхлүүлж, туннель хоёр үзүүрийн аль нэгэнд хүн хүрэхгүйгээр буцаж ирэхийг баталгаажуул, учир нь оператор дахь өөрчлөлт бүрийн дараа оператор шаарддаг загвар дуусаагүй. Үндсэн зам, байгаа бол IPv6 хувилбар, хаб хүрэхгүй үеийн зан төлөвийг тэмдэглэ. Хаб одоо таны хүртээмжийн загварын хэсэг болсон тул үүнийг тасалдалын үеэр нээхийн оронд бичиж үлдээ.

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