OpenVPN: local மற்றும் சுரங்கவழிப் பாதையின் முகவரி, இரண்டு வெவ்வேறு சாக்கெட்டுகள்
சேவையகத்துடன் தொடர்பு கொள்ளும் முகவரி சுரங்கப்பாதைக்குள் இருக்கும் முகவரி அல்ல. local, remote, nobind ஆகியவற்றைத் தனித்தனி பாத்திரங்களாகப் படிப்பது பெரும்பாலான bind பிழைகளை விளக்குகிறது.
வாடிக்கையாளர் தொடங்க மறுத்து, உள்ளூர் முகவரியை bind செய்ய முடியவில்லை என்று புகார் கூறுகிறது, வெளிப்படையான தீர்வு அது எதிர்பார்க்கும் சுரங்க முகவரியை நோக்கிக் காட்டுவது போலத் தெரிகிறது. அது வேலை செய்ய முடியாது, காரணத்தைப் புரிந்துகொள்வது மதிப்புள்ளது: சுரங்கப்பாதை உருவாவதற்கு முன் உள்ளே ஒரு முகவரி இல்லை, சேவையகத்துடன் தொடர்பு கொள்ளும் சாக்கெட் முதலில் இருக்க வேண்டும். இதில் இரண்டு வெவ்வேறு முகவரிகள் ஈடுபடுகின்றன, அவற்றில் ஒன்றை மட்டுமே உள்ளூரில் தேர்ந்தெடுக்க முடியும்.
bind பிழை ஒரு உள்ளூர் முகவரியைக் குறிக்கிறது
OpenVPN உள்ளூர் முகவரியை bind செய்ய முடியவில்லை என்று தெரிவிக்கும்போது, அது போக்குவரத்துச் சாக்கெட்டைப் பற்றிப் பேசுகிறது: பியர் வரை மறையாக்கப்பட்ட இணைப்பைக் கொண்டு செல்லும் UDP அல்லது TCP முனை.
வெளிப்படையான local கட்டளை, அந்தச் சாக்கெட்டை ஒரு குறிப்பிட்ட உள்ளூர் முகவரியுடன் bind செய்ய டீமானைக் கேட்கிறது. செயல்முறை இயங்கும் பிணையப் பெயர்வெளியில் அந்த முகவரி இருக்க வேண்டும், வாடிக்கையாளர் தொடங்கும் தருணத்தில் அது ஒதுக்கக்கூடியதாக இருக்க வேண்டும்.
ரவுட்டரிலோ மேக விளிம்பிலோ மொழிபெயர்க்கப்படும் பொது முகவரி, டீமான் bind செய்யக்கூடிய உள்ளூர் முகவரி அல்ல, அதுவே சேவையகம் பார்க்கும் முகவரியாக இருந்தாலும். இந்த வேறுபாடுதான் ஒரு profile வீட்டில் வேலை செய்து மேக instance-இல் தோல்வியடைவதை விளக்குகிறது. பொது முகவரியை loopback இடைமுகத்தில் சேர்ப்பது ஏன் உதவாது என்பதையும் இது விளக்குகிறது, ஏனெனில் போக்குவரத்து பிணையம் திரும்ப அனுப்ப முடியாத முகவரியிலிருந்து மூலத்தை எடுக்கும். profile-ஐத் திருத்தும் முன் இடைமுகப் பட்டியலைப் படியுங்கள்.
local, remote உண்மையில் எதைத் தேர்ந்தெடுக்கின்றன
remote தொடர்பு கொள்ள வேண்டிய பியரைக் குறிக்கிறது. local அதே சாக்கெட்டின் அருகிலுள்ள முனையை bind செய்கிறது. nobind இயக்க முறைமை உள்ளூர் முகவரி மற்றும் port இரண்டையும் தேர்ந்தெடுக்க அனுமதிக்கிறது, அதனால்தான் வீட்டு ரவுட்டர்களுக்குப் பின்னால் உள்ள வாடிக்கையாளர்கள் பொதுவாக இந்த இரண்டு கட்டளைகளும் இல்லாமல் வேலை செய்கிறார்கள்.
இந்தக் கட்டளைகள் எதற்கும் சுரங்கப்பாதைக்குள் இருக்கும் முகவரியுடன் எந்தத் தொடர்பும் இல்லை.
கொள்கலனிலோ பிணையப் பெயர்வெளியிலோ அதே விதி குறுகிய எல்லைகளுடன் பொருந்தும்: host-இன் முகவரிகள் உள்ளே இல்லை, எனவே host உள்ளமைவிலிருந்து நகலெடுக்கப்பட்ட local வரி தவறான முகவரியை விட முற்றிலும் வேறு காரணத்தால் தோல்வியடைகிறது.
ip -brief address show
ip route get 203.0.113.10உள் முகவரி சேவையகத்திலிருந்து வருகிறது
சுரங்கப்பாதைக்குள் இருக்கும் முகவரி, கட்டுப்பாட்டு channel நிறுவப்பட்ட பிறகு பேச்சுவார்த்தை செய்யப்படுகிறது அல்லது ஒதுக்கப்படுகிறது. மாறும் pool-இல் சேவையகம் இணைப்பின் போது அதைத் தீர்மானிக்கிறது, வாடிக்கையாளருக்கு உரிய உள்ளமைவில் அது ஒவ்வொரு அடையாளத்திற்கும் நிலையாக இருக்கலாம்.
உள் முகவரியுடன் local எழுதுவது, அந்த முகவரியை ஒதுக்கச் சேவையகத்தைக் கேட்காது. சிறந்த நிலையில் bind தோல்வியடைகிறது; மோசமான நிலையில் வாடிக்கையாளர் அதே மதிப்புள்ள தொடர்பில்லாத host முகவரியைக் கண்டுபிடித்து அதைப் போக்குவரத்துக்குப் பயன்படுத்தத் தொடங்குகிறது.
படிக்க வேண்டிய இடைமுகங்களும் வேறுபட்டவை. ifconfig அளவுருக்களும் pool உள்ளமைவும் உட்பகுதியை விவரிக்கின்றன, remote, local, proto, nobind ஆகியவை வெளிப்பகுதியை விவரிக்கின்றன. இந்த இரண்டு பட்டியல்களையும் தனித்தனியாக வைத்திருப்பது forum-இல் காணும் குழப்பமான எடுத்துக்காட்டுகள் கிட்டத்தட்ட எல்லாவற்றையும் விளக்குகிறது. அதனால்தான் OpenVPN 2.6 கையேடு அவற்றைத் தனித் தனிப் பிரிவுகளில் ஆவணப்படுத்துகிறது.
பொறி: தன் சொந்தப் போக்குவரத்தைப் பிடிக்கும் முழு சுரங்கப்பாதை
சுரங்கப்பாதை எழுந்து இயல்புநிலை வழியைக் கொண்டு செல்லத் தொடங்கியதும், அதைத் தாங்கும் packet-கள் அதற்குள் வழிமாற்றப்படக் கூடாது. இது முகவரி சார்ந்த பிரச்சினை அல்ல, வழிமாற்றல் பிரச்சினை; டீமான் அசல் gateway வழியாக சேவையகத்தின் சொந்த முகவரிக்கு மிகவும் குறிப்பிட்ட வழியை நிறுவி அதைக் கையாள்கிறது.
போக்குவரத்தை ஒரு குறிப்பிட்ட உள்ளூர் முகவரியில் பொருத்தி, பின்னர் அந்த முகவரி பயன்படுத்தும் பாதையை மாற்றினால், உட்பகுதி உள்ளமைக்கப்பட்டிருந்தாலும் வெளிப்புற இணைப்பு வழி தவறக்கூடும். உட்பகுதி சரியாக இருப்பதால் சுரங்கப்பாதை இணைக்கப்பட்டதாகத் தொடர்ந்து தெரிவிக்கிறது. போக்குவரத்து மட்டுமே உடைந்துள்ளது, அதனால்தான் log-கள் முரண்பாடுகளாகப் படிக்கப்படுகின்றன.
அப்போது அறிகுறிகள் இணைந்து உறையும் சுரங்கப்பாதையாகவோ, பயனுள்ள பிழையின்றி loop-இல் மீண்டும் இணையும் சுரங்கப்பாதையாகவோ தெரியும். சுரங்கப்பாதைக்குள் எதையும் சரிபார்க்கும் முன் பியரின் முகவரிக்கான வழியைச் சரிபார்க்கவும், நீங்கள் bind செய்த உள்ளூர் முகவரி இன்னும் நீங்கள் எதிர்பார்த்த இடைமுகத்திற்கே சொந்தமானதா என்பதை உறுதிப்படுத்தவும்.
குழப்பத்தைத் தடுக்கும் ஒரு பழக்கம்
ஒரு profile-இல் உள்ள ஒவ்வொரு முகவரியையும் படித்து, அதைத் திருத்தும் முன் அது எந்த அடுக்கைச் சேர்ந்தது என்பதைத் தீர்மானியுங்கள்.
அது போக்குவரத்தின் தொலை முனையைக் குறிப்பிட்டாலோ அதன் அருகிலுள்ள முனையை bind செய்தாலோ, அது வெளிப்புற முகவரி, தொடங்கும் முன் இருக்க வேண்டும். சுரங்கப்பாதைக்குள் நடப்பதை அது விவரித்தால், அது சேவையகத்திலிருந்தோ இடவியலிலிருந்தோ வருகிறது, எந்த உள்ளூர் கட்டளையும் அதற்கு மாற்றாக முடியாது.
அந்த இரண்டு பட்டியல்களையும் profile-க்கு அடுத்துள்ள deployment குறிப்புகளில் எழுதுங்கள். அடுத்த சரிசெய்தல் அமர்வு ஊகத்திலிருந்து அல்ல, அடுக்கிலிருந்து தொடங்கும்.