VPN நுழைவாயிலில் MSS கிளாம்பிங்: அது எதைச் சரிசெய்கிறது, எதைச் செய்யாது
கிளாம்பிங் TCP கைகுலுக்கல்களில் MSS-ஐ மீண்டும் எழுதி பிரிவுகள் சுரங்கப்பாதையில் பொருந்தச் செய்கிறது. UDP அல்லது பழுதான path-MTU சரிபார்ப்பை ஒருபோதும் சரிசெய்யாது. மூன்று சரிபார்ப்புகள், வரிசையாக.
சிறிய கோரிக்கைகள் வேலை செய்கின்றன, பெரிய பதிவிறக்கங்கள் நின்றுவிடுகின்றன, யாரோ MSS கிளாம்பிங்கைப் பரிந்துரைக்கிறார். அந்தப் பரிந்துரை சரியான வரிசையில் முயற்சிக்கத் தகுந்த அளவுக்கு அடிக்கடி சரியாகவும், கண்மூடித்தனமாகப் பயன்படுத்தினால் அரை நாள் வீணாகத் தகுந்த அளவுக்கு அடிக்கடி தவறாகவும் இருக்கிறது. கீழே உள்ள மூன்று சரிபார்ப்புகள் உண்மையான TCP அளவுச் சிக்கலை UDP சிக்கல், பழுதான path-MTU கண்டறிதல் மற்றும் மீண்டும் எழுத வேண்டிய கைகுலுக்கலை ஒருபோதும் காணாத கிளாம்ப் ஆகியவற்றிலிருந்து பிரிக்கின்றன.
தோல்வியின் வடிவத்தில் தொடங்குங்கள்
அளவுத் தோல்விக்கு ஒரு கையொப்பம் உள்ளது: இணைப்பு உருவாகிறது, அங்கீகாரம் மற்றும் சிறிய பதில்கள் வெற்றி பெறுகின்றன, பின்னர் முழு அளவு பிரிவு தேவைப்படும்போது பரிமாற்றம் காலவரையின்றி நிற்கிறது. உரையை ஏற்றி படத்தை ஒருபோதும் முடிக்காத பக்கங்கள் சிறிய அளவில் அதே தோல்வியே. எதுவும் இணைக்கப்படவில்லை என்றால், சிக்கல் பாதையில் முன்பே உள்ளது, கிளாம்பிங் உதவாது. ஒருபோதும் வராத கைகுலுக்கலை கிளாம்ப் சரிசெய்ய முடியாது.
இந்தக் கையொப்பம் இருப்பதற்குக் காரணம், பிரிவின் அளவு கைகுலுக்கலில்தான் ஒப்புக்கொள்ளப்படுகிறது. ஒவ்வொரு பக்கமும் TCP விருப்பமாக அதிகபட்ச பிரிவு அளவை அறிவிக்கிறது, அனுப்புபவர்கள் மறுபக்கத்தின் அறிவிப்பை மதிக்கின்றனர். பாதை அவ்வளவு பெரிய பிரிவைச் சுமக்க முடியாவிட்டால், அனுப்புபவர் இறுதியாக ஒன்றை முயற்சிக்கும்போது தோல்வி பின்னர் தோன்றுகிறது.
இந்த அறிகுறியைப் படிக்கும்போது போக்குவரத்தைக் கண்ணில் வைத்திருங்கள். கிளாம்பிங் TCP விருப்பத்தின் மறுஎழுத்து, எனவே அதே சுரங்கப்பாதையின் கீழ் நிற்கும் குரல் அல்லது வீடியோ அழைப்பு MSS சிக்கல் அல்ல, அதனால் மேம்படாது. TCP விருப்பத்தைத் தொடுவதற்கு முன் போக்குவரத்தை எழுதுங்கள்.
பாதையின் விலையைக் கணக்கிட்டு, பின்னர் சுரங்கப்பாதையுடன் ஒப்பிடுங்கள்
இரண்டு எண்கள் முக்கியம், அவை அடிக்கடி குழப்பப்படுகின்றன. path-MTU என்பது பாதை துண்டாக்கல் இல்லாமல் சுமக்கும் மிகப்பெரிய பாக்கெட், IPv4-க்கு அறிவிக்கப்பட்ட MSS என்பது அந்த மதிப்பிலிருந்து IP மற்றும் TCP தலைப்புகளின் 40 பைட்டுகளைக் கழித்தது, அல்லது IPv6-க்கு 60 கழித்தது. சுரங்கப்பாதை உறைவு உள்ளேயுள்ள பாக்கெட் தொடங்குவதற்கு முன்பே பட்ஜெட்டின் ஒரு பகுதியைச் சாப்பிடுகிறது.
ping -M do -s 1400 198.51.100.20
tracepath 198.51.100.20
do-not-fragment பிட்டுடன் கூடிய ping அந்த பேலோட் அளவின் பாக்கெட் தப்பிப்பிழைக்குமா என்று கூறுகிறது; தோல்வியடையும் வரை அளவை மாற்றுங்கள், பாதையின் எல்லையை அனுபவரீதியாகக் கண்டீர்கள். tracepath வெளியீடு பாதையில் கண்டறியப்பட்ட MTU-ஐ அறிவிக்கிறது, அது வேலை செய்யும்போது வேகமாகவும் இடைநிலை ஹாப் ஆய்வுகளை வடிகட்டும்போது குறைவான நம்பகத்தன்மையுடனும் இருக்கும்.
இப்போது சுரங்கப்பாதையின் மேலதிகச் செலவைக் கழியுங்கள். வெளிப்புற IP தலைப்பு, UDP தலைப்பு மற்றும் சுரங்கப்பாதைக்கு உரிய தலைப்பு அனைத்தும் அதே 1500 பைட்டுகளிலிருந்தே வருகின்றன, எனவே வழக்கமான ஈதர்நெட் அடித்தளத்தில் பயன்படுத்தக்கூடிய உள் MTU இயற்பியல் இணைப்பு குறிப்பதைவிடக் குறைவு. கணக்கிட்ட உள் MTU உங்கள் துணைவர்கள் அறிவிப்பதைவிடக் குறைவாக இருந்தால், நீங்கள் ஊகம் அல்ல, உண்மையான கிளாம்ப் வேட்பாளரைக் கண்டீர்கள். கணக்கிட்ட மதிப்பு ஏற்கனவே துணைவர்களின் அறிவிப்பைவிட அதிகமாக இருந்தால், இங்கே நிறுத்தி வேறெங்காவது பாருங்கள்.
கைகுலுக்கல் கடக்கும் இடத்தில் கிளாம்பை வையுங்கள்
கிளாம்ப் நுழைவாயிலைக் கடக்கும்போது SYN மற்றும் SYN-ACK பாக்கெட்டுகளில் MSS விருப்பத்தை மீண்டும் எழுதுவதன் மூலம் செயல்படுகிறது. எந்தத் திசையும் ஒருபோதும் கடக்காத இடைமுகத்தில் விதி இருந்தால், பேச்சுவார்த்தை மாற்றமின்றி முடிகிறது, அறிகுறி தொடர்கிறது, எனவே மதிப்பைவிட இடமே முடிவைத் தீர்மானிக்கிறது.
| Symptom | What it points to | Next check |
|---|---|---|
| Handshake completes, large transfer stalls | Segment size larger than the path can carry | Path MTU against the tunnel's effective MTU |
| Nothing connects, small or large | Routing, firewall or keying failure | Not MSS; look at the tunnel state |
| Only UDP applications stall | Datagram size or a dropped ICMP error | Platform-specific UDP handling, not clamping |
| Fixed after reconnect, returns later | Clamp applied to one direction or one interface | Rule placement and the handshake path |
திசை மற்ற பாதி. ஒரு திசையில் மட்டும் கிளாம்ப் செய்தால் பாதி ஓட்டங்கள் சரியாகின்றன, மீதம் இடைவிட்டு தோன்றும் வகையில் தோல்வியடைகின்றன, எனவே அனுப்பப்படும் போக்குவரத்தின் இரு திசைகளிலும் பயன்படுத்துங்கள். சுரங்கப்பாதை இடைமுகத்திற்கான Linux-இன் பாரம்பரிய வடிவம் SYN பாக்கெட்டுகளுடன் பொருந்தும் mangle விதி:
iptables -t mangle -A FORWARD -o tun0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
--clamp-mss-to-pmtu உண்மையில் என்ன செய்கிறது என்பதைக் கவனியுங்கள்: அது மதிப்பை பாதையின் MTU-விலிருந்து பெறுகிறது, அது எப்போதும் சுரங்கப்பாதையின் உண்மையான பேலோட் பட்ஜெட் அல்ல. உள் பாதையும் வெளிப்பாதையும் வேறுபடும் பாதை அடிப்படையிலான சுரங்கப்பாதையில், முந்தைய சரிபார்ப்பில் கணக்கிட்ட வெளிப்படையான மதிப்பு தானியங்கியைவிட முன்னறிவிப்புக்குரியது.
புதிய இணைப்புடன் சரிபார்த்து, பின்னூட்டத்தை உயிர்ப்புடன் வையுங்கள்
நிறுவப்பட்ட இணைப்பு பேச்சுவார்த்தை செய்த MSS-ஐத் தக்கவைக்கிறது, எனவே அதே அமர்வில் சோதிப்பது எதையும் நிரூபிக்காது. மாற்றத்திற்குப் பிறகு புதிய இணைப்பைத் திறந்து பேச்சுவார்த்தை செய்யப்பட்ட மதிப்பை நேரடியாகப் படியுங்கள், தற்செயலாக முடியும் பரிமாற்றத்திலிருந்து ஊகிப்பதற்குப் பதிலாக.
ss -tin dst 198.51.100.20
iptables -t mangle -S | grep TCPMSS
முதல் கட்டளை சாக்கெட்டின் MSS-ஐ அதன் நெரிசல் நிலையுடன் தெரிவிக்கிறது, அது கிளாம்ப் பலனளித்ததற்கான விரைவான உறுதிப்படுத்தல். இரண்டாவது நீங்கள் சேர்த்ததாக நினைக்கும் விதியே இருக்கும் விதி என்பதை, அது வைக்கப்பட்ட அட்டவணையில் உறுதிப்படுத்துகிறது.
பின்னர் நீங்கள் சரிசெய்யாத பொறிமுறையைப் பாதுகாக்கவும். path-MTU கண்டறிதல் ICMP fragmentation-needed செய்திகள் அனுப்புபவரை அடைவதைச் சார்ந்தது, எனவே அவற்றைத் தூக்கி எறியும் ஃபயர்வால் சரியான கிளாம்ப் இருந்தாலும் பெரிய பரிமாற்றங்களை உடைத்துக்கொண்டே இருக்கும். சுரங்கப்பாதைப் பாதைக்கு அந்தச் செய்திகளை அனுமதியுங்கள், அல்லது கிளாம்பிங் நீங்கள் தேர்ந்தெடுத்த கொள்கைக்கு ஈடு செய்கிறது என்பதை ஏற்றுக்கொள்ளுங்கள்.
இறுதியாக, கிளாம்பை ஒரு ட்யூனிங் குமிழாகக் கருதும் சோதனையை எதிருங்கள். அது பிரிவின் அளவைக் கட்டுப்படுத்துகிறது, அது ஒருபோதும் தேவைப்படாத பாதைகளில் செயல்திறனைச் செலவாக்குகிறது. மூன்று சரிபார்ப்புகளுக்குப் பிறகு பயன்படுத்தினால் அது இலக்கு நோக்கிய பழுதுநீக்கம்; முதலில் பயன்படுத்தினால் அது மூலக் குறையை மறைத்து ஒவ்வொரு பிந்தைய சோதனைக்கும் இரண்டாவது மாறியைச் சேர்க்கும் மாற்றம். அந்தப் பரிமாற்றம் வேண்டுமென்றே செய்யத் தகுந்தது, இயல்புநிலையாக அல்ல.
நீங்கள் அளந்த path-MTU, கழித்த சுரங்கப்பாதை மேலதிகச் செலவு, சேர்த்த விதி மற்றும் பின்னர் கண்ட MSS ஆகியவற்றை எழுதுங்கள். நான்கு எண்கள் அடுத்த சம்பவத்தை விசாரணைக்குப் பதிலாகத் தேடலாக மாற்றுகின்றன.