WireGuard katika LXC au VM kwenye Proxmox: inapaswa kuendeshwa wapi?
WireGuard inaweza kuendeshwa kwenye mwenyeji wa Proxmox, katika kontena au katika VM. Mambo ya maamuzi ni umiliki wa kernel, udhibiti wa interface na urejeshaji.
WireGuard inahitaji kernel moja hasa iwe mmiliki wa interface yake, na ukweli huo hutatua sehemu kubwa ya mjadala wa upangaji kwenye Proxmox kabla utendaji haujaingia kwenye mazungumzo. Kontena la LXC ni mwonekano wa nafasi ya majina ya kernel ya mwenyeji, wakati VM inawasha kernel yake yenyewe. Kwa hivyo swali lenye manufaa si lipi ni jepesi zaidi, bali ni kernel gani uko tayari kuibadilisha na ni njia gani ya urejeshaji unayoweza kuishi nayo. Jibu hilo, na chaguo kati ya mwenyeji, kontena au VM kwa kawaida hujifanya lenyewe.
Mgeni wa LXC hufanya kazi ndani ya kernel ya mwenyeji
Kusakinisha wireguard-tools ndani ya kontena kunakupa programu ya udhibiti, si kernel ya kibinafsi. Interface ya wg0 unayounda husajiliwa kwenye tabaka la mtandao la mwenyeji na kuonekana kwenye orodha ya moduli za mwenyeji. Ndiyo sababu kontena linaweza kupita ukaguzi wote wa pakiti na bado lishindwe kwenye amri ya kwanza ya wg wakati kernel ya mwenyeji haina moduli hiyo. Na marejeleo ya kontena za Proxmox yanaandika muundo huo wa kernel inayoshirikiwa, pamoja na mipaka ya nafasi ya majina na ruhusa unazofanyia kazi.
Mamlaka ni kizuizi cha pili. Kuinua interface na kuambatanisha anwani kunahitaji haki za utawala wa mtandao ndani ya nafasi ya majina inayoimiliki, na kontena lisilo na ruhusa hubadilisha haki hizo kupitia nafasi ya majina ya mtumiaji wake badala ya kuzishikilia moja kwa moja. Kamwe usikimbilie upendeleo kamili kama jibu la kwanza; angalia kile kinachotakiwa kwa kweli kutoka kwa kontena, kisha toa hicho.
Kernel ya mwenyeji pia ni tegemezi linaloshirikiwa. Sasisho la kernel ya Proxmox hubadilisha utekelezaji wa WireGuard chini ya kila kontena mara moja, jambo ambalo ni rahisi hadi sasisho na matarajio ya kontena hayapatani.
Mwenyeji, kontena, VM: kila upangaji unamiliki nini kwa kweli
Upangaji kwenye mwenyeji unaweka VPN kwenye mtandao wa hypervisor yenyewe. Njia, kanuni za firewall na handaki huwa sehemu ya urejeshaji wa mwenyeji, na kosa hapo linaweza kuchukua interface ya usimamizi pamoja nayo. Hilo linakubalika kwa uelekezaji wa miundombinu kwenye mwenyeji unaomfikia kwa konsoli, na ni chungu kwenye mashine ya mbali isiyo na ufikiaji wa nje ya bendi.
Kontena huhifadhi huduma ikiwa imefungashwa na inaweza kuwashwa upya huku ikiazima kernel ya mwenyeji. Inafaa kwa huduma ya makusudi ya kernel inayoshirikiwa na inakupa kitengo kidogo cha kujenga upya. Haikupi kernel huru, kwa hivyo kitu chochote kinachohitaji ujenzi maalum wa moduli huelekea mbali na chaguo hili.
| 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 hugharimu kumbukumbu zaidi na mfumo mwingine wa kuweka viraka, na kwa kubadilishana handaki hupata kernel yake, jedwali lake la uelekezaji na mpaka wa snapshot. Wakati VPN ndiyo kitu unachorudisha nyuma baada ya mabadiliko mabaya, snapshot hiyo inastahili mzigo wa ziada.
Masharti matatu yanayokuchagulia
Ikiwa handaki linahitaji toleo la kernel au kipengele cha WireGuard ambacho mwenyeji wa Proxmox hakitoli, simama hapa na tumia VM. Huwezi kusakinisha kernel mpya zaidi kwenye kontena, na hupaswi kubadilisha kernel ya hypervisor ili kumridhisha mgeni mmoja.
Ikiwa handaki ni lango la tovuti kwa viambishi halisi vya LAN, uliza nani tayari anamiliki njia ya kurudi. Kontena linaweza kuelekeza trafiki, lakini interface zake hukaa kwenye tabaka la mwenyeji, kwa hivyo mwenyeji hatimaye hubeba sehemu ya usanidi, iwe ulipanga hivyo au la. Upangaji kwenye mwenyeji ni wa kweli kuhusu hili; upangaji kwenye kontena mara nyingi sivyo.
Kisha pima eneo la athari za kosa. Kuwasha upya kontena ni rahisi, kurejesha snapshot ya VM kunatabirika, na kurekebisha mtandao wa mwenyeji kunaweza kuhitaji ufikiaji wa kimwili au konsoli. Chaguo sahihi ni lile ambalo hali yake mbaya zaidi unaweza kuirejesha kweli saa inapotokea.
Swali la nne mara chache huamua lakini linafaa kutajwa: kuna kitu kingine kwenye mwenyeji kinachohitaji kuona interface ya handaki? Ikiwa ndiyo, upangaji kwenye mwenyeji au kwenye kontena huweka mwonekano huo ndani, wakati VM inakulazimisha kuelekeza kati ya mgeni na mwenyeji.
Thibitisha upangaji kabla ya kuelekeza trafiki ndani yake
Baada ya kusakinisha, thibitisha ni kernel gani inayohudumia interface kwa kweli na ikiwa kontena limepewa mamlaka ya kutosha kuihifadhi:
$ 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
Kisha angalia upande wa uelekezaji kutoka kwa mwenyeji, kwa sababu kupeana mikono peke yake kunathibitisha tu kwamba handaki liko juu. Tumia ip route get kwa anwani ya mteja na uthibitishe kwamba hatua inayofuata na interface vinalingana na muundo, na kwamba njia ya kurudi ipo upande wa mbali.
Acha usambazaji ukiwa na mmiliki aliyeandikwa: kernel gani hubeba utekelezaji, nafasi gani ya majina inashikilia interface, na viambishi gani lango linapaswa kuelekeza. Sentensi hiyo huzuia matukio mengi kuliko ulinganisho wowote wa viwango vya upangaji tatu.