WireGuard LXC vai VM uz Proxmox: kur tam jādarbojas?
WireGuard var darboties Proxmox resursdatorā, konteinerī vai VM. Izšķirošie faktori ir kodola piederība, saskarnes kontrole un atjaunošana.
WireGuard nepieciešams tieši viens kodols, kuram pieder tā saskarne, un šis fakts izšķir lielāko daļu Proxmox izvietošanas strīda, pirms veiktspēja vispār nonāk sarunā. LXC konteiners ir resursdatora kodola nosaukumtelpas skats, savukārt VM ielādē savu kodolu. Tāpēc lietderīgais jautājums nav, kura opcija ir vieglāka, bet gan kuru kodolu esat gatavs mainīt un ar kādu atjaunošanas ceļu varat sadzīvot. Atbildiet uz to, un izvēle starp resursdatoru, konteineru vai VM parasti izdara pati sevi.
LXC viesis darbojas resursdatora kodola iekšienē
Instalējot wireguard-tools konteinerā, jūs iegūstat vadības programmu, nevis privātu kodolu. Izveidotā wg0 saskarne tiek reģistrēta resursdatora tīkla stekā un parādās resursdatora moduļu sarakstā. Tāpēc konteiners var izturēt visas pakotņu pārbaudes un tomēr neizdoties pirmajā wg komandā, ja resursdatora kodolā trūkst moduļa. Un Proxmox konteineru uzziņa dokumentē šo koplietotā kodola modeli kopā ar nosaukumtelpas un privilēģiju robežām, kurās strādājat.
Pilnvaras ir otrais ierobežojums. Saskarnes pacelšana un adrešu piesaistīšana prasa tīkla administrēšanas tiesības nosaukumtelpā, kurai tā pieder, un neprivileģēts konteiners šīs tiesības kartē caur savu lietotāja nosaukumtelpu, nevis tur tās tieši. Nekad nevērsieties pie pilnām privilēģijām kā pirmās atbildes; apskatiet, ko konteineram faktiski prasa darīt, un tad to piešķiriet.
Resursdatora kodols arī ir koplietota atkarība. Proxmox kodola atjauninājums maina WireGuard ieviešanu zem katra konteinera uzreiz, kas ir ērti, līdz atjauninājums un konteinera gaidas nesaskan.
Resursdators, konteiners, VM: ko katra izvietošana faktiski pārvalda
Izvietošana resursdatorā ievieto VPN hipervizora paša tīklā. Maršruti, ugunsmūra noteikumi un tunelis kļūst par resursdatora atjaunošanas daļu, un kļūda tur var aizvest līdzi arī pārvaldības saskarni. Tas ir pieņemami infrastruktūras maršrutēšanai resursdatorā, kuram piekļūstat caur konsoli, un sāpīgi attālinātā iekārtā bez piekļuves ārpus joslas.
Konteiners uztur pakalpojumu iesaiņotu un restartējamu, vienlaikus aizņemoties resursdatora kodolu. Tas piemērots apzināti koplietota kodola pakalpojumam un dod mazu vienību pārbūvei. Tas nedod neatkarīgu kodolu, tāpēc viss, kam nepieciešama konkrēta moduļa būvēšana, norāda prom no šīs opcijas.
| 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 izmaksā vairāk atmiņas un vēl vienu lāpāmu sistēmu, un pretī tunelis iegūst savu kodolu, savu maršrutēšanas tabulu un momentuzņēmuma robežu. Ja VPN ir tas, ko pēc sliktas izmaiņas atritināt atpakaļ, šis momentuzņēmums ir vērts papildu izmaksu.
Trīs nosacījumi, kas izvēlas jūsu vietā
Ja tunelim nepieciešama kodola versija vai WireGuard funkcija, ko Proxmox resursdators nenodrošina, apstājieties šeit un izmantojiet VM. Konteinerā nevar instalēt jaunāku kodolu, un nevajadzētu aizstāt hipervizora kodolu viena viesa dēļ.
Ja tunelis ir vietnes vārteja reāliem LAN prefiksiem, pajautājiet, kam jau pieder atgriešanās maršruts. Konteiners var maršrutēt trafiku, bet tā saskarnes atrodas resursdatora stekā, tāpēc resursdators galu galā nes daļu konfigurācijas, vai jūs to plānojāt vai nē. Izvietošana resursdatorā šajā ziņā ir godīga; izvietošana konteinerā bieži nav.
Pēc tam izsveriet kļūdas ietekmes rādiusu. Konteinera restartēšana ir lēta, VM momentuzņēmuma atjaunošana ir paredzama, un resursdatora tīkla labošana var prasīt fizisku vai konsoles piekļuvi. Pareizā izvēle ir tā, kuras sliktāko gadījumu jūs patiešām varat atjaunot tajā stundā, kad tas notiek.
Ceturtais jautājums reti ir izšķirošs, bet to ir vērts pateikt: vai kaut kam citam resursdatorā ir jāredz tuneļa saskarne? Ja jā, izvietošana resursdatorā vai konteinerā saglabā šo redzamību lokālu, savukārt VM liek jums maršrutēt starp viesi un resursdatoru.
Pierādiet izvietošanu, pirms laižat caur to trafiku
Pēc instalācijas pārliecinieties, kurš kodols faktiski apkalpo saskarni un vai konteineram ir piešķirtas pietiekamas pilnvaras to noturēt:
$ 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
Pēc tam pārbaudiet pārsūtīšanas pusi no resursdatora, jo rokas paspiešana vien pierāda tikai to, ka tunelis ir uzcelts. Izmantojiet ip route get klienta adresei un pārliecinieties, ka nākamais lēciens un saskarne atbilst projektam un ka atgriešanās ceļš pastāv pretējā pusē.
Atstājiet izvietojumu ar rakstisku īpašnieku: kurš kodols nes ieviešanu, kura nosaukumtelpa tur saskarni un kurus prefiksus vārtejai atļauts pārsūtīt. Šis viens teikums novērš vairāk incidentu nekā jebkurš trīs izvietojumu salīdzinājums.