ਇੱਕ ਹੀ ਹੋਸਟ ਉੱਤੇ OpenVPN ਸਰਵਰ ਅਤੇ ਕਲਾਇੰਟ: ਕਲਾਇੰਟ ਕਿਉਂ ਡਿੱਗਦੇ ਹਨ
ਜੋ ਹੋਸਟ OpenVPN ਦੀ ਸੇਵਾ ਦਿੰਦਾ ਹੈ ਅਤੇ ਆਪ ਵੀ ਵਰਤਦਾ ਹੈ, ਉਸ ਦਾ ਟਨਲ ਚੱਲਦਾ ਰਹਿ ਸਕਦਾ ਹੈ ਜਦੋਂ ਕਿ ਸਥਾਨਕ ਕਲਾਇੰਟ ਜਵਾਬ ਗੁਆ ਦਿੰਦੇ ਹਨ। ਦੋ ਗੱਲਾਂ ਇਹ ਸਮਝਾਉਂਦੀਆਂ ਹਨ: ਇੱਕ ਸਾਂਝਾ ਪੂਲ ਅਤੇ ਇੱਕ ਨਵਾਂ ਡਿਫ਼ਾਲਟ ਰੂਟ।
ਜਿਸ ਮਸ਼ੀਨ ਉੱਤੇ ਪਹਿਲਾਂ ਹੀ VPN ਸਰਵਰ ਚੱਲ ਰਿਹਾ ਹੈ, ਉੱਥੇ ਕਲਾਇੰਟ ਪ੍ਰੋਫ਼ਾਈਲ ਜੋੜੋ, ਅਤੇ ਪਹਿਲਾ ਨੁਕਸਾਨ ਮੂਲ ਸੇਵਾ ਦਾ ਹੋਵੇਗਾ। ਨਵਾਂ ਟਨਲ ਕਦੇ ਬਣ ਹੀ ਨਾ ਸਕੇ, ਜਾਂ ਬਣ ਜਾਵੇ ਅਤੇ ਸਰਵਰ ਦੇ ਮੌਜੂਦਾ ਕਲਾਇੰਟ ਚੁੱਪਚਾਪ ਜਵਾਬ ਮਿਲਣਾ ਬੰਦ ਕਰ ਦੇਣ। ਦੋ ਟਕਰਾਅ ਇਹ ਦੋਵੇਂ ਨਤੀਜੇ ਦਿੰਦੇ ਹਨ: ਪਹਿਲਾਂ ਹੀ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਟਨਲ ਪੂਲ, ਅਤੇ ਨਵੇਂ ਕਲਾਇੰਟ-ਅੱਧੇ ਵੱਲੋਂ ਲਾਇਆ ਗਿਆ ਡਿਫ਼ਾਲਟ ਰੂਟ ਜੋ ਪੂਰੀ ਸਾਰਣੀ ਨੂੰ ਢਕ ਲੈਂਦਾ ਹੈ। ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ OpenVPN ਗਲਤੀ ਸੰਦੇਸ਼ ਨਹੀਂ ਦਿੰਦਾ, ਇਸ ਲਈ ਨਾਕਾਮੀ ਨੂੰ ਸਰਵਰ ਦੀ ਸਮੱਸਿਆ ਪੜ੍ਹਿਆ ਜਾਂਦਾ ਹੈ।
ਇੱਕ ਮਸ਼ੀਨ, ਦੋ ਭੂਮਿਕਾਵਾਂ, ਅਤੇ ਜਵਾਬ ਕਿੱਥੇ ਜਾਣੇ ਚਾਹੀਦੇ ਹਨ ਇਸ ਬਾਰੇ ਦੋ ਅਸੰਗਤ ਜਵਾਬ।
ਇੱਕੋ ਪੂਲ, ਦੋ ਸਰਵਰ: ਕੌਣ ਜਿੱਤਦਾ ਹੈ
ਹਰ ਸਰਵਰ ਇੰਸਟੈਂਸ ਨੂੰ ਆਪਣਾ ਟਨਲ ਸਬਨੈੱਟ ਚਾਹੀਦਾ ਹੈ। server 10.8.0.0 255.255.255.0 ਵਰਗੀ ਲਾਈਨ ਦੂਜੀ ਕਨਫ਼ਿਗਰੇਸ਼ਨ ਵਿੱਚ ਕਾਪੀ ਕਰਨ ਨਾਲ ਦੋਵੇਂ ਇੰਸਟੈਂਸਾਂ ਨੂੰ ਇੱਕੋ ਪ੍ਰੀਫ਼ਿਕਸ ਮਿਲਦਾ ਹੈ, ਅਤੇ ਨਤੀਜਾ ਜਾਂ ਤਾਂ ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਇਨਕਾਰ ਹੁੰਦਾ ਹੈ ਜਾਂ ਇੱਕ ਚੁੱਪਚਾਪ ਮੁਕਾਬਲਾ ਜਿਸ ਵਿੱਚ ਇੱਕ ਸਰਵਰ ਦੇ ਕਲਾਇੰਟ ਉਹ ਪਤੇ ਲੈ ਲੈਂਦੇ ਹਨ ਜਿਹਨਾਂ ਨੂੰ ਦੂਜਾ ਵੀ ਆਪਣਾ ਮੰਨਦਾ ਹੈ। ਵੱਖਰੇ UDP ਪੋਰਟ ਅਤੇ ਵੱਖਰੇ ਡਿਵਾਈਸ ਨਾਮ ਮਦਦ ਨਹੀਂ ਕਰਦੇ, ਕਿਉਂਕਿ ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਪਤਾ-ਥਾਂ ਨੂੰ ਨਹੀਂ ਛੂਹੰਦਾ। ਦੂਜਾ ਪੂਲ ਬਦਲੋ, ਅਤੇ ਜਿੱਥੇ-ਜਿੱਥੇ ਰੂਟ ਇਸ ਦਾ ਜ਼ਿਕਰ ਕਰਦੇ ਹਨ ਉੱਥੇ ਇਸ ਨੂੰ ਬਦਲੋ।
ਸੋਧ ਤੋਂ ਪਹਿਲਾਂ ਸੂਚੀ ਬਣਾਓ ਕਿ ਕੀ ਸਰਗਰਮ ਹੈ: ip -4 addr show ਟਨਲ ਡਿਵਾਈਸਾਂ ਦੀ ਸੂਚੀ ਦਿੰਦਾ ਹੈ, ss -lunp ਸੁਣਨ ਵਾਲਿਆਂ ਦੀ ਸੂਚੀ ਦਿੰਦਾ ਹੈ, ਅਤੇ systemctl list-units ਯੂਨਿਟਾਂ ਦੇ ਨਾਮ ਦੱਸਦਾ ਹੈ। ਟਨਲ ਪਤਿਆਂ ਉੱਤੇ ਇੱਕ ਨਜ਼ਰ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ ਪੂਲ ਟਕਰਾਉਂਦੇ ਹਨ ਜਾਂ ਨਹੀਂ।
ਕਲਾਇੰਟ ਪ੍ਰੋਫ਼ਾਈਲ ਸਾਰਣੀ ਵਿੱਚ ਕੀ ਜੋੜਦਾ ਹੈ
ਕਲਾਇੰਟ-ਅੱਧਾ ਜੁੜਦੇ ਹੀ ਰੂਟ ਲਿਖਦਾ ਹੈ। redirect-gateway def1 ਡਿਫ਼ਾਲਟ ਰੂਟ ਨੂੰ 0.0.0.0/1 ਅਤੇ 128.0.0.0/1 ਵਿੱਚ ਵੰਡਦਾ ਹੈ, ਦੋਵੇਂ ਨਵੇਂ ਡਿਵਾਈਸ ਰਾਹੀਂ ਰੂਟ ਹੁੰਦੇ ਹਨ, ਨਾਲ ਹੀ ਦੂਰਲੇ ਸਰਵਰ ਵੱਲ ਇੱਕ ਹੋਸਟ ਰੂਟ ਜੋ ਜਾਣ-ਬੁੱਝ ਕੇ ਭੌਤਿਕ ਇੰਟਰਫ਼ੇਸ ਨਾਲ ਪਿੰਨ ਕੀਤਾ ਹੈ। ਇਹ ਪਿੰਨ ਇਸ ਲਈ ਹੈ ਕਿ ਟਨਲ ਆਪਣੀ ਢੋਆ-ਢੁਆਈ ਲਈ ਰਾਹ ਰੱਖੇ। ਬਾਕੀ ਸਭ ਕੁਝ, ਸਥਾਨਕ ਸਰਵਰ ਆਪਣੇ ਕਲਾਇੰਟਾਂ ਨੂੰ ਦੇਣ ਵਾਲੇ ਜਵਾਬਾਂ ਸਮੇਤ, ਹੁਣ ਨਵੇਂ ਡਿਫ਼ਾਲਟ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ ਅਤੇ ਦੂਰਲੇ ਲਿੰਕ ਰਾਹੀਂ ਬਾਹਰ ਜਾਂਦਾ ਹੈ।
ਇਸ ਲਈ ਦੂਜਾ ਟਕਰਾਅ ਟੁੱਟਿਆ ਟਨਲ ਨਹੀਂ ਹੈ। ਇਹ ਸਾਰਣੀ ਵਿੱਚ ਗਲਤ ਥਾਂ ਉੱਤੇ ਬੈਠਾ ਕੰਮ ਕਰਦਾ ਟਨਲ ਹੈ।
ਭੂਮਿਕਾਵਾਂ ਨੂੰ ਵੱਖਰਾ ਰੱਖਣ ਦੇ ਤਿੰਨ ਤਰੀਕੇ
ਸਭ ਤੋਂ ਘੱਟ ਦਖ਼ਲ ਵਾਲਾ ਹੱਲ ਡਿਫ਼ਾਲਟ ਰੂਟ ਨੂੰ ਕਲਾਇੰਟ ਪ੍ਰੋਫ਼ਾਈਲ ਤੋਂ ਬਾਹਰ ਰੱਖਦਾ ਹੈ: ਦੂਰਲੇ ਪ੍ਰੀਫ਼ਿਕਸਾਂ ਲਈ route-nopull ਅਤੇ ਸਪੱਸ਼ਟ route ਲਾਈਨਾਂ, ਤਾਂ ਜੋ ਸਥਾਨਕ ਸਾਰਣੀ ਸਿਰਫ਼ ਉੱਥੇ ਹੀ ਬਦਲੇ ਜਿੱਥੇ ਤੁਸੀਂ ਮੰਗਿਆ। ਅਗਲਾ ਕਦਮ ਇੱਕ ਨੀਤੀ-ਨਿਯਮ ਹੈ ਜੋ ਸਥਾਨਕ ਟਨਲ ਸਬਨੈੱਟ ਨੂੰ ਛੋਟ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਡਿਫ਼ਾਲਟ ਰੂਟ ਹੋਣ ਦੇ ਬਾਵਜੂਦ ਸਥਾਨਕ ਕਲਾਇੰਟਾਂ ਨੂੰ ਜਵਾਬ ਉਸੇ ਇੰਟਰਫ਼ੇਸ ਤੋਂ ਬਾਹਰ ਜਾਂਦੇ ਹਨ ਜਿਸ ਉੱਤੇ ਆਏ ਸਨ। ਸਭ ਤੋਂ ਗਹਿਰਾ ਹੱਲ ਕਲਾਇੰਟ ਭੂਮਿਕਾ ਲਈ ਵੱਖਰਾ ਨੈੱਟਵਰਕ ਨੇਮਸਪੇਸ ਹੈ, ਜੋ ਸਾਂਝੀ ਸਾਰਣੀ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਹਟਾ ਦਿੰਦਾ ਹੈ ਅਤੇ ਸੰਭਾਲਣ ਲਈ ਦੂਜਾ ਰਾਊਟਿੰਗ ਸੰਦਰਭ ਮੰਗਦਾ ਹੈ।
ਤੁਸੀਂ ਜੋ ਵੀ ਰਾਹ ਲਵੋ, ਅਪਵਾਦ ਵਿੱਚ LAN ਨਹੀਂ, ਸਥਾਨਕ ਟਨਲ ਸਬਨੈੱਟ ਦਾ ਨਾਮ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਸਥਾਨਕ ਸਰਵਰ ਜੋ ਜਵਾਬ ਭੇਜਦਾ ਹੈ ਉਸ ਦਾ ਮੰਜ਼ਿਲ ਟਨਲ ਪਤਾ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ LAN ਆਕਾਰ ਦਾ ਅਪਵਾਦ ਉਸ ਨਾਲ ਕਦੇ ਨਹੀਂ ਮਿਲਦਾ।
ਦੋਵਾਂ ਇੰਸਟੈਂਸਾਂ ਵਿੱਚੋਂ ਕੌਣ ਦੋਸ਼ੀ ਹੈ
ਕਲਾਇੰਟ ਇੰਸਟੈਂਸ ਬੰਦ ਕਰੋ ਅਤੇ ਮੂਲ ਕਲਾਇੰਟਾਂ ਦੀ ਮੁੜ ਜਾਂਚ ਕਰੋ। ਤੁਰੰਤ ਸੁਧਾਰ ਦਾ ਮਤਲਬ ਰਾਊਟਿੰਗ ਹੈ, ਸਰਵਰ ਨਹੀਂ। ਕਲਾਇੰਟ ਵਾਪਸ ਲਿਆਓ ਅਤੇ ip route get ਰਾਹੀਂ ਇੱਕ ਹੀ ਜਵਾਬ ਟਰੇਸ ਕਰੋ, ਜਿਸ ਨੂੰ ਸਰੋਤ ਅਤੇ ਮੰਜ਼ਿਲ ਦੋਵੇਂ ਪਤੇ ਦਿੱਤੇ ਗਏ ਹਨ, ਜੋ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਕਰਨਲ ਕਿਹੜਾ ਰਾਹ ਚੁਣੇਗਾ, ਫਿਰ tcpdump -ni any port 1194 ਨਾਲ ਵੇਖੋ ਕਿ ਪੈਕਟ ਅਸਲ ਵਿੱਚ ਕਿਹੜਾ ਇੰਟਰਫ਼ੇਸ ਵਰਤਦੇ ਹਨ। ਸਰਵਰ ਦੀ ਸਥਿਤੀ ਫ਼ਾਈਲ, ਜੋ ਹਰ ਕੁਝ ਸਕਿੰਟਾਂ ਬਾਅਦ status ਨਿਰਦੇਸ਼ ਰਾਹੀਂ ਲਿਖੀ ਜਾਂਦੀ ਹੈ, ਜੁੜੇ ਕਲਾਇੰਟਾਂ ਦੀ ਸੂਚੀ ਅਤੇ ਦੋਵੇਂ ਦਿਸ਼ਾਵਾਂ ਦੇ ਬਾਈਟ ਕਾਊਂਟਰ ਰੱਖਦੀ ਹੈ।
ਉਹ ਕਾਊਂਟਰ ਇੱਕ-ਦੂਜੇ ਦੇ ਸਾਹਮਣੇ ਪੜ੍ਹੋ। ਜੋ ਟਰੈਫ਼ਿਕ ਬਾਹਰ ਜਾਂਦਾ ਹੈ ਅਤੇ ਕਦੇ ਵਾਪਸ ਨਹੀਂ ਆਉਂਦਾ, ਉਹ ਹੈਂਡਸ਼ੇਕ ਦੀ ਸਮੱਸਿਆ ਨਹੀਂ, ਰਾਊਟਿੰਗ ਦਾ ਜਵਾਬ ਹੈ।