WireGuard ਅਟਕਦਾ ਹੈ: MTU ਸੀਮਾ ਜਾਂ ਗੁੰਮ ਫਾਰਵਰਡ ਨਿਯਮ?
ਸਰਵਰ ਤੋਂ ਪਾਰ ਕੁਝ ਵੀ ਨਾ ਚੱਲਣਾ ਫਾਰਵਰਡਿੰਗ ਜਾਂ ਵਾਪਸੀ ਰੂਟ ਦੀ ਸਮੱਸਿਆ ਹੈ। ਛੋਟੀਆਂ ਬੇਨਤੀਆਂ ਚੱਲਣ ਅਤੇ ਵੱਡੀਆਂ ਅਟਕਣਾ ਪੈਕੇਟ ਆਕਾਰ ਦਾ ਲੱਛਣ ਹੈ।
ਆਦਤ ਇਹ ਹੈ ਕਿ WireGuard ਦੇ ਵਿਗੜਦਿਆਂ ਹੀ MTU ਘਟਾ ਦਿੱਤਾ ਜਾਵੇ, ਅਤੇ ਇਹ ਆਦਤ ਇੱਕ ਹੋਰ ਖਰਾਬੀ ਲੁਕਾ ਦਿੰਦੀ ਹੈ। ਜੋ ਗੇਟਵੇ ਅੱਗੇ ਨਹੀਂ ਭੇਜਦਾ ਅਤੇ ਜੋ ਰਾਹ ਵੱਡੇ ਪੈਕੇਟ ਨਹੀਂ ਢੋਂਦਾ, ਉਹ ਵੱਖਰੇ ਪਛਾਣੇ ਜਾਣ ਵਾਲੇ ਨਮੂਨੇ ਬਣਾਉਂਦੇ ਹਨ: ਇੱਕ ਦੋਵੇਂ ਦਿਸ਼ਾਵਾਂ ਵਿੱਚ ਅਤੇ ਹਰ ਆਕਾਰ ਉੱਤੇ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ, ਦੂਜਾ ਛੋਟੀਆਂ ਬੇਨਤੀਆਂ ਵਿੱਚ ਬਚਦਾ ਹੈ ਅਤੇ ਵੱਡਿਆਂ ਉੱਤੇ ਮਰ ਜਾਂਦਾ ਹੈ। ਕੋਈ ਵੀ ਸੰਖਿਆ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਨਿਰਧਾਰਤ ਕਰੋ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਕਿਹੜਾ ਆਕਾਰ ਹੈ। ਪਰਖ ਸਸਤੀ ਹੈ ਅਤੇ ਸੰਭਾਵੀ ਕਾਰਨਾਂ ਦਾ ਅੱਧਾ ਹਟਾ ਦਿੰਦੀ ਹੈ।
ਦੋ ਫੇਲ੍ਹਤਾਂ, ਦੋ ਵੱਖਰੇ ਆਕਾਰ
ਫਾਰਵਰਡਿੰਗ ਦੀ ਸਮੱਸਿਆ ਸਰਵਰ ਤੋਂ ਬਿਲਕੁਲ ਬਾਅਦ ਦਿਸਦੀ ਹੈ। ਹੈਂਡਸ਼ੇਕ ਸਫਲ ਹੁੰਦਾ ਹੈ, ਟਨਲ ਦਾ ਪਤਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਗੇਟਵੇ ਪਿੱਛੇ ਛੋਟੀ ਬੇਨਤੀ ਨਾਲ ਵੀ ਕੁਝ ਨਹੀਂ ਪਹੁੰਚਦਾ। ਪੈਕੇਟ ਸਰਵਰ ਤੱਕ ਪਹੁੰਚਿਆ ਅਤੇ ਅੱਗੇ ਨਹੀਂ ਭੇਜਿਆ ਗਿਆ, ਜਾਂ ਜਵਾਬ ਦਾ ਵਾਪਸੀ ਦਾ ਕੋਈ ਰਾਹ ਨਹੀਂ ਸੀ।
ਆਕਾਰ ਦੀ ਸਮੱਸਿਆ ਸਿਰਫ਼ ਇੱਕ ਸੀਮਾ ਤੋਂ ਉੱਪਰ ਦਿਸਦੀ ਹੈ। DNS, TCP ਹੈਂਡਸ਼ੇਕ ਅਤੇ ਛੋਟੀ API ਕਾਲ ਚੱਲਦੇ ਹਨ, ਜਦੋਂ ਕਿ ਫ਼ਾਈਲ ਡਾਊਨਲੋਡ ਜਾਂ ਵੱਡਾ ਜਵਾਬ ਅਟਕ ਜਾਂਦਾ ਹੈ। ਜੋ ਪੈਕੇਟ ਫਿੱਟ ਹੋਏ ਉਹ ਇੱਕ ਸਿਰੇ ਤੋਂ ਦੂਜੇ ਸਿਰੇ ਤੱਕ ਗਏ, ਅਤੇ ਜੋ ਨਹੀਂ ਫਿੱਟ ਹੋਏ ਉਹ ਕਿਤੇ ਬਿਨਾਂ ਕਿਸੇ ਲਾਹੇਵੰਦ ਰਿਪੋਰਟ ਦੇ ਸੁੱਟ ਦਿੱਤੇ ਗਏ।
ਉਹ ਵੇਰਵੇ ਵੱਖਰੇ ਲੋਕਾਂ ਅਤੇ ਵੱਖਰੀਆਂ ਕਨਫਿਗਰੇਸ਼ਨ ਫ਼ਾਈਲਾਂ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੇ ਹਨ, ਇਸ ਲਈ ਅੰਦਾਜ਼ੇ ਨਾਲੋਂ ਆਕਾਰ ਮਾਪਣਾ ਵਧੇਰੇ ਕੀਮਤੀ ਹੈ। ਗੇਟਵੇ ਨੂੰ ਇੱਕ ਪਿੰਗ ਉਹਨਾਂ ਨੂੰ ਵੱਖ ਨਹੀਂ ਕਰ ਸਕਦਾ।
ਕੁਝ ਵੀ ਛੋਟਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਫਾਰਵਰਡਿੰਗ ਬਾਹਰ ਕਰੋ
ਗੇਟਵੇ ਆਪਣੇ ਆਪ ਨੂੰ ਨਹੀਂ, ਗੇਟਵੇ ਤੋਂ ਪਾਰ ਦੇ ਟਿਕਾਣੇ ਨੂੰ ਪਰਖੋ। ਸਰਵਰ ਦੇ ਟਨਲ ਪਤੇ ਉੱਤੇ ਪਿੰਗ ਸਿਰਫ਼ ਇਹ ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਇੰਟਰਫ਼ੇਸ ਚਾਲੂ ਹੈ ਅਤੇ ਤੁਸੀਂ ਉਸ ਮਸ਼ੀਨ ਤੱਕ ਪਹੁੰਚਦੇ ਹੋ ਜੋ ਟਨਲ ਖ਼ਤਮ ਕਰਦੀ ਹੈ। ਵਿਸਤ੍ਰਿਤ ਨੈੱਟਵਰਕ ਦਾ ਟ੍ਰੈਫ਼ਿਕ ਉਸ ਮਸ਼ੀਨ ਉੱਤੇ IP ਫਾਰਵਰਡਿੰਗ ਚਾਲੂ ਹੋਣ ਅਤੇ ਫਾਰਵਰਡ ਕੀਤੇ ਪ੍ਰਵਾਹ ਨੂੰ ਮਨਜ਼ੂਰੀ ਦੇਣ ਵਾਲੇ ਫ਼ਾਇਰਵਾਲ ਉੱਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਦੋਵੇਂ ਸੱਚੇ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ, ਅਤੇ ਇੱਕ ਵੀ ਝੂਠਾ ਹੋਵੇ ਤਾਂ ਉਹੀ ਖ਼ਾਮੋਸ਼ੀ ਬਣਦੀ ਹੈ।
ਵਾਪਸੀ ਰੂਟਿੰਗ ਦਾ ਵੀ ਉੱਨਾ ਹੀ ਮਹੱਤਵ ਹੈ। ਜੇ ਟਿਕਾਣਾ ਨੈੱਟਵਰਕ ਨੂੰ ਇਹ ਨਹੀਂ ਪਤਾ ਕਿ ਕਲਾਇੰਟ ਦੇ ਟਨਲ ਪਤੇ ਤੱਕ ਕਿਵੇਂ ਪਹੁੰਚਣਾ ਹੈ, ਤਾਂ ਬੇਨਤੀ ਆਉਂਦੀ ਹੈ ਅਤੇ ਜਵਾਬ ਗ਼ਾਇਬ ਹੋ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਕਲਾਇੰਟ ਸੁੱਟੇ ਗਏ ਫਾਰਵਰਡ ਵਰਗਾ ਹੀ ਦਿਸਣ ਵਾਲਾ ਸਮਾਂ ਸਮਾਪਤੀ ਦੀ ਰਿਪੋਰਟ ਕਰਦਾ ਹੈ।
ਜਿੱਥੇ ਡਿਜ਼ਾਈਨ ਪਤਾ ਅਨੁਵਾਦ ਵਰਤਦਾ ਹੈ, ਉੱਥੇ ਅਨੁਵਾਦ ਨਿਯਮ ਉਸ ਵਾਪਸੀ ਰਾਹ ਦਾ ਹਿੱਸਾ ਹੈ। MTU ਸਮੱਸਿਆ ਦਾ ਪਿੱਛਾ ਕਰਦਿਆਂ ਇਸਨੂੰ ਹਟਾਉਣਾ ਚੱਲ ਰਹੇ ਡਿਜ਼ਾਈਨ ਨੂੰ ਟੁੱਟੇ ਹੋਏ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ, ਇਸ ਲਈ ਸੰਪਾਦਨ ਤੋਂ ਪਹਿਲਾਂ ਮੌਜੂਦਾ ਨਿਯਮ ਪੜ੍ਹੋ।
ਟੁੱਟ ਕਿੱਥੋਂ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ ਮਾਪੋ
ਪਹਿਲਾਂ ਫਾਰਵਰਡਿੰਗ ਦੀ ਸਥਿਤੀ ਅਤੇ ਫਿਲਟਰ ਨਿਯਮ ਪੜ੍ਹੋ। ਇਹ ਸਿਰਫ਼ ਪੜ੍ਹਨ ਦੀਆਂ ਜਾਂਚਾਂ ਹਨ ਅਤੇ ਸਸਤੇ ਸਵਾਲ ਦਾ ਜਵਾਬ ਦਿੰਦੀਆਂ ਹਨ:
sysctl net.ipv4.ip_forward
sudo iptables -S FORWARD
ip route get 10.30.0.9
ਫਿਰ ਕਲਾਇੰਟ ਤੋਂ ਗੇਟਵੇ ਤੋਂ ਪਾਰ ਦੇ ਹੋਸਟ ਵੱਲ, don’t-fragment ਬਿੱਟ ਨਾਲ ਆਕਾਰ ਪਰਖੋ:
ping -M do -s 1200 10.30.0.9
ping -M do -s 1400 10.30.0.9
ਜੇ ਪਹਿਲੀ ਜਾਂਚ ਚੱਲੇ ਅਤੇ ਦੂਜੀ ਟੁਕੜੇ-ਬੰਧਨ ਗ਼ਲਤੀ ਨਾਲ ਫੇਲ੍ਹ ਹੋਵੇ, ਤਾਂ ਰਾਹ ਤੁਹਾਨੂੰ ਆਪਣਾ ਵਰਤੋਂਯੋਗ ਆਕਾਰ ਦੱਸ ਰਿਹਾ ਹੈ। ਜੇ ਦੋਵਾਂ ਵਿੱਚੋਂ ਕੋਈ ਨਾ ਚੱਲੇ, ਤਾਂ ਤੁਸੀਂ ਫਾਰਵਰਡਿੰਗ ਜਾਂ ਰੂਟਿੰਗ ਵੇਖ ਰਹੇ ਹੋ, ਅਤੇ MTU ਬਦਲਣ ਵਾਲਾ ਚਰ ਨਹੀਂ ਹੈ।
| Observation | Points toward | Where to look |
|---|---|---|
| Nothing beyond the gateway works | Forwarding or return route | Forwarding flag, filter rules, routing table |
| Small works, large stalls | Packet size on the path | Tunnel MTU and the link underneath |
| Only names fail | DNS resolution | The resolver configured for the tunnel |
| Works sometimes | Multiple paths or state expiry | Flow selection and NAT state |
ਤੁਸੀਂ ਜੋ ਪਰਤ ਸਾਬਤ ਕੀਤੀ ਉਸਨੂੰ ਠੀਕ ਕਰੋ
ਜਦੋਂ ਫਾਰਵਰਡਿੰਗ ਖਰਾਬੀ ਹੋਵੇ, ਸੁਧਾਰ ਇੱਕ ਫਾਰਵਰਡਿੰਗ ਨਿਯਮ ਜਾਂ ਰੂਟ ਹੈ, ਜੋ ਡਿਜ਼ਾਈਨ ਜਿੰਨਾ ਸੰਕੁਚਿਤ ਹੋਣ ਦਿੰਦਾ ਹੈ ਓਨਾ ਹੀ ਸੰਕੁਚਿਤ ਦੱਸਿਆ ਗਿਆ ਹੋਵੇ। ਜਦੋਂ ਆਕਾਰ ਖਰਾਬੀ ਹੋਵੇ, ਸੁਧਾਰ ਉਹ MTU ਹੈ ਜੋ ਇਸ ਖ਼ਾਸ ਰਾਹ ਉੱਤੇ ਐਨਕੈਪਸੂਲੇਸ਼ਨ ਦਾ ਹਿਸਾਬ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਲੋੜ ਵਾਲੇ ਇੰਟਰਫ਼ੇਸ ਉੱਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ, ਬੇੜੇ ਦੇ ਹਰ ਐਡਾਪਟਰ ਉੱਤੇ ਨਹੀਂ।
ਕਿਵੇਂ ਵੀ ਹੋਵੇ, ਬਾਅਦ ਵਿੱਚ ਉਸੇ ਟਿਕਾਣੇ ਵੱਲ ਉਹੀ ਕੰਮ ਦੁਹਰਾਓ। ਜੇ ਮੂਲ ਵੱਡਾ ਸਥਾਨਾਂਤਰਣ ਹੁਣ ਪੂਰਾ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਬਦਲਾਅ ਨੇ ਉਸ ਪਰਤ ਨੂੰ ਸੰਬੋਧਿਤ ਕੀਤਾ ਜੋ ਫੇਲ੍ਹ ਹੋ ਰਹੀ ਸੀ। ਜੇ ਸਿਰਫ਼ ਛੋਟੀ ਜਾਂਚ ਸੁਧਰੀ, ਤਾਂ ਤੁਸੀਂ ਲੱਛਣ ਦਾ ਇਲਾਜ ਕੀਤਾ ਅਤੇ ਅਸਲ ਸੀਮਾ ਅਜੇ ਵੀ ਆਪਣੀ ਥਾਂ ਉੱਤੇ ਹੈ।
ਬਦਲਾਅ ਤੋਂ ਪਹਿਲਾਂ ਤੁਸੀਂ ਕਿਹੜਾ ਆਕਾਰ ਵੇਖਿਆ ਲਿਖੋ। ਸੁਧਾਰ ਦੇ ਕੋਲ ਦਰਜ ਕੀਤੀ ਉਹ ਇੱਕ ਲਾਈਨ ਹੀ ਅਗਲੇ ਵਿਅਕਤੀ ਨੂੰ ਉਹ MTU ਘਟਾਉਣ ਤੋਂ ਰੋਕਦੀ ਹੈ ਜੋ ਕਦੇ ਸਮੱਸਿਆ ਨਹੀਂ ਸੀ।