ਲੋਡ ਕੀਤਾ strongSwan ਪਰੋਫ਼ਾਈਲ ਸਰਗਰਮ ਟਨਲ ਨਹੀਂ ਹੈ
strongSwan ਪਰਿਭਾਸ਼ਾਵਾਂ ਲੋਡ ਕਰਦਾ ਹੈ ਅਤੇ ਫਿਰ IKE ਤੇ CHILD SA ਉੱਤੇ ਗੱਲਬਾਤ ਕਰਦਾ ਹੈ। ਪਰੋਫ਼ਾਈਲ ਦਾ ਲੋਡ ਹੋਣਾ ਇਹ ਨਹੀਂ ਦੱਸਦਾ ਕਿ ਟਨਲ ਮੌਜੂਦ ਹੈ ਜਾਂ ਇਸ ਨੂੰ ਕੌਣ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ।
strongSwan ਸੰਰਚਨਾ ਵਿੱਚ ਕਿਸੇ ਕਨੈਕਸ਼ਨ ਦੀ ਸੂਚੀ ਬਣਾਉਣਾ ਸਿਰਫ਼ ਇਹ ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਇੱਕ ਪਰਿਭਾਸ਼ਾ ਲੋਡ ਹੋਈ ਹੈ। ਇਸ ਦਾ ਮਤਲਬ ਇਹ ਨਹੀਂ ਕਿ ਸਾਥੀ ਨਾਲ ਸੰਪਰਕ ਕੀਤਾ ਗਿਆ, ਕੋਈ IKE SA ਮੌਜੂਦ ਹੈ ਜਾਂ ਕੋਈ ਟ੍ਰੈਫ਼ਿਕ ਸੁਰੱਖਿਅਤ ਹੈ। ਡੀਮਨ ਪਰਿਭਾਸ਼ਾਵਾਂ ਤੇ ਜੀਵਤ ਐਸੋਸੀਏਸ਼ਨਾਂ ਨੂੰ ਵੱਖਰੀਆਂ ਵਸਤੂਆਂ ਵਜੋਂ ਲੈਂਦਾ ਹੈ, ਅਤੇ ਉਨ੍ਹਾਂ ਵਿਚਕਾਰਲਾ ਫ਼ਾਸਲਾ ਜਾਣ-ਬੁੱਝ ਕੇ ਲਿਆ ਗਿਆ ਡਿਜ਼ਾਈਨ ਫ਼ੈਸਲਾ ਹੈ। ਇਹ ਜਾਣਨਾ ਕਿ ਤੁਸੀਂ ਕਿਹੜੀ ਵਸਤੂ ਜਾਂਚ ਰਹੇ ਹੋ, ਇੱਕ ਧੁੰਦਲੀ ਖ਼ਰਾਬੀ ਨੂੰ ਅਗਲੇ ਠੋਸ ਹੁਕਮ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ।
ਲੋਡ ਕਰਨਾ ਜੁੜਨਾ ਨਹੀਂ ਹੈ
ਲੋਡ ਕੀਤਾ ਕਨੈਕਸ਼ਨ ਇਸ ਗੱਲ ਦਾ ਬਿਆਨ ਹੈ ਕਿ ਅੱਗੇ ਕੀ ਗੱਲਬਾਤ ਹੋ ਸਕਦੀ ਹੈ: ਸਾਥੀ ਦੇ ਪਤੇ, ਪ੍ਰਮਾਣ-ਪੱਤਰ, ਪ੍ਰਸਤਾਵ ਤੇ ਟ੍ਰੈਫ਼ਿਕ ਚੋਣਕਰਤਾ। ਇਸ ਬਿਆਨ ਵਿੱਚ ਕੁਝ ਵੀ ਡੀਮਨ ਦੇ ਕਿਸੇ ਨੂੰ ਫ਼ੋਨ ਕਰਨ ਦੀ ਮੰਗ ਨਹੀਂ ਕਰਦਾ। ਗੇਟਵੇ ਦੂਜੇ ਪਾਸੇ ਦੀ ਉਡੀਕ ਕਰ ਸਕਦਾ ਹੈ, ਸ਼ੁਰੂ ਵਿੱਚ ਆਪ ਪਹਿਲ ਕਰ ਸਕਦਾ ਹੈ ਜਾਂ ਢੁਕਵੇਂ ਟ੍ਰੈਫ਼ਿਕ ਦੇ ਜਾਗਣ ਦੀ ਉਡੀਕ ਕਰ ਸਕਦਾ ਹੈ। ਤਿੰਨੇ ਵੈਧ ਹਨ, ਅਤੇ ਤਿੰਨੇ ਸੰਰਚਨਾ ਫ਼ਾਈਲ ਵਿੱਚ ਸ਼ੁਰੂਆਤ ਦੀ ਨੀਤੀ ਪੜ੍ਹਨ ਤੱਕ ਇੱਕੋ ਜਿਹੇ ਦਿਸਦੇ ਹਨ।
ਆਪਰੇਟਰ ਪਰਿਭਾਸ਼ਾਵਾਂ ਦੀ ਸੂਚੀ ਨੂੰ ਸਥਿਤੀ ਦੀ ਸੂਚੀ ਸਮਝ ਕੇ ਪੜ੍ਹਦੇ ਹੋਏ ਮੁਸੀਬਤ ਵਿੱਚ ਪੈਂਦੇ ਹਨ। ਪਰੋਫ਼ਾਈਲ ਮੌਜੂਦ ਹੈ, ਇਸ ਲਈ ਟਨਲ ਸਰਗਰਮ ਮੰਨੀ ਜਾਂਦੀ ਹੈ, ਅਤੇ ਅਗਲਾ ਘੰਟਾ ਕਦੇ ਨਾ ਬਣੀ ਐਸੋਸੀਏਸ਼ਨ ਦੇ ਰੂਟ ਡੀਬੱਗ ਕਰਨ ਵਿੱਚ ਲੱਗਦਾ ਹੈ।
ਉਲਟੀ ਗ਼ਲਤੀ ਵੀ ਓਨੀ ਹੀ ਆਮ ਹੈ। ਗ਼ਾਇਬ ਪਰੋਫ਼ਾਈਲ ਲੋਕਾਂ ਨੂੰ ਨੈੱਟਵਰਕ ਖ਼ਰਾਬੀ ਲੱਭਣ ਭੇਜਦਾ ਹੈ ਜਦੋਂ ਕਿ ਸੰਰਚਨਾ ਕਦੇ ਲੋਡ ਹੀ ਨਹੀਂ ਹੋਈ ਸੀ। ਵਸਤੂ ਦਾ ਨਾਮ ਦਿਓ ਅਤੇ ਫਿਰ ਉਹ ਹੁਕਮ ਚਲਾਓ ਜੋ ਉਸ ਦੀ ਨਿਗਰਾਨੀ ਕਰਦਾ ਹੈ।
ਤਿੰਨ ਵਸਤੂਆਂ, ਤਿੰਨ ਨਿਗਰਾਨੀਆਂ
strongSwan ਲੋਡ ਕੀਤੀ ਪਰਿਭਾਸ਼ਾ, IKE SA ਅਤੇ CHILD SA ਰੱਖਦਾ ਹੈ। ਪਹਿਲੀ ਸੰਰਚਨਾ ਹੈ, ਦੂਜੀ ਪ੍ਰਮਾਣਿਤ ਨਿਯੰਤਰਣ ਸਬੰਧ ਹੈ ਅਤੇ ਤੀਜੀ ਚੁਣੇ ਟ੍ਰੈਫ਼ਿਕ ਲਈ ਗੱਲਬਾਤ ਕੀਤੀ ਸੁਰੱਖਿਆ ਹੈ। ਉਨ੍ਹਾਂ ਦੇ ਵੱਖਰੇ ਨਾਮ ਵੀ ਹਨ, ਇਸ ਲਈ hq ਨਾਮ ਦਾ ਪਰੋਫ਼ਾਈਲ hq-lan ਨਾਮ ਦਾ child ਰੱਖ ਸਕਦਾ ਹੈ।
ਸਾਰਣੀ ਹਰ ਪਰਤ ਨੂੰ ਉਸ ਹੁਕਮ ਨਾਲ ਜੋੜਦੀ ਹੈ ਜੋ ਉਸ ਨੂੰ ਦਿਖਾਉਂਦਾ ਹੈ। ਲੌਗ ਪੜ੍ਹਨ ਤੋਂ ਪਹਿਲਾਂ ਕਤਾਰ ਪੜ੍ਹੋ।
| Layer | What it contains | Command |
|---|---|---|
| Definition | Peer addresses, credentials, proposals, and traffic selectors | swanctl --list-conns |
| IKE SA | One authenticated control channel to the peer | swanctl --list-sas |
| CHILD SA | Keys and selectors for the traffic being protected | Child rows under the IKE SA |
child ਮੰਗਣਾ ਪਹਿਲਾਂ ਉਸ ਦੀ ਮੂਲ IKE SA ਬਣਾਉਂਦਾ ਹੈ ਜਦੋਂ ਕੋਈ ਨਹੀਂ ਹੁੰਦੀ। ਸਿਰਫ਼ IKE SA ਮੰਗਣਾ ਇੱਕ ਹੋਰ ਕਾਲ ਹੈ। ਠੀਕ ਤਰ੍ਹਾਂ ਪ੍ਰਮਾਣਿਤ ਹੋਣ ਵਾਲਾ ਨਿਯੰਤਰਣ ਚੈਨਲ ਮੰਗੇ child ਦੀ ਗਾਰੰਟੀ ਨਹੀਂ ਦਿੰਦਾ।
ਇਹ ਫ਼ਰਕ ਅੰਸ਼ਿਕ ਖ਼ਰਾਬੀ ਦੌਰਾਨ ਮਹੱਤਵਪੂਰਨ ਹੈ। IKE SA ਤੰਦਰੁਸਤ ਹੋ ਸਕਦਾ ਹੈ ਜਦੋਂ ਕਿ child ਚੋਣਕਰਤਾ ਦੀ ਅਸੰਗਤੀ ਜਾਂ ਸਾਥੀ ਵੱਲੋਂ ਨਾ-ਸਵੀਕਾਰੀ ਪ੍ਰਸਤਾਵ ਕਾਰਨ ਅਸਫਲ ਹੁੰਦਾ ਹੈ। ਦੋਵੇਂ ਵਸਤੂਆਂ ਵੱਖਰੇ ਕਾਰਨਾਂ ਕਰਕੇ ਅਸਫਲ ਹੁੰਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਉਹ ਵੱਖਰੀਆਂ ਨਿਗਰਾਨੀਆਂ ਦੀ ਹੱਕਦਾਰ ਹਨ।
ਸ਼ੁਰੂਆਤ ਦੀ ਕਿਰਿਆ ਜਾਣ-ਬੁੱਝ ਕੇ ਚੁਣੋ
swanctl.conf ਵਿੱਚ child ਦਾ start_action ਲੋਡ ਹੋਣ ਤੋਂ ਬਾਅਦ ਦਾ ਵਿਵਹਾਰ ਤੈਅ ਕਰਦਾ ਹੈ। ਡਿਫ਼ਾਲਟ none ਪਰਿਭਾਸ਼ਾ ਨੂੰ ਹੱਥੀਂ ਸ਼ੁਰੂ ਕਰਨ ਜਾਂ responder ਵਜੋਂ ਵਰਤਣ ਲਈ ਛੱਡ ਦਿੰਦਾ ਹੈ। start ਇਸ ਨੂੰ ਡਾਇਲ ਕਰਦਾ ਹੈ, ਜਦੋਂ ਕਿ trap ਅਜਿਹੀ ਨੀਤੀ ਛੱਡਦਾ ਹੈ ਜੋ ਢੁਕਵਾਂ ਟ੍ਰੈਫ਼ਿਕ ਦਿਸਦਿਆਂ ਹੀ ਗੱਲਬਾਤ ਕਰਦੀ ਹੈ।
ਇਸ ਲਈ «ਲੋਡ ਕਰਨਾ ਕਦੇ ਟਨਲ ਸ਼ੁਰੂ ਨਹੀਂ ਕਰਦਾ» ਅਤੇ «ਲੋਡ ਕਰਨਾ ਹਮੇਸ਼ਾ ਇੱਕ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ» ਦੋਵੇਂ ਗ਼ਲਤ ਹਨ। ਕਿਰਿਆ ਪਰੋਫ਼ਾਈਲ ਦਾ ਹਿੱਸਾ ਹੈ ਅਤੇ ਇਹ ਸਾਥੀ ਦੀ ਭੂਮਿਕਾ ਨਾਲ ਮੇਲ ਖਾਣੀ ਚਾਹੀਦੀ ਹੈ। ਦੋਵੇਂ ਗੇਟਵੇ ਦੂਜੇ ਪਾਸੇ ਦੀ ਉਡੀਕ ਕਰਨ ਤਾਂ ਖ਼ਾਮੋਸ਼ੀ ਪੈਦਾ ਹੁੰਦੀ ਹੈ, ਟਨਲ ਨਹੀਂ।
trap ਨਾਲ ਟ੍ਰੈਫ਼ਿਕ ਨੂੰ ਚੋਣਕਰਤਿਆਂ ਨਾਲ ਮੇਲ ਖਾਣਾ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਅਸੰਬੰਧਿਤ ping ਕੁਝ ਨਹੀਂ ਜਗਾਉਂਦਾ। start ਨਾਲ ਸਾਥੀ ਦਾ ਪਤਾ ਵਰਤੋਂਯੋਗ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਅਤੇ ਦੋਵੇਂ ਧਿਰਾਂ ਨੂੰ ਪ੍ਰਮਾਣੀਕਰਨ ਤੇ ਪ੍ਰਸਤਾਵਾਂ ਉੱਤੇ ਸਹਿਮਤ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਦੋਵਾਂ ਵਿੱਚੋਂ ਕੋਈ ਕਿਰਿਆ ਇਨ੍ਹਾਂ ਸ਼ਰਤਾਂ ਦੀ ਜਾਂਚ ਦੀ ਥਾਂ ਨਹੀਂ ਲੈਂਦੀ।
ਰਿਕਵਰੀ ਇੱਕ ਵੱਖਰੀ ਨੀਤੀ ਹੈ
ਸ਼ੁਰੂਆਤ ਕੋਈ keepalive ਨਹੀਂ ਹੈ। ਮ੍ਰਿਤ ਸਾਥੀ ਦੀ ਪਛਾਣ, ਸਾਥੀ ਵੱਲੋਂ ਸਪੱਸ਼ਟ ਬੰਦੀ, ਕੁੰਜੀਆਂ ਦੀ ਨਵੀਨੀਕਰਨ ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਦੀ ਮੁੜ ਸ਼ੁਰੂਆਤ ਜੀਵਨ-ਚੱਕਰ ਦੀਆਂ ਵੱਖਰੀਆਂ ਘਟਨਾਵਾਂ ਹਨ ਜਿਨ੍ਹਾਂ ਦੀਆਂ ਆਪਣੀਆਂ ਸੈਟਿੰਗਾਂ ਹਨ। ਹਰ ਇੱਕ ਨੂੰ ਜਾਣ-ਬੁੱਝ ਕੇ ਸੰਰਚਿਤ ਕਰੋ, ਸ਼ੁਰੂਆਤੀ ਸ਼ੁਰੂਆਤ ਸਭ ਢੱਕ ਲਵੇਗੀ ਦੀ ਉਮੀਦ ਰੱਖਣ ਦੀ ਬਜਾਏ।
ਬੂਟ ਉੱਤੇ ਉੱਠਣ ਵਾਲੀ ਅਤੇ ਇੱਕ ਘੰਟੇ ਬਾਅਦ ਮਰਨ ਵਾਲੀ ਟਨਲ ਰਿਕਵਰੀ ਦਾ ਸਵਾਲ ਹੈ। ਸ਼ੁਰੂਆਤ ਦੀ ਨੀਤੀ ਨੇ ਆਪਣਾ ਕੰਮ ਕੀਤਾ ਅਤੇ ਫਿਰ ਮਹੱਤਵਪੂਰਨ ਰਹਿਣਾ ਬੰਦ ਕਰ ਦਿੱਤਾ। ਸ਼ੁਰੂਆਤੀ ਗੱਲਬਾਤ ਨੂੰ ਦੋਸ਼ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ DPD ਅਤੇ ਕੁੰਜੀ ਨਵੀਨੀਕਰਨ ਦੀਆਂ ਸੈਟਿੰਗਾਂ ਵੇਖੋ।
ਲੋਡ ਕੀਤੀਆਂ ਪਰਿਭਾਸ਼ਾਵਾਂ ਬਦਲਣਾ ਇੱਕ ਵੱਖਰੀ ਕਾਰਵਾਈ ਹੈ। ਗ਼ੈਰ-ਡਿਫ਼ਾਲਟ ਸ਼ੁਰੂਆਤ ਨੀਤੀਆਂ ਦੇ ਦਸਤਾਵੇਜ਼ੀ ਉਲਟ ਕਾਰਵਾਈਆਂ ਹੁੰਦੀਆਂ ਹਨ, ਅਤੇ ਮੁੜ ਲੋਡ ਕਰਨਾ ਇੱਕ ਕਾਰਜਸ਼ੀਲ ਤਬਦੀਲੀ ਹੈ, ਇਹ ਧਾਰਨਾ ਨਹੀਂ ਕਿ ਹਰ ਐਸੋਸੀਏਸ਼ਨ ਉੱਥੇ ਹੀ ਅੱਪਡੇਟ ਹੋਈ। ਮੁੜ ਲੋਡ ਪੜਾਵਾਂ ਵਿੱਚ ਕਰੋ, ਜਿੱਥੇ ਮੁੜ ਜੁੜਨਾ ਸਵੀਕਾਰਯੋਗ ਹੋਵੇ। ਨਵਾਂ ਸਾਬਤ ਹੋਣ ਤੱਕ ਪੁਰਾਣੀ ਸੰਰਚਨਾ ਰੱਖੋ।
ਰੂਟਿੰਗ ਡੀਬੱਗ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਜਾਂਚੋ ਕਿ ਕੀ ਮੌਜੂਦ ਹੈ
ਤਿੰਨੇ ਨਿਗਰਾਨੀਆਂ ਕ੍ਰਮ ਵਿੱਚ ਕਰੋ: ਲੋਡ ਕੀਤੀਆਂ ਪਰਿਭਾਸ਼ਾਵਾਂ, ਸਰਗਰਮ IKE SA ਅਤੇ child ਐਂਟਰੀਆਂ। ਹਰ ਜਵਾਬ ਅਗਲਾ ਸਵਾਲ ਤੰਗ ਕਰਦਾ ਹੈ। ਇੱਕ ਕਦਮ ਛੱਡੋ ਅਤੇ ਅੰਤ ਵਿੱਚ ਤੁਸੀਂ ਉਸ ਪਰਤ ਨੂੰ ਡੀਬੱਗ ਕਰੋਗੇ ਜੋ ਕਦੇ ਬਣੀ ਹੀ ਨਹੀਂ।
ਉਸ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ ਜੋ ਲੋਡ ਹੈ ਅਤੇ ਜੋ ਸੱਚਮੁੱਚ ਸਥਾਪਿਤ ਹੈ:
swanctl --list-conns
swanctl --list-sas
ਜੇ ਪਰੋਫ਼ਾਈਲ ਸਹੀ ਹੋਣ ਦੇ ਬਾਵਜੂਦ child ਗ਼ਾਇਬ ਹੈ, ਤਾਂ ਇਸ ਨੂੰ ਨਾਮ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ ਅਤੇ ਵੇਖੋ ਕੀ ਹੁੰਦਾ ਹੈ। ਆਉਟਪੁੱਟ ਆਮ ਤੌਰ 'ਤੇ ਦੱਸਦੀ ਹੈ ਕਿ ਮੂਲ ਪਹਿਲਾਂ ਉੱਠੀ ਜਾਂ ਨਹੀਂ।
swanctl --initiate --child hq-lan
ਸਰਗਰਮ CHILD SA ਆਖ਼ਰੀ ਰੇਖਾ ਨਹੀਂ ਹੈ। ਫ਼ਾਰਵਰਡਿੰਗ ਨਿਯਮ, ਰੂਟ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਆਪਣੀ ਅਧਿਕਾਰਤਾ ਨੂੰ ਅਜੇ ਵੀ ਮੇਲ ਖਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੀਵਨ-ਚੱਕਰ ਦੱਸਦਾ ਹੈ ਕਿ ਕਿਸ ਉੱਤੇ ਗੱਲਬਾਤ ਹੋਈ; ਇਹ ਤੈਅ ਨਹੀਂ ਕਰ ਸਕਦਾ ਕਿ ਕੌਣ ਸੇਵਾ ਵਰਤ ਸਕਦਾ ਹੈ।