Tuneli inaonekana kufanya kazi tu baada ya seva kutuma kitu kwanza. Anza kutoka kwa mteja na hakuna kinachotokea, subiri sekunde chache, jaribu tena na inafanikiwa. Utambuzi wa kawaida ni NAT iliyovunjika, na utambuzi wa kawaida ni makosa. Kilichobadilika ni kwamba upande mmoja ulijifunza mwingine anaishi wapi.

Ujuzi wa ncha ya mwisho, sio ufikikaji

Upande wa WireGuard hautaanza kupeana mikono hadi ujue wapi kupeleka. Usanidi hutoa hiyo kama ncha ya mwisho ya anwani na bandari, na hali inayoendesha inafuata ncha ya mwisho inayoiamini sasa.

wg show huchapisha pande zote mbili za picha hiyo, na upande usio na ncha ya mwisho kwenye matokeo hauwezi kuanza chochote, hata ufunguo wake wa umma na viambishi vilivyoruhusiwa vikiwa sahihi kiasi gani. Linganisha mtazamo wa mteja na wa seva kabla ya kubadilisha kanuni yoyote, kwa sababu wawili hao mara nyingi hawakubaliani nani anajua nini.

Jinsi upande unavyojifunza ncha ya mwisho

WireGuard ni kimya kwa makusudi. Wakati pakiti iliyothibitishwa kwa usahihi inapofika kutoka anwani ambayo upande haukuitarajia, utekelezaji husasisha ncha ya mwisho ya upande huo kwenda chanzo kipya, na ndivyo uzururaji unavyofanya kazi kwenye kompyuta ya mkononi inayobadilisha mitandao. Tabia hiyo inaeleza utegemezi wa mwelekeo: ikiwa seva inatuma kwanza na pakiti yake inamfikia mteja, mteja hujifunza anwani ya sasa ya seva na anaweza kujibu. Hadi wakati huo hana mahali pa kutuma. Utaratibu ni uzururaji uliothibitishwa na sio njia ya mkato ya kuamini matumizi ya kwanza, kwa sababu pakiti ilibidi iwe halali kabla ncha ya mwisho haijahama.

Nyaraka za zana za wg zinaeleza sasisho hilo, na inafaa kusoma mara moja ikiwa utabuni kuzunguka hilo.

Tafsiri yenye hali huongeza mwelekeo wake

Ambapo UDP hupitia lango linalotafsiri, lango huunda hali kwa pakiti ya kwanza inayoiona. RFC 4787 inaeleza tabia hiyo na muda wa kumalizika ambao hatimaye huondoa ramani. Ramani isiyotumika inaisha muda, na pakiti inayoingia kutoka upande wa mbali hupigwa chini na lango kabla ya kufikia mwenyeji. Tuneli iliyofanya kazi asubuhi yote huacha kujibu mchana kwa sababu hii hasa.

Huu ni utaratibu wa pili na huru unaozalisha dalili hiyo hiyo ya mwelekeo. Ujuzi wa ncha ya mwisho na hali ya tafsiri vyote viwili lazima viwe sahihi, na kurekebisha kimoja hakurekebishi kingine.

Sanidi mwelekeo unaoutaka kweli

Kwa mteja ambaye lazima aanzishe muunganisho, weka ncha ya mwisho ya seva katika sehemu ya wenza wa mteja na uiache hapo. Kutegemea seva itume kwanza ni kutegemea bahati mbaya katika mpangilio wa trafiki ambayo itabadilika katika mtandao tulivu. Usanidi unapaswa kutangaza mwelekeo unaokusudiwa, sio kuugundua.

Kwa upande ulio nyuma ya tafsiri ambao lazima uendelee kufikika, washa keepalive ya kudumu upande huo. Keepalive kila sekunde 25 ni thamani ya kawaida ya kuanzia, na lengo lake ni kuweka ramani wazi badala ya kujaribu tuneli. Chagua upande mmoja kuibeba, kwa sababu kuiwasha pande zote mbili huongeza maradufu trafiki na kelele za kumbukumbu bila kuboresha matokeo.

Linganisha hali kabla na baada ya kichocheo

Nasa mitazamo miwili wakati inashindwa, kisha tena baada ya seva kutuma. Amri ya kwanza inaonyesha ncha za mwisho na umri wa kupeana mikono. Ya pili inaonyesha kama kuna ingizo la tafsiri kwa bandari. Unasaji unaonyesha ni mwelekeo upi ulivuka waya kweli, na ukaguzi wa njia unathibitisha kuwa mteja hatumi trafiki hiyo mahali pengine kabisa.

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

Andika safu ya ncha ya mwisho na ingizo la tafsiri pamoja. Upande usio na ncha ya mwisho na lango lisilo na ramani ni hitilafu mbili tofauti. Moja tu kati yao hurekebishwa na keepalive.

Makala zinazohusiana