WireGuard ડેટા મોકલે છે પણ કંઈ પાછું મળતું નથી: કઈ બાજુ?
વધતો ટ્રાન્સમિટ કાઉન્ટર એ દિશા છે, નિદાન નહીં. કંઈપણ બદલતા પહેલાં નક્કી કરો કે વિનંતી કદી ટનલમાંથી નીકળી જ નથી કે જવાબ કદી પાછો આવ્યો જ નથી.
ટ્રાન્સમિટ કાઉન્ટર વધતા જાય અને રિસીવ કાઉન્ટર શૂન્ય પર રહે, તે દિશા બતાવે છે, નિદાન નહીં. એ જ વાંચન ત્યારે દેખાય છે જ્યારે પીઅરે કદી હેન્ડશેક પૂરો ન કર્યો હોય, જ્યારે ગંતવ્યે ખોટો પીઅર પસંદ કર્યો હોય, જ્યારે દૂરની બાજુ પાસે પાછા જવાનો કોઈ રૂટ ન હોય અને જ્યારે કોઈ ફિલ્ટર ઘર તરફ જતા જવાબને પડતો મૂકે. એમાંથી દરેકની મરામત એક અલગ જગ્યાએ થાય છે.
કામ ટૂંકાવે એવી સરખામણી એ વિનંતી કે જે કદી ટનલમાંથી નીકળી જ નહીં અને જવાબ કે જે કદી પાછો આવ્યો જ નહીં તેની વચ્ચે છે. યોગ્ય ઇન્ટરફેસ પર એક કેપ્ચર બંને વચ્ચે નિર્ણય કરે છે.
કાઉન્ટર વોલ્યુમ બતાવે છે, ખામીની દિશા નહીં
WireGuard ના કાઉન્ટર નોંધે છે કે ઇન્ટરફેસે પીઅરને શું આપ્યું અને તેનાથી શું મેળવ્યું. તે નથી કહેતા કે કયું ગંતવ્ય, કયો પીઅર કે આદાનપ્રદાનનો કયો અડધો ભાગ નિષ્ફળ ગયો. બેકગ્રાઉન્ડ ટ્રાફિક કુલ સંખ્યાને વધુ અજાણ બનાવે છે, કારણ કે કેટલાક બાઇટ્સ કીપઅલાઇવ કે અસંબંધિત ફ્લો હોઈ શકે છે. તેમને ઇન્ટરફેસ સક્રિય હોવાના સંકેત તરીકે વાંચો, પછી તેમને પુરાવા તરીકે ગણવાનું બંધ કરો.
ઉપયોગી પ્રથમ હકીકત એ છે કે હેન્ડશેક વર્તમાન છે કે નહીં. તેના વિના આ પીઅર માટે કંઈપણ એન્ક્રિપ્ટ થયું નથી અને રિસીવ કાઉન્ટરને ખસવાનું કોઈ કારણ નથી.
પીઅર પસંદગી કે જવાબનો રસ્તો: બે સમજૂતી
પ્રથમ સમજૂતી એ છે કે પેકેટ કદી ઇચ્છિત પીઅર સુધી પહોંચ્યું જ નહીં, કારણ કે રૂટ બીજે ક્યાંક ઇશારો કરતો હતો અથવા પીઅરના મંજૂર પ્રીફિક્સ ગંતવ્યને આવરી લેતા ન હતા. બીજી એ છે કે પેકેટ પહોંચ્યું અને જવાબ પાછો ફરી શક્યો નહીં, જે દૂરના છેડે રૂટિંગની સમસ્યા છે. કોષ્ટક દરેક બિંદુએ તમે શું જોશો તેના આધારે બંનેને અલગ પાડે છે.
| Observation | Points to |
|---|---|
| No handshake while transmit climbs | Peer selection or endpoint |
| Handshake current, request visible on the server | Reply path or far-side route |
| Request never visible on the server | Allowed prefixes or local route |
| Both packets visible, nothing reaches the client | Return filter or translation |
કોષ્ટક ઉપરથી વાંચો. હેન્ડશેક ન હોય તો તે તમને કી, એન્ડપોઇન્ટ અને બહારના રસ્તા તરફ મોકલે છે, કારણ કે હજી તપાસવા માટે બીજું કંઈ નથી. સર્વર પર વિનંતી દેખાય તેવા વર્તમાન હેન્ડશેક સાથે સમસ્યા પરત દિશામાં જાય છે, જ્યાં ગંતવ્યનું પોતાનું રૂટ કોષ્ટક નિર્ણય કરે છે. સર્વર પર કદી ન દેખાતી વિનંતી એ પસંદગીની સમસ્યા છે, અને બંને પીઅર પરના મંજૂર પ્રીફિક્સ સૌથી પહેલા સરખાવવાની વસ્તુ છે.
આ ચાર પંક્તિઓમાંથી બે ક્લાઇન્ટ પર અને બે સર્વર પર સુધારાય છે. તમે કઈ જોડમાં છો તે જાણવું એ કામનો મોટો ભાગ છે.
જવાબો ક્યાં અદૃશ્ય થાય છે
જવાબ ગંતવ્ય છોડે છે, સર્વરના ટનલ ઇન્ટરફેસ સુધી પહોંચે છે અને એ પીઅર માટે એન્ક્રિપ્ટ થાય છે જેના મંજૂર સરનામાં ક્લાઇન્ટના આંતરિક સરનામા સાથે મેળ ખાય છે. જો એ મેળ નિષ્ફળ જાય, તો જવાબ ચૂપચાપ કાઢી નાખવામાં આવે છે, જે ક્લાઇન્ટની બાજુથી બરાબર નેટવર્ક ખામી જેવું લાગે છે. જો જવાબ એન્ક્રિપ્ટ થયેલો હોય અને ક્લાઇન્ટનું પોતાનું ફિલ્ટર તેને નકારે, તો લક્ષણ ફરી એ જ રહે છે. બંને કિસ્સામાં કાઉન્ટરને બદલે કેપ્ચરની જરૂર છે.
આ ભૂલનું સૌથી મજબૂત સ્વરૂપ એ સર્વર છે જે ક્લાઇન્ટ માટે પેકેટ ફોરવર્ડ કરે છે પણ ક્લાઇન્ટની આંતરિક શ્રેણી સુધી પાછા જવાનો કોઈ રૂટ ધરાવતું નથી. તે વિનંતી સ્વીકારે છે, જવાબને તેના ડિફોલ્ટ ગેટવે તરફ મોકલે છે, અને ટનલ તેને કદી જોતું નથી. સર્વર પર ઉમેરાયેલો વિશાળ અનુવાદ નિયમ રૂટ સુધારવાને બદલે એ ખામી છુપાવે છે.
એક ગંતવ્યને શરૂઆતથી અંત સુધી ચકાસો
પીઅરની શ્રેણીમાં એક જ ગંતવ્ય પસંદ કરો અને હેન્ડશેક સ્પષ્ટપણે વર્તમાન હોય ત્યારે તેને ચકાસો. નીચેની આજ્ઞાઓ પીઅરની સ્થિતિ, પસંદ કરેલો રૂટ અને આદાનપ્રદાનની બંને બાજુ વાંચે છે. એન્ક્રિપ્ટ થયેલા પેકેટ ખરેખર જે ઇન્ટરફેસ વાપરે છે તેના પર કેપ્ચર ચલાવો.
wg show wg0 latest-handshakes
wg show wg0 transfer
ip route get 10.60.9.5
sudo tcpdump -ni wg0 host 10.60.9.5
ટનલ ઇન્ટરફેસ પર વિનંતી દેખાડે અને પાછું કંઈ ન આવે તેવું કેપ્ચર એ સર્વર બાજુનો જવાબ છે, અને ગંતવ્યનું રૂટ કોષ્ટક એ આગળ જોવાનું સ્થળ છે. જો કંઈ જ ન દેખાય, તો પેકેટ બીજો રસ્તો લીધો છે, તેથી સ્થાનિક રૂટ શંકાસ્પદ છે. બંને કેપ્ચરમાં દેખાતું પણ એપ્લિકેશનમાં પ્રગતિ વિનાનું આદાનપ્રદાન પ્રશ્નને પેકેટના કદ તરફ કે એવા ફિલ્ટર તરફ ખસેડે છે જે ઇન્ટરફેસ આંકડા કદી બતાવતા નથી. પરીક્ષણમાં એક ગંતવ્ય અને એક ક્લાઇન્ટ રાખો, કારણ કે બીજું ચલ પુરાવાને ફરી અંદાજમાં ફેરવે છે.
જો નામ નિષ્ફળ જાય જ્યારે મંજૂર સરનામું કામ કરે, તો જવાબ ટનલમાં નહીં પણ DNS માં છે. જો ફક્ત મોટા સ્થાનાંતરણ અટકે, તો પેકેટનું કદ અલગથી તપાસો.