VPN ਰੂਟ ip route ਦੇ ਆਉਟਪੁੱਟ ਵਿੱਚ ਕੋਈ ਗੇਟਵੇ ਕਿਉਂ ਨਹੀਂ ਦਿਖਾਉਂਦਾ
ਇੰਟਰਫ਼ੇਸ ਵਾਲੀ ਪਰ ਗੇਟਵੇ ਰਹਿਤ ਲਾਈਨ ਸਿੱਧਾ ਰੂਟ ਹੈ, ਟੁੱਟਾ ਨਹੀਂ। ਟਿਕਾਣਾ, dev ਅਤੇ scope ਪੜ੍ਹੋ, ਫਿਰ ip route get ਨਾਲ ਪੁਸ਼ਟੀ ਕਰੋ।
ਗੇਟਵੇ ਕਾਲਮ ਖਾਲੀ ਦਿਖਣ ਵੇਲੇ ਰੂਟਿੰਗ ਟੇਬਲਾਂ ਨੂੰ ਟੁੱਟੀਆਂ ਪੜ੍ਹਿਆ ਜਾਂਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਲਾਈਨ ਆਮ ਤੌਰ 'ਤੇ ਆਪਣੇ ਆਪ ਵਿੱਚ ਪੂਰੀ ਹੁੰਦੀ ਹੈ। via ਖੇਤਰ ਤਦ ਹੀ ਦਿਖਦਾ ਹੈ ਜਦੋਂ ਕਰਨਲ ਪੈਕਟ ਨੂੰ ਅਗਲੀ ਹੌਪ ਦੇ ਪਤੇ ਨੂੰ ਸੌਂਪਦਾ ਹੈ; ਇੰਟਰਫ਼ੇਸ ਨਾਲ ਜੁੜਿਆ ਰੂਟ ਆਪਣੇ ਟਿਕਾਣਿਆਂ ਤੱਕ ਇਸ ਦੀ ਬਜਾਇ ਲਿੰਕ-ਲੇਅਰ ਹੱਲ ਜਾਂ ਪੁਆਇੰਟ-ਟੂ-ਪੁਆਇੰਟ ਸਾਥੀ ਰਾਹੀਂ ਪਹੁੰਚਦਾ ਹੈ। ਕਾਲਮਾਂ ਨੂੰ ਖੱਬੇ ਤੋਂ ਸੱਜੇ ਪੜ੍ਹਨਾ ਦੱਸਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕਿਸ ਹਾਲਤ ਵਿੱਚ ਹੋ, ਅਤੇ ਉਹ ਪੜ੍ਹਤ ਕਿਸੇ ਦੇ ਡਿਫ਼ਾਲਟ ਰੂਟ ਸੋਧਣ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। ਗੁੰਮ ਗੇਟਵੇ ਬਾਰੇ ਬਹੁਤੀਆਂ ਟਿਕਟਾਂ ਇਸੇ ਫ਼ਰਕ 'ਤੇ ਖ਼ਤਮ ਹੁੰਦੀਆਂ ਹਨ।
ਰੂਟ ਲਾਈਨ ਨੂੰ ਕਾਲਮ-ਦਰ-ਕਾਲਮ ਪੜ੍ਹੋ
ਹਰ ਐਂਟਰੀ ਟਿਕਾਣੇ ਅਤੇ ਉਸ ਦੀ ਪ੍ਰੀਫ਼ਿਕਸ ਲੰਬਾਈ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ, ਫਿਰ ਸਥਿਰ ਸ਼ਬਦਾਵਲੀ ਵਿੱਚ ਬਦਲਾਅ ਜੋੜਦੀ ਹੈ: via, dev, proto, scope, src ਅਤੇ metric। 198.51.100.0/24 dev tun0 proto kernel scope link src 198.51.100.2 ਵਰਗੀ ਲਾਈਨ ਸੰਘਣੀ ਪਰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਨਿਰਧਾਰਤ ਹੈ। ਇਸ ਵਿੱਚ ਕੁਝ ਵੀ ਗੁੰਮ ਨਹੀਂ, ਅਤੇ ਕੋਈ ਰਾਊਟਰ ਪਤਾ ਨਿਹਿਤ ਨਹੀਂ ਹੈ।
via ਦੀ ਗੈਰ-ਮੌਜੂਦਗੀ ਦਿਲਚਸਪ ਹਿੱਸਾ ਹੈ। ਅਗਲੀ ਹੌਪ ਤੋਂ ਬਿਨਾਂ ਕਰਨਲ ਟਿਕਾਣੇ ਨੂੰ ਸਿੱਧਾ ਨਾਮਿਤ ਇੰਟਰਫ਼ੇਸ 'ਤੇ ਹੱਲ ਕਰਦਾ ਹੈ, ਜਿਸ ਦਾ ਟਨਲ ਲਈ ਅਰਥ ਹੈ ਫ਼ਰੇਮ ਟਨਲ ਯੰਤਰ ਨੂੰ ਦੇਣਾ ਅਤੇ ਇਨਕੈਪਸੂਲੇਸ਼ਨ ਨੂੰ ਉੱਥੋਂ ਸੰਭਾਲਣ ਦੇਣਾ। proto kernel ਦਰਜ ਕਰਦਾ ਹੈ ਕਿ ਐਂਟਰੀ ਪਤਾ ਦਿੱਤੇ ਜਾਣ ਵੇਲੇ ਆਪਣੇ ਆਪ ਸਥਾਪਿਤ ਹੋਈ ਸੀ, ਕਿਸੇ ਪ੍ਰਸ਼ਾਸਕ ਨੇ ਟਾਈਪ ਨਹੀਂ ਕੀਤੀ। scope link ਕਹਿੰਦਾ ਹੈ ਕਿ ਟਿਕਾਣਾ ਉਸ ਲਿੰਕ 'ਤੇ ਰਾਊਟਰ ਰਾਹੀਂ ਲੰਘੇ ਬਿਨਾਂ ਪਹੁੰਚਯੋਗ ਹੈ, ਅਤੇ src ਉਸ ਪਤੇ ਦਾ ਨਾਮ ਦਿੰਦਾ ਹੈ ਜਿਸ ਨੂੰ ਕਰਨਲ ਮੇਲ ਖਾਂਦੀ ਟ੍ਰੈਫ਼ਿਕ ਲਈ ਸਰੋਤ ਵਜੋਂ ਤਰਜੀਹ ਦੇਵੇਗਾ।
ਹੁਣ ਡਿਫ਼ਾਲਟ ਰੂਟ ਨੂੰ ਉਸੇ ਤਰ੍ਹਾਂ ਪੜ੍ਹੋ: default via 192.0.2.254 dev eth0 proto static metric 100। ਇੱਥੇ via ਹੈ ਕਿਉਂਕਿ ਪੈਕਟ ਨੂੰ ਸੱਚਮੁੱਚ ਅਗਲੀ ਹੌਪ ਚਾਹੀਦੀ ਹੈ, ਅਤੇ ਉਹ ਹੌਪ ਆਪ eth0 'ਤੇ ਪਹੁੰਚਯੋਗ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। ਉਹ ਦੋ ਲਾਈਨਾਂ ਇੱਕ-ਦੂਜੇ ਦੀਆਂ ਕਿਸਮਾਂ ਨਹੀਂ; ਉਹ ਇਸ ਬਾਰੇ ਵੱਖਰੇ ਸਵਾਲਾਂ ਦੇ ਜਵਾਬ ਦਿੰਦੀਆਂ ਹਨ ਕਿ ਟ੍ਰੈਫ਼ਿਕ ਕਿੱਥੇ ਜਾਂਦੀ ਹੈ।
ਇੱਕ-ਦੂਜੇ ਨਾਲ ਉਲਝਣ ਵਾਲੇ ਦੋ ਰੂਟ ਆਕਾਰ
ਟਨਲ ਸਬਨੈੱਟ ਰੂਟ ਅਤੇ ਡਿਫ਼ਾਲਟ ਰੂਟ ਸਕ੍ਰੀਨਸ਼ਾਟ ਵਿੱਚ ਇੱਕੋ ਜਿਹੇ ਦਿਖਦੇ ਹਨ ਅਤੇ ਬਿਲਕੁਲ ਵੱਖਰੇ ਵਿਵਹਾਰ ਕਰਦੇ ਹਨ। ਹੇਠਾਂ ਦਿੱਤੀ ਟੇਬਲ ਨੂੰ ਖੇਤਰ ਪੜ੍ਹਨ ਦੀ ਸਹਾਇਤਾ ਵਜੋਂ ਵਰਤੋ, ਫਿਰ ਕਿਸੇ ਗਾਈਡ ਦੇ ਨਮੂਨੇ 'ਤੇ ਭਰੋਸਾ ਕਰਨ ਦੀ ਬਜਾਇ ਤੁਸੀਂ ਜਿਸ ਮਸ਼ੀਨ ਨੂੰ ਡੀਬੱਗ ਕਰ ਰਹੇ ਹੋ ਉਸੇ 'ਤੇ ਅਸਲ ਅੰਕ ਪੁਸ਼ਟੀ ਕਰੋ।
| Piece of the line | What it settles | What it says nothing about |
|---|---|---|
| The destination and mask | Which packets are eligible to match | Where those packets leave the host |
via plus its address | Which next hop receives them, and therefore that a router is involved | Whether that router is reachable or sane |
dev | Which interface carries the encapsulated or raw packet | Whether the interface is up or has a carrier |
proto and scope | Who installed the entry and how far the destination is considered to be | Whether a firewall later drops the traffic |
ਟੇਬਲ ਜੋ ਨਹੀਂ ਦੱਸ ਸਕਦੀ ਉਹ ਹੈ ਮਨਸ਼ਾ। ਟਨਲ ਰਾਹੀਂ ਨਿੱਜੀ ਰੇਂਜ ਵੱਲ ਸਿੱਧਾ ਰੂਟ ਜਾਣ-ਬੁੱਝ ਕੇ ਬਣਾਇਆ ਸਪਲਿਟ-ਟਨਲ ਡਿਜ਼ਾਈਨ ਹੈ; ਜਿਸ ਹੋਸਟ ਨੂੰ ਸਭ ਕੁਝ VPN ਰਾਹੀਂ ਭੇਜਣਾ ਚਾਹੀਦਾ ਹੈ ਉੱਥੇ ਉਹੀ ਆਕਾਰ ਦਿਖਣਾ ਇੱਕ ਲੱਛਣ ਹੈ। ਮਨਸ਼ਾ ਉਸ ਕੌਨਫ਼ਿਗਰੇਸ਼ਨ ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ ਜਿਸ ਨੇ ਐਂਟਰੀ ਬਣਾਈ, ਇਸ ਲਈ ਇਹ ਸਿੱਟਾ ਕੱਢਣ ਤੋਂ ਪਹਿਲਾਂ ਕਿ ਕਰਨਲ ਨੇ ਕੁਝ ਗ਼ਲਤ ਕੀਤਾ, ਉਸ ਸਾਧਨ ਨੂੰ ਵੇਖੋ ਜਿਸ ਨੇ ਇਸ ਨੂੰ ਸਥਾਪਿਤ ਕੀਤਾ।
ਇਸੇ ਤਰ੍ਹਾਂ, ਗੁੰਮ ਗੇਟਵੇ ਇੱਕ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ। ਜੇ ਰੂਟ ਨੂੰ ਸੱਚਮੁੱਚ ਅਗਲੀ ਹੌਪ ਚਾਹੀਦੀ ਹੈ, ਤਾਂ ਉਹ ਹੌਪ ਉਸ ਇੰਟਰਫ਼ੇਸ 'ਤੇ ਪਹੁੰਚਯੋਗ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ ਜੋ ਇਸ ਨੂੰ ਚੁੱਕਦਾ ਹੈ, ਅਤੇ ਪੁਆਇੰਟ-ਟੂ-ਪੁਆਇੰਟ ਟਨਲ ਲਈ ਸਾਥੀ ਦਾ ਪਤਾ ਸਥਾਨਕ ਪਤੇ ਵਾਂਗ ਉਹੀ ਵਸਤੂ ਨਹੀਂ ਹੈ। ਸਥਾਨਕ ਟਨਲ ਪਤੇ ਨੂੰ ਈਥਰਨੈੱਟ ਰਾਊਟਰ ਮੰਨਣਾ ਸਹੀ ਦਿਖਣ ਵਾਲਾ ਪਰ ਕੁਝ ਵੀ ਅੱਗੇ ਨਾ ਭੇਜਣ ਵਾਲਾ ਰੂਟ ਬਣਾਉਣ ਦਾ ਆਮ ਤਰੀਕਾ ਹੈ।
ਕਰਨਲ ਨੂੰ ਪੁੱਛੋ ਕਿ ਇਹ ਅਸਲ ਵਿੱਚ ਕਿਹੜੀ ਲਾਈਨ ਵਰਤੇਗਾ
ਟੇਬਲ ਪੜ੍ਹਨਾ ਖੋਜ ਕਰਨ ਵਰਗਾ ਨਹੀਂ ਹੈ, ਕਿਉਂਕਿ ਜਵਾਬ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਕਰਨਲ ਨੀਤੀ ਨਿਯਮਾਂ, ਕਈ ਟੇਬਲਾਂ ਅਤੇ ਕੈਸ਼ ਕੀਤੀਆਂ ਐਂਟਰੀਆਂ ਨਾਲ ਸਲਾਹ ਕਰਦਾ ਹੈ। ਅਸਲ ਖੋਜ ਕਰਨ ਵਾਲੀ ਕਿਰਿਆ ip route get ਹੈ, ਅਤੇ ਇਹ ਉਹ ਰੂਟ ਛਾਪਦੀ ਹੈ ਜੋ ਉਨ੍ਹਾਂ ਗੁਣਾਂ ਵਾਲਾ ਪੈਕਟ ਲਵੇਗਾ।
ip route get 203.0.113.37 from 198.51.100.2 iif tun0
ਉਹ ਟਿਕਾਣਾ ਰੱਖੋ ਜਿਸ ਦੀ ਤੁਹਾਨੂੰ ਸੱਚਮੁੱਚ ਪਰਵਾਹ ਹੈ, ਫਿਰ ਜਦੋਂ ਟ੍ਰੈਫ਼ਿਕ ਸਰੋਤ ਅਨੁਸਾਰ ਚੁਣੀ ਜਾਵੇ ਜਾਂ ਅੱਗੇ ਭੇਜੀ ਜਾਵੇ ਤਾਂ from ਜਾਂ iif ਜੋੜੋ, ਕਿਉਂਕਿ ਆਮ ਸਥਾਨਕ ਖੋਜ ਅੱਗੇ ਭੇਜੇ ਕਲਾਇੰਟ ਨਾਲੋਂ ਵੱਖਰਾ ਰਾਹ ਚੁਣ ਸਕਦੀ ਹੈ। ਜਵਾਬ ਇੰਟਰਫ਼ੇਸ, ਚੁਣਿਆ ਸਰੋਤ ਪਤਾ ਅਤੇ ਕੋਈ ਵੀ ਅਗਲੀ ਹੌਪ ਦੱਸਦਾ ਹੈ, ਜੋ ਉਸ ਪਲ ਪੈਕਟ ਨੂੰ ਰੂਟ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਣ ਵਾਲੀ ਉਹੀ ਜਾਣਕਾਰੀ ਹੈ।
ਜੇ ਜਵਾਬ ਤੁਹਾਨੂੰ ਹੈਰਾਨ ਕਰੇ, ਤਾਂ ਕੁਝ ਵੀ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਨਿਯਮ ਛਾਪੋ: ip -4 rule show ਉਨ੍ਹਾਂ ਨੂੰ ਤਰਜੀਹ ਕ੍ਰਮ ਵਿੱਚ ਸੂਚੀਬੱਧ ਕਰਦਾ ਹੈ, ਅਤੇ ਜੋ VPN ਕਲਾਇੰਟ ਆਪਣੀ ਟੇਬਲ ਜਾਂ ਚਿੰਨ੍ਹਿਤ ਪੈਕਟਾਂ ਲਈ ਨਿਯਮ ਸਥਾਪਿਤ ਕਰਦਾ ਹੈ ਉਹ ਮੁੱਖ ਟੇਬਲ ਵਿੱਚ ਬਿਲਕੁਲ ਨਹੀਂ ਦਿਖੇਗਾ। ਹਰ ਟੇਬਲ ਸੂਚੀਬੱਧ ਕਰਨਾ ਉਸ ਖਾਲੀ ਥਾਂ ਨੂੰ ਭਰਦਾ ਹੈ।
ip -4 route show table all | grep -E 'tun|default'ਡਿਫ਼ਾਲਟ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਅੰਡਰਲੇ ਜਾਂਚੋ
ਟਨਲ ਦੇ ਆਪਣੇ ਪੈਕਟਾਂ ਨੂੰ ਦੂਰਲੇ ਅੰਤ ਬਿੰਦੂ ਤੱਕ ਪਹੁੰਚਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਉਹ ਇਹ ਭੌਤਿਕ ਇੰਟਰਫ਼ੇਸ ਰਾਹੀਂ ਉਸ ਰੂਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਰਦੇ ਹਨ ਜੋ VPN ਆਉਣ ਤੋਂ ਪਹਿਲਾਂ ਮੌਜੂਦ ਸੀ। ਉਸ ਅੰਤ ਬਿੰਦੂ ਨੂੰ ਪਿੰਨ ਕੀਤੇ ਬਿਨਾਂ ਪੂਰਾ ਡਿਫ਼ਾਲਟ ਰੂਟ ਬਦਲਣਾ ਇਨਕੈਪਸੂਲੇਟਡ ਪੈਕਟਾਂ ਨੂੰ ਉਸੇ ਟਨਲ ਵਿੱਚ ਭੇਜਦਾ ਹੈ ਜਿਸ ਨੂੰ ਉਨ੍ਹਾਂ ਨੇ ਬਣਾਉਣਾ ਸੀ, ਅਤੇ ਕਨੈਕਸ਼ਨ ਢਹਿ ਜਾਂਦਾ ਹੈ। ਪਹਿਲਾਂ ਸਿਰਫ਼ ਅੰਤ ਬਿੰਦੂ ਦੇ ਪਤੇ ਦੀ ਖੋਜ ਨਾਲ ਅੰਤ ਬਿੰਦੂ ਦਾ ਰਾਹ ਪੁਸ਼ਟੀ ਕਰੋ।
ਬਦਲਾਅ ਕਰਦੇ ਸਮੇਂ ਤਿੰਨ ਚੀਜ਼ਾਂ ਵੱਖ ਰੱਖੋ: ਭੌਤਿਕ ਇੰਟਰਫ਼ੇਸ 'ਤੇ ਰਹਿਣਾ ਚਾਹੀਦਾ ਅੰਤ ਬਿੰਦੂ ਦਾ ਰੂਟ, ਟਨਲ ਵਿੱਚ ਜਾਣ ਵਾਲੀਆਂ ਨਿੱਜੀ ਰੇਂਜਾਂ, ਅਤੇ ਬਾਕੀ ਸਭ ਤੈਅ ਕਰਨ ਵਾਲਾ ਡਿਫ਼ਾਲਟ। ਉਨ੍ਹਾਂ ਨੂੰ ਇਸੇ ਕ੍ਰਮ ਵਿੱਚ ਵੱਖ ਕਰੋ, ਇੱਕ ਵਾਰ ਵਿੱਚ ਇੱਕ ਲਾਗੂ ਕਰੋ, ਅਤੇ ਹਰ ਕਦਮ ਤੋਂ ਬਾਅਦ ਖੋਜ ਦੁਬਾਰਾ ਚਲਾਓ। ਬਾਅਦ ਵਿੱਚ ਅਸਫਲ ਪਿੰਗ ਆਪਣੇ ਆਪ ਵਿੱਚ ਬਹੁਤ ਘੱਟ ਸਾਬਤ ਕਰਦਾ ਹੈ, ਕਿਉਂਕਿ ਇਜਾਜ਼ਤਾਂ, ਜਵਾਬ ਰੂਟਿੰਗ, DNS ਅਤੇ ਸੇਵਾ ਆਪ ਸਾਰੇ ਸਹੀ ਰੂਟ ਦੇ ਹੇਠਾਂ ਬੈਠੇ ਹਨ।
ਸੋਧ ਤੋਂ ਪਹਿਲਾਂ ਲਾਈਨ ਨੇ ਤੁਹਾਨੂੰ ਦਿੱਤੇ ਚਾਰ ਮੁੱਲ ਲਿਖੋ: ਟਿਕਾਣਾ, ਅਗਲੀ ਹੌਪ ਜਾਂ ਉਸ ਦੀ ਗੈਰ-ਮੌਜੂਦਗੀ, ਯੰਤਰ, ਅਤੇ ਚੁਣਿਆ ਸਰੋਤ। ਜੇ ਬਾਅਦ ਦਾ ਕੋਈ ਬਦਲਾਅ ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਕਿਸੇ ਨੂੰ ਹਿਲਾਏ, ਤਾਂ ਤੁਸੀਂ ਜਾਣੋਗੇ ਕਿ ਕਿਹੜਾ ਫ਼ੈਸਲਾ ਸੱਚਮੁੱਚ ਬਦਲਿਆ, ਅਤੇ ਪੂਰੀ ਟੇਬਲ ਦਾ ਅੰਦਾਜ਼ਾ ਲਾਉਣ ਦੀ ਬਜਾਇ ਇੱਕ ਐਂਟਰੀ ਬਹਾਲ ਕਰ ਸਕਦੇ ਹੋ।