Тохируулж чадахгүй NAT-ийн ард байгаа VPN: юу одоо ч ажилладаг вэ
Портын дамжуулалтгүйгээр ирж буй пакет очих газаргүй. Нүх цоолох, UPnP болон релейнүүд үүнийг өөрчилдөг ч зөвхөн тодорхой NAT зан төлөвт.
Алга болсон туннелийн цэг бүрд нөгөө тал хүрч чадах хаяг, порт хэрэгтэй бөгөөд таны удирддаггүй чиглүүлэгч энэ шаардлагыг биелүүлж чадахгүй байх нийтлэг шалтгаан юм. Сонирхолтой нь заль мэх байгаа нь биш, харин тус бүр нь клиентээс харагдахгүй зураглалын хүснэгтийн шинж чанараас хамаардаг. Тэдгээр шинж чанарын хоёр нь бараг бүгдийг шийддэг: зураглал хэрхэн үүсдэг, дотоод хэсэг хэзээ ч холбоо барьж байгаагүй хаягаас пакет хүлээн авдаг эсэх. Орчныг эдгээр шинж чанараар эрэмбэлбэл тойрч гарах аргууд ардын аман зохиол байхаа болино.
Зураглалын хүснэгт бүгдийг шийддэг
Сүлжээний хаягийн хөрвүүлэлт нь дотоод хаяг, портыг нийтийн хаяг, портын эсрэг бүртгэдэг хүснэгтийг хадгална. Бүртгэлтэй таарч буй хариултууд буцааж хөрвүүлэгдэх ба гаднаас ирж буй, тохирох бүртгэлгүй пакетэд огт хүрэх газар байхгүй. Энэ нэг зан төлөв нь чиглүүлэгчийн ард байгаа сонсогч интернетээс хүрэхгүй байх шалтгааныг тайлбарлана. Мөн чиглэл бүрийн эхний пакет дотоодоос эхлэх ёстойг тайлбарлана.
Хүснэгтийг чиглүүлэгчийн талаас хараарай, тойрч гарах аргууд тодорхой болно: эсвэл ямар нэг зүйл байнгын бүртгэл үүсгэдэг, эсвэл түр бүртгэл үүсгэж шинэ байлгадаг, эсвэл урсгал энэ замаар огт явдаггүй. Өгүүллийн үлдсэн хэсэг нь тэр гурван тохиолдол дарааллаар. Энд юу ч хүснэгтийн бүртгэдэгээс хэтэрсэн нийлүүлэгчийн функцээс хамаарахгүй.
Уулзалтын үйлчилгээ юу хийж чадах, юу чадахгүй вэ
UDP нүх цоолох нь шүүлтүүрийг ялахын оронд гарч буй бүртгэлийг түр нээлт болгон ашигладаг. Хоёр тал уулзалтын үйлчилгээтэй холбогдож, тэр нь нийтийн цэг бүрийг мэдэж, нөгөө талд түүний цэгийг мэдэгддэг. Дараа нь хоёулаа бие бие рүүгээ илгээж, гарч буй пакет бүр хариултыг дотогш оруулах бүртгэлийг үүсгэдэг эсвэл шинэчилдэг. Дараалал нь үүнийг ажиллуулдаг, дараалал нь мөн эмзэг болгодог: нөгөө тал бүртгэлээ үүсгэхээс өмнө илгээсэн тал зүгээр л хаягдана, харин хормын дараах дахин оролдлого амжилттай болдог. Үйлчилгээ өөрөө VPN урсгал дамжуулдаггүй тул түүний цорын ганц хүч нь зохицуулж буй цаг хугацаа.
Зураглалын зан төлөв үлдсэнийг шийдэж, RFC 4787 гурван хэлбэрийг нэрлэдэг: цэгээс хамааралгүй, хаягаас хамааралтай, хаяг ба портоос хамааралтай. Сүүлийн үед талын чиглүүлэх ёстой порт очих газар бүрээр өөрчлөгддөг тул таамаглал найдвартай байхаа болино. Энд технологи өөрийн мухартаа тулдаг, учир нь операторын түвшний NAT болон хатуу корпорацийн галт хана хоёулаа схемд хэрэгтэй урьдчилан таамаглах чадварыг арилгадаг бөгөөд хэчнээн дахин оролдсон ч буцаж ирэхгүй.
Keepalive, дахин ачаалалт ба хөдөлж буй цэг
Цоолсон зам нь сонсогч биш урсгал тул түүн дээр ажиллаж буй бүхэн өөрчлөлтийг давах ёстой. Зураглалыг үечилсэн урсгалаар амьд байлгах, нийтийн цэг хэзээ хөдөлж байгааг анзаарах, чиглүүлэгч дахин ачаалагдсан эсвэл хаяг дахин олгогдсоны дараа дахин тогтоох хэрэгтэй. Mesh VPN бүтээгдэхүүнүүд энэ логикийг өөрийн удирдлагын хавтгайд байрлуулдаг бол энгийн сервер үүнийг танд үлдээдэг. Keepalive нь ижил зураглал амьд байх хугацаанд л тусалдаг бөгөөд гар утасны клиент дээр батерей иддэг тул түрэмгий интервал үнэгүй биш.
Нэг цаг унтсан зөөврийн компьютер ихэвчлэн өөр нийтийн цэг дээр буцаж ирдэг. Замыг дахин тогтоох бүхэн дахин дотроос ажиллах ёстой бөгөөд энэ нь ижил шаардлагыг клиент рүү буцаана.
Дутуу дамжуулалтыг тойрох гурван арга
Эхний арга нь чиглүүлэгчээс бүртгэлийг өөрөө үүсгэхийг хүсдэг, UPnP IGD, NAT-PMP эсвэл PCP-ээр, функц байгаа бөгөөд асаалттай үед. Хоёр дахь нь урсгалыг нийтийн хаягтай релейд өгдөг бөгөөд энэ нь үргэлж ажиллаж, үргэлж зурвасын өргөн дээр өөр итгэлийн хил нэмж зарцуулдаг. Гурав дахь нь чиглэлийг эргүүлнэ: дотоод хост нийтийн сервер рүү гарч буй туннель нээж, бусад бүхэн түүний дотор явна.
[Peer]
PublicKey = 6yGj3kQ2wVb8sTn1pLx4dRc7hZa9mKf2uYe5oNq0iXw=
Endpoint = relay.corp.internal:51820
PersistentKeepalive = 25
AllowedIPs = 10.44.0.0/24
Релейн цэг нь энэ солилцоог клиентийн тохиргоонд харагдахуйц болгоно, энд цэг нь талын өөрийн хаяг биш релей юм. Байнгын keepalive зураглалыг дулаан байлгаж, зөвшөөрөгдсөн угтварууд клиент түүгээр юу илгээж болохыг шийднэ. Дотоод хостоос эсрэг чиглэлийн туннель нь өөр эзэнтэй ижил санаа бөгөөд NAT-д огт өөрчлөлт шаарддаггүй. Гурвын аль нь ч орох шаардлагыг арилгадаг боловч дизайнаараа хүсээгүй урсгалыг хаадаг галт ханыг ялдаггүй, учир нь урсгал одоо ч дотроос эхэлдэг.
Тойрч гарах аргыг чиглүүлэгчийн эзэнтэй тааруул
Хэрэв та чиглүүлэгчийг удирддаг бол статик UDP дамжуулалт нь ямар ч цоолох схемаас аудит хийхэд хялбар бөгөөд таны харж байгаа аргаар бүтэлгүйтдэг. Хэрэв үгүй бол нийлүүлэгч релей эсвэл хостлосон удирдлагын хавтгай санал болгодог эсэх, бодлого ашиглахыг зөвшөөрөх эсэхийг олж мэд. Хоёулаа байхгүй бол үлдэх сонголт нь эсрэг чиглэлийн туннель эсвэл цэг гаднаас хүрэхгүй гэдгийг хүлээн зөвшөөрөх юм. Алийг нь ашигласнаа бүртгэх нь сонсогдохоос илүү чухал, учир нь сонголтууд урсгалыг хэн ажиглаж болох, гуравдагч тал ямар нэг зүйлийг өөрчлөхөд юу болох талаар ялгаатай.
Таны хүрсэн зам шууд байсан уу эсвэл релейгээр дамжсан уу гэдгийг тэмдэглэ, учир нь энэ нэг баримт хоцролт болон алдааны зан төлөвийг хоёуланг нь таамаглана. RFC 4787 нь энэ бүхний доорх зураглалын зан төлөвийн лавлагаа хэвээр байгаа бөгөөд түүний зураглалын хэсгийг унших нь гурван тойрч гарах аргыг дараалан туршихаас хурдан. Хүснэгтэд та аль хувилбарыг сонгосон нь хамаагүй; дараагийн пакет юу хийж болохыг л бүртгэдэг.