ਸਰਵਰ ਦੇ ਟਨਲ ਪਤੇ 'ਤੇ ping ਸਫਲ ਹੁੰਦੇ ਹਨ, ਕਲਾਇੰਟ ਦੀ ਆਪਣੀ ਰੂਟ ਟੇਬਲ ਸਹੀ ਦਿਸਦੀ ਹੈ, ਅਤੇ ਉਸ ਕਲਾਇੰਟ ਦੇ ਪਿੱਛੇ ਦਾ LAN ਅਜੇ ਵੀ ਪਹੁੰਚਯੋਗ ਨਹੀਂ ਹੈ। ਕਲਾਇੰਟ ਦੀ ਰੂਟਿੰਗ ਟੇਬਲ ਸਹੀ ਦਿਸਦੀ ਹੈ, ਸਰਵਰ 'ਤੇ ਟਨਲ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਨ ਵਾਲਾ ਰੂਟ ਹੈ, ਅਤੇ ਪੈਕਟ ਫਿਰ ਵੀ ਗਾਇਬ ਹੋ ਜਾਂਦੇ ਹਨ। ਇਹ layer-3 ਟਨਲ ਦਾ ਕਲਾਸਿਕ ਲੱਛਣ ਹੈ, ਜਿਸ ਨੂੰ ਪਤਾ ਨਹੀਂ ਕਿ ਇਸ ਦਾ ਇੱਕ ਕਲਾਇੰਟ ਆਪ ਵੀ ਗੇਟਵੇ ਹੈ।

tun ਇੰਟਰਫ਼ੇਸ ਵਿੱਚ ਹਰ ਕਲਾਇੰਟ ਲਈ ਅਗਲਾ ਹੌਪ ਨਹੀਂ ਹੁੰਦਾ। ਕਰਨਲ ਕਈ ਪੀਅਰਾਂ ਵਾਲਾ ਇੱਕੋ ਇੰਟਰਫ਼ੇਸ ਦੇਖਦਾ ਹੈ, ਇਸ ਲਈ ਦੂਰ ਦੇ LAN ਲਈ ਕਿਹੜਾ ਕਲਾਇੰਟ ਪੈਕਟ ਲਵੇਗਾ ਇਹ ਫ਼ੈਸਲਾ OpenVPN ਪ੍ਰਕਿਰਿਆ ਦੇ ਅੰਦਰ ਲੈਣਾ ਪੈਂਦਾ ਹੈ। ਉਹ ਫ਼ੈਸਲਾ iroute ਨਾਲ ਸੰਰਚਿਤ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਇਸ ਤੋਂ ਬਿਨਾਂ ਪੈਕਟ ਕੋਲ ਜਾਣ ਦੀ ਥਾਂ ਨਹੀਂ।

ਸਰਵਰ ਇੰਟਰਫ਼ੇਸ ਅਨੁਸਾਰ ਨਹੀਂ, ਕਲਾਇੰਟ ਅਨੁਸਾਰ ਰੂਟ ਕਰਦਾ ਹੈ

ਜਦੋਂ ਸਰਵਰ ਨੂੰ ਕਿਸੇ ਕਲਾਇੰਟ ਦੇ ਟਨਲ ਪਤੇ 'ਤੇ ਪੈਕਟ ਭੇਜਣਾ ਹੁੰਦਾ ਹੈ, ਜਵਾਬ ਸਪੱਸ਼ਟ ਹੈ: ਪਤਾ ਉਸ ਕਲਾਇੰਟ ਦੇ ਸੈਸ਼ਨ ਦਾ ਹੈ। ਪਰ ਜਦੋਂ ਮੰਜ਼ਿਲ ਉਸ ਕਲਾਇੰਟ ਦੇ ਪਿੱਛੇ ਦਾ ਪੂਰਾ ਸਬਨੈੱਟ ਹੁੰਦਾ ਹੈ, ਪਤਾ ਸਰਵਰ ਦੇ ਜਾਣੇ ਕਿਸੇ ਦਾ ਨਹੀਂ ਹੁੰਦਾ, ਅਤੇ ਟਨਲ ਵੱਲ ਦਾ ਕਰਨਲ ਰੂਟ ਸਿਰਫ਼ "ਇਸ ਇੰਟਰਫ਼ੇਸ ਰਾਹੀਂ" ਕਹਿੰਦਾ ਹੈ, ਕਿਹੜਾ ਪੀਅਰ ਇਹ ਨਹੀਂ ਦੱਸਦਾ।

OpenVPN ਇਸ ਨੂੰ ਮੰਜ਼ਿਲ ਪ੍ਰੀਫ਼ਿਕਸ ਨੂੰ ਕਿਸੇ ਖ਼ਾਸ ਕਲਾਇੰਟ ਨਾਲ ਜੋੜਨ ਵਾਲੀ ਅੰਦਰੂਨੀ ਰੂਟਿੰਗ ਟੇਬਲ ਨਾਲ ਹੱਲ ਕਰਦਾ ਹੈ। ਉਹ ਟੇਬਲ iroute ਐਂਟਰੀਆਂ ਤੋਂ ਬਣਦੀ ਹੈ, ਇਸ ਲਈ ਸਰਵਰ ਹੋਸਟ 'ਤੇ ਆਮ ਰੂਟ ਕਾਫ਼ੀ ਨਹੀਂ ਹੈ। ਕਰਨਲ ਰੂਟ ਪੈਕਟ ਨੂੰ ਟਨਲ ਇੰਟਰਫ਼ੇਸ ਤੱਕ ਲਿਆਉਂਦਾ ਹੈ; ਅੰਦਰੂਨੀ ਮੈਪਿੰਗ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿਹੜਾ ਸੈਸ਼ਨ ਇਸ ਨੂੰ ਲਵੇਗਾ। ਇਸੇ ਲਈ ਮੁਰੰਮਤ ਕਰਨਲ ਦੇ ਰੂਟ ਆਉਟਪੁੱਟ ਵਿੱਚ ਕਦੇ ਨਹੀਂ ਦਿਸਦੀ।

ਜੇ ਮੈਪਿੰਗ ਨਹੀਂ ਹੈ, ਪੈਕਟ ਸਰਵਰ ਤੱਕ ਪਹੁੰਚਦਾ ਹੈ, ਟਨਲ ਰੂਟ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ ਅਤੇ ਸੁੱਟ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ ਕਿਉਂਕਿ ਕੋਈ ਕਲਾਇੰਟ ਮੰਜ਼ਿਲ ਦਾ ਦਾਅਵਾ ਨਹੀਂ ਕਰਦਾ। ਕੁਝ ਵੀ ਸਾਫ਼ ਗਲਤੀ ਦਰਜ ਨਹੀਂ ਕਰਦਾ, ਇਸ ਲਈ ਅਸਫਲਤਾ ਰੂਟਿੰਗ ਲੂਪ ਵਾਂਗ ਨਹੀਂ, ਸ਼ਾਂਤ ਕਾਲੇ ਛੇਕ ਵਾਂਗ ਦਿਸਦੀ ਹੈ।

ਕਲਾਇੰਟ ਦਾ ਨਾਮ ਲੈਣ ਵਾਲੀ iroute ਐਂਟਰੀ ਲਿਖਣੀ

iroute ਸਰਵਰ ਦੀ ਮੁੱਖ ਸੰਰਚਨਾ ਵਿੱਚ ਨਹੀਂ, ਕਲਾਇੰਟ-ਖ਼ਾਸ ਸੰਰਚਨਾ ਫ਼ਾਈਲ ਵਿੱਚ ਰਹਿੰਦਾ ਹੈ। client-config-dir ਵਿਕਲਪ ਨਾਲ ਸਰਵਰ ਨੂੰ ਇੱਕ ਡਾਇਰੈਕਟਰੀ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰੋ, ਫਿਰ ਅਜਿਹੀ ਫ਼ਾਈਲ ਬਣਾਓ ਜਿਸ ਦਾ ਨਾਮ ਕਲਾਇੰਟ ਦੇ ਸਰਟੀਫ਼ਿਕੇਟ ਦਾ ਆਮ ਨਾਮ ਹੈ ਅਤੇ ਉਸ ਵਿੱਚ ਪ੍ਰੀਫ਼ਿਕਸ ਰੱਖੋ।

ਜਿਸ ਸ਼ਾਖਾ ਦਾ LAN 10.20.0.0/24 ਹੈ ਅਤੇ ਸਰਟੀਫ਼ਿਕੇਟ ਦਾ ਆਮ ਨਾਮ branch-router ਹੈ, ਉਸ ਪਥ ਦੀ ਫ਼ਾਈਲ ਵਿੱਚ iroute 10.20.0.0 255.255.255.0 ਵਰਗੀ ਲਾਈਨ ਹੁੰਦੀ ਹੈ। ਮੁੱਖ ਸੰਰਚਨਾ ਨੂੰ ਸਿਰਫ਼ ਡਾਇਰੈਕਟਰੀ ਵਿਕਲਪ ਚਾਹੀਦਾ ਹੈ; ਪ੍ਰੀਫ਼ਿਕਸ ਕਲਾਇੰਟ ਕੋਲ ਰਹਿੰਦਾ ਹੈ।

ਆਮ ਨਾਮ ਹੀ ਨਾਜ਼ੁਕ ਹਿੱਸਾ ਹੈ। ਵੱਖਰੇ subject ਨਾਲ ਜਾਰੀ ਕੀਤਾ ਸਰਟੀਫ਼ਿਕੇਟ, ਜਾਂ ਅਜਿਹੀ ਤੈਨਾਤੀ ਜੋ ਵਰਤੋਂਕਾਰਾਂ ਨੂੰ ਵਰਤੋਂਕਾਰ-ਨਾਮ ਨਾਲ ਪ੍ਰਮਾਣਿਤ ਕਰਦੀ ਹੈ ਜਦਕਿ ਫ਼ਾਈਲ ਸਰਟੀਫ਼ਿਕੇਟ ਦੇ ਨਾਮ 'ਤੇ ਹੈ, ਅਜਿਹੀ ਫ਼ਾਈਲ ਬਣਾਉਂਦੀ ਹੈ ਜੋ ਕਦੇ ਨਹੀਂ ਪੜ੍ਹੀ ਜਾਂਦੀ। ਸਰਵਰ ਸੈਸ਼ਨ ਲਈ ਅਸਲ ਵਿੱਚ ਕਿਹੜਾ ਨਾਮ ਦੱਸਦਾ ਹੈ ਇਹ ਜਾਂਚੋ, ਅਤੇ ਉਸ ਵਿਕਲਪ 'ਤੇ ਵਿਚਾਰ ਕਰੋ ਜੋ ਬੇਮੇਲ ਕਲਾਇੰਟ ਨੂੰ ਉਸ ਦੇ ਰੂਟਾਂ ਤੋਂ ਬਿਨਾਂ ਚੁੱਪਚਾਪ ਜੁੜਨ ਦੀ ਥਾਂ ਅਸਫਲ ਹੋਣ ਦਿੰਦਾ ਹੈ। ਸਰਟੀਫ਼ਿਕੇਟ ਨਾਲ ਮੇਲ ਖਾਣ ਲਈ ਫ਼ਾਈਲ ਦਾ ਨਾਮ ਬਦਲਣਾ ਪੰਜ ਮਿੰਟਾਂ ਦਾ ਸੁਧਾਰ ਹੈ ਜੋ ਬਹੁਤ ਲੰਮੀ ਸ਼ਾਮ ਰੋਕਦਾ ਹੈ।

ਇੱਕ ਕਲਾਇੰਟ ਕੋਲ ਕਈ ਪ੍ਰੀਫ਼ਿਕਸ ਹੋ ਸਕਦੇ ਹਨ। ਹਰ ਨੈੱਟਵਰਕ ਲਈ ਇੱਕ iroute ਲਾਈਨ ਸ਼ਾਮਲ ਕਰੋ ਅਤੇ ਮੈਪਿੰਗ ਨੂੰ ਆਡਿਟਯੋਗ ਰੱਖਣ ਲਈ ਸੂਚੀ ਉਸ ਕਲਾਇੰਟ ਦੀਆਂ ਬਾਕੀ ਸੈਟਿੰਗਾਂ ਕੋਲ ਰੱਖੋ।

ਦੋਵਾਂ ਦਿਸ਼ਾਵਾਂ ਵਿੱਚ ਵਾਪਸੀ ਪਥ ਬਣਾਉਣਾ

ਦੂਰ ਦੇ LAN ਤੱਕ ਪੈਕਟ ਪਹੁੰਚਾਉਣਾ ਅੱਧਾ ਕੰਮ ਹੈ। ਕਲਾਇੰਟ ਨੂੰ ਉਸ LAN ਦਾ ਟ੍ਰੈਫ਼ਿਕ ਵੀ ਟਨਲ ਵਿੱਚ ਭੇਜਣਾ ਪੈਂਦਾ ਹੈ, ਜੋ ਆਮ ਤੌਰ 'ਤੇ ਕਲਾਇੰਟ ਨੂੰ ਰੂਟ ਪੁਸ਼ ਕਰਕੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ: push "route 10.8.0.0 255.255.255.0" ਵਰਗੀ ਲਾਈਨ ਹਰ ਕਲਾਇੰਟ ਨੂੰ ਦੱਸਦੀ ਹੈ ਕਿ ਸਰਵਰ-ਪਾਸੇ ਦੇ ਨੈੱਟਵਰਕ ਤੱਕ ਕਿਵੇਂ ਪਹੁੰਚਣਾ ਹੈ। ਸ਼ਾਖਾ ਲਈ, ਬਰਾਬਰ ਦਾ ਰੂਟ ਸਰਵਰ-ਪਾਸੇ ਜੋ ਵੀ ਪਹੁੰਚਣਾ ਚਾਹੀਦਾ ਹੈ ਉਸ ਲਈ ਟਨਲ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ।

ਵਾਪਸੀ ਦਿਸ਼ਾ ਲਈ ਦੂਰ ਦੇ ਪਾਸੇ ਮਾਲਕ ਚਾਹੀਦਾ ਹੈ। ਉਸ ਪਾਸੇ ਕਿਸੇ ਨੂੰ ਵਾਪਸ ਜਾਣ ਦਾ ਰਾਹ ਪਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ: LAN ਰਾਊਟਰ 'ਤੇ ਸਥਿਰ ਰੂਟ ਜੋ VPN ਪੂਲ ਨੂੰ ਸਰਵਰ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ, ਜਾਂ ਟ੍ਰੈਫ਼ਿਕ LAN ਵਿੱਚ ਦਾਖ਼ਲ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਸਰਵਰ 'ਤੇ ਪਤਾ ਅਨੁਵਾਦ। ਸਥਿਰ ਰੂਟ ਮੂਲ ਪਤੇ ਲੌਗ ਅਤੇ ਪਹੁੰਚ ਨਿਯਮਾਂ ਵਿੱਚ ਦਿਸਦੇ ਰੱਖਦਾ ਹੈ ਪਰ LAN ਮਾਲਕ ਦੇ ਸਹਿਯੋਗ ਦੀ ਲੋੜ ਹੈ; ਅਨੁਵਾਦ ਆਤਮ-ਨਿਰਭਰ ਹੈ ਪਰ ਲੁਕਾਉਂਦਾ ਹੈ ਕਿ ਅਸਲ ਵਿੱਚ ਕੌਣ ਜੁੜਿਆ।

ਸਰਵਰ ਹੋਸਟ 'ਤੇ ਫ਼ਾਰਵਰਡਿੰਗ ਸਮਰੱਥ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। ਇਸ ਤੋਂ ਬਿਨਾਂ ਕਰਨਲ ਟਨਲ ਤੋਂ ਪੈਕਟ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸ ਨੂੰ LAN ਇੰਟਰਫ਼ੇਸ ਤੱਕ ਭੇਜਣ ਤੋਂ ਇਨਕਾਰ ਕਰਦਾ ਹੈ, ਜੋ ਕਲਾਇੰਟ ਦੇ ਨਜ਼ਰੀਏ ਤੋਂ ਗੁੰਮ iroute ਵਾਂਗ ਹੀ ਦਿਸਦਾ ਹੈ।

ਸਹੀ ਪ੍ਰੋਬ ਨਾਲ ਪਹੁੰਚ ਜਾਂਚਣੀ

ਦੂਰ ਦੇ ਸਿਰੇ 'ਤੇ ping ਕਰਕੇ ਅਨੁਮਾਨ ਲਗਾਉਣ ਦੀ ਥਾਂ ਪਰਤਾਂ ਵਿੱਚ ਜਾਂਚ ਕਰੋ। ਸਰਵਰ ਤੋਂ ਜਾਂਚੋ ਕਿ ਪ੍ਰੀਫ਼ਿਕਸ ਲਈ ਅੰਦਰੂਨੀ ਮੈਪਿੰਗ ਮੌਜੂਦ ਹੈ ਅਤੇ ਕਰਨਲ ਰੂਟ ਟਨਲ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ। ਕਲਾਇੰਟ ਤੋਂ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਪੁਸ਼ ਕੀਤਾ ਰੂਟ ਸਥਾਪਿਤ ਹੈ ਅਤੇ LAN ਪਤੇ ਲਈ ਇਸ ਦਾ ਡਿਫ਼ਾਲਟ ਪਥ ਟਨਲ ਹੈ।

ਫਿਰ ਪੈਕਟ ਦੇਖੋ। ਟਨਲ ਇੰਟਰਫ਼ੇਸ 'ਤੇ ਕੈਪਚਰ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਸਰਵਰ ਕਲਾਇੰਟ ਵੱਲ ਭੇਜ ਰਿਹਾ ਹੈ ਜਾਂ ਨਹੀਂ, ਅਤੇ LAN ਇੰਟਰਫ਼ੇਸ 'ਤੇ ਕੈਪਚਰ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਇਹ ਫ਼ਾਰਵਰਡ ਕਰ ਰਿਹਾ ਹੈ ਜਾਂ ਨਹੀਂ। ਜੇ ਪਹਿਲਾ ਪੈਕਟ ਦਿਖਾਉਂਦਾ ਹੈ ਅਤੇ ਦੂਜਾ ਕੁਝ ਨਹੀਂ, ਸਮੱਸਿਆ ਫ਼ਾਰਵਰਡਿੰਗ ਜਾਂ ਫ਼ਿਲਟਰ ਵਿੱਚ ਹੈ; ਜੇ ਦੋਵੇਂ ਕੁਝ ਨਹੀਂ ਦਿਖਾਉਂਦੇ, ਖੋਜ ਪਹਿਲਾਂ ਹੀ ਅਸਫਲ ਹੋ ਚੁੱਕੀ ਹੈ।

ਟਨਲ ਨਾਲ ਜੁੜੇ ਦੋ ਸਰਵਰ ਦੋਵਾਂ ਪਾਸਿਆਂ 'ਤੇ ਉਹੀ ਨਿਯਮ ਦੁਹਰਾਉਂਦੇ ਹਨ: ਹਰ ਇੱਕ ਨੂੰ ਦੂਜੇ ਦੇ ਪੂਲ ਲਈ iroute ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਹਰ ਇੱਕ ਨੂੰ ਉਹ ਰੂਟ ਅਤੇ ਫ਼ਾਰਵਰਡਿੰਗ ਚਾਹੀਦੀ ਹੈ ਜੋ ਪਥ ਨੂੰ ਸਮਮਿਤ ਬਣਾਉਂਦੀ ਹੈ। ਇੱਥੇ ਰੂਟਿੰਗ ਅਤੇ ਨੀਤੀ ਵੱਖਰੇ ਵਿਸ਼ੇ ਹਨ। ਰੂਟਿੰਗ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ ਪੈਕਟ ਕਿੱਥੇ ਜਾ ਸਕਦਾ ਹੈ, ਜਦਕਿ FORWARD ਨਿਯਮ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਇਜਾਜ਼ਤ ਹੈ ਜਾਂ ਨਹੀਂ, ਇਸ ਲਈ ਦੋ iroute ਲਾਈਨਾਂ ਵਾਲਾ ਕਲਾਇੰਟ ਫ਼ਿਲਟਰ ਵੱਖਰਾ ਨਾ ਕਹੇ ਤਾਂ ਦੋਵੇਂ ਪ੍ਰੀਫ਼ਿਕਸਾਂ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ