MTU ਜਾਂ MSS? VPN ਦਾ ਬਦਲਾਅ ਅਸਲ ਵਿੱਚ ਕੀ ਠੀਕ ਕਰਦਾ ਹੈ
MTU ਲਿੰਕ ਕਿੰਨਾ ਚੁੱਕਦਾ ਹੈ ਇਹ ਸੀਮਤ ਕਰਦਾ ਹੈ; MSS ਇਸ ਦੇ ਅੰਦਰਲੇ TCP ਪੇਲੋਡ ਨੂੰ ਸੀਮਤ ਕਰਦਾ ਹੈ। ਸਹੀ ਨੂੰ ਸੀਮਤ ਕਰੋ ਅਤੇ ਜਾਣੋ ਕਿ ਕਿਹੜੇ ਪ੍ਰੋਟੋਕੋਲ ਦੋਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਨਹੀਂ ਢਕਦਾ।
ਪਿੰਗ ਸਫਲ ਹੁੰਦੇ ਹਨ, ਵੱਡੇ ਟ੍ਰਾਂਸਫਰ ਅਟਕ ਜਾਂਦੇ ਹਨ, ਅਤੇ ਟਨਲ ਆਪਣੇ ਆਪ ਨੂੰ ਸਿਹਤਮੰਦ ਐਲਾਨਦੀ ਹੈ। ਕੋਈ ਇੰਟਰਫੇਸ ਦਾ MTU ਘਟਾਉਂਦਾ ਹੈ, ਦੂਜਾ MSS ਸੀਮਤ ਕਰਦਾ ਹੈ, ਅਤੇ ਕਦੇ-ਕਦੇ ਸਮੱਸਿਆ ਉਹਨਾਂ ਕਾਰਨਾਂ ਕਰਕੇ ਚਲੀ ਜਾਂਦੀ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਕੋਈ ਦਰਜ ਨਹੀਂ ਕਰਦਾ। ਦੋਨੋਂ ਸੰਖਿਆਵਾਂ ਵੱਖਰੀਆਂ ਚੀਜ਼ਾਂ ਦਾ ਵਰਣਨ ਕਰਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਗਲਤ ਨੂੰ ਬਦਲਣ ਨਾਲ ਅਜਿਹਾ ਹੱਲ ਮਿਲਦਾ ਹੈ ਜੋ ਕਿਸਮਤ ਵਰਗਾ ਲੱਗਦਾ ਹੈ। ਇਹ ਪ੍ਰਕਿਰਿਆ ਹੈ: ਪਰਤ ਪਛਾਣੋ, ਮੇਲ ਖਾਂਦੀ ਸੈਟਿੰਗ ਲਾਗੂ ਕਰੋ, ਫਿਰ ਨਵੇਂ ਕਨੈਕਸ਼ਨ 'ਤੇ ਟੈਸਟ ਕਰੋ।
ਦੋ ਸੰਖਿਆਵਾਂ, ਦੋ ਚੀਜ਼ਾਂ
MTU ਲਿੰਕ ਜਾਂ ਇੰਟਰਫੇਸ ਦਾ ਹੁੰਦਾ ਹੈ: ਇਹ ਸਭ ਤੋਂ ਵੱਡਾ ਪੈਕੇਟ ਹੈ ਜੋ ਬਿਨਾਂ ਵੰਡੇ ਅੱਗੇ ਭੇਜਿਆ ਜਾ ਸਕਦਾ ਹੈ। MSS TCP ਦਾ ਹੁੰਦਾ ਹੈ: ਇਹ ਉਹ ਸਭ ਤੋਂ ਵੱਡੀ TCP ਪੇਲੋਡ ਮਾਤਰਾ ਹੈ ਜੋ ਇੱਕ ਸੈਗਮੈਂਟ ਚੁੱਕ ਸਕਦਾ ਹੈ, ਅਤੇ ਇਹ TCP ਅਤੇ IP ਦੋਨੋਂ ਹੈਡਰ ਛੱਡ ਦਿੰਦਾ ਹੈ। IPv4 ਵਾਲੇ ਆਮ ਈਥਰਨੈੱਟ ਲਿੰਕ 'ਤੇ 1500 ਬਾਈਟ ਦਾ MTU ਜਾਣਿਆ-ਪਛਾਣਿਆ 1460 ਬਾਈਟ ਦਾ MSS ਦਿੰਦਾ ਹੈ। ਇਹ ਸੰਖਿਆਵਾਂ ਵੱਖਰੀਆਂ ਪਰਤਾਂ ਦਾ ਵਰਣਨ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਵੱਖਰੇ ਤੰਤਰਾਂ ਰਾਹੀਂ ਬਦਲੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਦੋਨਾਂ ਨੂੰ ਬਾਈਟ ਵਿੱਚ ਮਾਪਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਦੋਨੋਂ 1500 ਦੇ ਨੇੜੇ ਹਨ, ਇਸ ਲਈ ਇਨ੍ਹਾਂ ਨੂੰ ਉਲਝਾਉਣਾ ਸੌਖਾ ਹੈ।
ਇੱਕ ਇੰਟਰਫੇਸ ਸੈਟਿੰਗ ਵਜੋਂ ਆਉਂਦਾ ਹੈ। ਦੂਜਾ SYN ਸੈਗਮੈਂਟ ਦੇ ਅੰਦਰ ਵਿਕਲਪ ਵਜੋਂ ਆਉਂਦਾ ਹੈ, ਜੋ ਤੁਹਾਡੇ ਇੰਟਰਫੇਸ ਨੂੰ ਕਦੇ ਨਾ ਦੇਖਣ ਵਾਲੇ ਸਿਰਿਆਂ ਵਿਚਕਾਰ ਗੱਲਬਾਤ ਨਾਲ ਤੈਅ ਹੁੰਦਾ ਹੈ।
ਬਾਹਰਲਾ ਵਾਧੂ ਭਾਰ ਕਿੱਥੇ ਡਿੱਗਦਾ ਹੈ
VPN ਅੰਦਰਲੇ ਪੈਕੇਟ ਨੂੰ ਦੂਜੇ ਦੇ ਅੰਦਰ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਬਾਹਰਲੇ ਪੈਕੇਟ ਨੂੰ ਭੌਤਿਕ ਰਸਤੇ ਵਿੱਚ ਫਿੱਟ ਹੋਣਾ ਪੈਂਦਾ ਹੈ। ਇਨਕੈਪਸੂਲੇਸ਼ਨ ਹੈਡਰ, ਬਾਹਰਲਾ IP ਹੈਡਰ, ਟਰਾਂਸਪੋਰਟ ਹੈਡਰ ਅਤੇ ਕੋਈ ਵੀ ਪ੍ਰਮਾਣਿਕਤਾ ਟੈਗ ਉਹ ਬਾਈਟ ਖਰਚ ਕਰਦੇ ਹਨ ਜੋ ਅੰਦਰਲਾ ਪੈਕੇਟ ਵਰਤ ਨਹੀਂ ਸਕਦਾ। ਟਨਲ ਇੰਟਰਫੇਸ 1500 'ਤੇ ਛੱਡੋ ਤਾਂ ਬਾਹਰਲਾ ਪੈਕੇਟ ਨਿਯਮਿਤ ਤੌਰ 'ਤੇ ਉਸ ਤੋਂ ਵੱਧ ਜਾਂਦਾ ਹੈ ਜੋ ਰਸਤਾ ਚੁੱਕ ਸਕਦਾ ਹੈ। 'ਖੰਡ ਨਾ ਕਰੋ' ਬਿੱਟ ਸੈੱਟ ਹੋਣ 'ਤੇ ਰਾਊਟਰ ਇਸ ਨੂੰ ਸੁੱਟ ਦਿੰਦਾ ਹੈ ਅਤੇ ICMP ਗਲਤੀ ਵਾਪਸ ਭੇਜਣੀ ਚਾਹੀਦੀ ਹੈ; ਜੇ ਉਹ ਗਲਤੀ ਫਿਲਟਰ ਹੋ ਜਾਵੇ ਤਾਂ ਭੇਜਣ ਵਾਲੇ ਨੂੰ ਕਦੇ ਪਤਾ ਨਹੀਂ ਲੱਗਦਾ।
ਇਸ ਲਈ ਅਸਫਲਤਾ ਚੋਣਵੀਂ ਲੱਗਦੀ ਹੈ। ਛੋਟੀਆਂ ਬੇਨਤੀਆਂ ਪੂਰੀਆਂ ਹੁੰਦੀਆਂ ਹਨ ਅਤੇ ਸੈਗਮੈਂਟ ਭਰਨ ਵਾਲਾ ਹਰ ਕੰਮ ਅਟਕ ਜਾਂਦਾ ਹੈ, ਕਿਉਂਕਿ ਸਿਰਫ਼ ਵੱਡੇ ਪੈਕੇਟ ਹੀ ਸੁੱਟੇ ਜਾਂਦੇ ਹਨ। ਪਿੰਗ ਲੰਘਾਉਣ ਵਾਲੀ ਟਨਲ ਡੇਟਾ ਚੁੱਕਣ ਵਾਲੀ ਟਨਲ ਨਹੀਂ ਹੈ।
MSS ਕਲੈਂਪਿੰਗ, ਅਤੇ ਇਹ ਕਿੱਥੇ ਲਾਗੂ ਹੁੰਦੀ ਹੈ
MSS ਕਲੈਂਪਿੰਗ ਚੁਣੇ ਹੋਏ ਬਿੰਦੂ ਨੂੰ ਲੰਘਦਿਆਂ SYN ਸੈਗਮੈਂਟ ਵਿੱਚ ਮੁੱਲ ਮੁੜ ਲਿਖਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਦੋਨੋਂ ਸਿਰੇ ਕਾਰਨ ਜਾਣੇ ਬਿਨਾਂ ਛੋਟਾ ਪੇਲੋਡ ਚੁਣਦੇ ਹਨ। Linux 'ਤੇ ਇਹ ਸਪਸ਼ਟ ਨਿਯਮ ਨਾਲ ਲਾਗੂ ਹੋਣ ਵਾਲਾ mangle ਟੇਬਲ ਦਾ ਟੀਚਾ ਹੈ, ਅਤੇ ਇਸ ਨੂੰ ਤੁਹਾਡੀ ਲੋੜੀਂਦੀ ਦਿਸ਼ਾ ਵਿੱਚ SYN ਪੈਕੇਟਾਂ 'ਤੇ ਲੱਗਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਸ ਨੂੰ ਟਨਲ ਇੰਟਰਫੇਸ ਅਤੇ ਪਤਾ ਰੇਂਜ ਤੱਕ ਸੀਮਤ ਰੱਖੋ, ਕਿਉਂਕਿ ਚੌੜਾ ਨਿਯਮ ਟਨਲ ਵਿੱਚ ਕਦੇ ਨਾ ਆਉਣ ਵਾਲੇ ਟ੍ਰੈਫਿਕ ਦਾ ਵਿਵਹਾਰ ਬਦਲਦਾ ਹੈ।
ਅਸਰ ਸਿਰਫ਼ TCP 'ਤੇ ਹੈ। UDP ਐਪਲੀਕੇਸ਼ਨ, QUIC ਸੈਸ਼ਨ ਅਤੇ ਆਪਣੇ ਡੇਟਾਗ੍ਰਾਮ ਬਣਾਉਣ ਵਾਲਾ ਕੋਈ ਵੀ ਪ੍ਰੋਟੋਕੋਲ ਇਸ ਤੋਂ ਅਛੂਤ ਰਹਿੰਦਾ ਹੈ।
ਸਥਿਰ ਰਸਤੇ ਨਾਲ ਨਿਦਾਨ ਕਰੋ
ਇੱਕ ਸਮੇਂ 'ਤੇ ਇੱਕ ਵੇਰੀਏਬਲ ਰੱਖੋ। ਉਸ ਪੈਕੇਟ ਨਾਲ ਟੈਸਟ ਕਰੋ ਜਿਸ ਦਾ ਆਕਾਰ ਤੁਸੀਂ ਆਪ ਚੁਣਦੇ ਹੋ, ਅਤੇ 'ਖੰਡ ਨਾ ਕਰੋ' ਫਲੈਗ ਸੈੱਟ ਕਰੋ ਤਾਂ ਜੋ ਕਰਨਲ ਨਤੀਜਾ ਲੁਕਾਉਣ ਦੀ ਬਜਾਏ ਦੱਸੇ।
ਇਹ ਦਰਜ ਕਰੋ ਕਿ ਅਸਫਲਤਾ ਕਿੱਥੋਂ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ: ਟਨਲ ਦੇ ਅੰਦਰ, ਟਨਲ ਇੰਟਰਫੇਸ 'ਤੇ, ਜਾਂ ਇਨਕੈਪਸੂਲੇਸ਼ਨ ਤੋਂ ਬਾਅਦ ਭੌਤਿਕ ਰਸਤੇ 'ਤੇ। ਫਿਰ ਇੱਕ ਸੰਖਿਆ ਬਦਲੋ ਅਤੇ ਦੂਜਾ ਨਹੀਂ, ਉਹੀ ਟੈਸਟ ਦੁਹਰਾਓ। ਮੌਜੂਦਾ ਕਨੈਕਸ਼ਨ ਤੈਅ ਕੀਤਾ MSS ਰੱਖਦੇ ਹਨ, ਇਸ ਲਈ ਨੀਤੀ ਬਦਲਾਅ ਸਿਰਫ਼ ਨਵੇਂ ਕਨੈਕਸ਼ਨ 'ਤੇ ਦਿਖਦਾ ਹੈ, ਅਤੇ ਇਸੇ ਲਈ ਕੈਸ਼ ਕੀਤਾ ਪੰਨਾ ਕਿਸੇ ਵੀ ਦਿਸ਼ਾ ਵਿੱਚ ਕੁਝ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ। ਜੇ ਇੱਕ ਵੱਡਾ ਅੱਪਲੋਡ ਕੰਮ ਕਰਨ ਲੱਗੇ, ਤੁਸੀਂ ਉਸ ਰਸਤੇ ਬਾਰੇ ਸਿੱਖਿਆ, ਉਸ 'ਤੇ ਚੱਲਣ ਵਾਲੇ ਹਰ ਪ੍ਰੋਟੋਕੋਲ ਬਾਰੇ ਨਹੀਂ।
ਹਰ ਬਦਲਾਅ ਕੀ ਠੀਕ ਨਹੀਂ ਕਰਦਾ
ਇੰਟਰਫੇਸ ਦਾ MTU ਘਟਾਉਣ ਨਾਲ ਪਹਿਲਾਂ ਹੀ ਸਥਾਪਿਤ ਸੈਸ਼ਨ ਦਾ MSS ਨਹੀਂ ਬਦਲਦਾ। MSS ਸੀਮਤ ਕਰਨ ਨਾਲ UDP ਪ੍ਰਵਾਹ ਨੂੰ ਮਦਦ ਨਹੀਂ ਮਿਲਦੀ, ਅਤੇ ICMP ਗਲਤੀਆਂ ਸਿਰਫ਼ ਇੱਕ ਦਿਸ਼ਾ ਵਿੱਚ ਫਿਲਟਰ ਹੋਣ ਵਾਲੇ ਰਸਤੇ ਦੀ ਮੁਰੰਮਤ ਨਹੀਂ ਹੁੰਦੀ। ਹਰ ਬਦਲਾਅ ਸਮੱਸਿਆ ਦੀ ਇੱਕ ਸ਼੍ਰੇਣੀ ਠੀਕ ਕਰਦਾ ਹੈ ਅਤੇ ਬਾਕੀ ਨੂੰ ਜਿਵੇਂ ਸੀ ਤਿਵੇਂ ਛੱਡ ਦਿੰਦਾ ਹੈ।
ਤੁਸੀਂ ਕਿਹੜੀ ਸੈਟਿੰਗ ਕਿੱਥੇ ਲਾਗੂ ਕੀਤੀ ਅਤੇ ਕਿਹੜੇ ਟੈਸਟ ਨੇ ਫ਼ਰਕ ਦਿਖਾਇਆ ਇਹ ਲਿਖੋ, ਨਹੀਂ ਤਾਂ ਅਗਲਾ ਇੰਜੀਨੀਅਰ ਦੋਨੋਂ ਲਾਗੂ ਕਰਦਾ ਹੈ ਅਤੇ ਇਹ ਦੱਸਣ ਦੀ ਸਮਰੱਥਾ ਗੁਆ ਦਿੰਦਾ ਹੈ ਕਿ ਕਿਹੜਾ ਮਹੱਤਵਪੂਰਨ ਸੀ। ਜੇ ਰੁਕਾਵਟ ਅਸਲੀ ਅਤੇ ਸਥਾਈ ਹੈ, ਤਾਂ ਇਸ ਨੂੰ ਲੁਕਾਉਣ ਵਾਲੀ ਕਲੈਂਪਿੰਗ ਦੀ ਬਜਾਏ ਇਸ ਨੂੰ ਦਰਸਾਉਣ ਵਾਲਾ ਟਨਲ MTU ਚੁਣੋ। ਜੇ ਸੀਮਤ ਕਰਨਾ ਹੀ ਪਵੇ, ਨਿਯਮ ਨੂੰ ਸੀਮਤ ਦਾਇਰੇ ਅਤੇ ਟਿੱਪਣੀ ਨਾਲ ਛੱਡੋ, ਕਿਉਂਕਿ ਬਿਨਾਂ ਵਿਆਖਿਆ ਵਾਲਾ mangle ਨਿਯਮ ਡਿਫ਼ਾਲਟ ਰੂਪ ਵਿੱਚ ਸਥਾਈ ਹੋ ਜਾਂਦਾ ਹੈ।