WireGuard memerlukan tepat satu kernel untuk memiliki antara mukanya, dan fakta itu menyelesaikan sebahagian besar perdebatan penempatan Proxmox sebelum prestasi masuk ke dalam bilik. Kontena LXC ialah paparan ruang nama kernel hos, manakala VM membut kernelnya sendiri. Jadi soalan yang berguna bukanlah pilihan mana yang lebih ringan, tetapi kernel mana yang anda sanggup ubah dan laluan pemulihan mana yang anda boleh hidup dengannya. Jawab itu, dan pilihan antara hos, kontena atau VM biasanya membuat dirinya sendiri.

Tetamu LXC bekerja di dalam kernel hos

Memasang wireguard-tools dalam kontena memberi anda program kawalan, bukan kernel persendirian. Antara muka wg0 yang anda cipta didaftarkan dalam tindanan rangkaian hos dan muncul dalam senarai modul hos. Itulah sebabnya kontena boleh lulus setiap pemeriksaan pakej dan masih gagal pada perintah wg pertama apabila kernel hos tidak mempunyai modul itu. Dan rujukan kontena Proxmox mendokumentasikan model kernel dikongsi itu bersama sempadan ruang nama dan keistimewaan tempat anda bekerja.

Kuasa ialah kekangan kedua. Mengangkat antara muka dan melampirkan alamat memerlukan hak pentadbiran rangkaian dalam ruang nama yang memilikinya, dan kontena tanpa keistimewaan memetakan hak itu melalui ruang nama penggunanya dan bukannya memegangnya secara langsung. Jangan sekali-kali mencapai keistimewaan penuh sebagai jawapan pertama; lihat apa yang sebenarnya diminta daripada kontena, kemudian berikannya.

Kernel hos juga merupakan kebergantungan bersama. Kemas kini kernel Proxmox mengubah pelaksanaan WireGuard di bawah setiap kontena sekali gus, yang memudahkan sehingga kemas kini dan jangkaan kontena tidak lagi bersetuju.

Hos, kontena, VM: apa yang sebenarnya dimiliki setiap penempatan

Penempatan pada hos meletakkan VPN dalam rangkaian hypervisor itu sendiri. Laluan, peraturan firewall dan terowong menjadi sebahagian daripada pemulihan hos, dan kesilapan di sana boleh membawa antara muka pengurusan bersama. Itu boleh diterima untuk penghalaan infrastruktur pada hos yang anda capai melalui konsol, dan menyakitkan pada mesin jauh tanpa akses luar jalur.

Kontena menyimpan perkhidmatan berbungkus dan boleh dimulakan semula sambil masih meminjam kernel hos. Ia sesuai untuk perkhidmatan kernel dikongsi yang disengajakan dan memberi anda unit kecil untuk dibina semula. Ia tidak memberi kernel bebas, jadi apa-apa yang memerlukan binaan modul tertentu menunjuk jauh dari pilihan ini.

PlacementKernel ownerTypical failure mode
Proxmox hostHypervisorA routing change breaks host management access
LXC containerHost kernel, container namespaceMissing capability or missing module at wg0 creation
Virtual machineGuest kernelExtra maintenance and a second patch cycle

VM menelan lebih banyak memori dan satu lagi sistem untuk ditampal, dan sebagai pertukaran terowong mendapat kernel sendiri, jadual penghalaan sendiri dan sempadan syot kilat. Apabila VPN ialah perkara yang anda gulung balik selepas perubahan buruk, syot kilat itu berbaloi dengan beban tambahan.

Tiga syarat yang memilih untuk anda

Jika terowong memerlukan versi kernel atau ciri WireGuard yang tidak disediakan hos Proxmox, berhenti di sini dan gunakan VM. Anda tidak boleh memasang kernel yang lebih baharu ke dalam kontena, dan anda tidak patut menggantikan kernel hypervisor untuk memuaskan seorang tetamu.

Jika terowong ialah pintu masuk tapak untuk awalan LAN sebenar, tanya siapa yang sudah memiliki laluan pulang. Kontena boleh menghalakan trafik, tetapi antara mukanya terletak dalam tindanan hos, jadi hos akhirnya memikul sebahagian konfigurasi, sama ada anda merancangnya atau tidak. Penempatan pada hos jujur tentang ini; penempatan dalam kontena selalunya tidak.

Kemudian timbang jejari kesan kesilapan. Memulakan semula kontena murah, memulihkan syot kilat VM boleh dijangka, dan membaiki rangkaian hos mungkin memerlukan akses fizikal atau konsol. Pilihan yang betul ialah pilihan yang kes terburuknya benar-benar boleh anda pulihkan pada jam ia berlaku.

Soalan keempat jarang menentukan tetapi wajar dinyatakan: adakah sesuatu yang lain pada hos perlu melihat antara muka terowong itu? Jika ya, penempatan pada hos atau dalam kontena menyimpan keterlihatan itu secara setempat, manakala VM memaksa anda menghalakan antara tetamu dan hos.

Buktikan penempatan sebelum menghalakan trafik melaluinya

Selepas dipasang, sahkan kernel mana yang benar-benar melayani antara muka itu dan sama ada kontena diberi kuasa yang cukup untuk mengekalkannya:

$ 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

Kemudian periksa bahagian pemajuan dari hos, kerana jabat tangan sahaja hanya membuktikan terowong itu naik. Gunakan ip route get untuk alamat klien dan sahkan bahawa lompatan seterusnya dan antara muka sepadan dengan reka bentuk, dan laluan pulang wujud di sebelah jauh.

Tinggalkan penggunaan dengan pemilik bertulis: kernel mana yang membawa pelaksanaan, ruang nama mana yang memegang antara muka, dan awalan mana yang dibenarkan dipajukan oleh pintu masuk. Ayat itu menghalang lebih banyak insiden daripada mana-mana perbandingan penanda aras bagi ketiga-tiga penempatan.

Artikel berkaitan