ਰੂਟ-ਅਧਾਰਿਤ IPsec ਰਾਊਟਿੰਗ ਟੇਬਲ ਨੂੰ ਉਹ ਫੈਸਲਾ ਦਿੰਦਾ ਹੈ ਜੋ ਪਹਿਲਾਂ ਨੀਤੀ ਚੋਣਕਾਰ ਲੈਂਦੇ ਸਨ। Linux ਉੱਤੇ ਇਹ ਸੰਭਵ ਕਰਨ ਵਾਲਾ ਹਿੱਸਾ XFRM ਇੰਟਰਫੇਸ ਹੈ: ਇੱਕ ਵਰਚੁਅਲ ਡਿਵਾਈਸ ਜਿਸ ਦਾ ਟ੍ਰੈਫਿਕ ਚੋਣਕਾਰ ਦੀ ਥਾਂ ਇੰਟਰਫੇਸ ਪਛਾਣ ਰਾਹੀਂ IPsec ਸਥਿਤੀ ਨਾਲ ਮਿਲਾਇਆ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਬਣਾਉਣ ਲਈ ਇੱਕ ਹੀ ਕਮਾਂਡ ਲੱਗਦੀ ਹੈ ਅਤੇ ਇਹ ਸੁਰੰਗ ਹੈ ਜਾਂ ਨਹੀਂ ਇਸ ਬਾਰੇ ਕੁਝ ਸਾਬਤ ਨਹੀਂ ਕਰਦੀ। ਡਿਵਾਈਸ ਰਾਊਟਿੰਗ ਅਤੇ ਸੁਰੱਖਿਆ ਨੀਤੀ ਵਿਚਕਾਰ ਇੱਕ ਹੁੱਕ ਹੈ, ਅਤੇ ਕੁਝ ਵੀ ਸੁਰੱਖਿਅਤ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਉਸ ਹੁੱਕ ਦੇ ਦੋਵੇਂ ਪਾਸੇ ਸੰਰਚਿਤ ਕਰਨੇ ਪੈਂਦੇ ਹਨ।

ਡਿਵਾਈਸ ਕੀ ਹੈ ਅਤੇ ਕੀ ਨਹੀਂ

XFRM ਇੰਟਰਫੇਸ ਇੱਕ ਰਾਊਟਿੰਗ ਹੈਂਡਲ ਹੈ। ਇਸ ਵਿੱਚ ਰੂਟ ਕੀਤੇ ਪੈਕਟ ਉਹਨਾਂ XFRM ਨੀਤੀਆਂ ਨਾਲ ਮਿਲਾਏ ਜਾਂਦੇ ਹਨ ਜੋ ਉਸੇ ਇੰਟਰਫੇਸ ਪਛਾਣ ਦਾ ਹਵਾਲਾ ਦਿੰਦੀਆਂ ਹਨ, ਅਤੇ ਜੇ ਨੀਤੀ ਤੇ ਸਥਿਤੀ ਦੋਵੇਂ ਹੋਣ ਤਾਂ ਉਹ ਇਨਕੈਪਸੁਲੇਟ ਹੁੰਦੇ ਹਨ। ਉਹਨਾਂ ਤੋਂ ਬਿਨਾਂ ਇੰਟਰਫੇਸ ਰਹਿੰਦਾ ਹੈ, ਕਾਊਂਟਰ ਸਥਿਰ ਰਹਿੰਦੇ ਹਨ, ਅਤੇ ਟ੍ਰੈਫਿਕ ਕਿਸੇ ਕੰਮ ਦੀ ਥਾਂ ਨਹੀਂ ਜਾਂਦਾ।

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

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

ਸਹੀ ਕ੍ਰਮ ਵਿੱਚ ਇੱਕ ਬਣਾਓ

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

ਡਿਵਾਈਸ ਉੱਪਰ ਕਰੋ, ਫਿਰ VPN ਸੰਰਚਨਾ ਨੂੰ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਕਰਨਲ ਵੱਲੋਂ ਦਰਜ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ:

sudo ip link add xfrm0 type xfrm dev eth0 if_id 42
sudo ip link set xfrm0 up
ip -d link show xfrm0 | grep -o 'if_id [0-9]*'

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

IKE ਅਤੇ ESP ਨੂੰ ਸੁਰੰਗ ਰੂਟ ਤੋਂ ਬਾਹਰ ਰੱਖੋ

XFRM ਡਿਵਾਈਸ ਵੱਲ ਦਿਸ਼ਾ ਦੇਣ ਵਾਲਾ ਡਿਫਾਲਟ ਰੂਟ ਇਨਕੈਪਸੁਲੇਟ ਪੈਕਟ ਅਤੇ ਉਹਨਾਂ ਦੁਆਰਾ ਢੋਇਆ ਟ੍ਰੈਫਿਕ ਦੋਵੇਂ ਫੜ ਲੈਂਦਾ ਹੈ। ਨਤੀਜਾ ਇੱਕ ਲੂਪ ਹੈ: ਗੇਟਵੇ ਆਪਣਾ ESP ਉਸ ਸੁਰੰਗ ਰਾਹੀਂ ਭੇਜਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ ਜੋ ESP ਨੇ ਬਣਾਉਣੀ ਹੈ।

ਹੱਲ ਹੈ ਸਾਥੀ ਦੇ ਬਾਹਰੀ ਪਤੇ ਲਈ ਵਧੇਰੇ ਖਾਸ ਰੂਟ ਭੌਤਿਕ ਇੰਟਰਫੇਸ ਰਾਹੀਂ, ਜੋ ਡਿਫਾਲਟ ਨੂੰ ਹਰਾਉਂਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਵਧੇਰੇ ਬਿੱਟ ਮਿਲਾਉਂਦਾ ਹੈ। ਜਦੋਂ ਕਈ ਸੁਰੰਗਾਂ ਇੱਕ ਟੇਬਲ ਸਾਂਝੀ ਕਰਦੀਆਂ ਹਨ ਤਾਂ ਮਾਰਕ-ਅਧਾਰਿਤ ਰਾਊਟਿੰਗ ਉਹੀ ਕੰਮ ਕਰਦੀ ਹੈ, ਅਤੇ strongSwan ਰੂਟ-ਅਧਾਰਿਤ ਤੈਨਾਤੀਆਂ ਲਈ ਦੋਵੇਂ ਤਰੀਕੇ ਦਸਤਾਵੇਜ਼ ਕਰਦਾ ਹੈ।

ਤੁਸੀਂ ਜੋ ਵੀ ਚੁਣੋ, ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਬਾਹਰੀ ਪੈਕਟ ਇਨਕੈਪਸੁਲੇਸ਼ਨ ਤੋਂ ਬਿਨਾਂ ਬਾਹਰ ਨਿਕਲਦਾ ਹੈ। ਸੁਰੰਗ ਉੱਪਰ ਆਉਣ ਤੋਂ ਬਾਅਦ ਸਾਥੀ ਦੇ ਬਾਹਰੀ ਪਤੇ ਉੱਤੇ ping ਕਰਨਾ ਤੇਜ਼ ਜਾਂਚ ਹੈ; ਜੇ ਇੰਟਰਫੇਸ ਉੱਪਰ ਹੁੰਦੇ ਹੋਏ ਇਹ ਫੇਲ ਹੋਵੇ ਤਾਂ ਪਹੁੰਚ ਨਾਲੋਂ ਫੜੇ ਜਾਣ ਦਾ ਸ਼ੱਕ ਕਰੋ। ਉਹੀ ਤਰਕ IKE ਪੋਰਟ ਉੱਤੇ ਵੀ ਲਾਗੂ ਹੁੰਦਾ ਹੈ, ਕਿਉਂਕਿ ਡੈਮਨ ਦਾ ਆਪਣਾ UDP ਟ੍ਰੈਫਿਕ ਉਸ ਡਿਵਾਈਸ ਵਿੱਚ ਰੂਟ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ ਜੋ ਇਹ ਸਥਾਪਿਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੈ।

ਐਨਕ੍ਰਿਪਸ਼ਨ ਨੂੰ ਦੋਸ਼ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਦੋ ਥਾਵਾਂ ਉੱਤੇ ਕਾਊਂਟਰ ਜਾਂਚੋ

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

ਦੋਵੇਂ ਪੜ੍ਹੋ, ਫਿਰ ਚਾਈਲਡ ਸੰਬੰਧ ਬਾਰੇ ਡੈਮਨ ਦਾ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਪੜ੍ਹੋ:

ip -s link show xfrm0
sudo ip xfrm state list | grep -E 'src|proto|mode'
sudo swanctl --list-sas

ਸਥਿਤੀ ਆਉਟਪੁੱਟ ਖਾਲੀ ਹੁੰਦਿਆਂ ਡਿਵਾਈਸ ਕਾਊਂਟਰ ਵਧਣਾ ਭਾਵ ਰਾਊਟਿੰਗ ਕੰਮ ਕਰ ਰਹੀ ਹੈ ਅਤੇ ਨੀਤੀ ਨਹੀਂ ਮਿਲ ਰਹੀ, ਆਮ ਤੌਰ ਉੱਤੇ ਪਛਾਣ ਜਾਂ ਚੋਣਕਾਰ ਦੀ ਗਲਤੀ। ਦੂਰ ਦਾ ਪਾਸਾ ਕੁਝ ਨਾ ਦੱਸਦਿਆਂ ਸਥਿਤੀ ਕਾਊਂਟਰ ਵਧਣਾ ਭਾਵ ਪੈਕਟ ਬਾਹਰ ਜਾਂਦੇ ਹਨ ਪਰ ਪਹੁੰਚਦੇ ਨਹੀਂ ਜਾਂ ਪ੍ਰਮਾਣਿਕਤਾ ਵਿੱਚ ਫੇਲ ਹੁੰਦੇ ਹਨ, ਜੋ ਮਾਰਗ ਜਾਂ ਸਾਥੀ ਸੰਰਚਨਾ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ। ਸਿਫ਼ਰ ਟ੍ਰੈਫਿਕ ਵਾਲਾ ਸੂਚੀਬੱਧ ਚਾਈਲਡ ਇੱਕ ਸਿਰੇ ਦੀ ਚੋਣਕਾਰ ਸਮੱਸਿਆ ਹੈ, ਟੁੱਟਿਆ ਸਾਈਫਰ ਨਹੀਂ।

ਰੂਟ ਕੌਣ ਸਥਾਪਿਤ ਕਰੇਗਾ ਇਹ ਤੈਅ ਕਰੋ

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

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

ਫਾਰਵਰਡਿੰਗ ਅਤੇ ਫਾਇਰਵਾਲ ਨਿਯਮ ਇਸ ਉੱਤੇ ਵੱਖਰਾ ਫੈਸਲਾ ਹੈ, ਕਿਉਂਕਿ ਹੋਰ ਹੋਸਟਾਂ ਦਾ ਟ੍ਰੈਫਿਕ ਲੰਘਾਉਣ ਵਾਲੇ ਗੇਟਵੇ ਨੂੰ ਦੋਵੇਂ ਚਾਹੀਦੇ ਹਨ। ਰੂਟ-ਅਧਾਰਿਤ IPsec ਉਸ ਟ੍ਰੈਫਿਕ ਨੂੰ ਆਮ ਰਾਊਟਿੰਗ ਸਾਧਨਾਂ ਨਾਲ ਪ੍ਰਗਟ ਕਰਨਾ ਸੌਖਾ ਬਣਾਉਂਦਾ ਹੈ; ਇਹ ਨੀਤੀ ਪਰਤ ਨੂੰ ਚੋਣਵਾਂ ਨਹੀਂ ਬਣਾਉਂਦਾ।

ਸੰਬੰਧਿਤ ਲੇਖ