ਹੋਸਟ ਬਿੱਟਾਂ ਕਾਰਨ ਰੂਟ ਅਸਵੀਕਾਰ? ਇਛਿਤ ਪ੍ਰੀਫਿਕਸ ਲੱਭੋ
ਅਸਵੀਕਾਰ ਕੀਤੀ ਰੂਟ ਲਾਈਨ ਆਮ ਤੌਰ 'ਤੇ ਹੋਸਟ ਬਿੱਟਾਂ ਕਾਰਨ ਹੁੰਦੀ ਹੈ, ਫਾਰਵਰਡਿੰਗ ਸਮੱਸਿਆ ਨਹੀਂ। ਮਾਸਕ ਚੌੜਾ ਕਰਨ ਦੀ ਥਾਂ ਉਹ ਪ੍ਰੀਫਿਕਸ ਤੈਅ ਕਰੋ ਜੋ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਸੀ।
ਤੁਹਾਡੀ ਰੂਟ ਲਾਈਨ ਅਸਵੀਕਾਰ ਹੋ ਕੇ ਵਾਪਸ ਆਉਂਦੀ ਹੈ, ਅਤੇ ਜੋ ਸਲਾਹ ਤੁਹਾਨੂੰ ਮਿਲਦੀ ਹੈ ਉਹ IP ਫਾਰਵਰਡਿੰਗ ਚਾਲੂ ਕਰਨ ਲਈ ਕਹਿੰਦੀ ਹੈ। ਇਹ ਦੋ ਗੱਲਾਂ ਸਮੱਸਿਆ ਦੇ ਵੱਖ-ਵੱਖ ਪੜਾਵਾਂ ਵਿੱਚ ਹਨ। ਫਾਰਵਰਡਿੰਗ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ ਹੋਸਟ ਇੰਟਰਫੇਸਾਂ ਵਿਚਕਾਰ ਪੈਕਟ ਸਰਕਾ ਸਕਦਾ ਹੈ ਜਾਂ ਨਹੀਂ; ਇਸਦੀ ਇਸ ਬਾਰੇ ਕੋਈ ਰਾਏ ਨਹੀਂ ਕਿ ਤੁਸੀਂ ਲਿਖਿਆ ਟਿਕਾਣਾ ਵੈਧ ਨੈੱਟਵਰਕ ਹੈ ਜਾਂ ਨਹੀਂ। ਪਹਿਲਾਂ ਪ੍ਰੀਫਿਕਸ ਠੀਕ ਕਰੋ, ਕਿਉਂਕਿ ਫਾਰਵਰਡਿੰਗ ਅਜਿਹੇ ਪਤੇ ਅਤੇ ਮਾਸਕ ਨੂੰ ਨਹੀਂ ਬਚਾ ਸਕਦੀ ਜੋ ਆਪਸ ਵਿੱਚ ਨਹੀਂ ਮਿਲਦੇ।
ਪਾਰਸਰ ਅਸਲ ਵਿੱਚ ਕਿਸ ਗੱਲ ਦੀ ਸ਼ਿਕਾਇਤ ਕਰ ਰਿਹਾ ਹੈ
ਪਤਾ ਅਤੇ ਮਾਸਕ ਵਜੋਂ ਲਿਖਿਆ ਟਿਕਾਣਾ ਇੱਕ ਨੈੱਟਵਰਕ ਦੱਸਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਨੈੱਟਵਰਕ ਜ਼ੀਰੋ ਕੀਤੇ ਹੋਸਟ ਬਿੱਟਾਂ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ। ਜਦੋਂ ਤੁਹਾਡੇ ਦਿੱਤੇ ਪਤੇ ਵਿੱਚ ਅਜੇ ਵੀ ਹੋਸਟ ਭਾਗ ਵਿੱਚ ਮੁੱਲ ਹੈ, ਤਾਂ ਜੋੜੀ ਅੰਦਰੂਨੀ ਤੌਰ 'ਤੇ ਅਸੰਗਤ ਹੈ: 172.20.130.0 ਸਾਫ਼ ਦਿਸਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਜ਼ੀਰੋ 'ਤੇ ਖ਼ਤਮ ਹੁੰਦਾ ਹੈ, ਪਰ ਚੌਥੇ ਆਕਟੈਟ ਵਿੱਚ ਜ਼ੀਰੋ ਹੀ ਇੱਕੋ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਗੱਲ ਨਹੀਂ ਹੈ। ਇੱਥੇ ਭਟਕਦੀਆਂ ਬਿੱਟਾਂ ਤੀਜੇ ਆਕਟੈਟ ਵਿੱਚ ਹਨ।
ਸਾਧਨ ਇਸ ਅਸੰਗਤੀ ਨੂੰ ਵੱਖ-ਵੱਖ ਤਰੀਕਿਆਂ ਨਾਲ ਸੰਭਾਲਦੇ ਹਨ। ਸਖ਼ਤ ਪਾਰਸਰ ਲਾਈਨ ਅਸਵੀਕਾਰ ਕਰਦੇ ਹਨ ਅਤੇ ਹੋਸਟ ਬਿੱਟਾਂ ਦਾ ਨਾਮ ਲੈਂਦੇ ਹਨ। ਨਰਮ ਪਾਰਸਰ ਪਤੇ ਨੂੰ ਮਾਸਕ ਕਰਦੇ ਹਨ ਅਤੇ ਕੁਝ ਅਜਿਹਾ ਸਥਾਪਤ ਕਰਦੇ ਹਨ ਜੋ ਤੁਸੀਂ ਨਹੀਂ ਮੰਗਿਆ, ਜੋ ਵਧੇਰੇ ਮਾੜਾ ਹੈ, ਕਿਉਂਕਿ ਸੰਰਚਨਾ ਹੁਣ ਅਜਿਹੀ ਰੇਂਜ ਨੂੰ ਰੂਟ ਕਰਦੀ ਹੈ ਜੋ ਤੁਸੀਂ ਕਦੇ ਨਹੀਂ ਚਾਹੀ। Python ਦਾ ipaddress ਮਾਡਿਊਲ ਚੋਣ ਸਿੱਧੀ ਦਿਖਾਉਂਦਾ ਹੈ: ਸਖ਼ਤ ਨੈੱਟਵਰਕ ਪਾਰਸਿੰਗ ਤਰੁੱਟੀ ਦਿੰਦੀ ਹੈ, ਅਤੇ strict=False ਹੋਸਟ ਬਿੱਟਾਂ ਨੂੰ ਮਾਸਕ ਕਰ ਦਿੰਦਾ ਹੈ। ਤੁਹਾਡਾ ਕਲਾਇੰਟ ਵਰਜਨਾਂ ਵਿਚਕਾਰ ਸਖ਼ਤ, ਨਰਮ ਜਾਂ ਅਸੰਗਤ ਹੋ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਆਦਤ 'ਤੇ ਭਰੋਸਾ ਕਰਨ ਦੀ ਥਾਂ ਸੁਨੇਹਾ ਪੜ੍ਹੋ।
ਉਦਾਹਰਨ ਹੱਥ ਨਾਲ ਕਰੋ
ਇੱਕ ਸੁਰੰਗ ਲਓ ਜਿਸਨੂੰ /20 ਮਾਸਕ ਨਾਲ 172.20.130.0 ਤੱਕ ਪਹੁੰਚਣਾ ਹੈ। /20 ਤੀਜੇ ਆਕਟੈਟ ਤੋਂ ਚਾਰ ਬਿੱਟ ਉਧਾਰ ਲੈਂਦਾ ਹੈ, ਇਸ ਲਈ ਉਹ ਆਕਟੈਟ ਸਿਰਫ਼ 16 ਦੇ ਕਦਮਾਂ ਵਿੱਚ ਗਿਣਿਆ ਜਾਂਦਾ ਹੈ: 0, 16, 32 ਅਤੇ ਫਿਰ 240 ਤੱਕ। ਮੁੱਲ 130, 128 ਅਤੇ 143 ਵਿਚਕਾਰ ਆਉਂਦਾ ਹੈ, ਭਾਵ ਘੇਰਨ ਵਾਲਾ ਨੈੱਟਵਰਕ 172.20.128.0 ਤੋਂ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਆਖਰੀ ਆਕਟੈਟ ਜ਼ੀਰੋ ਕੀਤੇ 172.20.130.0 ਤੋਂ ਨਹੀਂ।
ਲਿਖਤ ਰੂਪ ਵਿੱਚ ਬਲਾਕ 172.20.128.0 ਤੋਂ 172.20.143.255 ਤੱਕ ਚੱਲਦਾ ਹੈ ਅਤੇ 4,096 ਪਤੇ ਰੱਖਦਾ ਹੈ। ਉਹੀ ਮੁੱਲ ਗੈਰ-ਸਖ਼ਤ ਪਾਰਸਰ ਨੂੰ ਦੇਣ ਨਾਲ ਉਹ ਬਦਲੀ ਦਿਸਦੀ ਹੈ ਜੋ ਉਹ ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਰਦਾ:
$ python3 -c "import ipaddress; n=ipaddress.ip_network('172.20.130.0/20', strict=False); print(n, n.num_addresses)"
172.20.128.0/20 4096ਤੈਅ ਕਰੋ ਕਿ ਤੁਸੀਂ ਅਸਲ ਵਿੱਚ ਕਿਹੜਾ ਟਿਕਾਣਾ ਚਾਹੁੰਦੇ ਸੀ
ਅਸਵੀਕਾਰ ਕੀਤੀ ਲਾਈਨ ਆਮ ਤੌਰ 'ਤੇ ਤਿੰਨ ਇਰਾਦਿਆਂ ਵਿੱਚੋਂ ਇੱਕ ਲੁਕਾਉਂਦੀ ਹੈ, ਅਤੇ ਚੋਣ ਸਿਰਫ਼ ਤੁਸੀਂ ਕਰ ਸਕਦੇ ਹੋ। ਜੇ ਸੁਰੰਗ ਨੂੰ ਪੂਰਾ ਬਲਾਕ ਚਾਹੀਦਾ ਹੈ, ਤਾਂ 172.20.128.0/20 ਲਿਖੋ, ਜੋ ਪ੍ਰਮਾਣਿਕ ਨੈੱਟਵਰਕ ਪਤਾ ਹੈ। ਜੇ ਸੁਰੰਗ ਨੂੰ ਸਿਰਫ਼ 130 ਹਿੱਸਾ ਚਾਹੀਦਾ ਹੈ, ਤਾਂ ਮਾਸਕ ਗਲਤ ਸੀ ਅਤੇ 172.20.130.0/24 ਇਮਾਨਦਾਰ ਰੂਪ ਹੈ। ਜੇ ਟੀਚਾ ਇੱਕੋ ਮਸ਼ੀਨ ਹੈ, IPv4 ਹੋਸਟ ਰੂਟ /32 ਹੈ ਅਤੇ ਇਸ ਵਿੱਚ ਕੋਈ ਮਾਸਕ-ਗਣਿਤ ਸ਼ਾਮਲ ਨਹੀਂ।
ਇਹਨਾਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਵੱਖਰੀ ਮਾਤਰਾ ਵਿੱਚ ਟ੍ਰੈਫ਼ਿਕ ਦੀ ਮਨਜ਼ੂਰੀ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਸ਼ਿਕਾਇਤ ਰੁਕਣ ਤੱਕ ਮਾਸਕ ਨਾ ਚੌੜਾ ਕਰਨ ਦਾ ਇਹੀ ਅਸਲ ਕਾਰਨ ਹੈ। /16 ਲਗਭਗ ਹਰ ਜਗ੍ਹਾ ਲਾਈਨ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ ਅਤੇ ਟ੍ਰੈਫ਼ਿਕ ਉਹਨਾਂ ਟਿਕਾਣਿਆਂ ਵੱਲ ਭੇਜਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਕਦੇ ਸੁਰੰਗ ਰਾਹੀਂ ਰੂਟ ਕਰਨਾ ਨਹੀਂ ਚਾਹਿਆ। ਇਰਾਦੇ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਸਭ ਤੋਂ ਤੰਗ ਪ੍ਰੀਫਿਕਸ ਲਿਖੋ, ਫਿਰ ਉਸਨੂੰ ਉਸ ਅਗਲੇ ਹਾਪ ਨਾਲ ਪੁਸ਼ਟੀ ਕਰੋ ਜਿਸਦੀ ਤੁਸੀਂ ਉਮੀਦ ਕਰਦੇ ਹੋ, ਪਾਰਸਰ ਦੀ ਚੁੱਪ ਨਾਲ ਨਹੀਂ।
ਫਾਰਵਰਡਿੰਗ ਕਦੇ ਹੱਲ ਕਿਉਂ ਨਹੀਂ ਸੀ
ਅਸਵੀਕਾਰ ਕੀਤਾ ਰੂਟ ਕਦੇ ਫਾਰਵਰਡਿੰਗ ਮਾਰਗ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚਦਾ, ਇਸ ਲਈ net.ipv4.ip_forward ਬਦਲਣ ਨਾਲ ਨਤੀਜਾ ਨਹੀਂ ਬਦਲ ਸਕਦਾ। ਉਹ ਸੈਟਿੰਗ ਬਾਅਦ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਹੈ, ਜਦੋਂ ਹੋਸਟ ਨੂੰ ਇੰਟਰਫੇਸਾਂ ਵਿਚਕਾਰ ਪੈਕਟ ਭੇਜਣੇ ਪੈਂਦੇ ਹਨ, ਅਤੇ ਸਾਰਣੀ ਸਹੀ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਇਸਨੂੰ ਚਾਲੂ ਕਰਨਾ ਸਿਰਫ਼ ਇਹ ਬਦਲਦਾ ਹੈ ਕਿ ਅੱਗੇ ਕਿਹੜਾ ਪੜਾਅ ਫੇਲ੍ਹ ਹੋਵੇਗਾ।
ਉਸੇ ਬਿੰਦੂ 'ਤੇ ਅਕਸਰ ਦੋ ਹੋਰ ਗੱਲਾਂ ਨੂੰ ਦੋਸ਼ੀ ਠਹਿਰਾਇਆ ਜਾਂਦਾ ਹੈ। ਰੂਟ ਸਵੀਕਾਰ ਹੋ ਸਕਦਾ ਹੈ ਅਤੇ ਫਿਰ ਵੀ ਵਧੇਰੇ ਖਾਸ ਰੂਟ ਤੋਂ ਹਾਰ ਸਕਦਾ ਹੈ, ਅਤੇ ਫਾਇਰਵਾਲ ਨਿਯਮ ਸਹੀ ਖੋਜ ਤੋਂ ਬਾਅਦ ਟ੍ਰੈਫ਼ਿਕ ਸੁੱਟ ਸਕਦਾ ਹੈ। ਪੜਾਅ ਵੱਖਰੇ ਰੱਖੋ: ਵਾਕਵਿਉਹਾਰ, ਸਥਾਪਨਾ, ਚੋਣ, ਫਿਲਟਰਿੰਗ। ਗਲਤ ਪੜਾਅ 'ਤੇ ਕੰਮ ਕਰਨਾ ਲਾਹੇਵੰਦ ਲੱਗਦਾ ਹੈ ਕਿਉਂਕਿ ਹਰ ਬਦਲਾਅ ਕੁਝ ਮੁੜ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ।
ਸਥਾਪਤ ਰੂਟ ਅਤੇ ਉਹ ਜਿੱਤਣ ਵਾਲਾ ਮਾਰਗ ਜਾਂਚੋ
ਜਦੋਂ ਕਲਾਇੰਟ ਲਾਈਨ ਸਵੀਕਾਰ ਕਰ ਲਵੇ, ਦੇਖੋ ਉਸਨੇ ਕੀ ਸਥਾਪਤ ਕੀਤਾ ਅਤੇ ਬਲਾਕ ਵਿੱਚਲੇ ਪ੍ਰਤੀਨਿਧ ਪਤੇ ਲਈ ਕਰਨਲ ਕਿਹੜਾ ਰੂਟ ਚੁਣਦਾ ਹੈ। ਜੇ ਸਥਾਪਤ ਪ੍ਰੀਫਿਕਸ ਤੁਹਾਡੇ ਲਿਖੇ ਤੋਂ ਵੱਖਰਾ ਹੈ, ਤਾਂ ਨਾਰਮਲਾਈਜ਼ਰ ਨੇ ਤੁਹਾਡੇ ਵੱਲੋਂ ਕੰਮ ਕੀਤਾ ਹੈ।
ਬਲਾਕ ਅੰਦਰਲਾ ਇੱਕ ਮੈਂਬਰ ਪਤਾ ਅਤੇ ਬਾਹਰਲਾ ਇੱਕ ਪੁੱਛੋ, ਤਾਂ ਜੋ ਤੁਲਨਾ ਇੱਕ ਦਿਲਾਸੇ ਵਾਲੀ ਲਾਈਨ ਦੀ ਥਾਂ ਅਰਥਪੂਰਨ ਹੋਵੇ:
ip -4 route show 172.20.128.0/20
ip -4 route get 172.20.140.10
ip -4 route get 172.20.200.10ਜੇ ਤੁਹਾਡਾ ਪ੍ਰੀਫਿਕਸ ਸਹੀ ਹੈ ਤਾਂ ਤੀਜੀ ਪੁੱਛਗਿੱਛ ਸੁਰੰਗ ਤੋਂ ਬਾਹਰ ਪੈਣੀ ਚਾਹੀਦੀ ਹੈ, ਅਤੇ ਜੇ ਨਹੀਂ ਪੈਂਦੀ, ਤਾਂ ਤੁਸੀਂ ਬਣਾਇਆ ਰੂਟ ਤੁਹਾਡੀ ਸੋਚ ਨਾਲੋਂ ਚੌੜਾ ਹੈ। ਅਗਲੀ ਸੈਟਿੰਗ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਲਿਖ ਲਓ ਕਿ ਪ੍ਰੀਫਿਕਸ ਨੇ ਕੀ ਢਕਣਾ ਸੀ, ਕਿਉਂਕਿ ਪਾਰਸ ਹੋਣ ਵਾਲਾ ਰੂਟ ਅਤੇ ਕੰਮ ਕਰਨ ਵਾਲਾ ਮਾਰਗ ਵੱਖਰੇ ਨਿਰੀਖਣ ਹੀ ਰਹਿੰਦੇ ਹਨ।