VPN ਰਾਹੀਂ ਪਾਥ MTU ਦੀ ਖੋਜ: ਆਕਾਰ ਅਤੇ ICMP ਦਾ ਪਾੜਾ
ਟਨਲ ਪਾਥ ਵੱਲੋਂ ਢੋਏ ਜਾ ਸਕਣ ਵਾਲੇ ਪੈਕਟ ਨੂੰ ਛੋਟਾ ਕਰਦੀ ਹੈ, ਅਤੇ ਫੀਡਬੈਕ ਆਉਣ 'ਤੇ ਹੀ ਖੋਜ ਕੰਮ ਕਰਦੀ ਹੈ। ਅੰਦਾਜ਼ਾ ਲਾਉਣ ਦੀ ਥਾਂ ਪਾਥ ਨੂੰ ਮਾਪੋ, ਪਰਖੋ ਅਤੇ ਤਸਦੀਕ ਕਰੋ।
ਇੱਕ ਟਨਲ ਆਪਣਾ ਹੈਂਡਸ਼ੇਕ ਪੂਰਾ ਕਰਦੀ ਹੈ, ਛੋਟੀਆਂ ਬੇਨਤੀਆਂ ਵਾਪਸ ਆਉਂਦੀਆਂ ਹਨ, ਅਤੇ ਪਹਿਲਾ ਵੱਡਾ ਸਥਾਨਾਂਤਰਣ ਅਟਕ ਜਾਂਦਾ ਹੈ। ਇਹ ਪੈਟਰਨ ਥ੍ਰੂਪੁਟ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਨ ਤੋਂ ਬਹੁਤ ਪਹਿਲਾਂ ਪਾਥ MTU ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ। ਰਸਤੇ ਦੀ ਹਰ ਕੜੀ ਪੈਕਟ ਦਾ ਆਕਾਰ ਸੀਮਤ ਕਰਦੀ ਹੈ, ਅਤੇ ਐਨਕੈਪਸੂਲੇਸ਼ਨ ਉਸ ਭੱਤੇ ਦਾ ਕੁਝ ਹਿੱਸਾ ਬਾਹਰੀ ਹੈਡਰਾਂ 'ਤੇ ਖਰਚ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਅੰਦਰਲਾ ਪੈਕਟ ਕੱਚੇ ਰਸਤੇ ਦੇ ਸੰਕੇਤ ਤੋਂ ਛੋਟਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਨਾਕਾਮੀ ਚੁੱਪ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਇਹੀ ਇਸਨੂੰ ਨਿਦਾਨ ਕਰਨਾ ਮਹਿੰਗਾ ਬਣਾਉਂਦਾ ਹੈ।
ਪਾਥ MTU ਅਸਲ ਵਿੱਚ ਕੀ ਮਾਪਦਾ ਹੈ
ਪਾਥ MTU ਦੋ ਹੋਸਟਾਂ ਵਿਚਕਾਰ ਰਸਤੇ 'ਤੇ ਸਭ ਤੋਂ ਛੋਟੀ ਕੜੀ ਦਾ MTU ਹੈ, ਤੁਹਾਡੇ ਸਥਾਨਕ ਇੰਟਰਫੇਸ 'ਤੇ ਛਾਪਿਆ MTU ਨਹੀਂ। ਸਥਾਨਕ ਮੁੱਲ ਉਹ ਬਿੰਦੂ ਹੈ ਜਿੱਥੋਂ ਅੰਦਾਜ਼ਾ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਰਸਤਾ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਇਹ ਕਿੱਥੇ ਖਤਮ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਸੇ ਕਰਕੇ ਇੱਕੋ ਟਨਲ ਇੱਕ ਐਕਸੈਸ ਨੈੱਟਵਰਕ 'ਤੇ ਕੰਮ ਕਰ ਸਕਦੀ ਹੈ ਅਤੇ ਦੂਜੇ 'ਤੇ ਅਟਕ ਸਕਦੀ ਹੈ: ਰਸਤਾ ਬਦਲਿਆ, ਸੰਰਚਨਾ ਨਹੀਂ। ਇੱਕ ਵਾਰ ਮਾਪ ਕੇ ਹਰ ਜਗ੍ਹਾ ਮੰਨ ਲੈਣਾ ਉਹੀ ਗਲਤੀ ਹੈ ਜੋ ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਜੀਵਤ ਰੱਖਦੀ ਹੈ।
ਟਨਲ ਲਈ, ਮਹੱਤਵਪੂਰਨ ਸੰਖਿਆ ਅੰਦਰਲਾ MTU ਹੈ, ਜੋ ਬਾਹਰੀ ਰਸਤੇ ਦਾ ਭੱਤਾ ਘਟਾਕੇ ਐਨਕੈਪਸੂਲੇਸ਼ਨ ਜੋ ਖਰਚ ਕਰਦਾ ਹੈ। WireGuard ਬਾਹਰੀ IP ਹੈਡਰ ਅਤੇ UDP ਹੈਡਰ ਜੋੜਦਾ ਹੈ; ਹੋਰ ਟਰਾਂਸਪੋਰਟ ਆਪਣੇ ਜੋੜਦੇ ਹਨ। ਅੰਦਰਲਾ ਆਕਾਰ ਬਹੁਤ ਉੱਚਾ ਰੱਖੋ ਤਾਂ ਹਰ ਪੂਰੇ-ਆਕਾਰ ਪੈਕਟ ਨੂੰ ਫਰੈਗਮੈਂਟੇਸ਼ਨ ਚਾਹੀਦਾ ਹੋਵੇਗਾ ਜੋ ਸ਼ਾਇਦ ਕਦੇ ਨਾ ਹੋਵੇ।
ਟਨਲ ਵਰਤੋਂਯੋਗ ਪੈਕਟ ਨੂੰ ਕਿਉਂ ਛੋਟਾ ਕਰਦੀ ਹੈ
ਜੇ ਟਨਲ ਇੰਟਰਫੇਸ ਭੌਤਿਕ ਕੜੀ ਦਾ MTU ਰੱਖਦਾ ਹੈ, ਤਾਂ ਹਰ ਵੱਡਾ ਪੈਕਟ ਹੇਠਾਂ ਕਿਸੇ ਦੇ ਇਸਨੂੰ ਫਰੈਗਮੈਂਟ ਕਰਨ ਲਈ ਤਿਆਰ ਹੋਣ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। IPv4 ਸਿਧਾਂਤਕ ਤੌਰ 'ਤੇ ਇਸਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਪਰ ਜਿਸ ਰਾਊਟਰ ਨੂੰ ਫਰੈਗਮੈਂਟ ਨਾ ਕਰਨ ਦਾ ਕਿਹਾ ਗਿਆ ਹੋਵੇ ਉਹ ਇਸਦੀ ਥਾਂ ਗਲਤੀ ਵਾਪਸ ਕਰਦਾ ਹੈ। IPv6 ਰਾਊਟਰ ਟਰਾਂਜ਼ਿਟ ਵਿੱਚ ਕਦੇ ਫਰੈਗਮੈਂਟ ਨਹੀਂ ਕਰਦੇ, ਇਸ ਲਈ ਉਹੀ ਸੈਟਿੰਗ ਪਤਾ ਪਰਿਵਾਰ ਅਨੁਸਾਰ ਵੱਖਰੀ ਤਰ੍ਹਾਂ ਵਿਵਹਾਰ ਕਰਦੀ ਹੈ। ਕਿਸੇ ਵੀ ਤਰ੍ਹਾਂ ਭੇਜਣ ਵਾਲਾ ਕੁਝ ਨਹੀਂ ਸਿੱਖਦਾ ਜਦ ਤੱਕ ਕੋਈ ਵਾਪਸ ਰਿਪੋਰਟ ਨਾ ਕਰੇ।
ਵਿਹਾਰਕ ਨਤੀਜਾ ਇੱਕ ਆਕਾਰ ਹੈ ਜੋ ਹੈਂਡਸ਼ੇਕ ਵਿੱਚ ਫਿੱਟ ਹੁੰਦਾ ਹੈ ਪਰ ਪੇਲੋਡ ਵਿੱਚ ਨਹੀਂ। TLS ClientHello ਜਾਂ DNS ਕਿਊਰੀ ਛੋਟੇ ਹੋਏ ਰਸਤੇ ਨੂੰ ਛੂਹੇ ਬਿਨਾਂ ਲੰਘਣ ਲਈ ਕਾਫ਼ੀ ਛੋਟੀ ਹੁੰਦੀ ਹੈ, ਜਦਕਿ ਵੱਡਾ ਸਥਾਨਾਂਤਰਣ ਅਜਿਹਾ ਨਹੀਂ। ਇਸ ਲਈ ਲੱਛਣ ਖਾਸ ਹੋਸਟਾਂ ਦੁਆਲੇ ਨਹੀਂ, ਖਾਸ ਕਿਰਿਆਵਾਂ ਦੁਆਲੇ ਇਕੱਠੇ ਹੁੰਦੇ ਹਨ।
ਫੀਡਬੈਕ ਆਉਣ 'ਤੇ ਹੀ ਖੋਜ ਕੰਮ ਕਰਦੀ ਹੈ
IPv4 ਖੋਜ don't-fragment ਬਿੱਟ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ: ਜੋ ਰਾਊਟਰ ਪੈਕਟ ਅੱਗੇ ਨਹੀਂ ਭੇਜ ਸਕਦਾ ਉਹ ਅਗਲੀ ਹੌਪ ਦੇ MTU ਨਾਲ ICMP fragmentation-needed ਵਾਪਸ ਕਰਦਾ ਹੈ, ਅਤੇ ਭੇਜਣ ਵਾਲਾ ਆਪਣਾ ਅੰਦਾਜ਼ਾ ਘਟਾਉਂਦਾ ਹੈ। IPv6 ਇਸਦੀ ਥਾਂ Packet Too Big ਸੁਨੇਹੇ ਵਰਤਦਾ ਹੈ, ਕਿਉਂਕਿ ਰਾਊਟਰ ਟਰਾਂਜ਼ਿਟ ਵਿੱਚ ਫਰੈਗਮੈਂਟ ਨਹੀਂ ਕਰਦੇ। ਦੋਵੇਂ ਵਿਧੀਆਂ ਮੰਨਦੀਆਂ ਹਨ ਕਿ ਸੁਨੇਹਾ ਭੇਜਣ ਵਾਲੇ ਤੱਕ ਵਾਪਸ ਰਾਹ ਲੱਭੇਗਾ, ਟਨਲ ਰਾਹੀਂ ਅਤੇ ਵਾਪਸੀ ਰਸਤੇ ਦੇ ਕਿਸੇ ਵੀ ਫਾਇਰਵਾਲ ਤੋਂ ਅੱਗੇ। ਜਦੋਂ ਇਹ ਧਾਰਨਾ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ, ਭੇਜਣ ਵਾਲਾ ਉਹ ਆਕਾਰ ਵਾਰ-ਵਾਰ ਅਜ਼ਮਾਉਂਦਾ ਰਹਿੰਦਾ ਹੈ ਜੋ ਰਸਤਾ ਚੁੱਕ ਨਹੀਂ ਸਕਦਾ।
ਜੋ ਫਾਇਰਵਾਲ echo request ਅਤੇ echo reply ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਉਸਨੇ ਜ਼ਰੂਰੀ ਨਹੀਂ ਕਿ ਉਹ ਗਲਤੀ ਕਿਸਮਾਂ ਦੀ ਵੀ ਆਗਿਆ ਦਿੱਤੀ ਹੋਵੇ। ICMP ਇੱਕ ਪਰਿਵਾਰ ਹੈ, ਅਤੇ ਇੱਥੇ ਮਹੱਤਵਪੂਰਨ ਮੈਂਬਰ ਗਲਤੀਆਂ ਹਨ, ਈਕੋ ਜੋੜੀ ਨਹੀਂ। ਟਨਲ ਦੇ ਦੋਵੇਂ ਸਿਰਿਆਂ 'ਤੇ ਅਤੇ ਉਹਨਾਂ ਵਿਚਕਾਰਲੇ ਰਸਤੇ 'ਤੇ ਕੰਟਰੋਲ-ਟ੍ਰੈਫਿਕ ਨੀਤੀ ਜਾਂਚੋ, ਅਤੇ ਹਰ ਜਗ੍ਹਾ ਹਰ ICMP ਕਿਸਮ ਦੀ ਆਗਿਆ ਦੇਣ ਦੀ ਥਾਂ ਪਲੇਟਫਾਰਮ ਦੀ ਸਮਰਥਿਤ ਸੇਧ ਦੀ ਪਾਲਣਾ ਕਰੋ।
ਉਹੀ ਫਿਲਟਰਿੰਗ ਟਨਲ ਦੇ ਅੰਦਰ ਵੀ ਹੋ ਸਕਦੀ ਹੈ। ਜੇ ਅੰਦਰਲਾ ਰਸਤਾ ਗਲਤੀ ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ ਪਰ ਬਾਹਰੀ ਰਸਤਾ ਇਸਨੂੰ ਚੁੱਕਦਾ ਹੈ, ਤਾਂ ਭੇਜਣ ਵਾਲਾ ਉਸ ਸੀਮਾ ਨਾਲ ਤਾਲਮੇਲ ਬਣਾ ਸਕਦਾ ਹੈ ਜਿਸਨੂੰ ਐਨਕੈਪਸੂਲੇਟਿਡ ਟ੍ਰੈਫਿਕ ਕਦੇ ਅਸਲ ਵਿੱਚ ਨਹੀਂ ਦੇਖਦਾ।
ਸੰਖਿਆ ਦਾ ਅੰਦਾਜ਼ਾ ਲਾਉਣ ਦੀ ਥਾਂ ਰਸਤਾ ਪਰਖੋ
ਮੰਜ਼ਿਲ, ਐਕਸੈਸ ਨੈੱਟਵਰਕ ਅਤੇ ਟਨਲ ਸਥਿਰ ਰੱਖੋ, ਫਿਰ ਸਿਰਫ਼ ਪੈਕਟ ਦਾ ਆਕਾਰ ਬਦਲੋ। MTU ਸੰਕੇਤ ਨਾਲ ਫੇਲ੍ਹ ਹੋਣ ਵਾਲੀ don't-fragment ਜਾਂਚ ਤੁਹਾਨੂੰ ਅਗਲੀ ਹੌਪ ਦੀ ਸੀਮਾ ਦਿੰਦੀ ਹੈ; ਕੋਈ ਆਕਾਰ ਲੰਘਣ ਤੱਕ ਦੁਹਰਾਓ, ਅਤੇ ਆਕਾਰ ਤੇ ਪਤਾ ਪਰਿਵਾਰ ਦੋਵੇਂ ਦਰਜ ਕਰੋ।
ping -M do -s 1400 10.60.20.10
ping -M do -s 1300 10.60.20.10
ping -6 -M do -s 1300 2001:db8::10
ਫਿੱਟ ਹੋਣ ਵਾਲਾ ਪਿੰਗ ਇਹ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ ਕਿ ਕਿਸੇ ਅਸਲ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਪੂਰੇ-ਆਕਾਰ ਸੈਗਮੈਂਟ ਫਿੱਟ ਹੋਣਗੇ, ਇਸ ਲਈ ਜੋ ਸਥਾਨਾਂਤਰਣ ਅਸਲ ਵਿੱਚ ਫੇਲ੍ਹ ਹੋਇਆ ਉਸ ਨਾਲ ਜਾਂਚ ਦੁਹਰਾਓ। ਸਭ ਤੋਂ ਵੱਡੀ ਕੰਮ ਕਰਨ ਵਾਲੀ ਜਾਂਚ ਦੀ ਤੁਲਨਾ ਆਪਣੇ ਸੰਰਚਿਤ ਟਨਲ MTU ਨਾਲ ਕਰੋ, ਅਤੇ ਦੋਵੇਂ ਸੰਖਿਆਵਾਂ ਆਪਣੇ ਨੋਟਾਂ ਵਿੱਚ ਵੱਖਰੀਆਂ ਰੱਖੋ। ਜੇ ਉਹ ਲਗਭਗ ਇੱਕ ਹੈਡਰ ਜਿੰਨੀਆਂ ਵੱਖਰੀਆਂ ਹੋਣ, ਤਾਂ ਤੁਸੀਂ ਖਰਾਬੀ ਦੀ ਥਾਂ ਐਨਕੈਪਸੂਲੇਸ਼ਨ ਓਵਰਹੈਡ ਲੱਭਿਆ ਹੈ।
RFC 4821 ਵਿੱਚ ਵਰਣਿਤ PLPMTUD ਉੱਪਰ ਵੱਲ ਜਾਂਚ ਕਰਦਾ ਹੈ ਅਤੇ ਪਹੁੰਚਾਈਆਂ ਗਲਤੀਆਂ 'ਤੇ ਭਰੋਸਾ ਕਰਨ ਦੀ ਥਾਂ ਟਰਾਂਸਪੋਰਟ ਪੁਸ਼ਟੀਆਂ ਵਰਤਦਾ ਹੈ। ਇਹ ICMP ਫਿਲਟਰ ਕਰਨ ਵਾਲੇ ਰਸਤਿਆਂ 'ਤੇ ਮਦਦ ਕਰਦਾ ਹੈ, ਪਰ ਸਮਰਥਨ ਸਟੈਕ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਅਨੁਸਾਰ ਬਦਲਦਾ ਹੈ। TCP ਪ੍ਰਵਾਹ ਆਪਣੇ ਆਪ ਸੁਧਰ ਸਕਦਾ ਹੈ ਜਦਕਿ ਨਿਸ਼ਚਿਤ ਡੇਟਾਗ੍ਰਾਮ ਆਕਾਰ ਵਾਲਾ UDP ਐਪਲੀਕੇਸ਼ਨ ਫੇਲ੍ਹ ਹੁੰਦਾ ਰਹਿੰਦਾ ਹੈ।
ਮੁੱਲ ਚੁਣੋ ਅਤੇ ਕਾਰਨ ਦਰਜ ਕਰੋ
ਟਨਲ MTU ਘਟਾਉਣਾ ਨਿਦਾਨ ਅਤੇ ਜਾਇਜ਼ ਸੁਧਾਰ ਦੋਵੇਂ ਹੈ ਇੱਕ ਵਾਰ ਤੁਸੀਂ ਰਸਤਾ ਜਾਣ ਲਓ। ਇਹ ਇਹ ਜਾਣਨ ਦਾ ਬਦਲ ਨਹੀਂ ਹੈ ਕਿ ਕਿਹੜਾ ਰਸਤਾ ਅਤੇ ਕਿਹੜੀ ਫੀਡਬੈਕ ਵਿਧੀ ਸ਼ਾਮਲ ਸੀ, ਕਿਉਂਕਿ ਮੋਬਾਇਲ ਕੜੀ ਲਈ ਟਿਊਨ ਕੀਤਾ ਮੁੱਲ ਫਾਈਬਰ ਕਨੈਕਸ਼ਨ 'ਤੇ ਬੇਲੋੜਾ ਛੋਟਾ ਹੋਵੇਗਾ। ਚੁਣਿਆ ਆਕਾਰ, ਉਸਨੂੰ ਜਾਇਜ਼ ਠਹਿਰਾਉਣ ਵਾਲੀ ਜਾਂਚ ਅਤੇ ਰੋਲਬੈਕ ਕਦਮ ਦਰਜ ਕਰੋ।
IPv4 ਵਿਧੀ ਦਾ ਵਰਣਨ RFC 1191 ਵਿੱਚ ਅਤੇ IPv6 ਪੈਕਟਾਈਜ਼ੇਸ਼ਨ ਸੇਧ RFC 8201 ਵਿੱਚ ਹੈ; ਦੋਵਾਂ ਦਾ ਨਾਮ ਲੈਣ ਨਾਲ ਅਗਲਾ ਇੰਜੀਨੀਅਰ ਧਾਰਨਾ ਦੁਬਾਰਾ ਨਹੀਂ ਕੱਢਦਾ। ਜੇ ਤੁਹਾਡੇ ਚੁਣੇ ਆਕਾਰ 'ਤੇ ਸਥਾਨਾਂਤਰਣ ਅਜੇ ਵੀ ਅਟਕਦਾ ਹੈ, ਤਾਂ ਸੰਖਿਆ ਘਟਾਉਣਾ ਬੰਦ ਕਰੋ ਅਤੇ ਅਗਲੀ ਪਰਤ ਵੇਖੋ। ਹਰ ਆਕਾਰ 'ਤੇ ਫੇਲ੍ਹ ਹੋਣ ਵਾਲਾ ਰਸਤਾ MTU ਸਮੱਸਿਆ ਨਹੀਂ ਹੈ।