OpenVPN ਵਿੱਚ persist-tun ਅਤੇ persist-key ਅਸਲ ਵਿੱਚ ਕੀ ਬਚਾਉਂਦੇ ਹਨ
ਦੋਵੇਂ ਵਿਕਲਪ ਜੀਵਤ ਪ੍ਰਕਿਰਿਆ ਦੇ ਅੰਦਰ ਨਰਮ ਰੀਸਟਾਰਟ ਕਵਰ ਕਰਦੇ ਹਨ। ਉਹ ਰੋਕਣ ਤੋਂ ਬਾਅਦ ਇੰਟਰਫੇਸ ਨਹੀਂ ਰੱਖਦੇ, ਅਤੇ ਉਹ ਟ੍ਰੈਫਿਕ ਰੋਕਣ ਦੀ ਨੀਤੀ ਨਹੀਂ ਹਨ।
ਸੇਵਾ ਰੋਕਣ ਨਾਲ persist-tun ਸੈੱਟ ਹੋਣ 'ਤੇ ਵੀ ਇੰਟਰਫੇਸ ਹਟ ਜਾਂਦਾ ਹੈ। ਇਹ ਵਿਕਲਪ ਦਸਤਾਵੇਜ਼ ਮੁਤਾਬਕ ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ, ਨਾਕਾਮੀ ਨਹੀਂ। ਵਿਕਲਪ ਚੱਲ ਰਹੀ ਪ੍ਰਕਿਰਿਆ ਅੰਦਰ ਇੱਕ ਰੀਸਟਾਰਟ ਮਾਰਗ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ, ਅਤੇ systemctl stop ਉਹ ਮਾਰਗ ਨਹੀਂ ਹੈ।
ਦੋਵੇਂ ਨਾਮ ਇਕੱਠੇ ਪੜ੍ਹੋ ਅਤੇ ਡਿਜ਼ਾਈਨ ਸਪਸ਼ਟ ਹੋ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਡਿਸਕ੍ਰਿਪਟਰ ਰੱਖਦਾ ਹੈ, ਦੂਜਾ ਕੁੰਜੀ ਸਮੱਗਰੀ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਦੋਵੇਂ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਛੱਡਣ ਤੋਂ ਬਾਅਦ ਜੋ ਹੁੰਦਾ ਹੈ ਉਸ ਕਾਰਨ ਮੌਜੂਦ ਹਨ।
ਦੋ ਸਰੋਤ ਅਤੇ ਉਹ ਰੀਸੈਟ ਜਿਸ ਨਾਲ ਉਹ ਸੰਬੰਧਿਤ ਹਨ
OpenVPN ਦੋ ਆਮ ਸਥਿਤੀਆਂ ਵਿੱਚ ਆਪਣੇ ਰੀਸਟਾਰਟ ਦਾ ਸੰਕੇਤ ਦਿੰਦਾ ਹੈ। ਸਪਸ਼ਟ SIGUSR1 ਇਹ ਕਰਦਾ ਹੈ, ਅਤੇ ਮਰੇ ਸਾਥੀ ਵੱਲੋਂ ਟ੍ਰਿਗਰ ਕੀਤਾ ping-restart ਵੀ ਇਹੀ ਕਰਦਾ ਹੈ। ਦੋਵੇਂ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਜੀਵਤ ਰੱਖਦੇ ਹਨ ਅਤੇ ਕਨੈਕਸ਼ਨ ਸੈੱਟਅਪ ਦੁਬਾਰਾ ਚਲਾਉਂਦੇ ਹਨ, ਅਤੇ ਉੱਥੇ ਹੀ ਵਿਕਲਪ ਆਪਣੀ ਥਾਂ ਕਮਾਉਂਦੇ ਹਨ।
| Event | TUN/TAP device | Key and auth files | Addresses and routes | up/down hooks |
|---|---|---|---|---|
Soft reset, from SIGUSR1 or from a ping-restart the daemon sends itself | survives only with persist-tun | survive only with persist-key | survive with the device, otherwise rebuilt | run again only when restart hooks are enabled |
Configuration reload, SIGHUP | recreated | re-read from disk | rebuilt once the device returns | run again |
| Service stop | lost | re-read at the next start | removed | run at the next start |
ਸਿਰਫ਼ ਨਰਮ-ਰੀਸੈਟ ਕਤਾਰ ਹੀ ਇਹ ਦੋ ਵਿਕਲਪ ਬਦਲਦੇ ਹਨ, ਅਤੇ ਜੋ ਕੰਮ ਉਹ ਛੱਡਦੇ ਹਨ ਉਹ ਵਿਅਸਤ ਲਿੰਕ 'ਤੇ ਮਹਿੰਗਾ ਹਿੱਸਾ ਹੈ। ਡਿਵਾਈਸ ਦੁਬਾਰਾ ਖੋਲ੍ਹਣ ਨਾਲ ਉਸ ਨਾਲ ਜੁੜੇ ਪਤੇ ਅਤੇ ਰੂਟ ਟੁੱਟ ਜਾਂਦੇ ਹਨ, ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਦੁਬਾਰਾ ਬਣਾਉਣ ਨਾਲ ਰੀਸੈਟ ਸ਼ੁਰੂ ਹੋਣ ਵੇਲੇ ਰਾਹ ਵਿੱਚ ਰਹੇ ਪੈਕਟ ਡਿੱਗ ਸਕਦੇ ਹਨ। ਰੋਕਣਾ ਉਹੀ ਵਸਤੂਆਂ ਬਚਾਉਣ ਦੇ ਕਿਸੇ ਵਿਕਲਪ ਤੋਂ ਬਿਨਾਂ ਨਸ਼ਟ ਕਰ ਦਿੰਦਾ ਹੈ।
ਇਹ ਵਿਕਲਪ ਬਿਲਕੁਲ ਕਿਉਂ ਮੌਜੂਦ ਹਨ
ਸਖ਼ਤ ਕੀਤਾ OpenVPN ਸਰਵਰ ਆਮ ਤੌਰ 'ਤੇ root ਵਜੋਂ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਆਪਣੀਆਂ ਕੁੰਜੀਆਂ ਅਤੇ ਆਪਣਾ ਡਿਵਾਈਸ ਖੋਲ੍ਹਦਾ ਹੈ, ਫਿਰ ਬਿਨਾਂ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਵਾਲੇ ਉਪਭੋਗਤਾ ਵੱਲ ਜਾਂਦਾ ਹੈ। ਉਸ ਤਬਦੀਲੀ ਤੋਂ ਬਾਅਦ ਕੁਝ ਕਾਰਵਾਈਆਂ ਬੱਸ ਗਾਇਬ ਹੋ ਜਾਂਦੀਆਂ ਹਨ। ਮੋਡ 0600 ਵਾਲੀ ਕੁੰਜੀ ਫਾਈਲ ਪੜ੍ਹਨਾ, ਨੈੱਟਵਰਕ ਇੰਟਰਫੇਸ ਬਣਾਉਣਾ ਜਾਂ ਰੂਟ ਬਦਲਣਾ ਸਭ ਇਨਕਾਰ ਹੋ ਸਕਦੇ ਹਨ।
persist ਵਿਕਲਪਾਂ ਤੋਂ ਬਿਨਾਂ, ping-restart ਟ੍ਰਿਗਰ ਕਰਨ ਲਈ ਕਾਫ਼ੀ ਦੇਰ ਚੁੱਪ ਰਹਿਣ ਵਾਲਾ ਸਾਥੀ ਠੀਕ ਉਹੀ ਕਾਰਵਾਈਆਂ ਲਾਜ਼ਮੀ ਕਰੇਗਾ। ਕਨਫਿਗਰੇਸ਼ਨ ਵਿੱਚ ਕੁਝ ਨਾ ਬਦਲਣ 'ਤੇ ਵੀ ਦੁਬਾਰਾ ਜੁੜਨਾ ਫੇਲ੍ਹ ਹੋਵੇਗਾ। ਪ੍ਰਕਿਰਿਆ ਬਿਨਾਂ ਕਾਰਨ ਮਰਦੀ ਜਾਪੇਗੀ, ਅਤੇ ਲੌਗ ਨੈੱਟਵਰਕ ਗਲਤੀ ਦੀ ਥਾਂ ਇਜਾਜ਼ਤ ਗਲਤੀ ਦਿਖਾਏਗਾ।
ਉਨ੍ਹਾਂ ਨਾਲ, ਨਰਮ ਰੀਸਟਾਰਟ ਉਹੀ ਦੁਬਾਰਾ ਵਰਤਦਾ ਹੈ ਜੋ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਵਾਲੇ ਪੜਾਅ ਨੇ ਪਹਿਲਾਂ ਹੀ ਪ੍ਰਾਪਤ ਕੀਤਾ ਸੀ। ਕੋਈ ਜਾਦੂ ਨਹੀਂ ਹੈ ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਕੁਝ ਵੀ ਨਹੀਂ ਬਚਾਉਂਦੀ। ਸਰੋਤ ਪ੍ਰਾਪਤ ਕਰਨਾ ਬੱਸ ਟਾਲ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।
ਆਖਰੀ ਨਹੀਂ, ਪਹਿਲੀ ਗਲਤੀ ਪੜ੍ਹੋ
ਜਦੋਂ ਰੀਸਟਾਰਟ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਆਖਰੀ ਦੀ ਥਾਂ ਪਹਿਲੀ ਗਲਤੀ ਪੜ੍ਹੋ। ਸੁਰੱਖਿਅਤ ਕੁੰਜੀ, auth ਫਾਈਲ, ਇੰਟਰਫੇਸ ioctl ਅਤੇ ਬਾਹਰੀ ਹੁੱਕ ਚਾਰ ਵੱਖਰੇ ਸਰੋਤ ਹਨ। ਇੱਕ ਰੱਖਣਾ ਬਾਕੀਆਂ ਤੱਕ ਪਹੁੰਚ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਕਹਿੰਦਾ। ਫਾਇਰਵਾਲ ਸਾਧਨ ਨੂੰ ਕਾਲ ਕਰਨ ਵਾਲਾ ਹੁੱਕ ਅਜੇ ਵੀ ਉਸ ਸਾਧਨ ਦੀ ਮੰਗ ਵਾਲੇ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਚਾਹੁੰਦਾ ਹੈ।
ਹੁੱਕ ਦਾ ਆਪਣਾ ਸਵਿੱਚ ਹੁੰਦਾ ਹੈ। OpenVPN ਮੈਨੂਅਲ persist ਵਿਕਲਪਾਂ ਨੂੰ up-restart ਨਾਲ ਜੋੜਦਾ ਹੈ, ਜੋ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਰੀਸਟਾਰਟ ਤੋਂ ਬਾਅਦ up ਅਤੇ down ਸਕ੍ਰਿਪਟ ਦੁਬਾਰਾ ਚੱਲਣਗੀਆਂ ਜਾਂ ਨਹੀਂ। ਇਸ ਲਈ ਉੱਪਰ ਰਿਹਾ ਇੰਟਰਫੇਸ ਤੁਹਾਨੂੰ ਇਸ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਦੱਸਦਾ ਕਿ ਤੁਹਾਡਾ ਰਿਜ਼ੌਲਵਰ ਏਕੀਕਰਨ ਤਾਜ਼ਾ ਹੋਇਆ ਜਾਂ ਨਹੀਂ।
# which restart path just happened?
journalctl -u openvpn-client@office --since '10 min ago' | grep -E 'SIGUSR1|ping-restart|Restart pause|NOTE:'
# did the interface survive, and do its routes still exist?
ip -brief link show tun0
ip route show dev tun0
ਇਹ ਦੋ ਕਮਾਂਡਾਂ ਦੋ ਨਾਕਾਮੀ ਢੰਗਾਂ ਨੂੰ ਸਕਿੰਟਾਂ ਵਿੱਚ ਵੱਖ ਕਰਦੀਆਂ ਹਨ। ਮੌਜੂਦ ਪਰ ਰੂਟ ਗੁੰਮ ਵਾਲਾ ਇੰਟਰਫੇਸ ਹੁੱਕ ਜਾਂ ਰੂਟ ਦੀ ਸਮੱਸਿਆ ਹੈ। ਗਾਇਬ ਹੋਇਆ ਇੰਟਰਫੇਸ ਮਤਲਬ ਪ੍ਰਕਿਰਿਆ ਸੱਚਮੁੱਚ ਖਤਮ ਹੋਈ।
ਰੱਖਿਆ ਗਿਆ ਇੰਟਰਫੇਸ kill switch ਨਹੀਂ ਹੈ
ਜੇ ਲੋੜ ਇਹ ਹੈ ਕਿ ਟ੍ਰੈਫਿਕ ਕਦੇ ਵੀ ਟਨਲ ਤੋਂ ਬਾਹਰ ਨਾ ਜਾਵੇ, ਤਾਂ ਰੱਖਿਆ ਗਿਆ ਡਿਵਾਈਸ ਇਹ ਨਹੀਂ ਦਿੰਦਾ। ਦੂਜੇ ਪਤਾ ਪਰਿਵਾਰ ਦੇ ਰੂਟ, ਦੂਜਾ ਡਿਫਾਲਟ ਰੂਟ, ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬਾਹਰ ਨਿਕਲਣ ਦਾ ਕੇਸ ਸਭ ਵਿਕਲਪ ਦੇ ਦਾਇਰੇ ਤੋਂ ਬਾਹਰ ਰਹਿੰਦੇ ਹਨ।
ਦੋਵੇਂ ਲੋੜਾਂ ਵੱਖਰੀਆਂ ਸੰਭਾਲੋ। ਦੁਬਾਰਾ ਜੁੜਨ ਦਰਮਿਆਨ ਟਨਲ ਵਸਤੂ ਰੱਖਣਾ ਡੈਮਨ ਲਈ ਸੁਵਿਧਾ ਹੈ। ਟਨਲ ਬੰਦ ਹੋਣ 'ਤੇ ਬਾਹਰ ਜਾਣਾ ਰੋਕਣਾ ਆਪਣੇ ਨਿਯਮਾਂ ਅਤੇ ਆਪਣੀ ਜਾਂਚ ਵਾਲੀ ਫਾਇਰਵਾਲ ਨੀਤੀ ਹੈ। ਇਨ੍ਹਾਂ ਨੂੰ ਮਿਲਾਉਣ ਨਾਲ ਅਜਿਹਾ ਕਨਫਿਗ ਬਣਦਾ ਹੈ ਜੋ ਬਚਾਅ ਵਾਲਾ ਦਿਸਦਾ ਹੈ ਅਤੇ ਸਰਵੋਤਮ-ਕੋਸ਼ਿਸ਼ ਦੁਬਾਰਾ ਜੁੜਨ ਵਾਂਗ ਵਰਤਦਾ ਹੈ।
ਨਿਦਾਨ ਤੋਂ ਪਹਿਲਾਂ ਘਟਨਾ ਦਾ ਨਾਮ ਦਿਓ। ਨਰਮ ਰੀਸਟਾਰਟ, ਨਾਕਾਮ ਕਨੈਕਸ਼ਨ ਕੋਸ਼ਿਸ਼ ਅਤੇ ਸੇਵਾ ਰੋਕਣਾ ਤਿੰਨ ਵਿਵਹਾਰਾਂ ਵਾਲੀਆਂ ਤਿੰਨ ਘਟਨਾਵਾਂ ਹਨ, ਅਤੇ ਸਿਰਫ਼ ਪਹਿਲੀ ਹੀ ਇਹ ਵਿਕਲਪ ਵਰਣਨ ਕਰਦੇ ਹਨ।