ਇੱਕ Linux ਹੋਸਟ ਉੱਤੇ ਦੋ OpenVPN ਸੁਰੰਗਾਂ: ਰਸਤਾ ਕਿਸਦਾ ਹੈ?
ਪੂਲ, ਧੱਕੇ ਗਏ ਰਸਤੇ ਅਤੇ ਡਿਫ਼ਾਲਟ ਦਾਅਵੇ ਅਲਾਟ ਹੋਣ ਤੋਂ ਬਾਅਦ ਦੋ ਕਲਾਇੰਟ ਪਰੋਫ਼ਾਈਲ ਇਕੱਠੇ ਰਹਿ ਸਕਦੇ ਹਨ। ਪਹਿਲਾਂ ਮਾਲਕੀ ਤੈਅ ਕਰੋ, ਫਿਰ ਵਾਪਸੀ ਰਸਤੇ ਲਈ ਮਾਰਕ ਵਰਤੋ।
ਦੋ ਪਰੋਫ਼ਾਈਲ ਜੁੜੇ ਹੋਏ ਹਨ, ਅਤੇ ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਇੱਕ ਚੁੱਪਚਾਪ ਦੂਜੇ ਲਈ ਬਣਿਆ ਟ੍ਰੈਫ਼ਿਕ ਲਿਜਾ ਰਿਹਾ ਹੈ। Linux ਹੋਸਟ ਦੋਵੇਂ OpenVPN ਕਲਾਇੰਟ ਇੱਕੋ ਸਮੇਂ ਬਿਨਾਂ ਕਿਸੇ ਮੁਸ਼ਕਲ ਦੇ ਚਲਾ ਸਕਦਾ ਹੈ। ਜੋ ਨਹੀਂ ਕਰ ਸਕਦਾ, ਉਹ ਹੈ ਤੁਹਾਡੇ ਵੱਲੋਂ ਇਹ ਤੈਅ ਕਰਨਾ ਕਿ ਕਿਹੜੀ ਪ੍ਰਕਿਰਿਆ ਕਿਹੜੇ ਪ੍ਰੀਫ਼ਿਕਸ ਦਾ ਦਾਅਵਾ ਕਰ ਸਕਦੀ ਹੈ। ਇਹ ਫ਼ੈਸਲਾ ਦੂਜੀ ਸੁਰੰਗ ਉੱਪਰ ਆਉਣ ਤੋਂ ਪਹਿਲਾਂ ਲੈਣਾ ਪਵੇਗਾ, ਕਿਸੇ ਸਰੋਤ ਦੇ ਜਵਾਬ ਦੇਣਾ ਬੰਦ ਕਰਨ ਤੋਂ ਬਾਅਦ ਨਹੀਂ।
ਦੂਜੀ ਲਿੰਕ ਨੂੰ ਜੋ ਕੰਮ ਕਰਨਾ ਹੈ ਉਸਤੋਂ ਸ਼ੁਰੂ ਕਰੋ
ਇੱਕ ਪਰੋਫ਼ਾਈਲ ਰਾਹੀਂ ਪਹੁੰਚਣ ਵਾਲੇ ਦਫ਼ਤਰ ਅਤੇ ਦੂਜੇ ਰਾਹੀਂ ਪਹੁੰਚਣ ਵਾਲੀ ਲੈਬ ਲਈ ਦੋਵੇਂ ਸੁਰੰਗਾਂ ਉੱਪਰ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ ਅਤੇ ਕੋਈ ਵੀ ਸਭ ਕੁਝ ਦਾਅਵਾ ਨਾ ਕਰੇ। ਦੂਜੇ ਪਰੋਫ਼ਾਈਲ ਰਾਹੀਂ ਬਾਹਰ ਜਾਣ ਵਾਲੀ ਇੱਕ ਜ਼ਿੱਦੀ ਐਪ ਨੂੰ ਦੂਜੇ ਡਿਫ਼ਾਲਟ ਦੀ ਥਾਂ ਨੀਤੀ ਨਿਯਮ ਚਾਹੀਦਾ ਹੈ। ਸਟੈਂਡਬਾਈ ਲਿੰਕ ਨੂੰ ਇੱਕ ਸਮੇਂ ਸਿਰਫ਼ ਇੱਕ ਸੁਰੰਗ ਚੱਲਦੀ ਚਾਹੀਦੀ ਹੈ, ਇਸ ਲਈ ਵਾਧੂ ਨੂੰ ਮਸ਼ੀਨ ਨਾਲ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ।
ਇਹ ਤਿੰਨ ਵੱਖਰੇ ਸੰਰਚਨਾਵਾਂ ਹਨ, ਅਤੇ ਇਹ ਉਲਝ ਜਾਂਦੀਆਂ ਹਨ ਕਿਉਂਕਿ ਤਿੰਨੇ ਇੱਕੋ ਤਰੀਕੇ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦੀਆਂ ਹਨ: ਦੂਜਾ ਪਰੋਫ਼ਾਈਲ ਅਤੇ ਸਫਲ ਕਨੈਕਸ਼ਨ। ਪਹਿਲਾਂ ਲੋੜੀਂਦੀ ਵਿਵਸਥਾ ਲਿਖੋ, ਫਿਰ ਉਸ ਵੱਲ ਸੰਰਚਿਤ ਕਰੋ। ਮਕਸਦ ਬਾਰੇ ਇੱਕ ਵਾਕਿਆ ਇੱਕ ਘੰਟੇ ਦੀ ਪੈਕੇਟ ਕੈਪਚਰ ਬਚਾਉਂਦਾ ਹੈ।
systemctl list-units --type=service 'openvpn-client@*' ip -4 route show default
ਪਹਿਲਾ ਕਮਾਂਡ ਚੱਲ ਰਹੀਆਂ ਇੰਸਟੈਂਸਾਂ ਦੀ ਸੂਚੀ ਦਿੰਦਾ ਹੈ, ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਮੈਨੇਜਰ ਤੋਂ ਬਾਹਰ ਹੱਥੀਂ ਸ਼ੁਰੂ ਕੀਤੀਆਂ ਵੀ ਸ਼ਾਮਲ ਹਨ। ਦੂਜਾ ਮੌਜੂਦਾ ਡਿਫ਼ਾਲਟ ਦਾਅਵਾ ਛਾਪਦਾ ਹੈ, ਅਤੇ ਇਹ ਉਹ ਹਾਲਤ ਹੈ ਜੋ ਤੁਹਾਨੂੰ ਬਾਅਦ ਵਿੱਚ ਸਮਝਾਉਣੀ ਪਵੇਗੀ।
ਓਵਰਲੈਪ ਹੁੰਦੇ ਪੂਲ ਰਾਊਟਿੰਗ ਤੋਂ ਪਹਿਲਾਂ ਟੁੱਟਦੇ ਹਨ
ਦੋ ਸਰਵਰ ਖੁਸ਼ੀ ਨਾਲ ਉਸੇ 10.8.0.0/24 ਵਿੱਚੋਂ ਪਤੇ ਅਲਾਟ ਕਰਨਗੇ। ਫਿਰ ਕਲਾਇੰਟ ਇੱਕ ਹੀ ਪ੍ਰੀਫ਼ਿਕਸ ਦੇ ਅੰਦਰ ਦੋ ਇੰਟਰਫ਼ੇਸ ਰੱਖਦਾ ਹੈ ਅਤੇ ਕੁਝ ਵੀ ਇਹ ਨਹੀਂ ਦੱਸਦਾ ਕਿ ਕਿਹੜਾ ਟਿਕਾਣਾ ਕਿਸਦਾ ਹੈ, ਅਤੇ ਨਤੀਜੇ ਵਜੋਂ ਦਿਸਣ ਵਾਲਾ ਵਿਵਹਾਰ ਰਾਊਟਿੰਗ ਖ਼ਰਾਬੀ ਵਰਗਾ ਲੱਗਦਾ ਹੈ ਪਰ ਅਸਲ ਵਿੱਚ ਇਹ ਨੰਬਰਿੰਗ ਖ਼ਰਾਬੀ ਹੈ। ਪੂਲ ਨੂੰ ਮੁੜ-ਨੰਬਰ ਦੇਣ ਲਈ ਇੱਕ ਸੰਰਚਨਾ ਸੋਧ ਲੱਗਦੀ ਹੈ; ਇਸ ਤੋਂ ਬਾਅਦ ਹਰ ਰਾਊਟਿੰਗ ਉਪਾਅ ਇੱਕ ਵੀਕਐਂਡ ਲੈਂਦਾ ਹੈ। ਇਸ ਲਈ ਰਸਤਾ ਜੋੜਨ ਤੋਂ ਪਹਿਲਾਂ ਪੂਲ ਜਾਂਚੋ।
ਸਥਾਨਕ LAN ਵੀ ਵੇਖੋ। 192.168.1.0/24 ਨੰਬਰ ਵਾਲਾ ਘਰੇਲੂ LAN, ਜਿਸਨੂੰ ਇੱਕ ਸੁਰੰਗ ਵੀ ਖੋਲ੍ਹਦੀ ਹੈ, ਉਹੀ ਅਸਪਸ਼ਟਤਾ ਪੈਦਾ ਕਰਦਾ ਹੈ, ਅਤੇ ਲੱਛਣ ਇਹ ਹੈ ਕਿ ਹੋਸਟਨਾਮ ਹੱਲ ਹੋ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਕਿ ਕਨੈਕਸ਼ਨ ਕਦੇ ਪੂਰਾ ਨਹੀਂ ਹੁੰਦਾ। ਰਸਤੇ ਛਾਪਣ ਤੱਕ ਇਹ ਨਾਮ-ਹੱਲ ਖ਼ਰਾਬੀ ਵਰਗਾ ਲੱਗਦਾ ਹੈ।
ip -4 addr show ip route show table all | grep -E '10\.|192\.168\.'
ਕਲਾਇੰਟ ਨੂੰ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਦੋਵੇਂ ਆਉਟਪੁੱਟਾਂ ਦੀ ਤੁਲਨਾ ਦੋਵਾਂ ਸਰਵਰ ਸੰਰਚਨਾਵਾਂ ਨਾਲ ਕਰੋ। ਜੇ ਪ੍ਰੀਫ਼ਿਕਸ ਇੱਕ ਦੂਜੇ ਉੱਤੇ ਚੜ੍ਹਦੇ ਹਨ, ਤਾਂ ਰੁਕੋ ਅਤੇ ਮੁੜ-ਨੰਬਰ ਕਰੋ, ਕਿਉਂਕਿ ਕਿੰਨੇ ਵੀ ਰੀਸਟਾਰਟ ਉਨ੍ਹਾਂ ਨੂੰ ਵੱਖ ਨਹੀਂ ਕਰਨਗੇ।
ਹਰ ਪਰੋਫ਼ਾਈਲ ਨੂੰ ਇਸਦਾ ਯੂਨਿਟ ਅਤੇ ਹਰ ਪ੍ਰੀਫ਼ਿਕਸ ਨੂੰ ਮਾਲਕ ਦਿਓ
ਹਰ ਪਰੋਫ਼ਾਈਲ ਨੂੰ ਆਪਣਾ ਇੰਸਟੈਂਸ ਨਾਮ ਅਤੇ ਆਪਣੀ ਸੰਰਚਨਾ ਫ਼ਾਈਲ ਮਿਲਦੀ ਹੈ, ਇਸ ਲਈ office ਨਾਮ ਵਾਲੀ ਇੰਸਟੈਂਸ office.conf ਲੋਡ ਕਰਦੀ ਹੈ ਜਦੋਂ ਕਿ lab ਨਾਮ ਵਾਲੀ lab.conf ਲੋਡ ਕਰਦੀ ਹੈ। ਡਾਇਰੈਕਟਰੀ ਸੂਚੀ ਉੱਤੇ ਭਰੋਸਾ ਕਰਨ ਦੀ ਥਾਂ ਸੇਵਾ ਮੈਨੇਜਰ ਰਾਹੀਂ ਉਸ ਮੈਪਿੰਗ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ, ਕਿਉਂਕਿ drop-in ਬਦਲ ਸਕਦਾ ਹੈ ਕਿ ਕਿਹੜੀ ਫ਼ਾਈਲ ਲੋਡ ਹੁੰਦੀ ਹੈ। ਮੈਪਿੰਗ ਗ਼ਲਤ ਹੋਣ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਸੀਂ ਉਹ ਪਰੋਫ਼ਾਈਲ ਟਿਊਨ ਕਰ ਰਹੇ ਹੋ ਜੋ ਚੱਲ ਨਹੀਂ ਰਿਹਾ।
ਫਿਰ ਤੈਅ ਕਰੋ ਕਿ ਰਸਤੇ ਕੌਣ ਇੰਸਟਾਲ ਕਰਦਾ ਹੈ। ਜਦੋਂ ਸਰਵਰ ਅਸੰਗਤ ਸੈੱਟ ਧੱਕਦੇ ਹਨ, ਤਾਂ ਜਾਂ ਤਾਂ ਧੱਕਣ ਤੋਂ ਇਨਕਾਰ ਕਰੋ ਅਤੇ ਪ੍ਰੀਫ਼ਿਕਸ ਆਪ ਸੂਚੀਬੱਧ ਕਰੋ, ਜਾਂ ਇੱਕ ਪਰੋਫ਼ਾਈਲ ਨੂੰ ਡਿਫ਼ਾਲਟ ਰੱਖਣ ਦਿਓ ਅਤੇ ਦੂਜੇ ਨੂੰ ਨੀਤੀ ਨਿਯਮਾਂ ਨਾਲ ਚਲਾਓ। ਦੋਵੇਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਡਿਫ਼ਾਲਟ ਇੰਸਟਾਲ ਕਰਨ ਤਾਂ ਅੰਤ ਵਿੱਚ ਇੱਕ ਚੁੱਪ ਜੇਤੂ ਰਹਿੰਦਾ ਹੈ ਅਤੇ ਫ਼ੈਸਲੇ ਦਾ ਕੋਈ ਲਿਖਤੀ ਰਿਕਾਰਡ ਨਹੀਂ ਹੁੰਦਾ।
systemctl cat [email protected] grep -E 'route-nopull|pull-filter|redirect-gateway' /etc/openvpn/client/lab.conf
ਪਹਿਲਾ ਯੂਨਿਟ ਨੂੰ ਇਸਦੇ ਆਰਗੂਮੈਂਟ ਬਦਲਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਓਵਰਰਾਈਡ ਸਮੇਤ ਦਿਖਾਉਂਦਾ ਹੈ। ਦੂਜਾ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਪਰੋਫ਼ਾਈਲ ਧੱਕੇ ਗਏ ਰਸਤੇ ਬਿਲਕੁਲ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ ਜਾਂ ਨਹੀਂ, ਅਤੇ ਇਹੀ ਉਹ ਸਵਿੱਚ ਹੈ ਜੋ ਅੱਗੇ ਸਭ ਕੁਝ ਤੈਅ ਕਰਦਾ ਹੈ।
ਮਾਰਕ ਜਵਾਬਾਂ ਨੂੰ ਉਸੇ ਇੰਟਰਫ਼ੇਸ ਉੱਤੇ ਰੱਖਦੇ ਹਨ ਜਿੱਥੋਂ ਉਹ ਆਏ
ਜਦੋਂ ਹਰ ਸੁਰੰਗ ਵੱਖਰੇ ਸਰੋਤਾਂ ਦੀ ਸੇਵਾ ਕਰਦੀ ਹੈ, ਤਾਂ ਜਵਾਬ ਗ਼ਲਤ ਲਿੰਕ ਰਾਹੀਂ ਬਾਹਰ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਪਹਿਲੇ ਪੈਕੇਟ ਤੋਂ ਬਾਅਦ ਕਨੈਕਸ਼ਨ ਮਰ ਜਾਂਦਾ ਹੈ। ਜੋ ਪੈਟਰਨ ਟਿਕਦਾ ਹੈ ਉਹ ਹੈ ਆਉਂਦੇ ਪੈਕੇਟਾਂ ਨੂੰ ਇਨਪੁੱਟ ਇੰਟਰਫ਼ੇਸ ਅਨੁਸਾਰ ਮਾਰਕ ਕਰਨਾ, ਉਹ ਮਾਰਕ ਜਵਾਬ ਉੱਤੇ ਮੁੜ-ਸਥਾਪਿਤ ਕਰਨਾ, ਅਤੇ ਹਰ ਮਾਰਕ ਨੂੰ ਆਪਣੇ ਡਿਫ਼ਾਲਟ ਗੇਟਵੇ ਵਾਲੀ ਸਾਰਣੀ ਦੇਣਾ।
ਪ੍ਰਭਾਵਿਤ ਇੰਟਰਫ਼ੇਸਾਂ ਲਈ ਆਮ ਤੌਰ ਉੱਤੇ ਢਿੱਲੀ ਰਿਵਰਸ-ਪਾਥ ਫ਼ਿਲਟਰਿੰਗ ਢਿੱਲੀ ਕਰਨੀ ਪੈਂਦੀ ਹੈ, ਕਿਉਂਕਿ ਜਵਾਬ ਜਾਇਜ਼ ਤੌਰ ਉੱਤੇ ਅਜਿਹੇ ਲਿੰਕ ਰਾਹੀਂ ਆਉਂਦਾ ਹੈ ਜਿਸਨੂੰ ਮੁੱਖ ਸਾਰਣੀ ਕਦੇ ਨਹੀਂ ਚੁਣੇਗੀ। ਮਾਰਕ ਤੰਗ ਰੱਖੋ ਤਾਂ ਜੋ ਉਹ ਕਦੇ ਵੀ ਸੁਰੰਗਾਂ ਦਾ ਆਪਣਾ ਐਨਕ੍ਰਿਪਟਡ ਟ੍ਰੈਫ਼ਿਕ ਨਾ ਫੜਨ, ਜੋ ਸੁਰੰਗ ਨੂੰ ਆਪਣੇ ਆਪ ਵਿੱਚੋਂ ਭੇਜ ਦੇਵੇਗਾ।
ip rule show ip route show table 101 sysctl net.ipv4.conf.all.rp_filter
ਦੂਜਾ ਜੋੜਨ ਤੋਂ ਪਹਿਲਾਂ ਮੌਜੂਦਾ ਨਿਯਮ ਪੜ੍ਹੋ। ਦੁਹਰਾਈਆਂ ਤਰਜੀਹਾਂ ਅਤੇ ਭੁੱਲੀਆਂ ਸਾਰਣੀਆਂ ਹੀ ਆਮ ਕਾਰਨ ਹਨ ਕਿ ਮਾਰਕ ਨੀਤੀ ਦਾ ਬਿਲਕੁਲ ਅਸਰ ਨਹੀਂ ਦਿਸਦਾ।
ਇੱਕ ਲਿੰਕ ਰੋਕ ਕੇ ਅਲੱਗਤਾ ਸਾਬਤ ਕਰੋ
ਦੋਵੇਂ ਸੁਰੰਗਾਂ ਉੱਪਰ ਹੋਣ 'ਤੇ ਹਰ ਇੰਟਰਫ਼ੇਸ ਦਾ ਪਤਾ, ਹਰ ਸੁਰੰਗ ਪਿੱਛੇ ਇੱਕ ਹੋਸਟ ਤੱਕ ਦਾ ਰਸਤਾ, ਅਤੇ ਕਿਸੇ ਅਸੰਬੰਧਿਤ ਟਿਕਾਣੇ ਦਾ ਲਿਆ ਜਾਣ ਵਾਲਾ ਰਾਹ ਦਰਜ ਕਰੋ। ਇੱਕ ਸਾਰਣੀ ਪੜ੍ਹਨ ਦੀ ਥਾਂ ਕਰਨਲ ਤੋਂ ਖੋਜ ਮੰਗੋ, ਕਿਉਂਕਿ ਇੱਕ ਸਾਰਣੀ ਕਦੇ ਅੰਤਿਮ ਫ਼ੈਸਲਾ ਨਹੀਂ ਦਿਖਾਉਂਦੀ।
ਫਿਰ ਇੱਕ ਇੰਸਟੈਂਸ ਰੋਕੋ ਅਤੇ ਦੂਜੀ ਦੇ ਚੱਲਦੇ ਰਹਿੰਦਿਆਂ ਉਸਦਾ ਇੰਟਰਫ਼ੇਸ ਅਤੇ ਰਸਤੇ ਗ਼ਾਇਬ ਹੁੰਦੇ ਵੇਖੋ। ਬਚੇ ਹੋਏ ਵਿੱਚ ਭੰਗ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਦੋਵੇਂ ਅਜੇ ਵੀ ਕੋਈ ਡਿਵਾਈਸ ਨਾਮ, ਰਸਤਾ ਜਾਂ ਫ਼ਾਇਰਵਾਲ ਨਿਯਮ ਸਾਂਝਾ ਕਰਦੇ ਹਨ ਜਿਸਨੂੰ ਕਿਸੇ ਨੇ ਵੱਖ ਨਹੀਂ ਕੀਤਾ।
ਰੋਕੀ ਗਈ ਪਰੋਫ਼ਾਈਲ ਵਾਪਸ ਲਿਆਓ ਅਤੇ ਉਹੀ ਜਾਂਚ ਦੁਹਰਾਓ। ਜਦੋਂ ਸੁਰੰਗ ਰੀਬੂਟ ਤੋਂ ਬਾਅਦ ਸਿਰਫ਼ ਪਹਿਲੇ ਸਟਾਰਟ ਉੱਤੇ ਟਿਕਦੀ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਰਾਊਟਿੰਗ ਡਿਜ਼ਾਈਨ ਨਹੀਂ ਬਲਕਿ ਜੀਵਨ-ਚੱਕਰ ਖ਼ਰਾਬੀ ਵੇਖ ਰਹੇ ਹੋ।