WireGuard: ਦੋ ਅੱਧੇ ਰੂਟ ਬਨਾਮ wg-quick ਵਿੱਚ 0.0.0.0/0
ਦੋ /1 ਰੇਂਜਾਂ /0 ਵਾਂਗ ਹੀ ਉਹੀ ਪਤੇ ਢੱਕਦੀਆਂ ਹਨ, ਪਰ wg-quick ਉਹਨਾਂ ਨੂੰ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਰੂਟ ਕਰਦਾ ਹੈ। ਸੋਧ ਤੋਂ ਪਹਿਲਾਂ ਨੀਤੀ ਨਿਯਮ, ਨਿਸ਼ਾਨ ਅਤੇ ਐਂਡਪੌਇੰਟ ਮਾਰਗ ਜਾਂਚੋ।
ਦੋ /1 ਪ੍ਰੀਫਿਕਸ ਠੀਕ ਉਹੀ IPv4 ਪਤੇ ਢੱਕਦੇ ਹਨ ਜੋ ਇੱਕ /0 ਢੱਕਦਾ ਹੈ, ਅਤੇ ਇਹ ਬਰਾਬਰੀ ਸਿਰਫ਼ ਪੀਅਰ ਦੀ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਪ੍ਰੀਫਿਕਸ ਸੂਚੀ ਦੇ ਅੰਦਰ ਹੀ ਲਾਗੂ ਹੁੰਦੀ ਹੈ। ਸੈਟਅਪ ਸਾਧਨ ਦੇ ਰੂਟਿੰਗ ਦਾ ਫ਼ੈਸਲਾ ਕਰਨ ਵਾਲੇ ਪਲ ਹੀ ਇਹ ਲਾਗੂ ਹੋਣਾ ਬੰਦ ਹੋ ਜਾਂਦੀ ਹੈ, ਕਿਉਂਕਿ Linux ਵਿੱਚ wg-quick ਡਿਫ਼ਾਲਟ ਪ੍ਰੀਫਿਕਸ ਨੂੰ ਗਣਿਤ ਨਹੀਂ ਸਗੋਂ ਵਿਸ਼ੇਸ਼ ਕੇਸ ਵਜੋਂ ਸੰਭਾਲਦਾ ਹੈ। ਵਿਸ਼ੇਸ਼ ਸ਼ਾਖਾ ਇੱਕ ਸਮਰਪਿਤ ਟੇਬਲ, ਦੋ ਨੀਤੀ ਨਿਯਮ, ਇੱਕ ਸਾਕਟ ਨਿਸ਼ਾਨ ਅਤੇ ਉਲਟ ਮਾਰਗ ਸੈਟਿੰਗਾਂ ਲਾਉਂਦੀ ਹੈ, ਜੋ ਅੱਧੇ ਰੂਟਾਂ ਦੀ ਜੋੜੀ ਨੂੰ ਕਦੇ ਨਹੀਂ ਮਿਲਦੀਆਂ। ਇਸ ਲਈ ਸੋਧ ਤੋਂ ਬਾਅਦ ਪ੍ਰਾਕਸੀ ਜਾਂ ਬਰਾਊਜ਼ਰ ਕੰਮ ਕਰਨਾ ਬੰਦ ਕਰ ਦੇਵੇ, ਤਾਂ ਪ੍ਰੀਫਿਕਸ ਬਦਲਾਅ ਦਾ ਸਭ ਤੋਂ ਘੱਟ ਦਿਲਚਸਪ ਹਿੱਸਾ ਹੁੰਦੇ ਹਨ।
ਪ੍ਰੀਫਿਕਸ ਸੂਚੀ ਪੂਰਾ ਸੰਰਚਨਾ ਨਹੀਂ
AllowedIPs ਇੱਕੋ ਸਮੇਂ ਦੋ ਕੰਮ ਕਰਦਾ ਹੈ, ਅਤੇ ਉਹਨਾਂ ਵਿੱਚੋਂ ਸਿਰਫ਼ ਇੱਕ ਕਵਰੇਜ ਬਾਰੇ ਹੈ। WireGuard ਲਈ ਇਹ ਸੂਚੀ ਕ੍ਰਿਪਟੋਕੀ ਰੂਟਿੰਗ ਹੈ: ਇਹ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ ਕਿਹੜੀਆਂ ਮੰਜ਼ਿਲਾਂ ਪੀਅਰ ਵੱਲ ਐਨਕ੍ਰਿਪਟ ਹੁੰਦੀਆਂ ਹਨ ਅਤੇ ਉਹ ਪੀਅਰ ਕਿਹੜੇ ਸਰੋਤ ਪਤੇ ਵਰਤ ਸਕਦਾ ਹੈ। wg-quick ਲਈ ਇਹੀ ਸੂਚੀ ਰੂਟ ਵਿਸ਼ੇਸ਼ਤਾ ਵਜੋਂ ਵੀ ਕੰਮ ਕਰਦੀ ਹੈ, ਅਤੇ ਇਹ ਜੋ ਰੂਟ ਬਣਾਉਂਦੀ ਹੈ ਉਹ ਇਸ ’ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਸੂਚੀ ਸੰਜੋਗ ਨਾਲ ਕਿਹੜੀ ਸ਼ਾਖਾ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ। ਇਸ ਲਈ ਦੋ ਵੱਖਰੀਆਂ ਸੂਚੀ ਸ਼ਕਲਾਂ ਵਿੱਚ ਇੱਕੋ ਜਿਹੀ ਕਵਰੇਜ ਹੋਣਾ ਇੱਕੋ ਜਿਹੀ ਹੋਸਟ ਸਥਿਤੀ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਕਹਿੰਦਾ।
ਡਿਫ਼ਾਲਟ ਸੰਰਚਨਾ ਉਹ ਫ਼ੈਸਲਾ ਤੁਹਾਡੇ ਹੱਥਾਂ ਤੋਂ ਲੈ ਲੈਂਦੀ ਹੈ, ਕਿਉਂਕਿ Table ਡਿਫ਼ਾਲਟ ਰੂਪ ਵਿੱਚ ਸਵੈਚਾਲਿਤ ਹੈ ਅਤੇ ਸਾਧਨ ਆਪ ਹੀ ਚੁਣਦਾ ਹੈ ਕਿ ਰੂਟ ਕਿੱਥੇ ਉਤਰਨ। ਕੋਈ ਹੋਰ ਨੈੱਟਵਰਕ ਮੈਨੇਜਰ, ਡਿਸਟਰੀਬਿਊਸ਼ਨ ਰੈਪਰ ਜਾਂ ਕਸਟਮ Table ਮੁੱਲ ਨਤੀਜਾ ਫਿਰ ਬਦਲ ਦਿੰਦਾ ਹੈ, ਇਸ ਲਈ ਇੱਕ ਹੋਸਟ ਲਈ ਲਿਖੀ ਸਲਾਹ ਅਗਲੇ ਹੋਸਟ ’ਤੇ ਗ਼ਲਤ ਲੱਗ ਸਕਦੀ ਹੈ।
ਡਿਫ਼ਾਲਟ ਸ਼ਾਖਾ ਰੂਟ ਤੋਂ ਇਲਾਵਾ ਕੀ ਜੋੜਦੀ ਹੈ
/0 ਐਂਟਰੀ wg-quick ਨੂੰ ਇਸਦੇ ਡਿਫ਼ਾਲਟ-ਰੂਟ ਮਾਰਗ ਵਿੱਚ ਭੇਜਦੀ ਹੈ: ਇੱਕ ਵੱਖਰਾ ਰੂਟਿੰਗ ਟੇਬਲ ਡਿਫ਼ਾਲਟ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ, ਇੱਕ ਨੀਤੀ ਨਿਯਮ ਬਿਨਾਂ ਨਿਸ਼ਾਨ ਵਾਲੀ ਟ੍ਰੈਫਿਕ ਉੱਥੇ ਭੇਜਦਾ ਹੈ, ਦੂਜਾ ਨਿਯਮ ਮੁੱਖ ਟੇਬਲ ਦੇ ਵਧੇਰੇ ਖ਼ਾਸ ਰੂਟਾਂ ਨੂੰ ਅਧਿਕਾਰਤ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਇੰਟਰਫ਼ੇਸ ਨੂੰ ਆਪਣੇ ਹੀ ਸਾਕਟ ’ਤੇ ਫਾਇਰਵਾਲ ਨਿਸ਼ਾਨ ਮਿਲਦਾ ਹੈ। ਉਹੀ ਨਿਸ਼ਾਨ ਲੂਪ ਗਾਰਡ ਹੈ। ਟਨਲ ਟ੍ਰੈਫਿਕ ਢੋਣ ਵਾਲੇ ਐਨਕ੍ਰਿਪਟਡ ਡੇਟਾਗ੍ਰਾਮ ਨਿਸ਼ਾਨ ਲੱਗੇ ਹੋਣ ’ਤੇ ਬਾਹਰ ਨਿਕਲਦੇ ਹਨ, ਤਾਂ ਜੋ ਬਾਕੀ ਸਭ ਕੁਝ ਟਨਲ ਵਿੱਚ ਧੱਕਣ ਵਾਲਾ ਨਿਯਮ ਟਨਲ ਦੇ ਆਪਣੇ ਟਰਾਂਸਪੋਰਟ ਪੈਕਟ ਨਾ ਨਿਗਲ ਜਾਵੇ।
ਇਸ ਦੀ ਬਜਾਏ /1 ਐਂਟਰੀਆਂ ਦੀ ਜੋੜੀ ਆਮ ਰੂਟ ਮਾਰਗ ਲੈਂਦੀ ਹੈ। ਸੰਰਚਿਤ ਟੇਬਲ ਵਿੱਚ ਦੋ ਰੂਟ ਉਤਰਦੇ ਹਨ, ਅਤੇ ਆਲੇ-ਦੁਆਲੇ ਦੀ ਕੋਈ ਵੀ ਮਸ਼ੀਨਰੀ ਦਿਖਾਈ ਨਹੀਂ ਦਿੰਦੀ, ਇਹ ਇਸ ਲਈ ਨਹੀਂ ਕਿ ਇਹ ਗ਼ੈਰ-ਜ਼ਰੂਰੀ ਹੈ, ਸਗੋਂ ਇਸ ਲਈ ਕਿ ਉਸ ਕੋਡ ਮਾਰਗ ਵਿੱਚ ਕਦੇ ਦਾਖ਼ਲ ਨਹੀਂ ਹੋਇਆ।
ਦੋਵੇਂ ਪ੍ਰਬੰਧ ਕਿੱਥੇ ਵੱਖ ਹੁੰਦੇ ਹਨ
ਫ਼ਰਕ ਪਹਿਲਾਂ ਦੁਹਰਾਓ ਵਜੋਂ ਦਿਸਦਾ ਹੈ। ਮੁੱਖ ਟੇਬਲ ਵਿੱਚ ਅੱਧੇ ਰੂਟ ਹੋਣ ’ਤੇ ਪੀਅਰ ਦਾ ਆਪਣਾ ਟਰਾਂਸਪੋਰਟ ਪਤਾ ਟਨਲ ਪ੍ਰੀਫਿਕਸ ਦੇ ਅੰਦਰ ਆ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ ਜੋ ਪੈਕਟ ਟਨਲ ਢੋਣਾ ਚਾਹੀਦਾ ਹੈ ਉਹ ਟਨਲ ਦੇ ਅੰਦਰ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਨ ਵਾਲੇ ਰੂਟ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ। ਕਿਸੇ ਚੀਜ਼ ਨੂੰ ਇਸ ਨੂੰ ਛੋਟ ਦੇਣੀ ਪਵੇਗੀ: ਮੌਜੂਦਾ ਐਂਡਪੌਇੰਟ ਲਈ ਹੋਸਟ ਰੂਟ, ਹੱਥ ਨਾਲ ਲਾਇਆ ਨਿਸ਼ਾਨ, ਜਾਂ ਇੰਟਰਫ਼ੇਸ-ਖ਼ਾਸ ਨਿਯਮ। ਹੋਸਟ ਰੂਟ ਉਦੋਂ ਤੱਕ ਕੰਮ ਕਰਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਐਂਡਪੌਇੰਟ ਦਾ ਪਤਾ ਨਾ ਬਦਲੇ, ਜੋ DNS-ਆਧਾਰਿਤ ਐਂਡਪੌਇੰਟ, ਘੁੰਮਣ ਵਾਲੇ ਕਲਾਇੰਟ ਅਤੇ ਬਹੁ-ਪੀਅਰ ਸੰਰਚਨਾਵਾਂ ਵਿੱਚ ਹੁੰਦਾ ਹੈ।
ਦੂਜਾ, ਨਿਸ਼ਾਨਾਂ ਬਾਰੇ ਤਰਕ ਕਰਨ ਵਾਲੀ ਹਰ ਚੀਜ਼ ਦਾ ਵਿਵਹਾਰ ਬਦਲ ਜਾਂਦਾ ਹੈ। ਸਥਾਨਕ ਤੌਰ ’ਤੇ ਕਨੈਕਸ਼ਨ ਰੀਡਾਇਰੈਕਟ ਕਰਨ ਵਾਲੀ ਪਾਰਦਰਸ਼ੀ ਪ੍ਰਾਕਸੀ ਨਵੇਂ ਸਾਕਟ ਬਣਾਉਂਦੀ ਹੈ ਜਿਨ੍ਹਾਂ ਦੇ ਨਿਸ਼ਾਨ ਅਤੇ ਸਰੋਤ ਮੂਲ ਕਲਾਇੰਟ ਪ੍ਰਵਾਹ ਤੋਂ ਵੱਖ ਹੁੰਦੇ ਹਨ, ਅਤੇ ਡਿਫ਼ਾਲਟ ਸ਼ਾਖਾ ਵੱਲੋਂ ਬਣਾਏ ਨੀਤੀ ਨਿਯਮ ਉਹਨਾਂ ਪ੍ਰਵਾਹਾਂ ਨੂੰ ਵੱਖ ਕਰਨ ਦਾ ਹਿੱਸਾ ਸਨ। ਪ੍ਰਾਕਸੀ ਦਾ ਆਪਣਾ ਬਾਹਰ ਜਾਣ ਵਾਲਾ ਕਨੈਕਸ਼ਨ ਪੜ੍ਹਨਾ ਮੂਲ ਮੰਜ਼ਿਲ ਤੱਕ ਪਹੁੰਚਣ ਦੀ ਜਾਂਚ ਤੋਂ ਵੱਖ ਅਭਿਆਸ ਹੈ।
ਸੋਧ ਤੋਂ ਪਹਿਲਾਂ ਨਿਯਮ ਅਤੇ ਨਿਸ਼ਾਨ ਪੜ੍ਹੋ
ਟਨਲ ਸਿਹਤਮੰਦ ਹੁੰਦਿਆਂ ਮੌਜੂਦਾ ਸਥਿਤੀ ਕੈਪਚਰ ਕਰੋ, ਫਿਰ ਬਦਲਾਅ ਤੋਂ ਬਾਅਦ ਦੁਬਾਰਾ, ਅਤੇ ਸੰਰਚਨਾ ਫਾਈਲ ਤੋਂ ਤਰਕ ਕਰਨ ਦੀ ਬਜਾਏ ਦੋਵੇਂ ਡੰਪਾਂ ਦੀ ਤੁਲਨਾ ਕਰੋ। ਨੀਤੀ ਨਿਯਮ, ਹਰ ਟੇਬਲ, ਇੰਟਰਫ਼ੇਸ ਦਾ ਨਿਸ਼ਾਨ ਅਤੇ ਦਰਜ ਕੀਤੇ ਐਂਡਪੌਇੰਟ ਸ਼ਾਮਲ ਕਰੋ।
ip rule show
ip -4 route show table all | grep -E 'default|wg1'
wg show wg1 fwmark
wg show wg1 endpoints
ਜੇ ਆਉਟਪੁੱਟ ਦੀ ਪਹਿਲੀ ਲਾਈਨ ਬਿਨਾਂ ਨਿਸ਼ਾਨ ਵਾਲੀ ਟ੍ਰੈਫਿਕ ਦਾ ਨਿਯਮ ਗੁਆ ਚੁੱਕੀ ਹੈ ਅਤੇ ਸਮਰਪਿਤ ਟੇਬਲ ਖਾਲੀ ਹੈ, ਤਾਂ ਡਿਫ਼ਾਲਟ ਸ਼ਾਖਾ ਨਹੀਂ ਚੱਲ ਰਹੀ ਅਤੇ ਕੋਈ ਵੀ ਪ੍ਰੀਫਿਕਸ ਗਣਿਤ ਇਸ ਦੇ ਅਸਰ ਬਹਾਲ ਨਹੀਂ ਕਰੇਗਾ। ਪਹਿਲਾਂ ਨਿਸ਼ਾਨ ਰੱਖਣ ਵਾਲੇ ਇੰਟਰਫ਼ੇਸ ’ਤੇ ਜ਼ੀਰੋ ਨਿਸ਼ਾਨ ਉਹੀ ਸੰਕੇਤ ਹੈ, ਇੱਕ ਹੀ ਮੁੱਲ ਵਿੱਚ ਦਿਸਦਾ ਹੈ।
ਰਿਲੀਜ਼ ਤੋਂ ਪਹਿਲਾਂ ਟਨਲ ਗੁਆਉਣ ਦਾ ਅਭਿਆਸ ਕਰੋ
ਜੇ ਅੱਧੇ-ਰੂਟ ਵਾਲਾ ਪ੍ਰਬੰਧ ਜਾਣ-ਬੁੱਝ ਕੇ ਚੁਣਿਆ ਗਿਆ ਹੈ, ਤਾਂ ਇਸ ਨੂੰ ਗੁੰਮ ਹਿੱਸੇ ਸਪਸ਼ਟ ਤੌਰ ’ਤੇ ਦੇਣੇ ਚਾਹੀਦੇ ਹਨ: ਪਤਾ ਬਦਲਣ ’ਤੇ ਵੀ ਟਿਕਣ ਵਾਲਾ ਐਂਡਪੌਇੰਟ ਮਾਰਗ, ਟਨਲ ਡਿੱਗਣ ’ਤੇ ਲੋੜੀਦਾ ਵਿਵਹਾਰ, ਅਤੇ IPv6 ਲਈ ਬਰਾਬਰ ਦਾ ਇੰਤਜ਼ਾਮ। ਇਹਨਾਂ ਨੂੰ ਕਿਸੇ ਰੁਕਾਵਟ ਦੌਰਾਨ ਲੱਭਣ ਦੀ ਬਜਾਏ ਲੋੜ ਵਜੋਂ ਲਿਖੋ। ਫਿਰ ਅਸਫਲਤਾ ਦਾ ਅਭਿਆਸ ਕਰੋ, ਕਿਉਂਕਿ ਚੁੱਪਚਾਪ ਭੌਤਿਕ ਅਪਲਿੰਕ ’ਤੇ ਮੁੜ ਜਾਣ ਵਾਲਾ ਪੂਰਾ ਟਨਲ ਕੰਮ ਕਰਨਾ ਬੰਦ ਕਰਨ ਵਾਲੇ ਟਨਲ ਤੋਂ ਬਦਤਰ ਹੈ।
sudo ip -4 route add 198.51.100.20/32 via 192.0.2.1 dev eth0
ip -4 route get 198.51.100.20
sudo wg-quick down wg1
ਰੂਟ ਖੋਜ ਨੂੰ ਟਨਲ ਪਾਰ ਕੀਤੇ ਬਿਨਾਂ ਭੌਤਿਕ ਇੰਟਰਫ਼ੇਸ ਤੋਂ ਐਂਡਪੌਇੰਟ ਹੱਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਇੰਟਰਫ਼ੇਸ ਹੇਠਾਂ ਉਤਾਰਨ ’ਤੇ ਹੋਸਟ ਨੂੰ ਡਿਜ਼ਾਈਨ ਵੱਲੋਂ ਵਾਅਦਾ ਕੀਤੀ ਸਥਿਤੀ ਵਿੱਚ ਹੀ ਰਹਿਣਾ ਚਾਹੀਦਾ ਹੈ। ਬਦਲੀ ਤੋਂ ਬਾਅਦ ਕੰਮ ਕਰਨ ਵਾਲੀ ਪ੍ਰਾਕਸੀ ਸਾਬਤ ਕਰਦੀ ਹੈ ਕਿ ਬਣਾਈ ਗਈ ਹੋਸਟ ਸਥਿਤੀ ਮਹੱਤਵਪੂਰਨ ਸੀ; ਪਰ ਇਹ ਸਾਬਤ ਨਹੀਂ ਕਰਦੀ ਕਿ ਲੂਪ ਰੋਕਥਾਮ ਅਤੇ ਬੰਦ ਸਥਿਤੀ ਦਾ ਵਿਵਹਾਰ ਸੋਧ ਤੋਂ ਬਚ ਗਏ।