keepalive бол дахин холболт биш: өөрийн алдааг таньж сонгоно уу
Нэг пакет зураглалыг амьд байлгана; дахин холболт харилцааг дахин бүтээнэ. Механизмыг алдаатай тааруулж, дараа нь бодит хүсэлтээр шалгана уу.
keepalive болон дахин холболт нэг амьсгаагаар тохируулагддаг ч өөр өөр асуудлыг шийддэг тул нэгийг нь тохируулах нь нөгөөг нь сийрэг засдаг. keepalive нь төлөвийн бичлэгийг амьд байлгах эсвэл хамтрагч хариу өгөхөө болихыг анзаарахын тулд бага хөдөлгөөн илгээдэг. Дахин холболт нь эвдэрсэнийг буулгаж, харилцааг дахин бүтээнэ, түүний дотор түлхүүр, хаяг, маршрут. Алдаатай тохирох механизмыг сонго, товчлуурыг нь аль хэдийн мэддэг механизмыг биш. Үүнийг хоёр асуулт шийднэ: зам үхсэн үү, эсвэл хамтрагчдын хооронд ямар нэг зүйл түүнийг мартаж байна уу?
Зураглал нь асуудал болсон үед
Хэдхэн минутын чимээгүй байдлын дараа л үхдэг туннель ихэвчлэн хамтрагчийг биш, орчуулгын бичлэгийг алддаг. WireGuard-ын PersistentKeepalive NAT болон галт ханын төлөвт зориулж байдаг бөгөөд төслийн өөрийн тэмдэглэл ч үүнийг эрүүл мэндийн шалгалт гэж биш, яг ийм байдлаар дүрсэлдэг. Хэдэн арван секундын завсарлага бичлэгийг дулаан байлгадаг бол секунд тутамд нэг пакет нь батерейны шийдвэр, найдвартай байдлын шийдвэр биш. OpenVPN мөн адил газарт ping болон ping-restart -аар хүрдэг бөгөөд тэд эхлээд чимээгүй байдлыг анзаараад дараа нь түүнд үйлчилдэг.
Эдгээр тохиргоо нь протоколуудын хооронд солигддоггүй. IKEv2-ын үхсэн хамтрагчийн бодлого, OpenVPN-ын ping таймер, WireGuard-ын keepalive нь нэг асуултад гурван өөр синтакс, гурван өөр анхдагч утгаар хариулдаг тул тэдгээрийн хооронд тоо хуулах нь тохируулгын хувцас өмссөн таамаг юм.
Харилцаа алга болсон үед
Хэрэв хамтрагч хаягаа сольж, итгэмжлэл дуусч эсвэл алслагдсан тал дахин ачаалагдвал жижиг пакетууд засвар биш. Дахин холболт төлөвийг дахин бүтээх ёстой : хаяг авах, маршрутуудыг дахин суулгах, түлхүүрүүдийг дахин хэлэлцэх, зарим байршуулалтад хэрэглэгчийг дахин баталгаажуулах.
Хяналтгүй дахин холбогддог клиентүүд гэрчилгээ эсвэл хадгалсан нууцтай байдаг. Хүнээс асуудаг клиент яг хэн ч байхгүй үед бүтэлгүйтдэг бөгөөд энэ нь дахин холболт чухал байсан нөхцөл юм. Энэ нь сарын өмнө гаргасан дизайны шийдвэр, тасалдлын үеэр сольж болох тохиргоо биш.
Аль нь ч юуг батлахгүй
Туннель дахин холбогдож, түлхүүр, маршруттай байж болох ч ард нь байгаа үйлчилгээ зогссон байж болно, мөн keepalive нь сервер нь хэдэн цагийн өмнө алга болсон сессийн зураглалыг нээлттэй байлгаж чадна. Танд үнэхээр чухал зүйл боломжгүй үед хоёр механизм ч амжилт мэдээлж чадна.
Тиймээс тест бодит хүсэлтээр дуусдаг. Танд чухал завсарлагын дараа туннелээр ямар нэг зүйл илгээж, дараа нь таны зохиосон алдааг тусад нь үүсгэ: зураглалын хувьд идэвхгүй үе, дахин холболтын хувьд дахин ачаалах эсвэл хаяг солих.
Шууд хөдөлгөөнийг блоклох нь тусдаа шийдвэр
Дахин холболтын давталт бүрэн эрүүл байж болох ч апп чимээгүйхэн ердийн замыг ашиглаж байвал энэ нь алдаа биш, алдагдал юм. Хэрэв туннелээс гадагш юу ч гарахгүй байх шаардлагатай бол клиентийн тохиргоонд үүнийг тодорхой хэлж, туннелийг буулгаж, юу холбогдсоор байгааг харж батал. Аль ч механизм энэ зан төлөвийг агуулдаггүй бөгөөд дахин оролдлогын ямар ч сахилга бат үүнийг тогтоодоггүй.
Аль механизм ажилласан, дараа нь шинэ хүсэлт амжилттай болсон эсэхийг тэмдэглэ. Дараагийн инженерт хэрэгтэй нь энэ хоёр баримт бөгөөд аль нь ч статусын дүрс дээр харагдахгүй. Клиент дахин холбогдлоо гэсэн логын мөр нь ажилласан хүсэлттэй ижил биш.
Бодлогыг бич, зөвхөн тоог биш
Хосыг нэг өгүүлбэрт хий: идэвхгүй байдлын завсарлага, амьдрах чадварын босго, юу дахин бүтээхийг өдөөдөг , дахин оролдох үед клиент юу хийдэг. Тэр өгүүлбэргүйгээр ирээдүйн тохиолдол бүр keepalive хэт богино уу эсвэл дахин холболт хэт удаан уу гэсэн маргааныг дахин нээдэг.
WireGuard-ын хязгаарлалтын тухай тэмдэглэл keepalive нь завсрын хайрцагт зориулсан тойрч гарах арга бөгөөд ерөнхий амьдрах чадварын дизайн биш гэдгийг сануулдаг. Тэр шийдэж чадахгүй асуудалд хариу болгон давтамжийг нэмэгдүүлэхийн өмнө тэр хязгаарлалтыг уншаарай.