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

ਲੱੱਛਣ: ਸਹੀ ਨੇਮਸਪੇਸ, ਪਰ ਪੈਕਟ ਨਹੀਂ

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

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

ਇਹ ਹਿਲਾਉਣ ਵਿੱਚ ਕੋਈ ਨੁੱਕਸ ਨਹੀਂ ਹੈ ਅਤੇ ਪੀਅਰ ਦੀ ਗਲਤ ਸੰਰਚਨਾ ਵੀ ਨਹੀਂ ਹੈ। ਕਰਨਲ ਅਮਲ ਐਸੇ ਹੀ ਕੰਮ ਕਰਦਾ ਹੈ, ਅਤੇ WireGuard ਲਈ ਨੇਮਸਪੇਸ ਦਸਤਾਵੇਜ਼ ਬਣਾਉਣ ਦਾ ਨਿਯਮ ਸਿੱਧਾ ਦੱਸਦੇ ਹਨ।

ਸਾਕਟ ਦਾ ਜਨਮ-ਸਥਾਨ ਕਿਉਂ ਹੈ

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

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

ਸਾਕਟ ਜਿੱਥੇ ਚਾਹੁੰਦੇ ਹੋ ਉੱਥੇ ਹੀ ਇਸਨੂੰ ਬਣਾਓ

ਹਲ੍ ਇਹ ਹੈ ਕਿ ਡਿਵਾਈਸ ਨੂੰ ਬਾਹਰ ਬਣਾ ਕੇ ਹਿਲਾਉਣ ਦੀ ਥਾਂਹ ਟਾਰਗਿਟ ਨੇਮਸਪੇਸ ਦੇ ਅੰਦਰ ਹੀ ਬਣਾਓ। ਇਹ ਮੰਨ ਕੇ ਮੰਜੂਰ ਨੇਮਸਪੇਸ ਪਹਿਲਾਂ ਹੀ ਹੈ ਅਤੇ ਨਾਮ ਵਰਤੋਂ ਵਿੱਚ ਨਹੀਂ ਹੈ:

ip netns exec vpn-apps ip link add wg-demo type wireguard
ip netns exec vpn-apps wg show

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

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

ਮਾਰਗ ਦੇ ਦੋਵੇਂ ਪਾਸੇ ਪੜ੍ਹੋ

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

ip netns exec vpn-apps ip route get 10.30.0.9
ip netns exec vpn-apps wg show
tcpdump -ni any udp port 51820

ਜੇ ਅੰਦਰਲੀ ਖੋਜ ਟਨਲ ਰਾਹੀਂ ਹਲ ਹੁੰਦੀ ਹੈ ਅਤੇ ਬਾਹਰਲਾ ਕੈਪਚਰ ਇਨਕਰਿਪਟਿਡ ਅਦਲ-ਬਦਲ ਦੱਸਦਾ ਹੈ, ਤਾਂ ਦੋਵੇਂ ਅੱਧ ਮਿਲਦੇ ਹਨ। ਜੇ ਕੈਪਚਰ ਖਾਲੀ ਹੈ, ਤਾਂ ਸਾਕਟ ਅਜੇ ਕਿੱਤੇ ਹੋਰ ਹੈ, ਜਾਂ ਇਸ ਦੇ ਨੇਮਸਪੇਸ ਦਾ ਅੰਡਰਲਾ ਮਾਰਗ ਆਖਰੀ ਬਿੰਦੂ ਤਕ ਨਹੀਂ ਪਹੁੰਚਦਾ।

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

ਸੰਬੰਧਿਤ ਲੇਖ