ਕੀ Pi ਗੇਟਵੇ ਦਾ ਹੋਸਟਨਾਮ ਸਥਿਰ ਰੂਟ ਆਪਣੇ ਆਪ ਅੱਪਡੇਟ ਕਰਦਾ ਹੈ?
ਤੁਹਾਡੇ Pi ਗੇਟਵੇ ਲਈ DNS ਨਾਮ ਕਦੇ ਵੀ ਇੰਸਟਾਲ ਕੀਤੇ ਅਗਲੇ ਹੌਪ ਨੂੰ ਦੁਬਾਰਾ ਨਹੀਂ ਲਿਖਦਾ। ਦੇਖੋ ਕਿ ਕਰਨਲ ਕੀ ਸਟੋਰ ਕਰਦਾ ਹੈ ਅਤੇ ਰੂਟ ਕਿਸ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨਾ ਹੈ।
ਸਥਿਰ ਰੂਟ ਨੂੰ ਗੇਟਵੇ ਨਾਮ ਵੱਲ ਮੋੜਨਾ ਇੰਝ ਲੱਗਦਾ ਹੈ ਕਿ ਉਹ ਪਤਾ ਬਦਲਣ 'ਤੇ ਵੀ ਟਿਕਣਾ ਚਾਹੀਦਾ ਹੈ, ਪਰ ਉਹ ਨਹੀਂ ਟਿਕਦਾ। ਨਾਮ DNS ਵਿੱਚ ਰਹਿੰਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਰੂਟ ਕਲਾਇੰਟ ਦੀ ਰਾਊਟਿੰਗ ਸਾਰਣੀ ਵਿੱਚ ਸੰਖਿਆਤਮਕ ਅਗਲੇ ਹੌਪ ਵਜੋਂ ਬੈਠਦਾ ਹੈ। ਜਦੋਂ Pi ਕਿਸੇ ਹੋਰ ਪਤੇ 'ਤੇ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਹਰ ਉਹ ਉਪਭੋਗਤਾ ਜਿਸ ਨੇ ਪਹਿਲਾਂ ਹੀ ਪੁਰਾਣਾ ਹੌਪ ਇੰਸਟਾਲ ਕਰ ਲਿਆ ਹੈ, ਉਸੇ ਨੰਬਰ 'ਤੇ ਟ੍ਰੈਫਿਕ ਭੇਜਦਾ ਰਹਿੰਦਾ ਹੈ। ਕੋਈ ਰਿਜ਼ਾਲਵਰ ਫਾਰਵਰਡਿੰਗ ਸਾਰਣੀ ਨਾਲ ਜੁੜਿਆ ਨਹੀਂ ਹੈ, ਇਸ ਲਈ ਤੁਹਾਡੇ ਲਈ ਉਹ ਐਂਟਰੀ ਦੁਬਾਰਾ ਲਿਖਣ ਵਾਲਾ ਕੋਈ ਨਹੀਂ।
DNS ਜਵਾਬ ਅਤੇ ਰੂਟ ਵੱਖਰੀਆਂ ਚੀਜ਼ਾਂ ਹਨ
ਮੰਨ ਲਓ ਤੁਹਾਡਾ Pi vpn-gw.lan 'ਤੇ ਜਵਾਬ ਦਿੰਦਾ ਹੈ ਅਤੇ 10.44.0.0/16 ਨੂੰ ਇੱਕ ਟਨਲ ਵਿੱਚ ਫਾਰਵਰਡ ਕਰਦਾ ਹੈ। 192.168.30.0/24 'ਤੇ ਕਲਾਇੰਟ ਸਥਿਰ ਰੂਟ ਰਾਹੀਂ ਉੱਥੇ ਪਹੁੰਚਦੇ ਹਨ। ਜਦੋਂ Pi ਦਾ ਪਤਾ 192.168.30.4 ਤੋਂ 192.168.30.11 'ਤੇ ਬਦਲਿਆ, ਰਿਕਾਰਡ ਆਪਣੇ TTL ਦੇ ਅੰਦਰ ਚੱਲਿਆ ਅਤੇ ਰੂਟ ਨਹੀਂ।
ਦੋਵੇਂ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਇਸ ਤਰ੍ਹਾਂ ਨਹੀਂ ਮਿਲਦੇ ਕਿ ਖੁੰਝਣਾ ਸੌਖਾ ਹੈ, ਕਿਉਂਕਿ ਵੱਖਰੇ ਪੁੱਛਣ 'ਤੇ ਦੋਵੇਂ ਭਰੋਸੇਯੋਗ ਲੱਗਦੇ ਹਨ:
$ ip route get 10.44.0.1
10.44.0.1 via 192.168.30.4 dev eth0 src 192.168.30.20
$ dig +short vpn-gw.lan
192.168.30.11
ਪੈਕਟ ਕਿੱਥੇ ਜਾਣਗੇ ਇਹ ਸਿਰਫ਼ ਪਹਿਲੀ ਲਾਈਨ ਤੈਅ ਕਰਦੀ ਹੈ। ਦੂਜੀ ਲਾਈਨ ਉਸ ਸਵਾਲ ਦਾ ਜਵਾਬ ਦਿੰਦੀ ਹੈ ਜੋ ਕਰਨਲ ਨੇ ਕਦੇ ਨਹੀਂ ਪੁੱਛਿਆ। ਕਈ A ਰਿਕਾਰਡ ਵਾਲਾ ਰਿਕਾਰਡ ਵੀ ਫੇਲਓਵਰ ਨੀਤੀ ਨਹੀਂ ਬਣਦਾ, ਕਿਉਂਕਿ ਹਰ ਪਤੇ ਨੂੰ ਉਸ ਸੈਗਮੈਂਟ 'ਤੇ ਕੰਮ ਕਰਨ ਯੋਗ ਅਗਲਾ ਹੌਪ ਹੋਣਾ ਹੀ ਚਾਹੀਦਾ ਹੈ।
ਕਮਾਂਡ ਖਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ ਸਾਰਣੀ ਵਿੱਚ ਕੀ ਰਹਿੰਦਾ ਹੈ
Linux ਰੂਟ ਇੱਥੇ ਦੋ ਮਹੱਤਵਪੂਰਨ ਚੀਜ਼ਾਂ ਦਰਜ ਕਰਦਾ ਹੈ: ਪ੍ਰੋਟੋਕੋਲ ਪਤੇ ਵਜੋਂ ਅਗਲਾ ਹੌਪ, ਅਤੇ ਇੰਡੈਕਸ ਨੰਬਰ ਵਜੋਂ ਬਾਹਰ ਜਾਣ ਵਾਲਾ ਇੰਟਰਫੇਸ। rtnetlink ਰੂਟ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਉਸ ਪਹਿਲੇ ਖੇਤਰ ਨੂੰ RTA_GATEWAY ਕਹਿੰਦੀਆਂ ਹਨ, ਅਤੇ ਇਸ ਵਿੱਚ ਬਾਈਟ ਰਹਿੰਦੇ ਹਨ। ਐਂਟਰੀ ਇੱਕ ਵਾਰ ਆਪਣੀ ਥਾਂ 'ਤੇ ਆ ਜਾਣ ਤੋਂ ਬਾਅਦ ਇਸ ਨਾਲ ਕੋਈ TTL ਜੁੜਿਆ ਨਹੀਂ ਰਹਿੰਦਾ ਅਤੇ ਕੋਈ ਬੈਕਗਰਾਊਂਡ ਖੋਜ ਇਸ ਨੂੰ ਤਾਜ਼ਾ ਨਹੀਂ ਕਰਦੀ।
ਇਸੇ ਲਈ ip route add 10.44.0.0/16 via vpn-gw.lan ਕੰਮ ਕਰਦਾ ਜਾਪ ਸਕਦਾ ਹੈ। ਸਾਧਨ ਕਮਾਂਡ ਚੱਲਦੇ ਸਮੇਂ ਨਾਮ ਹੱਲ ਕਰਦਾ ਹੈ, ਨਤੀਜਾ ਪਤਾ ਲਿਖਦਾ ਹੈ, ਅਤੇ ਨਾਮ ਪੂਰੀ ਤਰ੍ਹਾਂ ਭੁੱਲ ਜਾਂਦਾ ਹੈ। ਬਾਅਦ ਵਿੱਚ ip route show 10.44.0.0/16 ਚਲਾਓ ਅਤੇ ਤੁਹਾਨੂੰ ਸ਼ਬਦੀ ਪਤਾ ਵਾਪਸ ਮਿਲੇਗਾ।
ਟਨਲ ਨੂੰ ਦੋਸ਼ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਵਿਵਹਾਰ ਜਾਣਨਾ ਬਣਦਾ ਹੈ।
ਤੁਹਾਡੇ ਲਈ ਨਾਮ ਹੱਲ ਕਰਨ ਵਾਲੇ ਸਾਧਨ, ਅਤੇ ਕਦੋਂ
ਕੁਝ ਰਾਊਟਰ ਅਤੇ ਫਾਇਰਵਾਲ ਰੂਟ ਜਾਂ ਗੇਟਵੇ ਖੇਤਰ ਵਿੱਚ ਹੋਸਟਨਾਮ ਸੱਚਮੁੱਚ ਸਵੀਕਾਰ ਕਰਦੇ ਹਨ। ਮਹੱਤਵਪੂਰਨ ਇਹ ਹੈ ਕਿ ਹੱਲ ਕਦੋਂ ਹੁੰਦਾ ਹੈ। ਜੇ ਡਿਵਾਈਸ ਨਾਮ ਸਿਰਫ਼ ਤਦ ਹੱਲ ਕਰਦੀ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਸੰਰਚਨਾ ਲਾਗੂ ਕਰਦੇ ਹੋ, ਤਾਂ ਸਟੋਰ ਕੀਤੀ ਐਂਟਰੀ ਟਾਈਪ ਕੀਤੇ ਪਤੇ ਜਿੰਨੀ ਹੀ ਸਥਿਰ ਹੈ, ਅਤੇ ਬਾਅਦ ਵਾਲੇ ਪਤਾ ਬਦਲਾਅ ਲਈ ਇੱਕ ਹੋਰ ਲਾਗੂ ਕਰਨਾ ਪੈਂਦਾ ਹੈ। ਖੇਤਰ ਦਾ ਨਾਮ ਸਵੀਕਾਰ ਕਰਨਾ ਤੁਹਾਨੂੰ ਤਾਜ਼ਾ ਕਰਨ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਦੱਸਦਾ।
ਪ੍ਰਬੰਧਿਤ ਸੈਟਅਪ ਕੰਮ ਵੰਡਦੇ ਹਨ। DHCP ਰਿਜ਼ਰਵੇਸ਼ਨ ਜਾਂ ਸਥਿਰ ਲੀਜ਼ Pi ਨੂੰ ਇੱਕ ਪਤੇ 'ਤੇ ਰੱਖਦੀ ਹੈ, ਅਤੇ DNS ਰਿਕਾਰਡ ਸਿਰਫ਼ ਲੀਜ਼ ਦਾ ਪਿੱਛਾ ਕਰਦਾ ਹੈ। ਕਿਸੇ ਚੱਲਦੇ ਟੀਚੇ ਨੂੰ ਟ੍ਰੈਕ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ, ਕਿਉਂਕਿ ਟੀਚਾ ਚੱਲਦਾ ਨਹੀਂ।
ਨਿਗਰਾਨੀ ਵਾਲਾ ਅੱਪਡੇਟਰ ਦੂਜਾ ਜਾਇਜ਼ ਨਮੂਨਾ ਹੈ, ਅਤੇ ਇਸ ਨੂੰ ਮਾਲਕ ਚਾਹੀਦਾ ਹੈ।
ਪਤਾ ਪਿੰਨ ਕਰੋ ਜਾਂ ਅੱਪਡੇਟਰ ਖੁਦ ਚਲਾਓ
ਛੋਟੇ LAN ਲਈ DHCP ਸਰਵਰ 'ਤੇ ਰਿਜ਼ਰਵੇਸ਼ਨ ਸਭ ਤੋਂ ਸਸਤਾ ਹੱਲ ਹੈ। ਗਤੀਸ਼ੀਲ ਪੂਲ ਤੋਂ ਬਾਹਰ ਪਤਾ ਚੁਣੋ, ਇਸ ਨੂੰ Pi ਦੇ MAC ਪਤੇ ਨਾਲ ਬੰਨ੍ਹੋ, ਅਤੇ ਅਗਲੇ ਲੀਜ਼ ਨਵੀਨੀਕਰਨ ਤੋਂ ਬਾਅਦ ip -4 addr show dev eth0 ਨਾਲ ਪੁਸ਼ਟੀ ਕਰੋ। ਫਿਰ ਕਲਾਇੰਟਾਂ ਦਾ ਅਗਲਾ ਹੌਪ ਇੱਕ ਵਾਰ ਉਸ ਪਤੇ ਵੱਲ ਮੋੜੋ। ਹੁਣ ਤੁਹਾਡੇ ਕੋਲ ਸਥਿਰ ਗੇਟਵੇ ਅਤੇ ਉਸ ਦਾ ਵਰਣਨ ਕਰਨ ਵਾਲਾ ਰਿਕਾਰਡ ਹੈ, ਅਤੇ ਇਹੀ ਉਹ ਕ੍ਰਮ ਹੈ ਜਿਸ ਵਿੱਚ ਇਹ ਸੰਬੰਧ ਅਸਲ ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ।
ਜੇ Pi ਨੂੰ ਸੱਚਮੁੱਚ ਹਿਲਣਾ ਪੈਂਦਾ ਹੈ, ਤਾਂ ਹਰ ਕਲਾਇੰਟ ਨੂੰ ਹੱਥ ਨਾਲ ਸੋਧਣ ਦੀ ਥਾਂ ਰੂਟ ਮੁਰੰਮਤ ਇੱਕ ਥਾਂ ਰੱਖੋ। ਹੱਲ ਕਰਨ, ਤੁਲਨਾ ਕਰਨ ਅਤੇ ਬਦਲਣ ਵਾਲੀ ਛੋਟੀ ਸਕ੍ਰਿਪਟ ਕਦਮ ਨੂੰ ਦੁਹਰਾਉਣ ਯੋਗ ਬਣਾਉਣ ਲਈ ਕਾਫ਼ੀ ਹੈ:
new=$(dig +short vpn-gw.lan | head -n1)
cur=$(ip route get 10.44.0.1 | awk '{print $3}')
if [ "$new" != "$cur" ]; then
ip route replace 10.44.0.0/16 via "$new"
fi
ip route get 10.44.0.1
ਆਖਰੀ ਕਮਾਂਡ ਸਵੀਕ੍ਰਿਤੀ ਪਰਖ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਉਹ ਗੇਟਵੇ ਛਾਪਦੀ ਹੈ ਜੋ ਕਰਨਲ ਅਸਲ ਵਿੱਚ ਵਰਤੇਗਾ। ਜੇ ਛਾਪਿਆ ਪਤਾ ਅਜੇ ਵੀ ਪੁਰਾਣਾ ਹੈ, ਤਾਂ ਸਕ੍ਰਿਪਟ ਗਲਤ ਨੈੱਟਵਰਕ ਨੇਮਸਪੇਸ ਵਿੱਚ ਚੱਲੀ ਜਾਂ ਇਸ ਨੂੰ ਇਜਾਜ਼ਤ ਨਹੀਂ ਸੀ, ਅਤੇ DNS ਪਾਸਾ ਅਪ੍ਰਸੰਗਿਕ ਹੈ।
ਵਾਪਸੀ ਰਾਹ ਵੀ ਜਾਂਚੋ। Pi ਨੂੰ ਜਾਣਨਾ ਹੋਵੇਗਾ ਕਿ ਕਲਾਇੰਟ ਸਬਨੈੱਟ ਤੱਕ ਕਿਵੇਂ ਪਹੁੰਚਣਾ ਹੈ, ਅਤੇ ਇਸ ਦੇ ਫਾਇਰਵਾਲ ਨੇ ਟਨਲ ਟ੍ਰੈਫਿਕ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣੀ ਹੋਵੇਗੀ। ਬੇਮੇਲ ਨੂੰ ਢਕਣ ਲਈ ਸ਼ਾਮਲ ਕੀਤਾ ਡਿਫਾਲਟ ਰੂਟ ਆਮ ਤੌਰ 'ਤੇ ਅਸਲ ਖਾਲੀ ਥਾਂ ਲੁਕਾਉਂਦਾ ਹੈ ਅਤੇ ਇੱਕ ਹਫ਼ਤੇ ਬਾਅਦ ਕੁਝ ਹੋਰ ਤੋੜ ਦਿੰਦਾ ਹੈ।