WireGuard in LXC of 'n VM op Proxmox: waar behoort dit te loop?
WireGuard kan op die Proxmox-gasheer, in 'n houer of in 'n VM loop. Die deurslaggewende faktore is wie die kern besit, beheer oor die koppelvlak en herstel.
WireGuard het presies een kern nodig om sy koppelvlak te besit, en dié feit besleg die meeste van die Proxmox-plasingsdebat voordat werkverrigting ter sprake kom. 'n LXC-houer is 'n naamruimtesig op die gasheerkern, terwyl 'n VM sy eie kern begin. Die nuttige vraag is dus nie watter opsie ligter is nie, maar watter kern jy bereid is om te wysig en watter herstelpad jy kan verdra. Beantwoord dit, en die keuse tussen gasheer, houer en VM maak gewoonlik vanself.
'n LXC-gas werk binne die gasheerkern
Deur wireguard-tools in 'n houer te installeer, kry jy die beheerprogram, nie 'n privaat kern nie. Die wg0-koppelvlak wat jy skep, word in die gasheer se netwerkstapel geregistreer en verskyn in die gasheer se modulelys. Daarom kan 'n houer elke pakkettoets slaag en steeds by die eerste wg-opdrag misluk wanneer die gasheerkern die module kort. Die Proxmox-houerverwysing dokumenteer daardie gedeelde-kernmodel saam met die naamruimte- en voorregtgrense waarbinne jy werk.
Gesag is die tweede beperking. Om 'n koppelvlak op te bring en adresse te koppel, vereis netwerkadministrasieregte binne die naamruimte wat dit besit, en 'n houer sonder voorregte beeld daardie regte deur sy gebruikersnaamruimte uit eerder as om dit direk te hou. Gryp nooit na volle voorreg as die eerste antwoord nie; kyk wat daar werklik van die houer verwag word en gee dan daardie regte.
Die gasheer se kern is ook 'n gedeelde afhanklikheid. 'n Proxmox-kernopdatering verander die WireGuard-implementering onder elke houer gelyktydig, wat gerieflik is totdat 'n opdatering en 'n houer se verwagtinge van mekaar verskil.
Gasheer, houer, VM: wat elke plasing werklik besit
Plasing op die gasheer plaas die VPN in die hipervisor se eie netwerk. Roetes, brandmuurreëls en die tonnel word deel van gasheerherstel, en 'n fout daar kan die bestuurskoppelvlak saamneem. Dit is aanvaarbaar vir infrastruktuurroetering op 'n gasheer wat jy deur 'n konsole kan bereik, en pynlik op 'n afgeleë masjien sonder buiteband-toegang.
'n Houer hou die diens verpak en herbeginbaar terwyl dit steeds die gasheerkern leen. Dit pas by 'n doelbewuste gedeelde-kerndiens en gee jou 'n klein eenheid om te herbou. Dit gee jou nie 'n onafhanklike kern nie, so enigiets wat 'n spesifieke modulebou nodig het, wys weg van hierdie opsie.
| 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 |
'n VM kos meer geheue en nog 'n stelsel om te pleister, en in ruil daarvoor kry die tonnel sy eie kern, sy eie roetetabel en 'n momentopname-grens. Wanneer die VPN die ding is wat jy ná 'n slegte verandering terugrol, is daardie momentopname die oorhoofse koste werd.
Drie toestande wat vir jou kies
As die tonnel 'n kernelweergawe of 'n WireGuard-kenmerk nodig het wat die Proxmox-gasheer nie lewer nie, stop hier en gebruik 'n VM. Jy kan nie 'n nuwer kern in 'n houer installeer nie, en jy behoort nie die hipervisorkern te vervang om een gas te bevredig nie.
As die tonnel die werf se poort is vir werklike LAN-prefikse, vra wie reeds die terugroete besit. 'n Houer kan verkeer roeteer, maar sy koppelvlakke sit in die gasheer se stapel, so die gasheer dra uiteindelik deel van die konfigurasie, of jy dit beplan het of nie. Plasing op die gasheer is eerlik hieroor; plasing in 'n houer is dikwels nie.
Weeg dan die skokradius van 'n fout. Om 'n houer te herbegin is goedkoop, om 'n VM-momentopname te herstel is voorspelbaar, en om gasheer-netwerking te herstel mag fisieke of konsoletoegang vereis. Die regte keuse is dié waarvan jy die slegste geval werklik kan herstel op die uur wanneer dit gebeur.
'n Vierde vraag is selde beslissend maar die moeite werd om te noem: het enigiets anders op die gasheer die tonnelkoppelvlak nodig om te sien? Indien ja, hou plasing op die gasheer of in 'n houer daardie sigbaarheid plaaslik, terwyl 'n VM jou dwing om tussen die gas en die gasheer te roeteer.
Bewys die plasing voordat jy verkeer daar deur roeteer
Sodra dit geïnstalleer is, bevestig watter kern die koppelvlak werklik bedien en of die houer genoeg gesag gekry het om dit te hou:
$ 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
Kontroleer dan die deurstuur-kant vanaf die gasheer, want 'n handdruk alleen bewys net dat die tonnel op is. Gebruik ip route get vir 'n kliëntadres en bevestig dat die volgende sprong en koppelvlak by die ontwerp pas, en bevestig dat die terugpad aan die ander kant bestaan.
Laat die ontplooiing met 'n geskrewe eienaar: watter kern die implementering dra, watter naamruimte die koppelvlak hou, en watter prefikse die poort mag deurstuur. Daardie sin voorkom meer voorvalle as enige maatstafvergeliking van die drie plasings.