ਡੁਅਲ-ਸਟੈਕ VPN ਪੂਲ: strongSwan ਵਿੱਚ ਦੋਵੇਂ ਪਰਿਵਾਰਾਂ ਨੂੰ ਸੰਬੋਧਿਤ ਕਰਨਾ
ਅੰਦਰੂਨੀ IPv4 ਅਤੇ IPv6 ਪੂਲ, ਸੁਰੱਖਿਅਤ ਪ੍ਰੀਫਿਕਸ ਅਤੇ ਬਾਹਰੀ ਟਨਲ ਦਾ ਪਰਿਵਾਰ ਤਿੰਨ ਵੱਖਰੇ ਫੈਸਲੇ ਹਨ। ਇਸਨੂੰ ਡੁਅਲ ਸਟੈਕ ਕਹਿਣ ਤੋਂ ਪਹਿਲਾਂ ਹਰ ਇੱਕ ਦੀ ਯੋਜਨਾ ਬਣਾਓ।
ਇੱਕ ਗੇਟਵੇ ਸਫ਼ਰਨਾਮਾ ਵਰਤੋਂਕਾਰ ਨੂੰ IPv4 ਅਤੇ IPv6 ਦੋਵੇਂ ਵਰਚੁਅਲ ਪਤੇ ਦੇ ਸਕਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਬਾਹਰੀ ਟਨਲ ਅਜੇ ਵੀ IPv4 ਉੱਤੇ ਚੱਲਦੀ ਹੈ। ਇਹ ਸੁਤੰਤਰ ਫੈਸਲੇ ਹਨ, ਅਤੇ ਇਹਨਾਂ ਨੂੰ ਇੱਕ ਮੰਨਣਾ ਹੀ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਡੁਅਲ-ਸਟੈਕ ਯੋਜਨਾਵਾਂ ਆਮ ਤੌਰ ’ਤੇ ਢਹਿ ਜਾਂਦੀਆਂ ਹਨ। ਕਲਾਇੰਟ ਦੇ ਅੰਦਰੂਨੀ ਪਰਿਵਾਰ, ਉਹ ਸੁਰੱਖਿਅਤ ਪ੍ਰੀਫਿਕਸ ਜਿੱਥੇ ਤੱਕ ਉਹ ਪਹੁੰਚ ਸਕਦਾ ਹੈ, ਅਤੇ ਐਨਕੈਪਸੂਲੇਸ਼ਨ ਲੈ ਕੇ ਜਾਣ ਵਾਲਾ ਟਰਾਂਸਪੋਰਟ ਤਿੰਨ ਵੱਖਰੀਆਂ ਚੋਣਾਂ ਹਨ।
ਬਹੁਤੀ ਉਲਝਣ ਇਸ ਗੱਲ ਤੋਂ ਆਉਂਦੀ ਹੈ ਕਿ ਡੁਅਲ ਸਟੈਕ ਸ਼ਬਦ ਅਜਿਹੇ ਡਿਜ਼ਾਈਨ ’ਤੇ ਲਾਇਆ ਜਾਂਦਾ ਹੈ ਜੋ ਸਿਰਫ਼ ਇੱਕ ਥਾਂ ਡੁਅਲ ਸਟੈਕ ਹੈ। ਸੇਵਾ ਅੰਦਰੋਂ ਡੁਅਲ ਸਟੈਕ, ਆਪਣੇ ਬਾਹਰੀ ਪਤੇ ’ਤੇ ਸਿੰਗਲ ਸਟੈਕ ਹੋ ਸਕਦੀ ਹੈ, ਅਤੇ ਫਿਰ ਵੀ ਕਲਾਇੰਟਾਂ ਲਈ ਪੂਰੀ ਤਰ੍ਹਾਂ ਠੀਕ ਕੰਮ ਕਰ ਸਕਦੀ ਹੈ। ਜੋ ਇਹ ਨਹੀਂ ਕਰ ਸਕਦੀ, ਉਹ ਹੈ ਸੰਜੋਗ ਨਾਲ ਕੰਮ ਕਰਨਾ।
ਅੰਦਰ ਦੋ ਪਰਿਵਾਰ, ਬਾਹਰ ਇੱਕ ਰਾਹ
ਬਾਹਰੀ ਕਨੈਕਸ਼ਨ UDP ਉੱਤੇ IKE ਹੈ, ਅਤੇ ਇਸਨੂੰ ਕਲਾਇੰਟ ਜਿੱਥੇ ਵੀ ਹੋਵੇ, ਉੱਥੋਂ ਇੱਕ ਪਹੁੰਚਯੋਗ ਪਤਾ-ਪਰਿਵਾਰ ਚਾਹੀਦਾ ਹੈ। ਅੰਦਰੂਨੀ IPv6 ਪਤੇ ਲਈ IPv6 ਸਮਰੱਥ ISP ਦੀ ਲੋੜ ਨਹੀਂ, ਕਿਉਂਕਿ ਅੰਦਰੂਨੀ ਪੈਕੇਟ ਬਾਹਰੀ ਪੈਕੇਟ ਅੰਦਰ ਪੇਲੋਡ ਹੈ। ਬਹੁਤ ਸਾਰੀਆਂ ਕੰਮ ਕਰਨ ਵਾਲੀਆਂ ਤੈਨਾਤੀਆਂ IPv6 ਪ੍ਰੀਫਿਕਸ ਨੂੰ ਸਿਰਫ਼-IPv4 ਅੱਪਲਿੰਕ ਰਾਹੀਂ ਲੈ ਕੇ ਜਾਂਦੀਆਂ ਹਨ।
ਬਾਹਰੀ ਰਾਹ ਅਸਲ ਵਿੱਚ ਜੋ ਸੀਮਿਤ ਕਰਦਾ ਹੈ ਉਹ ਹੈ ਪਹੁੰਚ ਅਤੇ NAT ਟਰੈਵਰਸਲ। ਜੇ ਗੇਟਵੇ ਸਿਰਫ਼ IPv4 ਪਤਾ ਐਲਾਨਦਾ ਹੈ, ਤਾਂ ਸਿਰਫ਼-IPv6 ਨੈੱਟਵਰਕ ’ਤੇ ਕਲਾਇੰਟ ਤੁਸੀਂ ਕਿੰਨੇ ਵੀ ਪੂਲ ਸੰਰਚਿਤ ਕਰੋ, ਬਿਲਕੁਲ ਕਨੈਕਟ ਨਹੀਂ ਕਰ ਸਕਦਾ। ਬਾਹਰੀ ਪਰਿਵਾਰ ਆਪਣੀ ਕਲਾਇੰਟ ਆਬਾਦੀ ਦੇ ਆਧਾਰ ’ਤੇ ਤੈਅ ਕਰੋ, ਅੰਦਰੂਨੀ ਪਤਾ ਯੋਜਨਾ ਦੇ ਆਧਾਰ ’ਤੇ ਨਹੀਂ।
ਹਰ ਪਰਿਵਾਰ ਵਿੱਚ ਕਲਾਇੰਟ ਨੂੰ ਪਤਾ ਦਿਓ
ਦੋਵੇਂ ਪਰਿਵਾਰਾਂ ਦੀ ਬੇਨਤੀ ਕਲਾਇੰਟ ਪਾਸੇ ਇੱਕ ਲਾਈਨ ਦਾ ਬਿਆਨ ਹੈ, ਬਸ਼ਰਤੇ ਗੇਟਵੇ ਕੋਲ ਵੰਡਣ ਲਈ ਕੁਝ ਹੋਵੇ। ਨਾਮਿਤ ਪੂਲ ਸਰੋਤਾਂ ਨੂੰ ਸੇਵਾ ਨੈੱਟਵਰਕਾਂ ਤੋਂ ਵੱਖ ਰੱਖਦੇ ਹਨ, ਅਤੇ ਇਹੀ ਗੁਣ ਛੇ ਮਹੀਨਿਆਂ ਬਾਅਦ ਵੀ ਫਾਇਰਵਾਲ ਨਿਯਮਾਂ ਨੂੰ ਪੜ੍ਹਨਯੋਗ ਬਣਾਉਂਦਾ ਹੈ।
pools {
pool4 { addrs = 10.90.0.0/24 }
pool6 { addrs = fd42:90::/64 }
}
connections {
private-access {
version = 2
pools = pool4, pool6
local { auth = pubkey certs = gateway.pem id = vpn.example.com }
remote { auth = pubkey cacerts = ca.pem vips = 0.0.0.0, :: }
children {
private { local_ts = 10.60.0.0/16, fd42:60::/48 remote_ts = dynamic }
}
}
}
ਇਹ vips ਮੁੱਲ ਹਰ ਪਰਿਵਾਰ ਤੋਂ ਇੱਕ ਪਤਾ ਮੰਗਦਾ ਹੈ, ਅਤੇ ਪੂਲਾਂ ਦੀ ਸੂਚੀ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ ਉਹ ਪਤੇ ਕਿੱਥੋਂ ਆਉਂਦੇ ਹਨ।strongSwan ਦਾ ਵਰਚੁਅਲ-IP ਦਸਤਾਵੇਜ਼ ਕਈ ਬੇਨਤੀਆਂ ਅਤੇ ਪੂਲ ਅਲਾਟਮੈਂਟ ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਇਹ ਗੱਲ ਵੀ ਹੈ ਕਿ ਖਾਸ ਪਤਾ ਮੰਗਣ ਵਾਲਾ ਕਲਾਇੰਟ ਸਿਰਫ਼ ਇੱਕ ਤਰਜੀਹ ਜ਼ਾਹਰ ਕਰਦਾ ਹੈ ਜਿਸਨੂੰ ਜਵਾਬ ਦੇਣ ਵਾਲਾ ਰੱਦ ਕਰ ਸਕਦਾ ਹੈ। ਅਜਿਹਾ ਪਹੁੰਚ ਨਿਯਮ ਨਾ ਬਣਾਓ ਜੋ ਮੰਨਦਾ ਹੈ ਕਿ ਕਲਾਇੰਟ ਨੂੰ ਹਮੇਸ਼ਾ ਉਹੀ ਮੁੱਲ ਮਿਲਦਾ ਹੈ।
ਉਦਾਹਰਨ ਦੀ ਨਕਲ ਕਰਨ ਦੀ ਬਜਾਏ ਆਪਣਾ ਵਿਲੱਖਣ ਸਥਾਨਕ ਪ੍ਰੀਫਿਕਸ ਬਣਾਓ। ਜੋ ਦੋ ਸੰਸਥਾਵਾਂ ਦੋਵੇਂ fd42::/16 ਲਾਗੂ ਕਰਦੀਆਂ ਹਨ, ਉਹਨਾਂ ਨੂੰ ਪਹਿਲੀ ਵਾਰ ਇੱਕ-ਦੂਜੇ ਨਾਲ ਜੁੜਦਿਆਂ ਟਕਰਾਅ ਮਿਲੇਗਾ, ਅਤੇ ਇਸਦਾ ਨਿਦਾਨ ਕਰਨਾ ਸੁਖਦ ਨਹੀਂ।
ਚੋਣਕਾਰ ਮੰਜ਼ਿਲਾਂ ਦਾ ਵਰਣਨ ਕਰਦੇ ਹਨ, ਸਰੋਤਾਂ ਦਾ ਨਹੀਂ
ਚਾਈਲਡ SA ਦੇ ਸਥਾਨਕ ਟਰੈਫਿਕ ਚੋਣਕਾਰ ਦੱਸਦੇ ਹਨ ਕਿ ਗੇਟਵੇ ਪਿੱਛੇ ਕਿਹੜੇ ਸੁਰੱਖਿਅਤ ਨੈੱਟਵਰਕ ਹਨ, ਅਤੇ ਦੂਰ ਦੇ ਚੋਣਕਾਰ ਵਰਣਨ ਕਰਦੇ ਹਨ ਕਿ ਕਲਾਇੰਟ ਸਰੋਤ ਵਜੋਂ ਕੀ ਵਰਤ ਸਕਦਾ ਹੈ। ਵਰਚੁਅਲ ਪੂਲ ਪਤਾ ਉਸ ਨੀਤੀ ਦੇ ਸਰੋਤ ਪਾਸੇ ਦਾ ਹੈ; ਇਸਨੂੰ ਮੰਜ਼ਿਲ ਸੂਚੀ ਵਿੱਚ ਰੱਖਣਾ ਸੰਰਚਨਾ ਦੀ ਆਮ ਗਲਤ ਪੜ੍ਹਤ ਹੈ।
ਦੋਵੇਂ ਪਰਿਵਾਰਾਂ ਨੂੰ ਗੇਟਵੇ ’ਤੇ ਵਾਪਸੀ ਰਾਹ ਅਤੇ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਫਾਰਵਰਡਿੰਗ ਚਾਹੀਦੀ ਹੈ। ਪੂਲ ਵੱਲ ਵਾਪਸੀ ਰਾਹ ਤੋਂ ਬਿਨਾਂ ਚੋਣਕਾਰ ਵਿੱਚ ਪ੍ਰੀਫਿਕਸ ਜੋੜਨ ਨਾਲ ਅਜਿਹੀ ਟਨਲ ਬਣਦੀ ਹੈ ਜੋ ਸਥਾਪਿਤ ਹੁੰਦੀ ਹੈ, ਟਰੈਫਿਕ ਦੀ ਇੱਕ ਦਿਸ਼ਾ ਪਾਰ ਕਰਦੀ ਹੈ ਅਤੇ ਜਵਾਬ ਚੁੱਪਚਾਪ ਸੁੱਟ ਦਿੰਦੀ ਹੈ। ਚੋਣਕਾਰ ਨੀਤੀ ਹੈ, ਰਾਊਟਿੰਗ ਨਹੀਂ।
ਪੂਲ ਅਤੇ ਸੇਵਾ ਪ੍ਰੀਫਿਕਸ ਨੂੰ ਆਪਣੀ ਪਤਾ ਯੋਜਨਾ ਦੇ ਵੱਖਰੇ ਬਲਾਕਾਂ ਵਿੱਚ ਰੱਖੋ। ਜਦੋਂ ਉਹ ਓਵਰਲੈਪ ਹੁੰਦੇ ਹਨ, ਤਾਂ ਸੁਰੱਖਿਅਤ ਹੋਸਟ ਤੱਕ ਪਹੁੰਚਣ ਵਾਲਾ ਰਾਹ ਪੂਲ ਪਤੇ ਨਾਲ ਮੇਲ ਖਾ ਕੇ ਟਨਲ ਵਿੱਚ ਗਾਇਬ ਹੋ ਸਕਦਾ ਹੈ।
DNS ਅਤੇ ਜਵਾਬ ਦਾ ਰਾਹ ਤੈਅ ਕਰਦੇ ਹਨ ਕਿ ਇਹ ਪੂਰਾ ਲੱਗਦਾ ਹੈ ਜਾਂ ਨਹੀਂ
ਰਿਜ਼ੌਲਵਰ ਦੇ ਜਵਾਬ ਰਿਜ਼ੌਲਵਰ ਤੱਕ ਪਹੁੰਚਣ ਲਈ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਟਰਾਂਸਪੋਰਟ ਤੋਂ ਸੁਤੰਤਰ ਹਨ। ਇੱਕ ਨਾਮ A ਰਿਕਾਰਡ, AAAA ਰਿਕਾਰਡ ਜਾਂ ਦੋਵੇਂ ਵਾਪਸ ਕਰ ਸਕਦਾ ਹੈ, ਅਤੇ ਕਲਾਇੰਟ ਆਪਣੇ ਤਰਜੀਹ ਨਿਯਮਾਂ ਅਨੁਸਾਰ ਚੁਣਦਾ ਹੈ। ਜੇ ਕੋਈ ਅੰਦਰੂਨੀ ਸੇਵਾ AAAA ਰਿਕਾਰਡ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਦੀ ਹੈ ਪਰ ਉਸ ਪ੍ਰੀਫਿਕਸ ਨੂੰ ਕੋਈ ਰਾਊਟ ਨਹੀਂ ਕਰਦਾ, ਤਾਂ ਡੁਅਲ-ਸਟੈਕ ਨੈੱਟਵਰਕਾਂ ਦੇ ਕਲਾਇੰਟ ਪਹਿਲਾਂ IPv6 ਰਾਹ ਅਜ਼ਮਾਉਣਗੇ ਅਤੇ ਅਸਫਲ ਹੋਣ ਤੱਕ ਉੱਥੇ ਹੀ ਬੈਠੇ ਰਹਿਣਗੇ। ਉਦੋਂ ਟਨਲ ਸੰਰਚਨਾ ਵਿੱਚ ਕੁਝ ਵੀ ਗਲਤ ਨਹੀਂ ਦਿਸਦਾ।
ਇਸ ਲਈ ਹਰ ਨਾਮ ਲਈ ਤੈਅ ਕਰੋ ਕਿ ਕਿਹੜੇ ਪਰਿਵਾਰ ਵਰਤੋਂਯੋਗ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ, ਫਿਰ ਜਾਂਚੋ ਕਿ ਸੰਬੰਧਿਤ ਪ੍ਰੀਫਿਕਸ ਚੋਣਕਾਰ ਵਿੱਚ ਹੈ ਅਤੇ ਇਸਦਾ ਵਾਪਸੀ ਰਾਹ ਹੈ। ਇਹ ਸੇਵਾ-ਪ੍ਰਤੀ-ਸੇਵਾ ਫੈਸਲਾ ਹੈ। ਦੋਵੇਂ ਕਿਸਮਾਂ ਦੇ ਰਿਕਾਰਡ ਬਿਨਾਂ ਭੇਦਭਾਵ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਨਾ ਹੀ ਉਹ ਤਰੀਕਾ ਹੈ ਜਿਸ ਨਾਲ ਕੰਮ ਕਰਦੀ ਸਿਰਫ਼-IPv4 ਸੇਵਾ ਆਪਣੇ ਅੱਧੇ ਵਰਤੋਂਕਾਰਾਂ ਲਈ ਸਮਾਂ-ਸਮਾਪਤ ਹੋਣ ਲੱਗਦੀ ਹੈ।
ਇਸਨੂੰ ਪੂਰਾ ਕਹਿਣ ਤੋਂ ਪਹਿਲਾਂ ਦੋਵੇਂ ਪਰਿਵਾਰ ਪ੍ਰਮਾਣਿਤ ਕਰੋ
ਲੋਡ ਹੋਣ ਵਾਲੀ ਸੰਰਚਨਾ ਕੰਮ ਕਰਨ ਵਾਲੀ ਸੰਰਚਨਾ ਨਹੀਂ ਹੈ। ਡੀਮਨ ਜੋ ਸਥਿਤੀ ਦੱਸਦਾ ਹੈ ਉਹ ਪੜ੍ਹੋ, ਪੂਲ ਅਲਾਟਮੈਂਟ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ, ਫਿਰ ਉਹ ਰਾਹ ਵੇਖੋ ਜੋ ਕਲਾਇੰਟ ਨੇ ਅਸਲ ਵਿੱਚ ਸਥਾਪਿਤ ਕੀਤੇ।
swanctl --list-sas
swanctl --list-pools
ip -6 addr show scope global
ip -6 route get fd42:60::10
ਪਹਿਲੇ ਦੋ ਆਦੇਸ਼ ਸਥਾਪਿਤ ਚਾਈਲਡ SA ਅਤੇ ਇਹ ਦਿਖਾਉਂਦੇ ਹਨ ਕਿ ਕਿਹੜੇ ਪੂਲਾਂ ਵਿੱਚ ਅਜੇ ਪਤੇ ਉਪਲਬਧ ਹਨ, ਜਿਸ ਨਾਲ ਉਹ ਯੋਜਨਾ ਦਿਸਣ ਲੱਗਦੀ ਹੈ ਜੋ ਪਹਿਲੇ ਕਲਾਇੰਟ ਲਈ ਕੰਮ ਕਰਦੀ ਹੈ ਅਤੇ ਦਸਵੇਂ ’ਤੇ ਅਸਫਲ ਹੁੰਦੀ ਹੈ। ਆਖਰੀ ਦੋ ਦਿਖਾਉਂਦੇ ਹਨ ਕਿ ਕਲਾਇੰਟ ਨੂੰ ਪੂਲ ਤੋਂ ਵਿਸ਼ਵਵਿਆਪੀ IPv6 ਪਤਾ ਮਿਲਿਆ ਜਾਂ ਨਹੀਂ ਅਤੇ ਸੁਰੱਖਿਅਤ ਪ੍ਰੀਫਿਕਸ ਵੱਲ ਟਰੈਫਿਕ ਅਸਲ ਵਿੱਚ ਕਿੱਥੇ ਜਾਵੇਗਾ। ਨਿਰਧਾਰਿਤ ਪਤੇ ਦੀ ਤੁਲਨਾ ਆਪਣੇ ਸੰਰਚਿਤ ਪੂਲ ਨਾਲ ਕਰੋ, ਉਸ ਪਤੇ ਨਾਲ ਨਹੀਂ ਜਿਸਦੀ ਤੁਸੀਂ ਆਸ ਕੀਤੀ ਸੀ। ਜੇ ਜਵਾਬ ਦੇਣ ਵਾਲੇ ਨੇ ਆਪਣੀ ਨੀਤੀ ਅਨੁਸਾਰ ਵੱਖਰਾ ਮੁੱਲ ਚੁਣਿਆ, ਤਾਂ ਰਾਹ ਅਤੇ ਫਾਇਰਵਾਲ ਨਿਯਮ ਅਜੇ ਵੀ ਉਸਦੀ ਚੋਣ ਨਾਲ ਮੇਲ ਖਾਣੇ ਚਾਹੀਦੇ ਹਨ।
ਫਿਰ ਹਰ ਪਰਿਵਾਰ ਲਈ ਇੱਕ ਸੁਰੱਖਿਅਤ ਹੋਸਟ, ਅਤੇ ਦੋਵਾਂ ਵਿੱਚ ਰਿਜ਼ੌਲਵ ਹੋਣ ਵਾਲਾ ਨਾਮ ਪਰਖੋ। ਇੱਕ ਪਰਿਵਾਰ ਦਾ ਟੈਸਟ ਤੁਹਾਨੂੰ ਉਸ ਅੱਧੀ ਯੋਜਨਾ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਦੱਸਦਾ ਜਿਸਦਾ ਤੁਸੀਂ ਅਭਿਆਸ ਨਹੀਂ ਕੀਤਾ, ਅਤੇ ਗੁੰਮ ਰਾਹ ਆਮ ਤੌਰ ’ਤੇ ਉਸੇ ਅੱਧ ਵਿੱਚ ਹੁੰਦਾ ਹੈ।