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 පණිවිඩ යවන්නා වෙත ළඟා වීම මතය, එබැවින් ඒවා ඉවතලන firewall එකක් නිවැරදි ක්ලැම්පයක් සහිතව වුවද විශාල මාරු කිරීම් කඩා දමනු ඇත. ටනල් මාර්ගය සඳහා එම පණිවිඩවලට ඉඩ දෙන්න, නැතහොත් ක්ලැම්පිං ඔබ තෝරාගත් ප්රතිපත්තියක් සඳහා වන්දි ගෙවන බව පිළිගන්න.
අවසාන වශයෙන්, ක්ලැම්පය සුසර කිරීමේ බොත්තමක් ලෙස සැලකීමේ පෙලඹීමට එරෙහිව සිටින්න. එය කොටසේ ප්රමාණය සීමා කරයි, එය කිසිදා අවශ්ය නොවූ මාර්ගවල ප්රවාහයට පිරිවැයකි. පරීක්ෂා තුනෙන් පසු යෙදූ විට එය ඉලක්කගත අලුත්වැඩියාවකි; පළමුව යෙදූ විට එය මූලික දෝෂය සඟවා සෑම පසු පරීක්ෂණයකටම දෙවන විචල්යයක් එකතු කරන වෙනසකි. එම මාරුව දැනුවත්ව සිදු කිරීම වටී, පෙරනිමියෙන් නොව.
ඔබ මැනූ path-MTU, අඩු කළ ටනල් අධිභාරය, එකතු කළ නියමය සහ පසුව දුටු MSS ලියා තබන්න. සංඛ්යා හතරක් ඊළඟ සිදුවීම පරීක්ෂණයක් වෙනුවට සොයාබැලීමක් බවට පත් කරයි.