பிணைய பெயர்வெளியில் WireGuard: சாக்கெட் ஏன் பின்தங்கியது
இடைமுகத்தை நகர்த்துவதால் மறையாக்கப்பட்ட UDP சாக்கெட் நகராது; அது சாதனம் உருவாக்கப்பட்ட பெயர்வெளியிலேயே தங்கும். அதை இலக்கில் உருவாக்குங்கள்.
நீங்கள் விரும்பிய பெயர்வெளியில் இடைமுகம் பட்டியலிடப்பட்டுள்ளது, பயன்பாடு அதனுடன் இணைக்கப்பட்டுள்ளது, இருப்பினும் சுரங்கப் போக்குவரத்து ஒருபோதும் தெரியவில்லை. இது ஒரு பெயர்வெளியில் உருவாக்கி மற்றொன்றிற்கு நகர்த்தப்பட்ட Linux கர்னலின் WireGuard சாதனத்தின் அடையாளம்: இடைமுகம் நகர்ந்தது, அதன் மறையாக்கப்பட்ட UDP சாக்கெட் நகரவில்லை. உள்ளேயுள்ள போக்குவரத்துக்கு முக்கியத்துவம் வருவதற்கு முன் இரண்டும் சரியான இடத்தில் இருக்க வேண்டும். ஒன்றல்ல இரண்டு சூழல்களைப் பார்க்க வேண்டும் என்று தெரிந்தால் சரிபார்ப்பு விரைவாகும்.
அறிகுறி: சரியான பெயர்வெளி, ஆனால் பாக்கெட்டுகள் இல்லை
பெயர்வெளிக்குள் சுரங்கம் ஆரோக்கியமாகத் தெரிகிறது. சாதனம் உள்ளது, முகவரிகள் ஒதுக்கப்பட்டுள்ளன, சக சாதன அமைப்பும் உள்ளது. வெளியே, நீங்கள் கவனித்த இடைமுகத்தில் எதிர்பார்க்கப்பட்ட UDP பரிமாற்றம் ஒருபோதும் தெரியவில்லை, எதிர்ப் பக்கம் கைக்குலுக்கல் நடகவில்லை என்று தெரிவிக்கிறது.
காரணம், பயன்பாட்டின் உள்ளேயுள்ள பாக்கெட்டுகள் நகர்த்தப்பட்ட சாதனத்தை அடைகின்றன, சாதனம் அவற்றை வேறொரு பிணைச் சூழலுக்குச் சொந்தமான சாக்கெட் வழியாக அனுப்ப முயல்கிறது. அது பயன்படுத்தும் அடிப்படை வழியும் அதற்குப் பொருந்தும் ஒவ்வொரு ஃபயர்வால் விதியும் சாதனம் உருவாக்கப்பட்ட பெயர்வெளியில் உள்ளவையே.
இது நகர்த்தலின் குறையோ சக சாதனத்தின் தவறான அமைப்போ அல்ல. கர்னல் செயலாக்கம் அப்படித்தான் செயல்படுகிறது, WireGuard-க்கான பெயர்வெளி ஆவணங்கள் உருவாக்கும் விதியை நேரடியாக விளக்குகின்றன.
சாக்கெட்டுக்கு பிறந்த இடம் இருப்பது ஏன்
WireGuard சாதனத்திற்கு அதன் மறையாக்கப்பட்ட இடமாற்றத்திற்கு ஒரு UDP சாக்கெட் உள்ளது, அந்த சாக்கெட் சாதனம் உருவாக்கப்படும் பெயர்வெளியிலேயே திறக்கப்படுகிறது. இணைப்பு கட்டளையால் இடைமுகத்தை நகர்த்தினால் தெரியும் சாதனம் நகரும், ஆனால் இடமாற்றம் தொடங்கிய இடத்திலேயே தங்கும். அப்போது இரண்டு பொருட்களுக்கும் வேறு வேறு உரிமையாளர்கள் இருப்பார்கள்.
பரிணாமத்தைத் தவறவிடுவது எளிது, ஏனெனில் இரு பகுதிகளும் வேறு வேறு இடங்களில் ஆய்வு செய்யப்படுகின்றன. உள்ளேயுள்ள வழி பயன்பாடு இயங்கும் பெயர்வெளியில் தீர்மானிக்கப்படுகிறது, வெளியேயுள்ள வழி சாக்கெட் உள்ள இடத்தில் தீர்மானிக்கப்படுகிறது. ஒன்றை மட்டும் சரிபார்த்தால் நம்பிக்கையான ஆனால் தவறான முடிவு கிடைக்கும். இரண்டையும் சரிபார்த்தால் பொதுவாக ஒரே சுற்றில் விசாரணை முடிகிறது.
சாக்கெட் வேண்டிய இடத்திலேயே அதை உருவாக்குங்கள்
தீர்வு, சாதனத்தை வெளியே உருவாக்கி நகர்த்துவதற்குப் பதிலாக இலக்கு பெயர்வெளிக்குள்ளேயே உருவாக்குவது. அங்கீகரிக்கப்பட்ட பெயர்வெளி ஏற்கனவே உள்ளது, பெயர் பயன்பாட்டில் இல்லை என்று கருதினால்:
ip netns exec vpn-apps ip link add wg-demo type wireguard
ip netns exec vpn-apps wg show
இப்போது இடைமுகமும் அதன் சாக்கெட்டும் அந்த சூழலுக்குச் சொந்தமானவை, எனவே அடிப்படை வழியும் பொருந்தும் வடிகட்டல் விதிகளும் அங்கே அமைக்கப்பட்டவை. வடிவமைப்பிற்கு தெளிவான பக்கம் வேறெங்கு தேவைப்பட்டால், முதலில் அடிப்படை இடைமுகத்தை பெயர்வெளியில் வைத்து பின்னர் சுரங்கத்தை உருவாக்குங்கள். வரிசை வடிவமைப்பின் பகுதி, செயலாக்க விவரம் அல்ல.
இவற்றை பிணை நிர்வாக கட்டளைகளாகக் கருதுங்கள், செய்முறையாக அல்ல. அவை சாதனத்தை உருவாக்கி நிலையைக் காட்டுகின்றன; விசைகள், சக சாதனங்கள், முகவரிகள், வழிகள் இன்னும் அங்கீகரிக்கப்பட்ட அமைப்பிலிருந்தே வர வேண்டும், மேலும் இருக்கும் உற்பத்தி இடைமுகத்தை எப்போதும் உதாரணத்தில் மாற்றக்கூடாது.
வழியின் இரு பக்கங்களையும் படியுங்கள்
சாதனம் சரியான இடத்திற்கு வந்ததும், இரண்டு முடிவுகளையும் தனித்தனியாகச் சரிபார்க்கவும். பயன்பாட்டின் சூழலிலிருந்து உள்ளேயுள்ள தேடலில் தொடங்கி, பின்னர் சாக்கெட்டின் உரிமையாளர் சூழலிலிருந்து வெளியேயுள்ள வழியைச் சரிபார்க்கவும்:
ip netns exec vpn-apps ip route get 10.30.0.9
ip netns exec vpn-apps wg show
tcpdump -ni any udp port 51820
உள்ளேயுள்ள தேடல் சுரங்கம் வழியாகத் தீர்கிறது என்றாலும், வெளியேயுள்ள பிடிப்பு மறையாக்கப்பட்ட பரிமாற்றத்தைக் காட்டினாலும், இரு பகுதிகளும் ஒத்துப்போகின்றன. பிடிப்பு காலியாக இருந்தால், சாக்கெட் இன்னும் வேறெங்கோ உள்ளது, அல்லது அதன் பெயர்வெளியில் உள்ள அடிப்படை வழி இறுதிப் புள்ளியை அடைவதில்லை.
மற்றொரு சரிபார்ப்பு பதிவில் இருக்க வேண்டும்: மறுத்தொடக்கத்திற்குப் பின்னர் சாதனம் எவ்வாறு உருவாக்கப்படுகிறது. வேறொரு உருவாக்க சூழலுடன் இடைமுகத்தை மீண்டும் உருவாக்கும் நிர்வாகி சாக்கெட்டின் பிறந்த இடத்தை மாற்றுகிறார். ஒரு முறை வெற்றிபெற்ற கைமுறை நகர்த்தல் நிர்வகிக்கப்படும் வழியைப் பற்றிய சான்று அல்ல.