Proxmox ਉੱਤੇ LXC ਜਾਂ VM ਵਿੱਚ WireGuard: ਇਹ ਕਿੱਥੇ ਚੱਲਣਾ ਚਾਹੀਦਾ ਹੈ?
WireGuard Proxmox ਹੋਸਟ ਉੱਤੇ, ਕੰਟੇਨਰ ਵਿੱਚ ਜਾਂ VM ਵਿੱਚ ਚੱਲ ਸਕਦਾ ਹੈ। ਨਿਰਣਾਇਕ ਕਾਰਕ ਕਰਨਲ ਦੀ ਮਾਲਕੀ, ਇੰਟਰਫੇਸ ਨਿਯੰਤਰਣ ਅਤੇ ਰਿਕਵਰੀ ਹਨ।
WireGuard ਨੂੰ ਆਪਣੇ ਇੰਟਰਫੇਸ ਦੀ ਮਾਲਕੀ ਲਈ ਬਿਲਕੁਲ ਇੱਕ ਕਰਨਲ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਇਹ ਤੱਥ ਪ੍ਰਦਰਸ਼ਨ ਦੇ ਚਰਚਾ ਵਿੱਚ ਆਉਣ ਤੋਂ ਪਹਿਲਾਂ ਹੀ Proxmox ਪਲੇਸਮੈਂਟ ਦੀ ਬਹੁਤੀ ਬਹਿਸ ਨਿਪਟਾ ਦਿੰਦਾ ਹੈ। LXC ਕੰਟੇਨਰ ਹੋਸਟ ਕਰਨਲ ਦਾ ਨੇਮਸਪੇਸ ਦ੍ਰਿਸ਼ ਹੈ, ਜਦਕਿ VM ਆਪਣਾ ਕਰਨਲ ਬੂਟ ਕਰਦਾ ਹੈ। ਇਸ ਲਈ ਲਾਭਦਾਇਕ ਸਵਾਲ ਇਹ ਨਹੀਂ ਕਿ ਕਿਹੜਾ ਵਿਕਲਪ ਹਲਕਾ ਹੈ, ਸਗੋਂ ਇਹ ਹੈ ਕਿ ਤੁਸੀਂ ਕਿਹੜਾ ਕਰਨਲ ਬਦਲਣ ਲਈ ਤਿਆਰ ਹੋ ਅਤੇ ਕਿਹੜੇ ਰਿਕਵਰੀ ਰਾਹ ਨਾਲ ਜੀ ਸਕਦੇ ਹੋ। ਇਸ ਦਾ ਜਵਾਬ ਦਿਓ, ਅਤੇ ਹੋਸਟ, ਕੰਟੇਨਰ ਜਾਂ VM ਦੀ ਚੋਣ ਆਮ ਤੌਰ 'ਤੇ ਆਪਣੇ ਆਪ ਹੋ ਜਾਂਦੀ ਹੈ।
LXC ਮਹਿਮਾਨ ਹੋਸਟ ਕਰਨਲ ਦੇ ਅੰਦਰ ਕੰਮ ਕਰਦਾ ਹੈ
ਕੰਟੇਨਰ ਦੇ ਅੰਦਰ wireguard-tools ਸਥਾਪਿਤ ਕਰਨ ਨਾਲ ਤੁਹਾਨੂੰ ਨਿਯੰਤਰਣ ਪ੍ਰੋਗਰਾਮ ਮਿਲਦਾ ਹੈ, ਨਿੱਜੀ ਕਰਨਲ ਨਹੀਂ। ਤੁਸੀਂ ਜੋ wg0 ਇੰਟਰਫੇਸ ਬਣਾਉਂਦੇ ਹੋ ਉਹ ਹੋਸਟ ਦੇ ਨੈੱਟਵਰਕ ਸਟੈਕ ਵਿੱਚ ਦਰਜ ਹੁੰਦਾ ਹੈ ਅਤੇ ਹੋਸਟ ਦੀ ਮੌਡਿਊਲ ਸੂਚੀ ਵਿੱਚ ਦਿਖਦਾ ਹੈ। ਇਸ ਲਈ ਕੰਟੇਨਰ ਹਰ ਪੈਕੇਜ ਜਾਂਚ ਪਾਸ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਫਿਰ ਵੀ ਪਹਿਲੇ wg ਕਮਾਂਡ ਉੱਤੇ ਫੇਲ ਹੋ ਸਕਦਾ ਹੈ, ਜਦੋਂ ਹੋਸਟ ਕਰਨਲ ਵਿੱਚ ਉਹ ਮੌਡਿਊਲ ਨਹੀਂ ਹੁੰਦਾ। ਅਤੇ Proxmox ਕੰਟੇਨਰ ਸੰਦਰਭ ਉਸ ਸਾਂਝੇ-ਕਰਨਲ ਮਾਡਲ ਦਾ, ਨਾਲ ਹੀ ਉਹਨਾਂ ਨੇਮਸਪੇਸ ਅਤੇ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਸੀਮਾਵਾਂ ਦਾ ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਕਰਦਾ ਹੈ ਜਿੰਨ੍ਹਾਂ ਵਿੱਚ ਤੁਸੀਂ ਕੰਮ ਕਰਦੇ ਹੋ।
ਅਧਿਕਾਰ ਦੂਜੀ ਰੁਕਾਵਟ ਹੈ। ਇੰਟਰਫੇਸ ਉੱਪਰ ਲਿਆਉਣ ਅਤੇ ਉਸ ਉੱਤੇ ਪਤੇ ਜੋੜਨ ਲਈ ਉਸ ਨੇਮਸਪੇਸ ਦੇ ਅੰਦਰ ਨੈੱਟਵਰਕ-ਪ੍ਰਸ਼ਾਸਨ ਅਧਿਕਾਰ ਚਾਹੀਦੇ ਹਨ ਜੋ ਇਸਦਾ ਮਾਲਕ ਹੈ, ਅਤੇ ਅਣ-ਵਿਸ਼ੇਸ਼ਾਧਿਕਾਰਤ ਕੰਟੇਨਰ ਉਹ ਅਧਿਕਾਰ ਸਿੱਧੇ ਰੱਖਣ ਦੀ ਥਾਂ ਆਪਣੇ ਵਰਤੋਂਕਾਰ ਨੇਮਸਪੇਸ ਰਾਹੀਂ ਮੈਪ ਕਰਦਾ ਹੈ। ਪਹਿਲੇ ਜਵਾਬ ਵਜੋਂ ਕਦੇ ਵੀ ਪੂਰਨ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਵੱਲ ਨਾ ਵਧੋ; ਵੇਖੋ ਕਿ ਕੰਟੇਨਰ ਤੋਂ ਅਸਲ ਵਿੱਚ ਕੀ ਮੰਗਿਆ ਜਾ ਰਿਹਾ ਹੈ, ਫਿਰ ਉਹੀ ਦਿਓ।
ਹੋਸਟ ਕਰਨਲ ਵੀ ਸਾਂਝੀ ਨਿਰਭਰਤਾ ਹੈ। Proxmox ਕਰਨਲ ਅੱਪਡੇਟ ਹਰ ਕੰਟੇਨਰ ਦੇ ਹੇਠਾਂ WireGuard ਦੇ ਅਮਲ ਨੂੰ ਇਕੱਠੇ ਬਦਲਦਾ ਹੈ, ਜੋ ਉਦੋਂ ਤੱਕ ਸੁਵਿਧਾਜਨਕ ਹੈ ਜਦੋਂ ਤੱਕ ਕੋਈ ਅੱਪਡੇਟ ਅਤੇ ਕਿਸੇ ਕੰਟੇਨਰ ਦੀਆਂ ਉਮੀਦਾਂ ਆਪਸ ਵਿੱਚ ਨਹੀਂ ਟਕਰਾਉਂਦੀਆਂ।
ਹੋਸਟ, ਕੰਟੇਨਰ, VM: ਹਰ ਪਲੇਸਮੈਂਟ ਅਸਲ ਵਿੱਚ ਕੀ ਰੱਖਦਾ ਹੈ
ਹੋਸਟ ਉੱਤੇ ਪਲੇਸਮੈਂਟ VPN ਨੂੰ ਹਾਈਪਰਵਾਈਜ਼ਰ ਦੇ ਆਪਣੇ ਨੈੱਟਵਰਕ ਵਿੱਚ ਰੱਖਦਾ ਹੈ। ਰੂਟ, ਫਾਇਰਵਾਲ ਨਿਯਮ ਅਤੇ ਟਨਲ ਹੋਸਟ ਰਿਕਵਰੀ ਦਾ ਹਿੱਸਾ ਬਣ ਜਾਂਦੇ ਹਨ, ਅਤੇ ਉੱਥੋਂ ਦੀ ਗਲਤੀ ਪ੍ਰਬੰਧਨ ਇੰਟਰਫੇਸ ਨੂੰ ਵੀ ਲੈ ਸਕਦੀ ਹੈ। ਕੰਸੋਲ ਰਾਹੀਂ ਪਹੁੰਚਣ ਯੋਗ ਹੋਸਟ ਉੱਤੇ ਬੁਨਿਆਦੀ ਢਾਂਚੇ ਦੀ ਰੂਟਿੰਗ ਲਈ ਇਹ ਸਵੀਕਾਰਯੋਗ ਹੈ, ਅਤੇ ਬੈਂਡ ਤੋਂ ਬਾਹਰ ਪਹੁੰਚ ਤੋਂ ਬਿਨਾਂ ਦੂਰ ਦੇ ਬਾਕਸ ਉੱਤੇ ਦਰਦਨਾਕ।
ਕੰਟੇਨਰ ਸੇਵਾ ਨੂੰ ਪੈਕੇਜ ਕੀਤਾ ਅਤੇ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨ ਯੋਗ ਰੱਖਦਾ ਹੈ, ਜਦਕਿ ਹਾਲੇ ਵੀ ਹੋਸਟ ਕਰਨਲ ਉਧਾਰ ਲੈਂਦਾ ਹੈ। ਇਹ ਜਾਣ-ਬੁੱਝ ਕੇ ਸਾਂਝੇ-ਕਰਨਲ ਸੇਵਾ ਲਈ ਢੁੱਕਦਾ ਹੈ ਅਤੇ ਮੁੜ-ਨਿਰਮਾਣ ਲਈ ਤੁਹਾਨੂੰ ਛੋਟੀ ਇਕਾਈ ਦਿੰਦਾ ਹੈ। ਇਹ ਸੁਤੰਤਰ ਕਰਨਲ ਨਹੀਂ ਦਿੰਦਾ, ਇਸ ਲਈ ਜਿਸਨੂੰ ਵੀ ਖਾਸ ਮੌਡਿਊਲ ਬਿਲਡ ਚਾਹੀਦਾ ਹੈ ਉਹ ਇਸ ਵਿਕਲਪ ਤੋਂ ਦੂਰ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ।
| Placement | Kernel owner | Typical failure mode |
|---|---|---|
| Proxmox host | Hypervisor | A routing change breaks host management access |
| LXC container | Host kernel, container namespace | Missing capability or missing module at wg0 creation |
| Virtual machine | Guest kernel | Extra maintenance and a second patch cycle |
VM ਵੱਧ ਮੈਮੋਰੀ ਅਤੇ ਪੈਚ ਕਰਨ ਲਈ ਇੱਕ ਹੋਰ ਸਿਸਟਮ ਖਰਚ ਕਰਦਾ ਹੈ, ਅਤੇ ਬਦਲੇ ਵਿੱਚ ਟਨਲ ਨੂੰ ਆਪਣਾ ਕਰਨਲ, ਆਪਣਾ ਰੂਟਿੰਗ ਟੇਬਲ ਅਤੇ ਇੱਕ ਸਨੈਪਸ਼ਾਟ ਸੀਮਾ ਮਿਲਦੀ ਹੈ। ਜਦੋਂ ਖਰਾਬ ਬਦਲਾਅ ਤੋਂ ਬਾਅਦ VPN ਹੀ ਉਹ ਚੀਜ਼ ਹੋਵੇ ਜੋ ਤੁਸੀਂ ਵਾਪਸ ਲਿਆਉਂਦੇ ਹੋ, ਤਾਂ ਉਹ ਸਨੈਪਸ਼ਾਟ ਵਾਧੂ ਭਾਰ ਦੇ ਯੋਗ ਹੈ।
ਤਿੰਨ ਸ਼ਰਤਾਂ ਜੋ ਤੁਹਾਡੇ ਲਈ ਚੁਣਦੀਆਂ ਹਨ
ਜੇ ਟਨਲ ਨੂੰ ਅਜਿਹਾ ਕਰਨਲ ਸੰਸਕਰਣ ਜਾਂ WireGuard ਵਿਸ਼ੇਸ਼ਤਾ ਚਾਹੀਦੀ ਹੈ ਜੋ Proxmox ਹੋਸਟ ਨਹੀਂ ਦਿੰਦਾ, ਤਾਂ ਇੱਥੇ ਰੁਕੋ ਅਤੇ VM ਵਰਤੋ। ਕੰਟੇਨਰ ਵਿੱਚ ਨਵਾਂ ਕਰਨਲ ਸਥਾਪਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ, ਅਤੇ ਇੱਕ ਮਹਿਮਾਨ ਨੂੰ ਖੁਸ਼ ਕਰਨ ਲਈ ਹਾਈਪਰਵਾਈਜ਼ਰ ਕਰਨਲ ਬਦਲਣਾ ਨਹੀਂ ਚਾਹੀਦਾ।
ਜੇ ਟਨਲ ਅਸਲੀ LAN ਪ੍ਰੀਫਿਕਸ ਲਈ ਸਾਈਟ ਦਾ ਗੇਟਵੇ ਹੈ, ਤਾਂ ਪੁੱਛੋ ਕਿ ਵਾਪਸੀ ਰਾਹ ਪਹਿਲਾਂ ਹੀ ਕਿਸਦੇ ਕੋਲ ਹੈ। ਕੰਟੇਨਰ ਟ੍ਰੈਫਿਕ ਰੂਟ ਕਰ ਸਕਦਾ ਹੈ, ਪਰ ਇਸਦੇ ਇੰਟਰਫੇਸ ਹੋਸਟ ਦੇ ਸਟੈਕ ਵਿੱਚ ਬੈਠਦੇ ਹਨ, ਇਸ ਲਈ ਹੋਸਟ ਅੰਤ ਵਿੱਚ ਕਨਫਿਗਰੇਸ਼ਨ ਦਾ ਇੱਕ ਹਿੱਸਾ ਢੋਂਦਾ ਹੈ, ਭਾਵੇਂ ਤੁਸੀਂ ਯੋਜਨਾ ਬਣਾਈ ਸੀ ਜਾਂ ਨਹੀਂ। ਹੋਸਟ ਉੱਤੇ ਪਲੇਸਮੈਂਟ ਇਸ ਬਾਰੇ ਇਮਾਨਦਾਰ ਹੈ; ਕੰਟੇਨਰ ਵਿੱਚ ਪਲੇਸਮੈਂਟ ਅਕਸਰ ਨਹੀਂ।
ਫਿਰ ਗਲਤੀ ਦੇ ਪ੍ਰਭਾਵ ਦਾ ਘੇਰਾ ਤੋਲੋ। ਕੰਟੇਨਰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨਾ ਸਸਤਾ ਹੈ, VM ਸਨੈਪਸ਼ਾਟ ਬਹਾਲ ਕਰਨਾ ਅਨੁਮਾਨਯੋਗ ਹੈ, ਅਤੇ ਹੋਸਟ ਨੈੱਟਵਰਕਿੰਗ ਠੀਕ ਕਰਨ ਲਈ ਭੌਤਿਕ ਜਾਂ ਕੰਸੋਲ ਪਹੁੰਚ ਚਾਹੀਦੀ ਹੋ ਸਕਦੀ ਹੈ। ਸਹੀ ਚੋਣ ਉਹ ਹੈ ਜਿਸਦਾ ਸਭ ਤੋਂ ਭੈੜਾ ਕੇਸ ਤੁਸੀਂ ਉਸੇ ਘੰਟੇ ਵਿੱਚ ਸੱਚਮੁੱਚ ਬਹਾਲ ਕਰ ਸਕਦੇ ਹੋ ਜਦੋਂ ਉਹ ਹੁੰਦਾ ਹੈ।
ਚੌਥਾ ਸਵਾਲ ਘੱਟ ਹੀ ਨਿਰਣਾਇਕ ਹੁੰਦਾ ਹੈ ਪਰ ਕਹਿਣ ਯੋਗ ਹੈ: ਕੀ ਹੋਸਟ ਉੱਤੇ ਹੋਰ ਕੁਝ ਟਨਲ ਇੰਟਰਫੇਸ ਨੂੰ ਵੇਖਣਾ ਚਾਹੁੰਦਾ ਹੈ? ਜੇ ਹਾਂ, ਤਾਂ ਹੋਸਟ ਉੱਤੇ ਜਾਂ ਕੰਟੇਨਰ ਵਿੱਚ ਪਲੇਸਮੈਂਟ ਉਸ ਦ੍ਰਿਸ਼ਟਤਾ ਨੂੰ ਸਥਾਨਕ ਰੱਖਦਾ ਹੈ, ਜਦਕਿ VM ਤੁਹਾਨੂੰ ਮਹਿਮਾਨ ਅਤੇ ਹੋਸਟ ਵਿਚਕਾਰ ਰੂਟ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕਰਦਾ ਹੈ।
ਟ੍ਰੈਫਿਕ ਇਸ ਵਿੱਚੋਂ ਭੇਜਣ ਤੋਂ ਪਹਿਲਾਂ ਪਲੇਸਮੈਂਟ ਸਾਬਤ ਕਰੋ
ਸਥਾਪਨਾ ਤੋਂ ਬਾਅਦ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਅਸਲ ਵਿੱਚ ਕਿਹੜਾ ਕਰਨਲ ਇੰਟਰਫੇਸ ਦੀ ਸੇਵਾ ਕਰ ਰਿਹਾ ਹੈ ਅਤੇ ਕੀ ਕੰਟੇਨਰ ਨੂੰ ਇਸਨੂੰ ਰੱਖਣ ਲਈ ਕਾਫੀ ਅਧਿਕਾਰ ਮਿਲਿਆ ਹੈ:
$ pct config 101 | grep -E 'unprivileged|features'
unprivileged: 1
$ pct exec 101 -- wg show
interface: wg0
listening port: 51820
$ pct exec 101 -- ip -4 addr show wg0
inet 10.60.0.2/24 scope global wg0
ਫਿਰ ਹੋਸਟ ਤੋਂ ਫਾਰਵਰਡਿੰਗ ਪਾਸਾ ਜਾਂਚੋ, ਕਿਉਂਕਿ ਸਿਰਫ਼ ਹੈਂਡਸ਼ੇਕ ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਟਨਲ ਉੱਪਰ ਹੈ। ਕਲਾਇੰਟ ਪਤੇ ਲਈ ip route get ਵਰਤੋ ਅਤੇ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਅਗਲਾ ਹੌਪ ਅਤੇ ਇੰਟਰਫੇਸ ਡਿਜ਼ਾਈਨ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਹਨ, ਅਤੇ ਦੂਰ ਵਾਲੇ ਪਾਸੇ ਵਾਪਸੀ ਰਾਹ ਮੌਜੂਦ ਹੈ।
ਤੈਨਾਤੀ ਨੂੰ ਲਿਖਤੀ ਮਾਲਕ ਨਾਲ ਛੱਡੋ: ਕਿਹੜਾ ਕਰਨਲ ਅਮਲ ਨੂੰ ਢੋਂਦਾ ਹੈ, ਕਿਹੜਾ ਨੇਮਸਪੇਸ ਇੰਟਰਫੇਸ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਗੇਟਵੇ ਨੂੰ ਕਿਹੜੇ ਪ੍ਰੀਫਿਕਸ ਫਾਰਵਰਡ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਹੈ। ਉਹ ਇੱਕ ਵਾਕ ਤਿੰਨਾਂ ਪਲੇਸਮੈਂਟ ਦੀ ਕਿਸੇ ਵੀ ਬੈਂਚਮਾਰਕ ਤੁਲਨਾ ਨਾਲੋਂ ਵੱਧ ਘਟਨਾਵਾਂ ਰੋਕਦਾ ਹੈ।