ਕਲਾਇੰਟ ਕਹਿੰਦਾ ਹੈ ਕਿ ਜੁੜਿਆ ਹੋਇਆ ਹੈ, ਟਨਲ ਪਤਾ ping ਦਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਦਫ਼ਤਰ ਦੇ LAN ’ਤੇ ਕੁਝ ਵੀ ਜਵਾਬ ਨਹੀਂ ਦਿੰਦਾ। ਲਗਭਗ ਹਰ ਕਲਾਇੰਟ ਅਪਗ੍ਰੇਡ ਤੋਂ ਬਾਅਦ ਮੈਨੂੰ ਇਹ ਦਿਖਦਾ ਹੈ, ਅਤੇ ਪਹਿਲੀ ਪ੍ਰਵਿਰਤੀ ਫਾਇਰਵਾਲ ਖੋਲ੍ਹਣ ਦੀ ਹੁੰਦੀ ਹੈ, ਜੋ ਆਮ ਤੌਰ ’ਤੇ ਗਲਤ ਕਦਮ ਹੈ: ਟਨਲ ਠੀਕ ਹੈ, ਅਤੇ ਟੁੱਟਣ ਪੈਕਟ ਨੂੰ ਲੰਘਣ ਵਾਲੇ ਤਿੰਨ ਹੌਪਾਂ ਵਿੱਚੋਂ ਇੱਕ ’ਤੇ ਹੈ। ਪੈਕਟ ਜਿਸ ਕ੍ਰਮ ਵਿੱਚ ਜਾਂਦਾ ਹੈ ਉਸੇ ਕ੍ਰਮ ਵਿੱਚ ਰਾਹ ਚੱਲੋ, ਪਹਿਲਾਂ ਕਲਾਇੰਟ ਰੂਟ, ਫਿਰ ਸਰਵਰ ਦਾ ਫਾਰਵਰਡਿੰਗ, ਫਿਰ ਵਾਪਸੀ ਦਾ ਸਫ਼ਰ, ਅਤੇ ਕੁਝ ਮਿੰਟਾਂ ਵਿੱਚ ਤੁਹਾਨੂੰ ਖਰਾਬੀ ਦਾ ਮਾਲਕ ਮਿਲ ਜਾਵੇਗਾ।

ਪਹਿਲਾ ਕਦਮ: ਕਲਾਇੰਟ ਦੇ ਰਾਊਟਿੰਗ ਫੈਸਲੇ ਨੂੰ ਵੇਖੋ

ਸਰਵਰ ਨੂੰ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਸਾਬਤ ਕਰੋ ਕਿ ਕਲਾਇੰਟ ਪੈਕਟ ਨੂੰ ਟਨਲ ਵਿੱਚ ਭੇਜਦਾ ਹੈ। ਪੂਰੀ ਸਾਰਣੀ ਪੜ੍ਹਨ ਦੀ ਬਜਾਏ ਕਰਨਲ ਨੂੰ ਪੁੱਛੋ ਕਿ ਇੱਕ ਖ਼ਾਸ LAN ਹੋਸਟ ਲਈ ਕਿਹੜਾ ਇੰਟਰਫ਼ੇਸ ਵਰਤੇਗਾ:

ip route get 192.168.50.10

ਜੇ ਜਵਾਬ ਤੁਹਾਡੇ ਭੌਤਿਕ ਅਡੈਪਟਰ ਅਤੇ ਦਫ਼ਤਰ ਦੇ ਗੇਟਵੇ ਦਾ ਨਾਮ ਲੈਂਦਾ ਹੈ, ਤਾਂ ਸਰਵਰ ਵਾਲੇ ਪਾਸੇ ਦਾ ਕੋਈ ਵੀ ਬਦਲਾਅ ਮਦਦ ਨਹੀਂ ਕਰ ਸਕਦਾ। OpenVPN ਰੂਟ ਸਿਰਫ਼ ਤਦ ਹੀ ਵੰਡਦਾ ਹੈ ਜਦੋਂ ਸਰਵਰ ਉਨ੍ਹਾਂ ਨੂੰ ਧੱਕਦਾ ਹੈ, ਇਸ ਲਈ ਸਰਵਰ ਕਾਨਫਿਗਰੇਸ਼ਨ ਵਿੱਚ push "route 192.168.50.0 255.255.255.0" ਲੱਭੋ, ਅਤੇ ਫਿਰ ਕਲਾਇੰਟ ਨੂੰ ਦੁਬਾਰਾ ਜੋੜੋ। ਜ਼ਿਆਦਾਤਰ ਕਲਾਇੰਟ ਧੱਕੇ ਹੋਏ ਰੂਟ ਜੁੜਨ ਵੇਲੇ ਲਾਗੂ ਕਰਦੇ ਹਨ, ਪ੍ਰੋਫ਼ਾਈਲ ਦੁਬਾਰਾ ਲੋਡ ਕਰਨ ਵੇਲੇ ਨਹੀਂ।

Windows ’ਤੇ ਉਸੇ ਸਵਾਲ ਦਾ ਹੋਰ ਕਮਾਂਡ ਹੈ। Find-NetRoute -RemoteIPAddress 192.168.50.10 ਉਹ ਇੰਟਰਫ਼ੇਸ ਅਤੇ ਅਗਲਾ ਹੌਪ ਛਾਪਦਾ ਹੈ ਜੋ ਸਟੈਕ ਚੁਣੇਗਾ, ਅਤੇ route print -4 ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਧੱਕਿਆ ਪ੍ਰੀਫ਼ਿਕਸ ਬਿਲਕੁਲ ਮੌਜੂਦ ਹੈ ਜਾਂ ਨਹੀਂ।

ਦੂਜਾ ਕਦਮ: ਪੱਕਾ ਕਰੋ ਕਿ ਸਰਵਰ ਪੈਕਟ ਫਾਰਵਰਡ ਕਰੇਗਾ

ਜੇ ਕਲਾਇੰਟ ਰੂਟ ਸਹੀ ਹੈ, ਪੈਕਟ ਸਰਵਰ ਤੱਕ ਪਹੁੰਚਦਾ ਹੈ ਅਤੇ ਸਰਵਰ ਨੂੰ ਇਸਨੂੰ ਫਾਰਵਰਡ ਕਰਨ ਲਈ ਸਹਿਮਤ ਹੋਣਾ ਪੈਂਦਾ ਹੈ। ਕਰਨਲ ਸਵਿੱਚ ਪਹਿਲਾ ਦਰਵਾਜ਼ਾ ਹੈ, ਅਤੇ sysctl net.ipv4.ip_forward ਨੂੰ 1 ਵਾਪਸ ਦੇਣਾ ਪੈਂਦਾ ਹੈ। echo 1 > /proc/sys/net/ipv4/ip_forward ਨਾਲ ਇਸਨੂੰ ਸੈੱਟ ਕਰਨਾ ਅਗਲੀ ਰੀਬੂਟ ਤੱਕ ਕੰਮ ਕਰਦਾ ਹੈ, ਅਤੇ ਇਸੇ ਲਈ ਉਹੀ ਸ਼ਿਕਾਇਤ ਹਫ਼ਤਿਆਂ ਬਾਅਦ ਮੁੜ ਆਉਂਦੀ ਹੈ।

ਇਸਨੂੰ ਉਥੇ ਲਿਖੋ ਜੋ ਰੀਸਟਾਰਟ ਤੋਂ ਬਾਅਦ ਵੀ ਰਹਿੰਦਾ ਹੈ:

echo 'net.ipv4.ip_forward = 1' > /etc/sysctl.d/99-openvpn-forward.conf
sysctl --system

ਦੂਜਾ ਦਰਵਾਜ਼ਾ ਫਿਲਟਰ ਸਾਰਣੀ ਹੈ। Docker ਵਾਲੇ ਹੋਸਟ ’ਤੇ ਅਕਸਰ FORWARD ਨੀਤੀ DROP ਹੁੰਦੀ ਹੈ, ਅਤੇ ਟਨਲ ਉਹ ਫੈਸਲਾ ਵਿਰਾਸਤ ਵਿੱਚ ਲੈ ਲੈਂਦੀ ਹੈ। iptables -L FORWARD -v -n ਨੀਤੀ ਅਤੇ ਪੈਕਟ ਕਾਊਂਟਰ ਦੋਵੇਂ ਦਿਖਾਉਂਦਾ ਹੈ; ਜੇ ਨੀਤੀ DROP ਹੈ, ਤਾਂ ਫਾਰਵਰਡਿੰਗ ਲਈ ਟਨਲ ਤੋਂ LAN ਦਿਸ਼ਾ ਲਈ ਇੱਕ ਸਪੱਸ਼ਟ ਇਜਾਜ਼ਤ ਅਤੇ ਜਵਾਬ ਲਈ ਇੱਕ ਹੋਰ ਚਾਹੀਦੀ ਹੈ।

ਤੀਜਾ ਕਦਮ: ਪੈਕਟ ਨੂੰ LAN ਤੱਕ ਟਰੈਕ ਕਰੋ ਅਤੇ ਜਵਾਬ ਲੱਭੋ

ਸਰਵਰ ਦੇ ਦੋਵੇਂ ਪਾਸੇ ਇਕੱਠੇ ਵੇਖੋ। ਟਨਲ ’ਤੇ ਅਤੇ LAN ਇੰਟਰਫ਼ੇਸ ’ਤੇ ਕੈਪਚਰ ਕਰੋ, ਇੱਕ ਕਲਾਇੰਟ ਅਤੇ ਇੱਕ ਹੋਸਟ ’ਤੇ ਫਿਲਟਰ ਕਰਕੇ ਤਾਂ ਜੋ ਆਉਟਪੁੱਟ ਪੜ੍ਹਨਯੋਗ ਰਹੇ:

tcpdump -ni tun0 host 192.168.50.10
tcpdump -ni eth0 host 192.168.50.10

ਜੋ ਬੇਨਤੀਆਂ tun0 ’ਤੇ ਅਤੇ ਫਿਰ eth0 ’ਤੇ 10.8.0.x ਸਰੋਤ ਨਾਲ ਦਿਖਦੀਆਂ ਹਨ, ਅਤੇ ਉਸ ਤੋਂ ਬਾਅਦ ਚੁੱਪ ਹੁੰਦੀ ਹੈ, ਉਨ੍ਹਾਂ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਪੈਕਟ ਪਹੁੰਚ ਗਿਆ ਅਤੇ ਜਵਾਬ ਕਿਤੇ ਹੋਰ ਗਿਆ। LAN ਹੋਸਟ ਆਪਣੇ ਡਿਫ਼ਾਲਟ ਗੇਟਵੇ ਨੂੰ ਜਵਾਬ ਦਿੰਦਾ ਹੈ, ਉਸ ਗੇਟਵੇ ਕੋਲ VPN ਪੂਲ ਲਈ ਕੋਈ ਰੂਟ ਨਹੀਂ ਹੈ, ਅਤੇ ਜਵਾਬ LAN ਰਾਊਟਰ ’ਤੇ ਮਰ ਜਾਂਦਾ ਹੈ। ਸਰਵਰ ਤੋਂ LAN ਹੋਸਟ ਨੂੰ ping ਕਰਨ ਨਾਲ ਇਸ ਰਾਹ ਬਾਰੇ ਕੁਝ ਵੀ ਸਾਬਤ ਨਹੀਂ ਹੁੰਦਾ, ਕਿਉਂਕਿ ਉਹ ਟ੍ਰੈਫ਼ਿਕ ਕਦੇ ਟਨਲ ਪਾਰ ਨਹੀਂ ਕਰਦਾ।

ਚੌਥਾ ਕਦਮ: ਅਨੁਵਾਦ ਅਤੇ ਵਾਪਸੀ ਰੂਟ ਵਿੱਚੋਂ ਚੁਣੋ

ਦੋ ਮੁਰੰਮਤਾਂ ਛੇਕ ਬੰਦ ਕਰਦੀਆਂ ਹਨ, ਅਤੇ ਇਸ ਚੋਣ ਦੇ ਨਤੀਜੇ ping ਚੱਲਣ ਤੋਂ ਅੱਗੇ ਜਾਂਦੇ ਹਨ। ਸਰੋਤ ਅਨੁਵਾਦ ਸਰਵਰ ਨੂੰ ਦਿਖਣ ਵਾਲਾ ਭੇਜਣ ਵਾਲਾ ਬਣਾ ਦਿੰਦਾ ਹੈ:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

ਨਿਯਮ ਨੂੰ ਪੂਲ ਅਤੇ LAN ਇੰਟਰਫ਼ੇਸ ਤੱਕ ਸੀਮਤ ਕਰੋ, ਫਿਰ ਇਸਨੂੰ ਪੱਕਾ ਕਰੋ, ਨਹੀਂ ਤਾਂ ਅਗਲੀ ਫਾਇਰਵਾਲ ਰੀਲੋਡ ਤੁਹਾਡੀ ਮੁਰੰਮਤ ਚੁੱਪਚਾਪ ਹਟਾ ਦੇਵੇਗੀ। ਕੀਮਤ ਪਛਾਣ ਹੈ: LAN ਲੌਗ ਅਤੇ ਐਕਸੈਸ ਨਿਯਮਾਂ ਵਿੱਚ ਹਰ ਕਲਾਇੰਟ VPN ਸਰਵਰ ਵਾਂਗ ਦਿਖਦਾ ਹੈ, ਅਤੇ per-client policy becomes guesswork।

LAN ਰਾਊਟਰ ’ਤੇ VPN ਸਰਵਰ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਨ ਵਾਲਾ 10.8.0.0/24 ਲਈ ਸਥਿਰ ਰੂਟ ਕਲਾਇੰਟ ਪਤੇ ਦਿਸਦੇ ਰੱਖਦਾ ਹੈ ਅਤੇ ਜਦੋਂ ਉਹ ਰਾਊਟਰ ਤੁਹਾਡਾ ਹੋਵੇ ਤਾਂ ਇਹ ਬਿਹਤਰ ਦੀਰਘਕਾਲੀ ਜਵਾਬ ਹੈ। ਕਈ ਸਾਈਟਾਂ ਕੁਝ ਸਮਾਂ ਦੋਵੇਂ ਚਲਾਉਂਦੀਆਂ ਹਨ, ਤੁਰੰਤ ਮੁਰੰਮਤ ਲਈ NAT ਅਤੇ ਫਾਇਰਵਾਲ ਨੀਤੀ ਲਿਖੇ ਜਾਣ ਤੋਂ ਬਾਅਦ ਰੂਟ। ਜੇ ਸਰਵਰ ਪੂਲ ਨਹੀਂ ਸਗੋਂ ਸਾਈਟ-ਤੋਂ-ਸਾਈਟ ਪੀਅਰ ਹੈ, ਤਾਂ ਸਰਵਰ ਪਾਸੇ ਨੂੰ ਵੀ ਦੂਰਲੇ ਸਬਨੈੱਟ ਲਈ iroute ਚਾਹੀਦਾ ਹੈ, ਨਹੀਂ ਤਾਂ ਪੀਅਰ ਰੂਟ ਹੁੰਦਾ ਹੈ ਪਰ ਕਲਾਇੰਟ ਟ੍ਰੈਫ਼ਿਕ ਕਦੇ ਇਸ ਨਾਲ ਜੁੜਦਾ ਨਹੀਂ।

ਪੰਜਵਾਂ ਕਦਮ: ਕਲਾਇੰਟ ਤੋਂ ਜਾਂਚੋ ਅਤੇ ਨੋਟ ਕਰੋ ਕਿ ਕੀ ਬਦਲਿਆ

ਲੂਪ ਸਰਵਰ ਤੋਂ ਨਹੀਂ, ਕਲਾਇੰਟ ਤੋਂ ਬੰਦ ਕਰੋ। LAN ਹੋਸਟ ’ਤੇ ਅਸਲ ਸੇਵਾ ਨਾਲ ਜੁੜੋ, ਫਿਰ ਪੱਕਾ ਕਰੋ ਕਿ ਅਨੁਵਾਦ ਕਾਊਂਟਰ iptables -t nat -L POSTROUTING -v -n ਨਾਲ ਹਿਲੇ ਹਨ, ਕਿਉਂਕਿ ਜ਼ੀਰੋ ਪੈਕਟ ਵਾਲਾ ਨਿਯਮ ਉਹ ਨਿਯਮ ਹੈ ਜੋ ਕਦੇ ਨਹੀਂ ਮਿਲਿਆ। ਜਦੋਂ ਤੁਹਾਨੂੰ ਸਬੂਤ ਚਾਹੀਦਾ ਹੋਵੇ ਕਿ ਵਾਪਸੀ ਦਿਸ਼ਾ ਟਰੈਕ ਹੋ ਰਹੀ ਹੈ, ਤਾਂ conntrack -L -s 10.8.0.5 ਪ੍ਰਵਾਹ ਅਤੇ ਉਸਦੀ ਸਥਿਤੀ ਦਿਖਾਉਂਦਾ ਹੈ।

ਸਰਵਰ ਕਾਨਫਿਗ ਵਿੱਚ ਇੱਕ ਨੋਟ ਛੱਡੋ: ਕਿਹੜਾ ਸਬਨੈੱਟ, ਕਿਹੜਾ ਇੰਟਰਫ਼ੇਸ, ਕਿਹੜਾ ਨਿਯਮ, ਅਤੇ LAN ਰਾਊਟਰ ਕੋਲ ਵਾਪਸੀ ਰੂਟ ਹੈ ਜਾਂ ਨਹੀਂ। ਅਗਲੀ ਵਾਰ ਜਦੋਂ ਕੋਈ ਕਲਾਇੰਟ ਅਪਗ੍ਰੇਡ ਧੱਕਿਆ ਹੋਇਆ ਰੂਟ ਮਿਟਾ ਦੇਵੇ, ਤਾਂ ਉਹ ਨੋਟ ਅੱਗ ਬੁਝਾਉਣ ਦੇ ਸੈਸ਼ਨ ਨੂੰ ਇੱਕ ਲਾਈਨ ਦੀ ਮੁਰੰਮਤ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ