PPTP ਸਪਲਿਟ ਟਨਲਿੰਗ ਕੰਮ ਨਹੀਂ ਕਰ ਰਹੀ: ਪਹਿਲਾਂ GRE ਮਾਰਗ ਠੀਕ ਕਰੋ
PPTP ਸਪਲਿਟ ਟਨਲਿੰਗ ਦੋ ਵੱਖਰੇ ਕਾਰਨਾਂ ਕਰਕੇ ਫੇਲ ਹੁੰਦੀ ਹੈ: GRE ਬਲਾਕ ਹੈ ਜਾਂ ਅੰਦਰੂਨੀ ਮਾਰਗ ਗੁੰਮ ਹੈ। ਪਹਿਲਾਂ ਆਵਾਜਾਈ ਜਾਂਚੋ, ਫਿਰ ਨੀਤੀ।
PPTP ਕਨੈਕਸ਼ਨ ਉੱਪਰ ਆਉਂਦਾ ਵੇਖੋ ਅਤੇ ਇਹ ਮੰਨਣਾ ਸੌਖਾ ਹੈ ਕਿ ਮੁਸ਼ਕਲ ਹਿੱਸਾ ਮੁੱਕ ਗਿਆ: ਕਲਾਇੰਟ ਪ੍ਰਮਾਣਿਕਤਾ ਕਰਦਾ ਹੈ, ppp0 ਅਡੈਪਟਰ ਜਾਂ WAN Miniport ਦਿਖਦਾ ਹੈ, ਅਤੇ ਸਥਿਤੀ ਵਿੰਡੋ ਹਰੀ ਹੋ ਜਾਂਦੀ ਹੈ। ਫਿਰ ਅੰਦਰੂਨੀ ਹੋਸਟ ਲਈ ਪਹਿਲੀ ਬੇਨਤੀ ਸਮਾਂ ਸੀਮਾ ਲੰਘ ਜਾਂਦੀ ਹੈ, ਅਤੇ ਪਰੋਫਾਈਲ ਨੂੰ ਦੋਸ਼ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਅਮਲ ਵਿੱਚ ਦੋ ਸੁਤੰਤਰ ਪਰਤਾਂ ਸਾਫ਼ ਕਰਨੀਆਂ ਹੁੰਦੀਆਂ ਹਨ: ਬਾਹਰੀ ਆਵਾਜਾਈ ਜੋ TCP 1723 ਅਤੇ GRE ਢੋਂਦੀ ਹੈ, ਅਤੇ ਅੰਦਰੂਨੀ ਨੀਤੀ ਜੋ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ ਕਿਹੜੇ ਟਿਕਾਣੇ PPP ਇੰਟਰਫੇਸ ਵਰਤਦੇ ਹਨ। ਹਰੀ ਸਥਿਤੀ ਸਿਰਫ਼ ਇਹ ਸਾਬਤ ਕਰਦੀ ਹੈ ਕਿ ਪਹਿਲੀ ਪਰਤ ਨੇ ਗੱਲਬਾਤ ਕੀਤੀ; ਦੂਜੀ ਬਾਰੇ ਇਹ ਕੁਝ ਨਹੀਂ ਕਹਿੰਦੀ।
ਪਰੋਫਾਈਲ ਤੋਂ ਕੰਟਰੋਲ ਸਾਕਟ ਤੱਕ ਕਲਾਇੰਟ ਦਾ ਪਿੱਛਾ ਕਰੋ
ਕਲਾਇੰਟ ਲੌਗ ਖੋਲ੍ਹੋ ਅਤੇ ਉਹ ਬਿੰਦੂ ਲੱਭੋ ਜਿੱਥੇ ਇਹ ਸਰਵਰ ਨਾਲ ਸੰਪਰਕ ਕਰਦਾ ਹੈ। PPTP ਪਹਿਲਾਂ ਪੋਰਟ 1723 ਉੱਤੇ TCP ਕਨੈਕਸ਼ਨ ਖੋਲ੍ਹਦਾ ਹੈ ਅਤੇ ਉਸ ਚੈਨਲ ਉੱਤੇ ਟਨਲ ਪੈਰਾਮੀਟਰਾਂ ਦੀ ਗੱਲਬਾਤ ਕਰਦਾ ਹੈ। ਜੇ ਇਹ ਕਦਮ ਫੇਲ ਹੋਵੇ, ਤਾਂ ਅੱਗੇ ਕੁਝ ਵੀ ਮਹੱਤਵਪੂਰਨ ਨਹੀਂ, ਅਤੇ ਗਲਤੀ ਆਮ ਤੌਰ ’ਤੇ ਸਰਵਰ ਪਤਾ ਜਾਂ ਸਮਾਂ ਸੀਮਾ ਦੱਸਦੀ ਹੈ।
ਕਿਸੇ ਵੀ ਮਾਰਗ ਨੂੰ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਤਾਰ ਉੱਤੇ ਕੰਟਰੋਲ ਕਨੈਕਸ਼ਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ। ਕਲਾਇੰਟ ਉੱਤੇ ਜਾਂ ਮਿਰਰ ਪੋਰਟ ਉੱਤੇ, ਇੱਕ ਕਨੈਕਸ਼ਨ ਕੋਸ਼ਿਸ਼ ਲਈ TCP 1723 ਕੈਪਚਰ ਕਰੋ:
sudo tcpdump -ni any 'tcp port 1723' -c 20
ਪੂਰਾ ਹੋਇਆ ਹੈਂਡਸ਼ੇਕ ਅਤੇ ਸਥਾਪਿਤ ਸੈਸ਼ਨ ਦਾ ਅਰਥ ਹੈ ਕਿ ਬਾਹਰੀ ਕੰਟਰੋਲ ਚੈਨਲ ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ। ਜੋ SYN ਕਦੇ SYN-ACK ਨਹੀਂ ਪਾਉਂਦਾ ਉਹ ਫਾਇਰਵਾਲ, ਗਲਤ ਸਰਵਰ ਪਤਾ ਜਾਂ ਪੋਰਟ ਫਿਲਟਰ ਕਰਨ ਵਾਲੇ ਪ੍ਰਦਾਤਾ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ। ਹੈਂਡਸ਼ੇਕ ਤੋਂ ਤੁਰੰਤ ਬਾਅਦ ਰੀਸੈਟ ਆਉਣਾ ਅਕਸਰ ਇਹ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਸਰਵਰ ਨੇ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਜਾਂ ਟਨਲ ਕਿਸਮ ਰੱਦ ਕਰ ਦਿੱਤੀ।
GRE ਦੂਜਾ ਪ੍ਰੋਟੋਕੋਲ ਹੈ, ਪੋਰਟ ਨਹੀਂ
PPTP PPP ਪੇਲੋਡ ਨੂੰ ਵਿਸਤ੍ਰਿਤ GRE, IP ਪ੍ਰੋਟੋਕੋਲ 47 ਅੰਦਰ ਢੋਂਦਾ ਹੈ, ਜਿਸਦਾ ਕੋਈ ਪੋਰਟ ਨੰਬਰ ਨਹੀਂ ਜਿਸਨੂੰ ਰਾਊਟਰ ਟ੍ਰੈਕ ਕਰ ਸਕੇ। ਇਸੇ ਲਈ TCP 1723 ਦੀ ਆਗਿਆ ਦੇਣ ਵਾਲਾ ਨਿਯਮ ਵੀ ਟਨਲ ਨੂੰ ਡੇਟਾ ਮਾਰਗ ਤੋਂ ਬਿਨਾਂ ਛੱਡ ਸਕਦਾ ਹੈ। ਸਟੇਟਫੁਲ NAT ਡਿਵਾਈਸਾਂ ਨੂੰ ਜਵਾਬ ਵਾਪਸ ਮੈਪ ਕਰਨ ਲਈ GRE ਅੰਦਰਲੀ ਕਾਲ ID ਸਮਝਣੀ ਪੈਂਦੀ ਹੈ, ਅਤੇ ਬਹੁਤ ਸਾਰੇ ਅਜਿਹਾ ਨਹੀਂ ਕਰਦੇ। PPTP ਵਿਸ਼ੇਸ਼ਣ ਕੰਟਰੋਲ ਚੈਨਲ ਅਤੇ GRE ਪੇਲੋਡ ਨੂੰ ਵੱਖਰੇ ਹਿੱਸਿਆਂ ਵਜੋਂ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਤੁਹਾਡੀ ਟੈਸਟ ਯੋਜਨਾ ਵੀ ਉਹੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।
ਉਸੇ ਕੈਪਚਰ ਵਿੱਚ ਪ੍ਰੋਟੋਕੋਲ 47 ਵੇਖੋ, ਫਿਰ ਬਾਹਰ ਜਾਣ ਵਾਲੇ ਦੀ ਵਾਪਸ ਆਉਣ ਵਾਲੇ ਨਾਲ ਤੁਲਨਾ ਕਰੋ:
sudo tcpdump -ni any 'proto gre' -c 20
TCP 1723 ਤੰਦਰੁਸਤ ਰਹਿੰਦਿਆਂ ਜਵਾਬ ਤੋਂ ਬਿਨਾਂ ਬਾਹਰ ਜਾਣ ਵਾਲੇ ਪੈਕਟ ਬਲਾਕ ਹੋਏ GRE ਦਾ ਕਲਾਸਿਕ ਚਿੰਨ੍ਹ ਹਨ। ਖਪਤਕਾਰ ਰਾਊਟਰ ਉੱਤੇ PPTP ਪਾਸਥਰੂ ਉਸ ਖਾਸ ਫਰਮਵੇਅਰ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ, ਇਸ ਲਈ ਕੰਮ ਕਰਦਾ ਹੋਟਲ ਨੈੱਟਵਰਕ ਅਗਲੇ ਬਾਰੇ ਕੁਝ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ। ਜੇ ਰਾਊਟਰ ਪਾਸਥਰੂ ਨਹੀਂ ਦਿੰਦਾ ਅਤੇ ਤੁਸੀਂ ਇਸਨੂੰ ਬਦਲ ਨਹੀਂ ਸਕਦੇ, ਤਾਂ ਸਮੱਸਿਆ ਰੂਟ ਟੇਬਲ ਨਹੀਂ, ਪ੍ਰੋਟੋਕੋਲ ਦੀ ਚੋਣ ਹੈ।
ਸਾਬਤ ਕਰੋ ਕਿ ਟਨਲ ਇੱਕ ਪੈਕਟ ਹਿਲਾਉਂਦੀ ਹੈ
GRE ਵਗਣਾ ਸ਼ੁਰੂ ਹੋਣ ਪਰ PPP ਗੱਲਬਾਤ ਕਲਾਇੰਟ ਇੰਟਰਫੇਸ ਨੂੰ ਪਤਾ ਦਿੰਦੀ ਹੈ। ਮੰਨਣ ਦੀ ਬਜਾਏ ਨਿਯੁਕਤੀ ਪੜ੍ਹੋ:
ip -4 addr show ppp0
ਪੁਆਇੰਟ-ਟੂ-ਪੁਆਇੰਟ ਲਿੰਕ ਦੇ ਟਿਕਾਣੇ ਵਜੋਂ ਦਿਖਾਏ ਪੀਅਰ ਪਤੇ ਉੱਤੇ ਪਿੰਗ ਕਰੋ। ਇਸ ਪੜਾਅ ਉੱਤੇ ਜਵਾਬ ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਐਨਕੈਪਸੂਲੇਟਿਡ ਮਾਰਗ ਸ਼ੁਰੂ ਤੋਂ ਅੰਤ ਤੱਕ ਕੰਮ ਕਰਦਾ ਹੈ ਅਤੇ ਸਰਵਰ ਟਨਲ ਦੇ ਅੰਦਰ ਜਵਾਬ ਦਿੰਦਾ ਹੈ। ਜੇ ਪੀਅਰ ਜਵਾਬ ਦਿੰਦਾ ਹੈ ਪਰ ਅੰਦਰੂਨੀ ਹੋਸਟ ਨਹੀਂ, ਤਾਂ ਬਾਹਰੀ ਆਵਾਜਾਈ ਠੀਕ ਹੈ ਅਤੇ ਫੇਲ੍ਹਤਾ ਅੰਦਰ ਚਲੀ ਗਈ ਹੈ।
ਕੋਈ ਵੀ ਸਪਲਿਟ ਮਾਰਗ ਜੋੜਨ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਕਰੋ। ਆਵਾਜਾਈ ਟੁੱਟੀ ਹੋਣ ਵੇਲੇ ਕੀਤਾ ਮਾਰਗ ਬਦਲਾਅ ਦੂਜਾ ਚਲ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਪਹਿਲਾ ਲੁਕਾਉਂਦਾ ਹੈ।
ਸਪਲਿਟ ਨੀਤੀ ਲਿਖੋ, DNS ਸਮੇਤ
ਸਪਲਿਟ ਰਾਊਟਿੰਗ ਫੈਸਲਿਆਂ ਦੀ ਸੂਚੀ ਹੈ, ਚੈੱਕਬਾਕਸ ਨਹੀਂ। ਟਨਲ ਪਾਰ ਕਰਨ ਵਾਲੇ ਹਰ ਪ੍ਰਾਈਵੇਟ ਪ੍ਰੀਫਿਕਸ ਨੂੰ PPP ਇੰਟਰਫੇਸ ਰਾਹੀਂ ਮਾਰਗ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਸਥਾਨਕ ਰਹਿਣ ਵਾਲੇ ਹਰ ਪ੍ਰੀਫਿਕਸ ਦਾ ਉਹ ਮਾਰਗ ਉਸ ਵਿੱਚ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ। ਕਿਸੇ ਐਪਲੀਕੇਸ਼ਨ ਸਬਨੈੱਟ ਲਈ ਉਸਦੇ ਪ੍ਰਾਈਵੇਟ ਰਿਜ਼ੌਲਵਰ ਤੱਕ ਮਿਲਦਾ ਮਾਰਗ ਤੋਂ ਬਿਨਾਂ ਮਾਰਗ ਬਣਾਉਣਾ ਟੁੱਟੀ ਐਪ ਵਰਗਾ ਦਿਸਦਾ ਰੁਕਾਵਟ ਪੈਦਾ ਕਰਨ ਦਾ ਆਮ ਤਰੀਕਾ ਹੈ।
ਹਰ ਸ਼੍ਰੇਣੀ ਵਿੱਚ ਇੱਕ ਪਤੇ ਲਈ ਕਰਨਲ ਜੋ ਫੈਸਲਾ ਲੈਂਦਾ ਹੈ ਉਸਦੀ ਜਾਂਚ ਕਰੋ:
ip route get 10.20.5.10
ip route get 203.0.113.25
ਪਹਿਲੇ ਨੂੰ ppp0 ਅਤੇ ਦੂਜੇ ਨੂੰ ਆਮ ਗੇਟਵੇ ਦੱਸਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੇ ਦੋਵੇਂ ਇੱਕੋ ਇੰਟਰਫੇਸ ਦੱਸਣ, ਤਾਂ ਨੀਤੀ ਬਿਲਕੁਲ ਸਪਲਿਟ ਨਹੀਂ ਹੈ। DNS ਸਰਵਰ ਦਾ ਆਪਣਾ ਪਤਾ ਟਨਲ ਸੂਚੀ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ, ਨਹੀਂ ਤਾਂ ਅੰਦਰੂਨੀ ਹੋਸਟ ਲਈ ਨਾਮ ਹੱਲ ਸਥਾਨਕ ਰਿਜ਼ੌਲਵਰ ਰਾਹੀਂ ਬਾਹਰ ਜਾਂਦਾ ਹੈ ਅਤੇ ਕੰਮ ਦਾ ਕੁਝ ਵਾਪਸ ਨਹੀਂ ਲਿਆਉਂਦਾ।
ਪੰਜ ਕਦਮਾਂ ਵਿੱਚ ਦੁਹਰਾਉਣ ਯੋਗ ਜਾਂਚ
ਪਰਤਾਂ ਕ੍ਰਮ ਵਿੱਚ ਚਲਾਓ ਅਤੇ ਪਹਿਲੀ ਫੇਲ੍ਹ ਹੋਣ ਵਾਲੀ ਉੱਤੇ ਰੁਕੋ: ਕੰਟਰੋਲ ਚੈਨਲ, GRE ਦਿੱਖ, PPP ਪੀਅਰ ਦਾ ਜਵਾਬ, ਇੱਕ ਅੰਦਰੂਨੀ ਪਤੇ ਲਈ ਸਪਲਿਟ ਮਾਰਗ, ਅਤੇ ਟਨਲ ਉੱਤੇ ਐਪਲੀਕੇਸ਼ਨ ਬੇਨਤੀ। ਹਰ ਕਦਮ ਦਾ ਆਪਣਾ ਹੁਕਮ ਹੈ, ਇਸ ਲਈ ਫੇਲ੍ਹਤਾ ਰਹੱਸਮਈ ਨਹੀਂ ਸਗੋਂ ਨਿਰਧਾਰਤ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।
Linux ਕਲਾਇੰਟ ਲਈ ਸੰਕੇਪਤ ਸੰਸਕਰਣ ਇਸ ਤਰ੍ਹਾਂ ਦਿਸਦਾ ਹੈ:
sudo tcpdump -ni any 'tcp port 1723 or proto gre' -c 40
ip -4 addr show ppp0
ping -c 3 192.0.2.1
ip route get 10.20.5.10
Windows ਵਿੱਚ ਉਹੀ ਕ੍ਰਮ route print ਅਤੇ ਕਲਾਇੰਟ ਵਿੱਚ ਦਿਖਾਈ ਦੇਣ ਵਾਲੀ ਅਡੈਪਟਰ ਸਥਿਤੀ ਨਾਲ ਲਾਗੂ ਹੁੰਦਾ ਹੈ। PPTP ਪੁਰਾਣਾ ਪ੍ਰੋਟੋਕੋਲ ਹੈ, ਅਤੇ ਜੇ ਸਰਵਰ SSTP ਜਾਂ IKEv2 ਦਿੰਦਾ ਹੈ, ਤਾਂ ਹਰ ਹੌਪ ਉੱਤੇ ਪ੍ਰੋਟੋਕੋਲ 47 ਲੰਘਣ ’ਤੇ ਨਿਰਭਰ ਮਾਰਗ ਨੂੰ ਟਿਊਨ ਕਰਨ ਨਾਲੋਂ ਹਿਲਣਾ ਆਮ ਤੌਰ ’ਤੇ ਸਮੇਂ ਦੀ ਬਿਹਤਰ ਵਰਤੋਂ ਹੈ। ਪੁਰਾਣੀ ਪਰੋਫਾਈਲ ਨੂੰ ਨਵੀਂ ਰਿਲੀਜ਼ ਵਿੱਚ ਕਾਪੀ ਕਰਨ ਦੀ ਬਜਾਏ ਬਦਲ ਦਾ ਸਰਟੀਫਿਕੇਟ ਅਤੇ ਪ੍ਰਮਾਣਿਕਤਾ ਇਕਰਾਰਨਾਮਾ ਜਾਂਚੋ।