Сервер эхлээд ямар нэг зүйл илгээсний дараа л туннель ажиллаж байгаа мэт харагдана. Клиентээс эхлэхэд юу ч болохгүй, хэдэн секунд хүлээгээд дахин оролдход амжилттай болно. Ердийн оношилгоо нь эвдэрсэн NAT бөгөөд ердийн оношилгоо буруу. Өөрчлөгдсөн зүйл нь нэг тал нөгөө тал хаана байрлаж байгааг мэдсэн явдал юм.

Төгсгөлийн цэгийн мэдлэг, хүртээмж биш

WireGuard тал хаашаа илгээхээ мэдэхгүй бол гар барилдаж эхлэхгүй. Тохиргоо үүнийг хаяг ба портоос бүрдэх төгсгөлийн цэг хэлбэрээр өгдөг бөгөөд ажиллаж буй төлөв одоо итгэж буй төгсгөлийн цэгийг хянадаг.

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

Тал төгсгөлийн цэгийг хэрхэн мэддэг вэ

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

wg-ийн хэрэгслийн баримт бичиг тэр шинэчлэлийг тайлбарладаг бөгөөд үүнийг тойруулан зохион бүтээх гэж байгаа бол нэг удаа унших нь зүйтэй.

Төлөвтэй орчуулга өөрийн чиглэлийг нэмдэг

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

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

Үнэхээр хүсэж буй чиглэлээ тохируулна уу

Холболтыг эхлүүлэх ёстой клиентэд серверийн төгсгөлийн цэгийг клиентийн талуудын хэсэгт байрлуулж, тэнд нь үлдээ. Сервер эхлээд илгээнэ гэдэгт найдах нь тайван сүлжээнд өөрчлөгдөх урсгалын дарааллын санамсаргүй байдалд найдах юм. Тохиргоо нь зорьсон чиглэлээ зарлах ёстой, түүнийг нээх ёсгүй.

Орчуулгын ард байгаа, хүртээмжтэй байх ёстой талд нь тухайн талд байнгын keepalive идэвхжүүл. 25 секунд тутамд keepalive нь ердийн эхлэх утга бөгөөд түүний зорилго нь туннелийг шалгах биш, зураглалыг нээлттэй байлгах юм. Үүнийг зөөх нэг талыг сонго, учир нь хоёр талд идэвхжүүлбэл үр дүнг сайжруулахгүйгээр урсгал болон логын чимээ хоёр дахин нэмэгдэнэ.

Төлөвийг өдөөгчийн өмнө болон дараа харьцуул

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

wg show
conntrack -L -p udp 2>/dev/null | grep 51820
tcpdump -ni any -c 20 'udp port 51820'
ip route get 198.51.100.7

Төгсгөлийн цэгийн багана болон орчуулгын бичлэгийг хамт тэмдэглэ. Төгсгөлийн цэггүй тал болон зураглалгүй гарц нь хоёр өөр гэмтэл юм. Тэдгээрийн зөвхөн нэгийг нь keepalive засна.

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