VPN ਵੱਡੇ ਟ੍ਰਾਂਸਫਰ 'ਤੇ ਕਿਉਂ ਅਟਕਦਾ ਹੈ ਪਰ ਛੋਟਿਆਂ 'ਤੇ ਨਹੀਂ
ਛੋਟੀਆਂ ਬੇਨਤੀਆਂ ਦਾ ਜਵਾਬ ਆਉਂਦਾ ਹੈ ਜਦੋਂ ਕਿ ਵੱਡੇ ਟ੍ਰਾਂਸਫਰ ਜੰਮ ਜਾਂਦੇ ਹਨ। ਸਥਿਰ MTU ਕਾਪੀ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇੰਟਰਫੇਸ ਸੀਮਾ, ਮਾਰਗ ਸੀਮਾ ਅਤੇ ਐਲਾਨਿਆ TCP ਪੇਲੋਡ ਤੁਲਨਾ ਕਰੋ।
ਇੱਕ ਪੰਨਾ ਲੋਡ ਹੁੰਦਾ ਹੈ, ping ਸਫਲ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਫਾਈਲ ਦੀ ਕਾਪੀ ਹਰ ਵਾਰ ਉਸੇ ਥਾਂ 'ਤੇ ਅਟਕ ਜਾਂਦੀ ਹੈ। ਇਹ ਪੈਟਰਨ ਬੈਂਡਵਿਡਥ ਜਾਂ ਪ੍ਰਮਾਣ ਪੱਤਰਾਂ ਦੀ ਥਾਂ ਪੈਕਟ ਦੇ ਆਕਾਰ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ। ਐਨਕੈਪਸੂਲੇਸ਼ਨ ਹਰ ਪੈਕਟ ਵਿੱਚ ਬਾਈਟ ਜੋੜਦਾ ਹੈ, ਇਸ ਲਈ ਮੂਲ ਮਾਰਗ 'ਤੇ ਫਿੱਟ ਹੋਣ ਵਾਲਾ ਪੇਲੋਡ ਟਨਲ ਵਿੱਚੋਂ ਲੰਘਣ ਤੋਂ ਬਾਅਦ ਸੀਮਾ ਤੋਂ ਵੱਧ ਸਕਦਾ ਹੈ। ਇਹਨਾਂ ਗੱਲਬਾਤਾਂ ਵਿੱਚ ਤਿੰਨ ਵੱਖਰੇ ਨੰਬਰਾਂ ਨੂੰ MTU ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਮਿਲਾ ਦੇਣ ਨਾਲ਼ ਅਜਿਹੀ ਸੈਟਿੰਗ ਬਣਦੀ ਹੈ ਜੋ ਇੱਕ ਐਪ ਠੀਕ ਕਰਦੀ ਹੈ ਅਤੇ ਦੂਜੀ ਤੋੜ ਦਿੰਦੀ ਹੈ।
ਉਹ ਤਿੰਨ ਨੰਬਰ ਜਿਹਨਾਂ ਨੂੰ ਲੋਕ MTU ਕਹਿੰਦੇ ਹਨ
ਇੰਟਰਫੇਸ MTU ਉਸ ਲਿੰਕ 'ਤੇ ਪੈਕਟ ਲਈ ਕਨਫਿਗਰ ਕੀਤੀ ਸੀਮਾ ਹੈ। ਮਾਰਗ MTU ਰੂਟ ਭਰ ਵਿੱਚ ਸਭ ਤੋਂ ਛੋਟੀ ਸੀਮਾ ਹੈ, ਅਤੇ ਇਹ ਖੋਜੀ ਜਾਂਦੀ ਹੈ, ਕਨਫਿਗਰ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ। TCP MSS ਉਹ ਪੇਲੋਡ ਆਕਾਰ ਹੈ ਜਿਸ ਨੂੰ ਸਾਹਮਣਾ ਧਿਰ ਪ੍ਰਾਪਤ ਕਰ ਸਕਣ ਦਾ ਐਲਾਨ ਕਰਦੀ ਹੈ, ਅਤੇ ਇਹ ਬਾਕੀ ਦੋ ਵਿੱਚੋਂ ਨਿਕਲਦਾ ਹੈ, ਵੱਖਰੀ ਭੌਤਿਕ ਸੀਮਾ ਨਹੀਂ।
ਟਨਲ ਦਾ ਅੰਦਰਲਾ ਅਤੇ ਬਾਹਰਲਾ ਦ੍ਰਿਸ਼ ਹੁੰਦਾ ਹੈ। ਬਾਹਰਲਾ ਪੈਕਟ ਐਨਕੈਪਸੂਲੇਟ ਕੀਤਾ ਪੈਕਟ ਅਤੇ ਪ੍ਰੋਟੋਕੋਲ ਲਈ ਲੋੜੀਂਦੇ ਹੈਡਰ ਲੈ ਕੇ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ ਵਰਤੋਂਯੋਗ ਅੰਦਰਲਾ ਆਕਾਰ ਬਾਹਰਲੇ ਮਾਰਗ ਵੱਲੋਂ ਮਨਜ਼ੂਰ ਕੀਤੇ ਨਾਲੋਂ ਛੋਟਾ ਹੁੰਦਾ ਹੈ। VPN ਸਰਵਰ ਤੱਕ ਦਾ ਮਾਰਗ ਵੀ ਸਰਵਰ ਤੋਂ ਮੰਜ਼ਿਲ ਤੱਕ ਦੇ ਮਾਰਗ ਤੋਂ ਵੱਖਰਾ ਹੁੰਦਾ ਹੈ।
ਮਾਰਗ MTU ਦੀ ਖੋਜ ਭੇਜਣ ਵਾਲੇ ਨੂੰ ਕੰਮ ਕਰਨ ਵਾਲਾ ਆਕਾਰ ਜਾਣਨ ਦਿੰਦੀ ਹੈ, ਪਰ ਇਹ ਫੀਡਬੈਕ ਪਹੁੰਚਣ 'ਤੇ ਨਿਰਭਰ ਹੈ। ਜਦੋਂ ਕੋਈ ਵਿਚਕਾਰਲਾ ਯੰਤਰ ਸੰਬੰਧਿਤ ICMP ਸੁਨੇਹੇ ਫਿਲਟਰ ਕਰਦਾ ਹੈ, ਭੇਜਣ ਵਾਲਾ ਉਹ ਪੈਕਟ ਭੇਜਦਾ ਰਹਿੰਦਾ ਹੈ ਜੋ ਕਦੇ ਪੂਰੇ ਨਹੀਂ ਹੁੰਦੇ, ਅਤੇ ਇਹੀ ਉੱਤਮ ਕਾਲਾ ਟੋਆ ਹੈ। ਲੱਛਣ ਜਾਣਨ 'ਤੇ ਸਪੱਸ਼ਟ ਹੁੰਦਾ ਹੈ: ਹੈਂਡਸ਼ੇਕ ਸਫਲ ਹੁੰਦਾ ਹੈ, ਪਹਿਲਾ ਪੂਰੇ ਆਕਾਰ ਵਾਲਾ ਪੇਲੋਡ ਗਾਇਬ ਹੋ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਅੰਤ ਵਿੱਚ ਕਨੈਕਸ਼ਨ ਰੀਸੈਟ ਹੁੰਦਾ ਹੈ ਜਾਂ ਅਟਕ ਜਾਂਦਾ ਹੈ। ਐਪਲੀਕੇਸ਼ਨ ਲੌਗ ਵਿੱਚ ਨੈੱਟਵਰਕ ਸਮੱਸਿਆ ਵਰਗਾ ਕੁਝ ਨਹੀਂ ਦਿਸਦਾ।
ਆਪਣੇ ਕਾਬੂ ਵਾਲੇ ਪੇਲੋਡ ਨਾਲ ਮਾਰਗ ਜਾਂਚੋ
ਇੱਕ ਟੈਸਟ ਇੱਕ ਮਾਰਗ ਅਤੇ ਇੱਕ ਆਕਾਰ ਬਾਰੇ ਸਬੂਤ ਹੈ, ਸਿਫਾਰਸ਼ ਕੀਤੀ ਸੈਟਿੰਗ ਨਹੀਂ। ਜਵਾਬ ਦੇਣ ਵਾਲਾ ਹੋਸਟ ਵਰਤੋ, ਅਤੇ ਸਿਰਫ਼ ਪੇਲੋਡ ਦਾ ਆਕਾਰ ਬਦਲੋ।
ping -M do -s 1372 -c 2 203.0.113.20 ping -4 -f -l 1372 vpn.example
ਪਹਿਲਾ ਕਮਾਂਡ ਫ੍ਰੈਗਮੈਂਟੇਸ਼ਨ ਬੰਦ ਰੱਖ ਕੇ 1372 ਬਾਈਟ ਪੇਲੋਡ ਨਾਲ ਲੀਨਕਸ ਟੈਸਟ ਭੇਜਦਾ ਹੈ, ਅਤੇ ਦੂਜਾ ਵਿੰਡੋਜ਼ 'ਤੇ ਉਹੀ ਕਰਦਾ ਹੈ ਜਿੱਥੇ ਪੇਲੋਡ -l ਨਾਲ ਸੈੱਟ ਹੁੰਦਾ ਹੈ। ਜਵਾਬ ਦਾ ਅਰਥ ਹੈ ਕਿ ਉਹ ਆਕਾਰ ਮਾਰਗ ਪਾਰ ਕਰ ਗਿਆ। ਫ੍ਰੈਗਮੈਂਟੇਸ਼ਨ ਦੀ ਲੋੜ ਵਾਲਾ ਸੁਨੇਹਾ ਜਾਣਕਾਰੀ ਦਿੰਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਟਾਈਮਆਊਟ ਅਸਪਸ਼ਟ ਹੈ ਕਿਉਂਕਿ ਹੋਸਟ ਜਾਂ ਵਿਚਕਾਰਲਾ ਯੰਤਰ ICMP ਨੂੰ ਸਿਰਫ਼ ਸੁੱਟ ਸਕਦਾ ਹੈ।
ਬਾਈਟ ਤੱਕ ਬਾਈਨਰੀ ਖੋਜ ਕਰਨ ਦੀ ਥਾਂ ਕੁਝ ਕਦਮਾਂ ਵਿੱਚ ਆਕਾਰ ਹੇਠਾਂ ਲਿਆਓ। ਤੁਸੀਂ ਇਹ ਪਤਾ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਹੇ ਹੋ ਕਿ ਆਕਾਰ ਦੀ ਕੋਈ ਉੱਪਰੀ ਸੀਮਾ ਹੈ ਜਾਂ ਨਹੀਂ, ਹਰ ਨੈੱਟਵਰਕ ਲਈ ਨੰਬਰ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਨਾ ਨਹੀਂ। ਤੁਹਾਨੂੰ ਮਿਲਣ ਵਾਲਾ ਨੰਬਰ ਇਸ ਮਾਰਗ, ਇਸ ਪ੍ਰੋਟੋਕੋਲ ਅਤੇ ਇਸ ਪਤਾ ਪਰਿਵਾਰ 'ਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ।
IPv4 ਅਤੇ IPv6 ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਫ੍ਰੈਗਮੈਂਟ ਹੁੰਦੇ ਹਨ, ਇਸ ਲਈ ਇੱਕ ਪਰਿਵਾਰ ਦਾ ਨਤੀਜਾ ਦੂਜੇ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਦੱਸਦਾ। ਉਸ ਪਰਿਵਾਰ ਦੀ ਜਾਂਚ ਕਰੋ ਜੋ ਐਪ ਅਸਲ ਵਿੱਚ ਵਰਤਦੀ ਹੈ।
MSS ਕਲੈਂਪਿੰਗ ਸਿਰਫ਼ TCP ਦੀ ਮਦਦ ਕਰਦੀ ਹੈ
TCP ਵਿੱਚ ਪ੍ਰਭਾਵੀ ਪੇਲੋਡ ਹੈਂਡਸ਼ੇਕ ਦੌਰਾਨ ਤੈਅ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਮਾਰਗ 'ਤੇ ਮੌਜੂਦ ਰਾਊਟਰ ਉਸ ਮੁੱਲ ਨੂੰ ਹੇਠਾਂ ਮੁੜ ਲਿਖ ਸਕਦਾ ਹੈ ਤਾਂ ਜੋ ਦੋਵੇਂ ਸਿਰੇ ਛੋਟੇ ਸੈਗਮੈਂਟ ਭੇਜਣ। MSS ਕਲੈਂਪਿੰਗ ਇਹੀ ਕਰਦੀ ਹੈ, ਅਤੇ ਇਹ ਕਲਾਇੰਟ ਨੂੰ ਬਿਲਕੁਲ ਛੂਹੇ ਬਿਨਾਂ ਕੰਮ ਕਰਦੀ ਹੈ।
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu ip link show tun0
ਪਹਿਲਾ ਨਿਯਮ ਅੱਗੇ ਭੇਜੇ ਜਾਣ ਵਾਲੇ TCP ਹੈਂਡਸ਼ੇਕ ਲਈ ਐਲਾਨੇ MSS ਨੂੰ ਮਾਰਗ MTU 'ਤੇ ਕਲੈਂਪ ਕਰਦਾ ਹੈ, ਅਤੇ ਦੂਜਾ ਟਨਲ ਇੰਟਰਫੇਸ ਦਾ ਆਪਣਾ MTU ਦਿਖਾਉਂਦਾ ਹੈ ਤਾਂ ਜੋ ਤੁਸੀਂ ਉਸ ਦੀ ਤੁਲਨਾ ਮਾਰਗ ਵੱਲੋਂ ਮਨਜ਼ੂਰ ਕੀਤੇ ਨਾਲ ਕਰ ਸਕੋ। ਹੈਂਡਸ਼ੇਕ ਤੋਂ ਬਾਅਦ ਅਟਕਣ ਵਾਲੀ TCP ਐਪ ਲਈ ਕਲੈਂਪਿੰਗ ਸਭ ਤੋਂ ਘੱਟ ਦਖਲ ਵਾਲਾ ਹੱਲ ਹੈ।
UDP ਲਈ ਇਹ ਕੁਝ ਨਹੀਂ ਕਰਦੀ। ਵੱਡੇ ਡੇਟਾਗ੍ਰਾਮ ਭੇਜਣ ਵਾਲਾ ਵਾਇਸ ਜਾਂ ਗੇਮ ਕਲਾਇੰਟ MSS ਸੈਟਿੰਗ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਅਣਡਿੱਠ ਕਰੇਗਾ, ਕਿਉਂਕਿ ਮੁੜ ਲਿਖਣ ਲਈ ਕੋਈ ਹੈਂਡਸ਼ੇਕ ਨਹੀਂ। ਜੇ ਅਸਫਲ ਐਪ UDP ਹੈ, ਤਾਂ ਇਸ ਦੀ ਥਾਂ ਕਲਾਇੰਟ ਦੇ ਆਪਣੇ ਪੈਕਟ ਆਕਾਰ ਵਿਕਲਪ ਵੇਖੋ। ਦੋਵੇਂ ਪ੍ਰੋਟੋਕੋਲ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਅਸਫਲ ਹੁੰਦੇ ਹਨ ਅਤੇ ਵੱਖਰੇ ਸੰਦਾਂ ਨਾਲ ਠੀਕ ਹੁੰਦੇ ਹਨ, ਇਸ ਲਈ ਪ੍ਰੋਟੋਕੋਲ ਟਿਕਟ ਦੇ ਪਹਿਲੇ ਵਾਕ ਵਿੱਚ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।
OpenVPN tun-mtu, mssfix ਅਤੇ ਫ੍ਰੈਗਮੈਂਟ ਨਾਲ ਸੰਬੰਧਿਤ ਸੈਟਿੰਗਾਂ ਵਰਗੇ ਵਿਕਲਪ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਉਹਨਾਂ ਦਾ ਵਿਵਹਾਰ ਸੰਸਕਰਣ ਅਤੇ ਡੇਟਾ ਚੈਨਲ AEAD ਹੋਣ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਵਰਤੇ ਜਾ ਰਹੇ ਸੰਸਕਰਣ ਦਾ ਮੈਨੁਅਲ ਪੜ੍ਹੋ, ਅਤੇ ਇੱਕ ਵਾਰ ਵਿੱਚ ਇੱਕ ਵਿਕਲਪ ਬਦਲੋ।
ਇੱਕ ਸਮਰਥਿਤ ਸੈਟਿੰਗ ਬਦਲੋ ਅਤੇ ਦੋਵੇਂ ਦੌੜਾਂ ਦੁਹਰਾਓ
ਮੂਲ ਪ੍ਰੋਫਾਈਲ ਰੱਖੋ, ਇੱਕ ਸਮਰਥਿਤ ਮੁੱਲ ਬਦਲੋ, ਅਤੇ ਜੋ ਛੋਟੀ ਬੇਨਤੀ ਕੰਮ ਕਰਦੀ ਸੀ ਅਤੇ ਜੋ ਵੱਡਾ ਟ੍ਰਾਂਸਫਰ ਅਸਫਲ ਹੋਇਆ ਦੋਵੇਂ ਦੁਹਰਾਓ। ਸਿਰਫ਼ ਵੱਡਾ ਬਦਲਿਆ ਤਾਂ ਤੁਸੀਂ ਆਕਾਰ ਪਿੱਛੇ ਸੀ। ਦੋਵੇਂ ਬਦਲੇ ਤਾਂ ਉਸ ਨਾਲ ਕੁਝ ਹੋਰ ਵੀ ਹਿਲਿਆ।
ਘੱਟ ਮੁੱਲ ਲੱਛਣ ਘਟਾ ਸਕਦਾ ਹੈ ਪਰ ਵਾਧੂ ਭਾਰ ਜੋੜਦਾ ਹੈ, ਇਸ ਲਈ ਸਭ ਤੋਂ ਛੋਟਾ ਸੰਭਵ ਨੰਬਰ ਟੀਚਾ ਨਹੀਂ। ਟੀਚਾ ਉਹ ਆਕਾਰ ਹੈ ਜੋ ਮਾਰਗ ਸਭ ਤੋਂ ਘੱਟ ਬਰਬਾਦੀ ਨਾਲ ਭਰੋਸੇਯੋਗ ਢੰਗ ਨਾਲ ਢੋਂਦਾ ਹੈ। ਮੁੱਲ, ਮਾਰਗ ਅਤੇ ਕਲਾਇੰਟ ਸੰਸਕਰਣ ਟਿਕਟ ਵਿੱਚ ਲਿਖੋ, ਕਿਉਂਕਿ ਉਹੀ ਨੰਬਰ ਕਿਤੇ ਹੋਰ ਲਾਗੂ ਕਰਨਾ ਇੱਕ ਅੰਦਾਜ਼ਾ ਹੈ।
ਜੇ ਉਹੀ ਪ੍ਰੋਫਾਈਲ ਕਿਸੇ ਹੋਰ ਭਰੋਸੇਯੋਗ ਨੈੱਟਵਰਕ ਤੋਂ ਕੰਮ ਕਰਦਾ ਹੈ, ਤਾਂ ਕਲਾਇੰਟ ਠੀਕ ਹੋਇਆ ਐਲਾਨਣ ਦੀ ਥਾਂ ਉਹ ਫ਼ਰਕ ਨਿਦਾਨ ਵਿੱਚ ਰੱਖੋ। ਬਦਲਿਆ ਚਲ ਮਾਰਗ ਹੈ, ਅਤੇ ਟੈਸਟ ਨੇ ਜੋ ਮਾਪਿਆ ਉਹ ਮਾਰਗ ਹੀ ਹੈ।