ਪੂਰਾ ਟਨਲ ਰੂਟ ਉਸ ਸਰਵਰ ਨੂੰ ਕਿਉਂ ਕੱਟ ਦਿੰਦਾ ਹੈ ਜੋ ਇਸਨੂੰ ਢੋਦਾ ਹੈ
ਟਨਲ ਰਾਹੀਂ ਜਾਣ ਵਾਲਾ ਡਿਫਾਲਟ ਰੂਟ ਉਹਨਾਂ ਬਾਹਰੀ ਪੈਕਟਾਂ ਨੂੰ ਵੀ ਫੜਦਾ ਹੈ ਜੋ ਇਸਨੂੰ ਢੋਦੇ ਹਨ। ਹੋਸਟ ਰੂਟ ਨਾਲ ਅੰਤ ਬਿੰਦੂ ਨੂੰ ਪਿੰਨ ਕਰੋ ਅਤੇ ਸਰਵਰ ਦੇ ਜਵਾਬ ਇਸ ਤੋਂ ਬਾਹਰ ਰੱਖੋ।
ਪੂਰਾ ਟਨਲ ਚਾਲੂ ਕਰੋ ਅਤੇ ਹੁਣ ਹਰ ਮੰਜ਼ਿਲ VPN ਇੰਟਰਫੇਸ ਦੀ ਹੈ, ਇਸਨੂੰ ਖ਼ਤਮ ਕਰਨ ਵਾਲੀ ਮਸ਼ੀਨ ਵੀ। ਟਨਲ ਢੋਣ ਵਾਲੇ ਬਾਹਰੀ ਪੈਕਟ ਉਸ ਮਸ਼ੀਨ ਨੂੰ ਭੇਜੇ ਜਾਂਦੇ ਹਨ, ਇਸ ਲਈ ਰੂਟ ਅੰਤ ਵਿੱਚ ਉਸੇ ਢੋਆ-ਢੁਆਈ ਨੂੰ ਖਾ ਜਾਂਦਾ ਹੈ ਜਿਸ 'ਤੇ ਉਹ ਨਿਰਭਰ ਹੈ। ਇੱਕ ਵਾਧੂ ਖਾਸ ਰੂਟ ਇਸਨੂੰ ਹੱਲ ਕਰਦਾ ਹੈ, ਅਤੇ ਕਾਰਨ ਸਮਝਣ ਯੋਗ ਹੈ। ਉਸ ਕਾਰਨ ਤੋਂ ਬਿਨਾਂ ਅਗਲੀ ਮੁੜ-ਉਸਾਰੀ ਉਹੀ ਖ਼ਰਾਬੀ ਫੇਰ ਲਿਆਉਂਦੀ ਹੈ।
ਅਜਿਹਾ ਰੂਟ ਜੋ ਆਪਣੀ ਹੀ ਢੋਆ-ਢੁਆਈ ਖਾ ਜਾਵੇ
ਐਨਕੈਪਸੂਲੇਸ਼ਨ ਹਰ ਪੈਕਟ ਨੂੰ ਦੂਜੇ ਹੈਡਰ ਵਿੱਚ ਲਪੇਟਦਾ ਹੈ। ਬਾਹਰੀ ਹੈਡਰ ਸਥਾਨਕ ਭੌਤਿਕ ਪਤੇ ਤੋਂ ਸਰਵਰ ਦੇ ਜਨਤਕ ਪਤੇ ਤੱਕ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਕੋਈ ਵੀ ਟਨਲ ਬਣਨ ਤੋਂ ਪਹਿਲਾਂ ਇਸਨੂੰ ਭੌਤਿਕ ਲਿੰਕ ਪਾਰ ਕਰਨਾ ਪੈਂਦਾ ਹੈ।
ਹੁਣ ਉਸ ਜਨਤਕ ਪਤੇ ਦੀ ਖੋਜ ਨੂੰ ਟਨਲ ਚੁਣਨ ਦਿਓ। ਪੈਕਟ ਭੇਜਣ ਲਈ ਮਸ਼ੀਨ ਨੂੰ ਇਸਨੂੰ ਐਨਕੈਪਸੂਲੇਟ ਕਰਨਾ ਪੈਂਦਾ ਹੈ, ਜਿਸ ਲਈ ਉਸੇ ਪਤੇ ਤੱਕ ਰੂਟ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਉਹ ਰੂਟ ਟਨਲ ਵਾਪਸ ਦਿੰਦਾ ਹੈ। ਕਲਾਇੰਟ ਇਸਨੂੰ ਦੋ ਵਿੱਚੋਂ ਇੱਕ ਤਰੀਕੇ ਨਾਲ ਸੰਭਾਲਦੇ ਹਨ। ਸਾਵਧਾਨ ਕਲਾਇੰਟ ਡਿਫਾਲਟ ਰੂਟ ਲਗਾਉਣ ਤੋਂ ਇਨਕਾਰ ਕਰਦਾ ਹੈ ਅਤੇ ਗਲਤੀ ਦੱਸਦਾ ਹੈ, ਜਦਕਿ ਘੱਟ ਸਾਵਧਾਨ ਸਫਲਤਾ ਦੱਸਦਾ ਹੈ ਅਤੇ ਫਿਰ ਕੁਝ ਵੀ ਨਹੀਂ ਹਿਲਾਉਂਦਾ। ਚੁੱਪ ਅਸਫਲਤਾ ਹੀ ਇੱਕ ਦੁਪਹਿਰ ਖਾਂਦੀ ਹੈ।
ਸਭ ਤੋਂ ਲੰਬੇ ਪ੍ਰੀਫਿਕਸ ਦਾ ਮੇਲ ਕਿਸੇ ਵੀ ਮੈਟ੍ਰਿਕ ਨੂੰ ਵੇਖਣ ਤੋਂ ਪਹਿਲਾਂ ਖੋਜ ਤੈਅ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਇੱਕ-ਪਤੇ ਦਾ ਰੂਟ ਮਸ਼ੀਨ ਦੇ ਹਰ ਡਿਫਾਲਟ ਰੂਟ ਨੂੰ ਪਛਾੜਦਾ ਹੈ। ਮੁਰੰਮਤ ਪਿੱਛੇ ਪੂਰਾ ਤੰਤਰ ਇਹੀ ਹੈ।
ਡਿਫਾਲਟ ਤੋਂ ਪਹਿਲਾਂ ਅਪਵਾਦ ਲਗਾਓ
ਸਰਵਰ ਲਈ ਇੱਕ-ਪਤੇ ਦਾ ਰੂਟ ਬਣਾਓ, ਭੌਤਿਕ ਗੇਟਵੇ ਨੂੰ ਅਗਲੀ ਛਾਲ ਰੱਖ ਕੇ, ਇਸ ਤੋਂ ਪਹਿਲਾਂ ਕਿ ਡਿਫਾਲਟ ਰੂਟ ਹਿੱਲੇ। ਕ੍ਰਮ ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ: ਬਾਅਦ ਵਿੱਚ ਲਗਾਉਣਾ ਭਾਵ ਟਾਈਪ ਕਰਦੇ ਸਮੇਂ ਟੁੱਟੀ ਟਨਲ ਨਾਲ ਜੀਣਾ।
ਬਹੁਤੇ ਕਲਾਇੰਟ ਇਹ ਬਿਨਾਂ ਮੰਗੇ ਕਰਦੇ ਹਨ। OpenVPN ਦੂਰ ਦੇ ਪਤੇ ਨੂੰ ਖੋਜਦਾ ਹੈ ਅਤੇ ਡਿਫਾਲਟ ਗੇਟਵੇ ਮੁੜ ਲਿਖਣ ਤੋਂ ਪਹਿਲਾਂ ਇਸਨੂੰ ਪਿੰਨ ਕਰਦਾ ਹੈ, ਅਤੇ ਇਸਦਾ route-delay ਵਿਕਲਪ ਉਹਨਾਂ ਪਲੇਟਫਾਰਮਾਂ ਲਈ ਹੈ ਜਿੱਥੇ ਇਹ ਕ੍ਰਮ ਦੌੜਦਾ ਹੈ। wg-quick ਬਿਲਕੁਲ ਵੱਖਰਾ ਰਾਹ ਲੈਂਦਾ ਹੈ, ਪੈਕਟਾਂ ਨੂੰ ਨਿਸ਼ਾਨ ਲਗਾ ਕੇ ਅਤੇ ਨੀਤੀ ਨਿਯਮ ਨਾਲ ਸਲਾਹ ਕਰਕੇ ਅਪਵਾਦ ਜੋੜਨ ਦੀ ਥਾਂ। ਵੱਖਰੇ ਤੰਤਰ, ਇੱਕੋ ਲੋੜ: ਬਾਹਰੀ ਪੈਕਟ ਨੂੰ ਉਸ ਟਨਲ ਤੋਂ ਬਚਣਾ ਹੀ ਪੈਂਦਾ ਹੈ ਜੋ ਉਹ ਖੁਦ ਬਣਾਉਂਦਾ ਹੈ।
ip route add 203.0.113.10/32 via 192.168.1.1 dev eth0
ip route get 203.0.113.10
ਖੋਜ ਦਾ ਆਉਟਪੁੱਟ ਸਵੀਕ੍ਰਿਤੀ ਪਰਖ ਹੈ। ਇਸ ਵਿੱਚ ਭੌਤਿਕ ਜੰਤਰ ਅਤੇ ਭੌਤਿਕ ਅਗਲੀ ਛਾਲ ਦਾ ਨਾਮ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਉਸ ਜਵਾਬ ਵਿੱਚ ਟਨਲ ਜੰਤਰ ਹੋਣ ਦਾ ਅਰਥ ਹੈ ਕਿ ਅਪਵਾਦ ਗੁੰਮ ਹੈ, ਜਾਂ ਅਜਿਹੀ ਕਿਸੇ ਚੀਜ਼ ਤੋਂ ਬਾਅਦ ਰੱਖਿਆ ਗਿਆ ਹੈ ਜੋ ਇਸਨੂੰ ਪਛਾੜਦੀ ਹੈ।
ਸਰਵਰ 'ਤੇ ਸ਼ੀਸ਼ੇ ਦਾ ਪ੍ਰਤੀਬਿੰਬ
ਉਹੀ ਜਾਲ ਦੂਜੇ ਪਾਸੇ ਉਲਟਾ ਉਡੀਕਦਾ ਹੈ। ਸਰਵਰ ਨੂੰ ਦੂਜੀ ਟਨਲ ਰਾਹੀਂ ਡਿਫਾਲਟ ਰੂਟ ਦਿਓ, ਜਾਂ ਕਲਾਇੰਟਾਂ ਦੇ ਜਨਤਕ ਪਤਿਆਂ ਨੂੰ ਢਕਣ ਵਾਲਾ ਰੂਟ ਉਸ ਵੱਲ ਧੱਕੋ, ਅਤੇ ਉਸਦੇ ਜਵਾਬ ਗਲਤ ਦਿਸ਼ਾ ਦੀ ਆਦਤ ਪਾ ਲੈਣਗੇ।
ਅਜਿਹੇ ਕਲਾਇੰਟ ਦੀ ਕਲਪਨਾ ਕਰੋ ਜੋ ਜੁੜਦਾ ਹੈ ਅਤੇ ਬੇਨਤੀ ਭੇਜਦਾ ਹੈ। ਜਵਾਬ ਉਸ ਕਲਾਇੰਟ ਦੇ ਜਨਤਕ ਪਤੇ ਨੂੰ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ, ਜੋ ਹੁਣ ਟਨਲ ਰੂਟ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ, ਇਸ ਲਈ ਇਹ ਦੂਜੇ ਇੰਟਰਫੇਸ ਤੋਂ ਨਿਕਲਦਾ ਹੈ ਅਤੇ ਅਜਿਹਾ ਸਰੋਤ ਲੈ ਕੇ ਜਾਂਦਾ ਹੈ ਜੋ ਕਲਾਇੰਟ ਨੇ ਕਦੇ ਡਾਇਲ ਨਹੀਂ ਕੀਤਾ। ਕਲਾਇੰਟ ਉਸ ਪੈਕਟ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਕੇ ਵੀ ਸੁੱਟ ਸਕਦਾ ਹੈ, ਕਿਉਂਕਿ ਕੁਝ ਵੀ ਇਸਨੂੰ ਭੇਜੀ ਬੇਨਤੀ ਨਾਲ ਨਹੀਂ ਜੋੜਦਾ। ਕਲਾਇੰਟ ਦੀ ਸਮਾਂ-ਸੀਮਾ ਦੀ ਥਾਂ ਸਰਵਰ ਦੇ ਰਾਊਟਿੰਗ ਫੈਸਲੇ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ, ਕਿਉਂਕਿ ਦੋਵਾਂ ਵਿੱਚੋਂ ਸਿਰਫ਼ ਇੱਕ ਹੀ ਅਸਲ ਚੋਣ ਦਿਖਾਉਂਦਾ ਹੈ।
ip route get 198.51.100.44 from 10.90.0.1
ip rule show
sudo tcpdump -ni any host 198.51.100.44
ਤਿੰਨ ਮੁਰੰਮਤਾਂ ਹਨ ਅਤੇ ਉਹ ਬਰਾਬਰ ਨਹੀਂ। ਸੇਵਾ ਨੂੰ ਭੌਤਿਕ ਪਤੇ 'ਤੇ ਪਿੰਨ ਕਰਨਾ, ਜਾਂ ਸਰੋਤ ਦਾ ਅਨੁਵਾਦ ਕਰਨਾ, ਦੋਵੇਂ ਰਾਊਟਿੰਗ ਫੈਸਲੇ ਨੂੰ ਸੁਧਾਰਨ ਦੀ ਥਾਂ ਲੁਕਾਉਂਦੇ ਹਨ। ਟਨਲ ਪੂਲ ਲਈ ਜਵਾਬ ਟਰੈਫਿਕ ਸਮਰਪਿਤ ਸਾਰਣੀ ਰਾਹੀਂ ਭੇਜਣਾ ਕਾਰਨ ਸੁਧਾਰਦਾ ਹੈ, ਅਤੇ ਬਾਕੀ ਦੋ ਸਿਰਫ਼ ਤਦ ਤੱਕ ਸਵੀਕਾਰਯੋਗ ਹਨ ਜਦੋਂ ਰਾਊਟਿੰਗ ਡਿਜ਼ਾਈਨ ਜੰਮਿਆ ਹੋਵੇ।
ਉਹ ਅਪਵਾਦ ਜੋ ਟਨਲ ਲਗਾਤਾਰ ਚੋਰੀ ਕਰਦੀ ਹੈ
ਕੁਝ ਕੰਮਾਂ ਨੂੰ ਖੁੱਲ੍ਹਾ ਇੰਟਰਨੈੱਟ ਚਾਹੀਦਾ ਹੈ ਭਾਵੇਂ ਟਨਲ ਕੋਲ ਡਿਫਾਲਟ ਰੂਟ ਹੋਵੇ, ਅਤੇ ਹਰ ਇੱਕ ਨੂੰ ਆਪਣਾ ਅਪਵਾਦ ਚਾਹੀਦਾ ਹੈ। ਗਤੀਸ਼ੀਲ DNS ਅੱਪਡੇਟਰ ਆਮ ਤੌਰ 'ਤੇ ਪਹਿਲਾਂ ਟੁੱਟਦਾ ਹੈ।
ਇਹ ਪ੍ਰਦਾਤਾ ਨੂੰ ਹੱਲ ਕਰਦਾ ਹੈ, ਕਨੈਕਸ਼ਨ ਖੋਲ੍ਹਦਾ ਹੈ ਅਤੇ ਦੇਖਦਾ ਹੈ ਕਿ ਇਸਦੇ ਆਪਣੇ ਪੈਕਟ ਉਸ ਟਨਲ ਰਾਹੀਂ ਜਾ ਰਹੇ ਹਨ ਜਿਸਦਾ ਪਤਾ ਕੁਝ ਸਕਿੰਟ ਪਹਿਲਾਂ ਬਦਲ ਗਿਆ ਸੀ, ਇਸ ਲਈ ਅੱਪਡੇਟ ਅਸਫਲ ਹੁੰਦਾ ਹੈ ਜਾਂ ਗਲਤ ਪਤਾ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਤਿੰਨ ਰਾਹ: ਭੌਤਿਕ ਗੇਟਵੇ ਰਾਹੀਂ ਹੋਸਟ ਰੂਟ ਨਾਲ ਪ੍ਰਦਾਤਾ ਪਿੰਨ ਕਰੋ, ਟਨਲ ਉੱਠਣ ਤੋਂ ਪਹਿਲਾਂ ਅੱਪਡੇਟ ਚਲਾਓ, ਜਾਂ ਅੱਪਡੇਟਰ ਨੂੰ ਅਜਿਹੀ ਨੀਤੀ ਸਾਰਣੀ ਦਿਓ ਜਿਸਨੂੰ ਟਨਲ ਕਦੇ ਨਹੀਂ ਛੂੰਹਦੀ। ਜੋ ਜੰਤਰ ਰਿਜ਼ੋਲਵਰ ਤੋਂ ਬਿਨਾਂ ਬੂਟ ਹੁੰਦਾ ਹੈ ਉਸ 'ਤੇ ਸਮਾਂ ਸਿੰਕ੍ਰੋਨਾਈਜ਼ੇਸ਼ਨ ਦਾ ਵੀ ਉਹੀ ਖ਼ਤਰਾ ਹੈ, ਅਤੇ ਸਰਟੀਫਿਕੇਟ ਜਾਂਚ ਦੇ ਅੰਤ ਬਿੰਦੂ ਵੀ ਉਸੇ ਕਾਰਨ ਸੂਚੀ ਵਿੱਚ ਹਨ।
ਜਿਸ ਅਪਵਾਦ ਨੂੰ ਕਿਸੇ ਨੇ ਨਹੀਂ ਲਿਖਿਆ, ਉਹ ਅਜਿਹਾ ਅਪਵਾਦ ਹੈ ਜਿਸਨੂੰ ਅਗਲੀ ਮੁੜ-ਉਸਾਰੀ ਚੁੱਪਚਾਪ ਡੇਗ ਦੇਵੇਗੀ।
ਮੁੜ-ਜੁੜਨ ਤੋਂ ਬਾਅਦ ਸਾਬਤ ਕਰੋ, ਪਹਿਲਾਂ ਨਹੀਂ
ਇੱਕ ਨਹੀਂ, ਤਿੰਨ ਮੰਜ਼ਿਲਾਂ ਪਰਖੋ: ਅੰਤ ਬਿੰਦੂ, ਟਨਲ ਪਿੱਛੇ ਇੱਕ ਨਿੱਜੀ ਪਤਾ, ਅਤੇ ਉਸ ਤੋਂ ਪਾਰ ਇੱਕ ਜਨਤਕ ਪਤਾ। ਇੱਕ ਸਫਲ ਖੋਜ ਬਾਕੀ ਦੋ ਬਾਰੇ ਲਗਭਗ ਕੁਝ ਨਹੀਂ ਦੱਸਦੀ।
ip route get 203.0.113.10
traceroute -n 203.0.113.10
ip route get 10.90.0.5
ip route get 1.1.1.1
ਫਿਰ ਕਨੈਕਸ਼ਨ ਮੁੜ ਚਾਲੂ ਕਰੋ, ਕਿਉਂਕਿ ਮੁੜ-ਜੁੜਨ 'ਤੇ ਆਪਣੀ ਸਾਰਣੀ ਮੁੜ ਬਣਾਉਣ ਵਾਲਾ ਕਲਾਇੰਟ ਤੁਹਾਡੇ ਹੱਥ ਨਾਲ ਲਿਖਿਆ ਰੂਟ ਸੁੱਟ ਦੇਵੇਗਾ। kill switch ਚਾਲੂ ਹੋਵੇ ਤਾਂ ਪਰਖੋ ਕਿ ਅੰਤ ਬਿੰਦੂ ਦੀ ਇਜਾਜ਼ਤ ਹੈ, ਨਹੀਂ ਤਾਂ ਨੈੱਟਵਰਕ ਬਦਲਣ ਤੋਂ ਬਾਅਦ ਟਨਲ ਵਾਪਸ ਨਹੀਂ ਆ ਸਕਦੀ ਅਤੇ ਲੱਛਣ ਰੁਕਾਵਟ ਵਰਗਾ ਦਿਸੇਗਾ। ਅਪਵਾਦ ਨੂੰ shell ਇਤਿਹਾਸ ਵਿੱਚ ਨਹੀਂ, ਪ੍ਰੋਫਾਈਲ ਜਾਂ unit ਫਾਈਲ ਵਿੱਚ ਸੰਭਾਲੋ, ਤਾਂ ਜੋ ਮੁੜ-ਜੁੜਨ ਇਸਨੂੰ ਮਿਟਾਉਣ ਦੀ ਥਾਂ ਮੁੜ ਬਣਾਵੇ।