VPN ਰੂਟ ਵਿੱਚ ਅਗਲਾ ਹੌਪ: ਗੇਟਵੇ ਸਥਾਨਕ ਤੌਰ ’ਤੇ ਪਹੁੰਚਯੋਗ ਕਿਉਂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ
ਰੂਟ ਦਾ via ਪਤਾ ਉਸ ਲਿੰਕ ’ਤੇ ਪਹੁੰਚਯੋਗ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਜਿੱਥੋਂ ਤੁਸੀਂ ਭੇਜਦੇ ਹੋ। ਹੈਂਡਓਫ਼ ਦਾ ਪਿੱਛਾ ਕਰੋ, ਲੁੱਕਅੱਪ ਜਾਂਚੋ ਅਤੇ ਉਸ ਹੋਸਟ ਤੋਂ ਟੈਸਟ ਕਰੋ ਜਿਸ ਕੋਲ ਟ੍ਰੈਫ਼ਿਕ ਹੈ।
VPN ਨੈੱਟਵਰਕ ਵੱਲ ਜਾਣ ਵਾਲਾ ਰੂਟ ਦੋ ਪਤੇ ਲੈ ਕੇ ਜਾਂਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਉਲਝਾਉਣਾ ਆਸਾਨ ਹੈ: ਪੈਕੇਟ ਜਿਸ ਮੰਜ਼ਿਲ ਪ੍ਰੀਫ਼ਿਕਸ ਤੱਕ ਪਹੁੰਚਣਾ ਚਾਹੁੰਦਾ ਹੈ ਅਤੇ ਅਗਲਾ ਹੌਪ ਜੋ ਇਸਨੂੰ ਇੱਕ ਕਦਮ ਨੇੜੇ ਲੈ ਜਾਵੇਗਾ। LAN ਹੋਸਟ ’ਤੇ ਉਹ ਅਗਲਾ ਹੌਪ ਅਜਿਹਾ ਰਾਊਟਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਜਿੱਥੇ ਤੁਸੀਂ ਸੱਚਮੁੱਚ ਉਸੇ ਲਿੰਕ ’ਤੇ ਪਹੁੰਚ ਸਕਦੇ ਹੋ। ਦੂਰ ਦਾ VPN ਪਤਾ ਅਗਲਾ ਹੌਪ ਨਹੀਂ ਹੈ, ਭਾਵੇਂ ਇਹ ਤੁਹਾਡੇ ਮਨ ਦੀ ਮੰਜ਼ਿਲ ਨਾਲ ਕਿੰਨਾ ਵੀ ਚੰਗੀ ਤਰ੍ਹਾਂ ਮੇਲ ਖਾਂਦਾ ਹੋਵੇ।
ਇਹ ਰਨਬੁੱਕ ਆਮ ਸਥਿਤੀ ਨੂੰ ਕਵਰ ਕਰਦੀ ਹੈ: 192.168.20.0/24 ’ਤੇ ਇੱਕ ਲੈਪਟਾਪ, 192.168.20.5 LAN ਪਤੇ ਵਾਲਾ VPN ਗੇਟਵੇ, ਅਤੇ ਉਸ ਗੇਟਵੇ ਪਿੱਛੇ 10.70.0.0/24 ਦੂਰ ਦਾ ਨੈੱਟਵਰਕ। ਹੇਠਾਂ ਦਿੱਤੇ ਸਾਰੇ ਕਮਾਂਡ ਮੰਨਦੇ ਹਨ ਕਿ ਤੁਸੀਂ ਲੈਪਟਾਪ ’ਤੇ ਹੋ, ਜਦੋਂ ਤੱਕ ਹੋਰ ਤਰ੍ਹਾਂ ਨਾ ਕਿਹਾ ਜਾਵੇ।
ਦੋ ਪਤੇ, ਇੱਕ ਰੂਟ
ਇੱਛਤ ਐਂਟਰੀ 10.70.0.0/24 via 192.168.20.5 ਹੈ। ਪ੍ਰੀਫ਼ਿਕਸ ਦੱਸਦਾ ਹੈ ਕਿ ਪੈਕੇਟ ਕਿੱਥੇ ਜਾ ਰਿਹਾ ਹੈ; via ਪਤਾ ਦੱਸਦਾ ਹੈ ਕਿ ਇਸਨੂੰ ਉੱਥੇ ਕੌਣ ਲੈ ਜਾ ਰਿਹਾ ਹੈ। ਕਰਨਲ ਉਸ ਰੂਟ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨ ਤੋਂ ਇਨਕਾਰ ਕਰਦਾ ਹੈ ਜਿਸ ਦੇ ਗੇਟਵੇ ਤੱਕ ਉਹ ਤੁਹਾਡੇ ਦੱਸੇ ਇੰਟਰਫ਼ੇਸ ਰਾਹੀਂ ਨਹੀਂ ਪਹੁੰਚ ਸਕਦਾ, ਅਤੇ ਇਹ ਇਨਕਾਰ ਹੀ ਪੂਰੀ ਗੱਲ ਹੈ: ਜਿਸ ਅਗਲੇ ਹੌਪ ਨੂੰ ਪਹੁੰਚਯੋਗ ਹੋਣ ਲਈ ਸੁਰੰਗ ਦੀ ਲੋੜ ਹੈ, ਉਹ ਸੁਰੰਗ ਬਣਾਉਣ ਵਾਲਾ ਅਗਲਾ ਹੌਪ ਨਹੀਂ ਹੋ ਸਕਦਾ।
ਇਸ ਲਈ ਪਹਿਲੀ ਜਾਂਚ «ਗੇਟਵੇ ਚੱਲ ਰਿਹਾ ਹੈ» ਨਹੀਂ, ਸਗੋਂ «ਗੇਟਵੇ ਇਸ ਲਿੰਕ ’ਤੇ ਹੈ» ਹੈ। ਲੈਪਟਾਪ ਦਾ ਆਪਣਾ ਸਬਨੈੱਟ, ਇਸਦੀ ARP ਜਾਂ ਗੁਆਂਢੀ ਐਂਟਰੀ, ਅਤੇ ਰੂਟ ਵਿੱਚਲਾ ਇੰਟਰਫ਼ੇਸ — ਸਭ ਨੂੰ ਮੇਲ ਖਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੋ ਪਤਾ ਸਿਰਫ਼ 10.70.0.0/24 ਦੇ ਅੰਦਰ ਮੌਜੂਦ ਹੈ ਉਹ ਦੂਜੇ ਰੂਟ ਦੀ ਮੰਜ਼ਿਲ ਹੋ ਸਕਦਾ ਹੈ, ਪਰ ਪਹਿਲੇ ਦਾ via ਕਦੇ ਨਹੀਂ।
ਅਗਲਾ ਹੌਪ ਗੇਟਵੇ ਨੂੰ ਕਿਸ ਗੱਲ ਲਈ ਪਾਬੰਦ ਕਰਦਾ ਹੈ
ਲੈਪਟਾਪ ’ਤੇ ਰੂਟ ਸਥਾਪਿਤ ਕਰਨਾ ਸਿਰਫ਼ ਪਹਿਲਾ ਹੈਂਡਓਫ਼ ਤੈਅ ਕਰਦਾ ਹੈ। ਫਿਰ ਗੇਟਵੇ ਨੂੰ ਆਪਣਾ ਰਾਹ ਚਾਹੀਦਾ ਹੈ: ਸਮਰੱਥ ਫ਼ਾਰਵਰਡਿੰਗ, 10.70.0.0/24 ਲਈ ਸੁਰੰਗ ਰੂਟ, ਅਤੇ ਕੋਈ ਵੀ ਐਕਸੈਸ ਨੀਤੀ ਜੋ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ ਇਸਨੂੰ ਕੌਣ ਵਰਤ ਸਕਦਾ ਹੈ। Linux ’ਤੇ ਇਹ net.ipv4.ip_forward=1 ਅਤੇ ਸੁਰੰਗ ਰੂਟ ਹੈ; ਇਸਦੇ ਅੱਗੇ ਫ਼ਾਇਰਵਾਲ ਨੂੰ ਅਜਿਹਾ ਨਿਯਮ ਚਾਹੀਦਾ ਹੈ ਜੋ ਫ਼ਾਰਵਰਡ ਹੋਣ ਵਾਲੇ ਪ੍ਰਵਾਹ ਨੂੰ ਮਨਜ਼ੂਰੀ ਦੇਵੇ।
ਵਾਪਸੀ ਦਿਸ਼ਾ ਉਹ ਹਿੱਸਾ ਹੈ ਜੋ ਲੋਕ ਭੁੱਲ ਜਾਂਦੇ ਹਨ। ਦੂਰ ਦੇ ਪਾਸੇ 192.168.20.0/24 ਵੱਲ ਵਾਪਸੀ ਦਾ ਰੂਟ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਜਾਂ ਡਿਜ਼ਾਈਨ ਨੂੰ ਲੈਪਟਾਪ ਦੇ ਸਰੋਤ ਨੂੰ ਕਿਸੇ ਅਜਿਹੀ ਚੀਜ਼ ਵਿੱਚ ਬਦਲਣਾ ਚਾਹੀਦਾ ਹੈ ਜਿਸਨੂੰ ਦੂਰ ਦਾ ਪਾਸਾ ਜਾਣਦਾ ਹੈ। ਗੇਟਵੇ ਤੋਂ ਕੰਮ ਕਰਨ ਵਾਲਾ ping ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਗੇਟਵੇ ਦੂਰ ਦੇ ਨੈੱਟਵਰਕ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ; ਇਹ ਕੁਝ ਨਹੀਂ ਕਹਿੰਦਾ ਕਿ ਲੈਪਟਾਪ ਦੇ ਪੈਕੇਟ ਵਾਪਸੀ ਦੇ ਸਫ਼ਰ ਵਿੱਚ ਬਚਦੇ ਹਨ ਜਾਂ ਨਹੀਂ।
ਜੋ ਹੋਸਟ ਭੇਜਦਾ ਹੈ ਉਸੇ ਤੋਂ ਲੁੱਕਅੱਪ ਜਾਂਚੋ
ਕਰਨਲ ਨੂੰ ਪੁੱਛੋ ਕਿ ਇਹ ਕਿਹੜਾ ਅਗਲਾ ਹੌਪ ਚੁਣੇਗਾ, ਅਤੇ ਜਵਾਬ ਵਿੱਚਲਾ ਇੰਟਰਫ਼ੇਸ ਪੜ੍ਹੋ:
ip route get 10.70.0.10
ip route show 10.70.0.0/24
ip neigh show 192.168.20.5
ਜੇ ਲੁੱਕਅੱਪ ਗੇਟਵੇ ਅਤੇ LAN ਇੰਟਰਫ਼ੇਸ ਦੀ ਰਿਪੋਰਟ ਕਰਦਾ ਹੈ, ਤਾਂ ਪਹਿਲਾ ਹਿੱਸਾ ਇੱਛਾ ਅਨੁਸਾਰ ਸੰਰਚਿਤ ਹੈ। ਜੇ ਇਹ ਸੁਰੰਗ ਡਿਵਾਈਸ ਦੀ ਰਿਪੋਰਟ ਕਰਦਾ ਹੈ, ਤਾਂ ਸਾਰਣੀ ਵਿੱਚ ਪਹਿਲਾਂ ਵਾਲੀ ਕੋਈ ਚੀਜ਼ ਵਧੇਰੇ ਖ਼ਾਸ ਹੈ ਅਤੇ ਜਿੱਤ ਰਹੀ ਹੈ। ਜੇ ਰੂਟ ਬਿਲਕੁਲ ਸਥਾਪਿਤ ਨਹੀਂ ਹੁੰਦਾ, ਤਾਂ ਕਰਨਲ ਤੁਹਾਨੂੰ ਦੱਸ ਰਿਹਾ ਹੈ ਕਿ ਗੇਟਵੇ ਪਹੁੰਚਯੋਗ ਨਹੀਂ ਹੈ, ਅਤੇ ਉਹ ਸੁਨੇਹਾ ਕਿਸੇ ਵੀ ਪੈਕੇਟ ਕੈਪਚਰ ਨਾਲੋਂ ਵਧੇਰੇ ਲਾਭਦਾਇਕ ਹੈ।
ਫਿਰ ਸਹੀ ਥਾਂ ਤੋਂ ਟੈਸਟ ਦੁਹਰਾਓ। ਗੇਟਵੇ ’ਤੇ ਬਣਾਈ ਬੇਨਤੀ ਗੇਟਵੇ ਦੇ ਆਪਣੇ ਸਰੋਤ ਪਤੇ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ, ਜੋ ਗੁੰਮ ਵਾਪਸੀ ਰੂਟ ਜਾਂ ਸਿਰਫ਼ ਕੁਝ ਸਰੋਤਾਂ ਨੂੰ ਮਨਜ਼ੂਰੀ ਦੇਣ ਵਾਲੀ ਨੀਤੀ ਨੂੰ ਲੁਕਾ ਸਕਦੀ ਹੈ। ip-route ਦਸਤਾਵੇਜ਼ ਮੰਜ਼ਿਲ, ਗੇਟਵੇ ਅਤੇ onlink ਓਵਰਰਾਈਡ ਨੂੰ ਵੱਖ ਕਰਦਾ ਹੈ, ਅਤੇ ਓਵਰਰਾਈਡ ਨੂੰ ਵਰਤਣ ਤੋਂ ਪਹਿਲਾਂ ਸਮਝਣਾ ਚੰਗਾ ਹੈ।
ਪਹੁੰਚਯੋਗਤਾ ਨਕਲੀ ਬਣਾਉਣ ਲਈ onlink ਦੀ ਵਰਤੋਂ ਨਾ ਕਰੋ
onlink ਕਰਨਲ ਨੂੰ ਕਹਿੰਦਾ ਹੈ ਕਿ ਗੇਟਵੇ ਦੀ ਪਹੁੰਚਯੋਗਤਾ ਜਾਂਚ ਛੱਡ ਦੇਵੇ ਅਤੇ ਫਿਰ ਵੀ ਉੱਥੇ ਭੇਜੇ। ਇਹ ਰਾਹ ਨਹੀਂ ਬਣਾਉਂਦਾ, ਜੋ ਪਤਾ ਉੱਥੇ ਨਹੀਂ ਹੈ ਉਸ ਲਈ ARP ਹੱਲ ਨਹੀਂ ਕਰਦਾ, ਅਤੇ ਤੁਹਾਡੇ Ethernet ਭਾਗ ’ਤੇ ਦੂਰ ਦੇ ਰਾਊਟਰ ਨੂੰ ਜਵਾਬ ਦੇਣ ਲਈ ਮਜਬੂਰ ਨਹੀਂ ਕਰਦਾ। ਇਹ ਉਹਨਾਂ ਗੇਟਵੇ ਲਈ ਜਾਇਜ਼ ਹੈ ਜੋ ਜਵਾਬ ਦਿੰਦੇ ਹਨ ਪਰ ਜੁੜੇ ਸਬਨੈੱਟ ਵਿੱਚ ਨਹੀਂ ਬੈਠਦੇ, ਅਤੇ ਇਹ ਜਾਲ ਹੈ ਜਦੋਂ ਇਸਨੂੰ ਉਸ ਗਲਤੀ ਨੂੰ ਚੁੱਪ ਕਰਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਵੇ ਜਿਸਦੀ ਤੁਸੀਂ ਵਿਆਖਿਆ ਨਹੀਂ ਕੀਤੀ।
ਜੇ ਰੂਟ ਸਿਰਫ਼ onlink ਨਾਲ ਸਥਾਪਿਤ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਅਗਲਾ ਸਵਾਲ ਇਹ ਹੈ ਕਿ ਗੇਟਵੇ ਉੱਥੇ ਕਿਉਂ ਨਹੀਂ ਜਿੱਥੇ ਤੁਸੀਂ ਸੋਚਦੇ ਹੋ। ਗਲਤ VLAN, ਗਲਤ ਇੰਟਰਫ਼ੇਸ ’ਤੇ ਦੂਜਾ ਪਤਾ, ਜਾਂ ਆਖ਼ਰੀ ਆਕਟੈਟ ਵਿੱਚ ਟਾਈਪੋ — ਇਹ ਸਭ ਇਹ ਪੈਦਾ ਕਰਦੇ ਹਨ, ਅਤੇ ਇਹਨਾਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਟ੍ਰੈਫ਼ਿਕ ਵਗਣਾ ਸ਼ੁਰੂ ਹੁੰਦਿਆਂ ਹੀ ਵਾਪਸੀ ਦਾ ਰਾਹ ਵੀ ਤੋੜ ਦਿੰਦਾ ਹੈ।
ਪੁਆਇੰਟ-ਟੂ-ਪੁਆਇੰਟ ਸੁਰੰਗਾਂ Ethernet ਨਹੀਂ ਹਨ
ਸੁਰੰਗ ਡਿਵਾਈਸ ARP ਨਹੀਂ ਕਰਦਾ ਅਤੇ ਅਕਸਰ ਗੁਆਂਢੀਆਂ ਦਾ ਅਰਥਪੂਰਨ ਸਬਨੈੱਟ ਨਹੀਂ ਹੁੰਦਾ। ਇਸਦੇ ਰੂਟ ਅਕਸਰ 10.70.0.0/24 dev tun0 ਵਰਗੇ ਦਿਖਦੇ ਹਨ, ਕਿਸੇ via ਤੋਂ ਬਿਨਾਂ, ਕਿਉਂਕਿ ਸਾਥੀ ਹੀ ਦੂਜਾ ਇਕੱਲਾ ਅੰਤ ਬਿੰਦੂ ਹੈ। ਉਸ ਸਾਰਣੀ ਵਿੱਚ LAN ਸ਼ੈਲੀ ਦਾ via ਕਾਪੀ ਕਰਨ ਨਾਲ ਅਜਿਹਾ ਰੂਟ ਬਣਦਾ ਹੈ ਜਿਸਨੂੰ ਕਰਨਲ ਰੱਦ ਕਰ ਸਕਦਾ ਹੈ ਜਾਂ, ਇਸ ਤੋਂ ਵੀ ਮਾੜਾ, ਅਜਿਹਾ ਜੋ ਉਸ ਪਤੇ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ ਜਿਸਦਾ ਸਾਥੀ ਕਦੇ ਜਵਾਬ ਨਹੀਂ ਦਿੰਦਾ।
ਰਨਬੁੱਕ ਵਿੱਚ ਦੋਵੇਂ ਮਾਡਲ ਵੱਖਰੇ ਰੱਖੋ: LAN ਰੂਟ ਦਾ ਪਹੁੰਚਯੋਗ ਗੇਟਵੇ ਹੁੰਦਾ ਹੈ, ਸੁਰੰਗ ਰੂਟ ਦਾ ਇੰਟਰਫ਼ੇਸ ਅਤੇ ਸਾਥੀ ਹੁੰਦਾ ਹੈ। WireGuard, OpenVPN ਅਤੇ IPsec ਸਭ ਥੋੜ੍ਹੇ ਵੱਖਰੇ ਆਕਾਰ ਦਿਖਾਉਂਦੇ ਹਨ, ਇਸ ਲਈ ਇੱਕ ਹੋਸਟ ਤੋਂ ਸਧਾਰਨਕਰਨ ਕਰਨ ਦੀ ਬਜਾਏ ਤੁਸੀਂ ਸੱਚਮੁੱਚ ਵਰਤਿਆ ਆਕਾਰ ਲਿਖੋ।
ਸ਼ਾਮਲ ਕਰੋ, ਪੁਸ਼ਟੀ ਕਰੋ, ਵਾਪਸ ਲਵੋ
ਪੂਰੀ ਤਬਦੀਲੀ ਤਿੰਨ ਕਮਾਂਡ ਅਤੇ ਇੱਕ ਜਾਂਚ ਹੈ, ਅਤੇ ਇਸਨੂੰ ਉਸੇ ਕ੍ਰਮ ਵਿੱਚ ਲਿਖਣਾ ਚਾਹੀਦਾ ਹੈ:
sudo ip route add 10.70.0.0/24 via 192.168.20.5
ip route get 10.70.0.10
ping -c 3 10.70.0.10
sudo ip route del 10.70.0.0/24 via 192.168.20.5
ਰਾਹ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ, ਇੱਕ ਮੰਜ਼ਿਲ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ, ਅਤੇ ਫਿਰ ਹਟਾਉਣ ਵਾਲੀ ਲਾਈਨ ਤਿਆਰ ਰੱਖੋ ਜੇ ਤਬਦੀਲੀ ਹੋਸਟ ਨੂੰ ਤੁਹਾਡੇ ਅੰਦਾਜ਼ੇ ਤੋਂ ਬਿਨਾਂ ਅਪਹੁੰਚਯੋਗ ਬਣਾ ਦੇਵੇ। ਜੇ ਰੂਟ ਨੂੰ ਰੀਬੂਟ ਤੋਂ ਬਾਅਦ ਵੀ ਰਹਿਣਾ ਹੈ, ਤਾਂ ਇਸਨੂੰ shell ਪ੍ਰੋਫ਼ਾਈਲ ਵਿੱਚ ਨਹੀਂ ਸਗੋਂ ਹੋਸਟ ਦੀ ਨੈੱਟਵਰਕ ਸੰਰਚਨਾ ਵਿੱਚ ਰੱਖੋ, ਅਤੇ ਇਸ ’ਤੇ ਨਿਰਭਰ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਰੀਬੂਟ ਦਾ ਟੈਸਟ ਕਰੋ। ਜੋ ਰੂਟ ਸਿਰਫ਼ ਉਸ shell ਵਿੱਚ ਮੌਜੂਦ ਹੈ ਜਿਸਨੇ ਇਸਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ, ਉਹ ਅਜਿਹਾ ਰੂਟ ਹੈ ਜਿਸਨੂੰ ਤੁਸੀਂ ਦੋ ਵਾਰ ਡੀਬੱਗ ਕਰੋਗੇ।