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

ਵੇਖੋ ਕਰਨਲ ਡਿਵਾਈਸ ਨੂੰ ਕੀ ਕਹਿੰਦਾ ਹੈ

ਕੁਝ ਵੀ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਦੋਵੇਂ ਦ੍ਰਿਸ਼ ਵੱਖਰੇ ਪੜ੍ਹੋ:

ip link show
ip address show dev eth0
ip route get 203.0.113.20

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

ਇਤਿਹਾਸ ਉਲਝਣ ਦੀ ਵਿਆਖਿਆ ਕਰਦਾ ਹੈ। ਪੁਰਾਣਾ ifconfig eth0:0 ਵਾਕ ਰਚਨਾ ਸੱਚਮੁੱਚ ਨਵੇਂ ਇੰਟਰਫ਼ੇਸ ਵਰਗੀ ਦਿਸਦੀ ਸੀ, ਅਤੇ ਉਸ ਜ਼ਮਾਨੇ ਦੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਅਜੇ ਵੀ ਇੱਕ ਦਾ ਜ਼ਿਕਰ ਕਰਦੀਆਂ ਹਨ। ਅੱਜ ਦੇ ਸਿਸਟਮ ਵਿੱਚ ਅਲਿਆਸ ਪਤੇ ਤੇ ਇੱਕ ਲੇਬਲ ਹੈ, ਅਤੇ ਰਾਊਟਿੰਗ ਜਾਂ netfilter ਰਾਹ ਵਿੱਚ ਕੋਈ ਵੀ ਚੀਜ਼ ਇਸ ਨੂੰ ਵੱਖਰਾ ਨਿਕਾਸ ਬਿੰਦੂ ਨਹੀਂ ਮੰਨਦੀ।

ਵੇਖੋ ਨਿਯਮ ਅਸਲ ਵਿੱਚ ਕਿਸ ਨਾਲ ਮਿਲਿਆ

ਕਾਊਂਟਰ ਯਾਦ ਤੋਂ ਨਹੀਂ, ਨਿਯਮ ਸੂਚੀ ਨਾਲ ਪੜ੍ਹੋ:

iptables -t nat -L POSTROUTING -v -n --line-numbers

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

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

ਉਹ ਰਾਊਟ ਵੇਖੋ ਜਿਸ ਨੇ ਡਿਵਾਈਸ ਚੁਣਿਆ

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

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

ਅਨੁਵਾਦਿਤ ਸਰੋਤ ਜਾਣ-ਬੁੱਝ ਕੇ ਚੁਣੋ

ਡਿਵਾਈਸ ਸਹੀ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਸਰੋਤ ਪਤਾ ਵੱਖਰਾ ਫ਼ੈਸਲਾ ਹੈ। ਇਹ ਸਿਰਫ਼ ਇੱਕ ਉਦਾਹਰਨ IPv4 ਪੂਲ ਅਤੇ ਨਮੂਨਾ ਪਤਾ ਹੈ:

iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o eth0 \
  -j SNAT --to-source 203.0.113.20

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

ਸਰੋਤ ਪਤਾ ਬਦਲਣਾ ਅਪਲਿੰਕ ਬਦਲਣ ਦੇ ਬਰਾਬਰ ਨਹੀਂ ਹੈ। ਜਦੋਂ ਅਸਲੀ ਲੋੜ ਵੱਖਰਾ ਭੌਤਿਕ ਮਾਰਗ ਹੋਵੇ, ਤਾਂ ਰਾਊਟਿੰਗ ਨੀਤੀ ਨੇ ਪਹਿਲਾਂ ਉਹ ਮਾਰਗ ਚੁਣਨਾ ਹੈ; ਫਿਰ SNAT ਨੀਤੀ ਵੱਲੋਂ ਚੁਣੇ ਡਿਵਾਈਸ ਤੇ ਸਰੋਤ ਮੁੜ ਲਿਖਦਾ ਹੈ। ਵਧੇਰੇ ਲੇਬਲ eth0 ਜੋੜਨ ਨਾਲ ਨਾ ਮਾਰਗ ਮਿਲਦਾ ਹੈ ਨਾ ਅਧਿਕਾਰ।

ਹੁਣੇ ਖੋਲ੍ਹੇ ਕਨੈਕਸ਼ਨ ਨਾਲ ਪਰਖੋ

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

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

ਸੰਬੰਧਿਤ ਲੇਖ