WireGuard ફક્ત ત્યારે જ કામ કરે જ્યારે સર્વર પહેલાં મોકલે: એન્ડપોઈન્ટની જાણ
દિશા પર આધારિત સફળતાનો સામાન્ય અર્થ એ છે કે એક પીઅરે બીજાનું સરનામું ક્યારેય શીખ્યું નહીં. એન્ડપોઈન્ટની સરખામણી કરો, પછી તપાસો કે ટ્રાન્સલેશન મેપિંગ સમાપ્ત થયું છે કે નહીં.
ટનલ ફક્ત ત્યારે જ કામ કરતી લાગે છે જ્યારે સર્વર પહેલાં કંઈક મોકલે. ક્લાઇન્ટથી શરૂ કરો અને કંઈ થતું નથી, થોડી સેકન્ડ રાહ જુઓ, ફરી પ્રયાસ કરો અને તે સફળ થાય છે. સામાન્ય નિદાન તૂટેલું 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 દ્વારા સુધરે છે.