Linux પર પ્રતિ-રૂટ MTU: ત્રણ કદ નિયંત્રણો, એક રૂટ
ઇન્ટરફેસ MTU, રૂટ MTU અને MSS ક્લેમ્પ જુદા જુદા સ્તરે કામ કરે છે. જે રૂટ લુકઅપ જીતે તેની સાથે બજેટ જોડો અને ફેરફારને ઉલટાવી શકાય તેવો રાખો.
Linux ક્લાઇન્ટ પરના ત્રણ સેટિંગ્સ બધા «પેકેટ નાના કરો» જેવા સંભળાય છે, અને તે જુદા જુદા સ્તરે કામ કરે છે. ઇન્ટરફેસ MTU ઉપકરણ મોકલે તે દરેક પેકેટને મર્યાદિત કરે છે. રૂટ MTU તે રૂટ વાપરતા પેકેટને મર્યાદિત કરે છે, જે એક VPN ગંતવ્ય માટે ઘણી વાર તમે ખરેખર ઇચ્છો છો તે જ છે. TCP MSS ક્લેમ્પ બે છેડા શું વાટાઘાટ કરે તે બદલે છે, અને UDP માટે કંઈ કરતું નથી.
એક જ નોબ જેવા દેખાતા ત્રણ નિયંત્રણો
પસંદ કરતાં પહેલાં તેમને સાથે મૂકો, કારણ કે ખોટી પંક્તિ પસંદ કરવી એ કામ ન કરતી મોટાભાગની સલાહ સમજાવે છે:
| Control | Scope | What it cannot fix |
|---|---|---|
| Interface MTU | Every packet the device sends | Nothing, but it over-constrains unrelated traffic |
| Route MTU | Packets using that route | A send that the lookup never routes there |
| MSS clamp | TCP handshake on that path | UDP payload sizes and ICMP |
આખી મશીન માટે Ethernet MTU ઘટાડવું એ આ સુધારણાનું જાડું સંસ્કરણ છે. તે કામ કરે છે, અને તે હોસ્ટ પરની દરેક બીજી એપ્લિકેશનને પણ દંડે છે, જેમના માર્ગો બરાબર હતા તેમને પણ. પ્રતિ-રૂટ મૂલ્ય તે જ ઉદ્દેશ ગૌણ ખર્ચ વિના વ્યક્ત કરે છે.
સરખામણી ફક્ત હોસ્ટ પોતે જે ટ્રાફિક ઉત્પન્ન કરે તેના માટે માન્ય છે. બીજા ક્લાઇન્ટ માટે પેકેટ ફોરવર્ડ કરવામાં તે ક્લાઇન્ટનો પોતાનો માર્ગ અને ટનલનું બાહ્ય બજેટ સમાયેલું છે, અને આ હોસ્ટ પરનું રૂટ મેટ્રિક તે સીમા પાર પહોંચતું નથી.
બજેટને તે રૂટ સાથે જોડો જે લુકઅપ જીતે છે
એક દૃષ્ટાંતરૂપ IPv4 રૂટ રેકોર્ડ આવો દેખાય છે:
ip -4 route get 10.60.0.20
ip -4 route add 10.60.0.0/16 dev tun-office src 10.90.0.2 mtu 1380
રેકોર્ડને પેસ્ટ કરવાના મૂલ્ય તરીકે નહીં, ઉદ્દેશના વર્ણન તરીકે વાંચો. પ્રીફિક્સ, ઉપકરણ અને પ્રીફર્ડ સ્રોત વાસ્તવિક રૂપરેખાંકન સાથે મેળ ખાવા જોઈએ, અને સંખ્યા બ્લોગ પોસ્ટમાંથી નહીં, એન્કેપ્સ્યુલેટેડ માર્ગ વિશેના પુરાવામાંથી આવવી જોઈએ. રૂટ MTU આંતરિક IP પેકેટને મર્યાદિત કરે છે, જે 1380 બાઇટના TCP પેલોડ કે 1380 બાઇટના એન્ક્રિપ્ટેડ બાહ્ય પેકેટ જેવું નથી.
કંઈ ઉમેરતાં પહેલાં લુકઅપ ખરેખર ક્યાં ઉકેલાય છે તે જુઓ. નીતિ નિયમો ધરાવતું હોસ્ટ આપેલું ગંતવ્ય main સિવાયના ટેબલ દ્વારા રૂટ કરી શકે છે, અને ફક્ત main માં રહેલું મેટ્રિક તે વિનંતી માટે અદૃશ્ય છે. સરખાવો ip -4 route show table all ને ip route get ના જવાબ સાથે, જ્યારે નિયમો તેનો ઉપયોગ કરે ત્યારે માર્ક કે નામસ્પેસ સંદર્ભ સહિત. જો બંને મળતા ન હોય, તો જે ટેબલે જવાબ આપ્યો તેને મેટ્રિકની જરૂર છે, વધુ ગોઠવાયેલું દેખાતું નહીં.
mtu એ mtu lock નથી
ડિફૉલ્ટ રૂપે કર્નલ હજી ICMP ફીડબેકમાંથી પાથ MTU અપડેટ કરી શકે છે, પાથ MTU શોધ એ માટે જ છે. lock ઉમેરવાથી તે અટકે છે. તે જુદો નિર્ણય છે, સમાન સંખ્યા બચાવવાની વધુ મજબૂત રીત નથી, અને IPv4 માટે તે «ટુકડા ન કરો» બિટની દસ્તાવેજીકૃત સંભાળ બદલે છે.
જ્યારે તમે પાથ માપ્યો હોય અને જે આવે તે ધ્યાનમાં લીધા વિના મૂલ્ય સ્થિર રહે એવું ઇચ્છો ત્યારે લૉક કરવું વાજબી છે. જ્યારે નેટવર્ક કાયદેસર કદ-ફીડબેક મોકલે ત્યારે તે ખરાબ ડિફૉલ્ટ છે, કારણ કે કર્નલ હવે સમાયોજિત કરી શકતું નથી અને નિષ્ફળતા બીજા લક્ષણમાં ખસે છે.
જો માર્ગમાં ક્યાંય ICMP ફિલ્ટર થાય, તો કોઈ રૂટ સેટિંગ તેને સુધારતું નથી. સુધારો ફિલ્ટરનો છે, અને નાનું MTU એ આગળના માર્ગ પરિવર્તન સુધી સાચી ખામી છુપાવતો ઉપાય છે.
ટનલ સૉફ્ટવેર પોતાના કદ-નોબ ઉમેરે છે
OpenVPN- mssfix તેના દસ્તાવેજીકૃત UDP ટનલ કેસ માટે TCP સેગમેન્ટ કદ સમાયોજિત કરે છે. તે TCP વાતચીત પર કામ કરે છે, તેથી તે ઑપરેટિંગ સિસ્ટમના રૂટ MTUનું બીજું સ્વરૂપ નથી, અને વાટાઘાટ અવગણતી UDP સેવાને મદદ કરી શકતું નથી.
એક જ ફેરફાર-વિન્ડોમાં રૂટ MTU, ઇન્ટરફેસ MTU ફેરફાર અને MSS ક્લેમ્પ એકસાથે ન રાખો. સમસ્યા અદૃશ્ય થાય તો કયું મહત્ત્વનું હતું તે ખબર નહીં પડે, અને જે રાખશો તે વર્ષો સુધી ટ્રાફિક મર્યાદિત કરશે એવા કારણથી જે કોઈ યાદ રાખતું નથી.
તેને ઉલટાવી શકાય તેવું બનાવો, પછી સાબિત કરો
રૂટનો સાચો માલિક નક્કી કરે છે કે ફેરફાર પુનઃકનેક્શન પછી ટકે છે કે નહીં. રૂટ ગતિશીલ રીતે ઇન્સ્ટૉલ કરતું VPN ક્લાઇન્ટ સામાન્ય રીતે તમારા મેટ્રિક વિના તેને ફરી બનાવશે, અને જાતે કરેલો ip route add પછી એક દિવસ પછી નિષ્ફળ ગયેલા સુધારા જેવો દેખાય છે. મૂલ્ય મેનેજરની રૂપરેખાંકનમાં મૂકો, અને જો કામચલાઉ પ્રયોગ જોઈએ તો પહેલાં મૂળ રૂટ નોંધો.
અટકી ગયેલી ક્રિયા કરતા નવા કનેક્શન સાથે પરીક્ષણ કરો, પછી પુષ્ટિ કરો કે ઇચ્છિત ખાનગી રૂટ હજી જીતે છે અને અસંબંધિત ગંતવ્યો બદલાયા નથી. ટનલ ફરી કનેક્ટ કરો અને રૂટ ફરી વાંચો, કારણ કે પુનઃકનેક્શનમાં અદૃશ્ય થતું મૂલ્ય સુધારો નથી.
જો પુરાવા ફેરફારને ટેકો ન આપે, તો ઓવરરાઇડ તેના મેનેજર દ્વારા દૂર કરો અને રૂટ ડિલીટ કરવાને બદલે મૂળ રૂટ લક્ષણો પુનઃસ્થાપિત કરો. પછી તમે શું માપ્યું અને કયા માર્ગ પર તે નોંધો, જેથી આગળની વ્યક્તિ સાચા સુધારાને ચાલુ રહેવા દીધેલા પ્રયોગથી અલગ પાડી શકે.