WireGuard interfeysinə tam olaraq bir nüvənin sahib olmasını tələb edir və bu fakt Proxmox yerləşdirmə mübahisəsinin çoxunu performans söhbətə girməmişdən əvvəl həll edir. LXC konteyneri host nüvəsinin ad məkanı görünüşüdür, VM isə öz nüvəsini yükləyir. Yəni faydalı sual hansı variantın yüngül olması deyil, hansı nüvəni dəyişməyə hazır olduğunuz və hansı bərpa yolu ilə yaşaya bildiyinizdir. Buna cavab verin, host, konteyner və ya VM seçimi adətən özü ortaya çıxır.

LXC qonağı host nüvəsinin daxilində işləyir

Konteynerin içində wireguard-tools quraşdırmaq sizə idarəetmə proqramını verir, şəxsi nüvə vermir. Yaradığınız wg0 interfeysi hostun şəbəkə yığınında qeydiyyata alınır və hostun modul siyahısında görünür. Buna görə konteyner bütün paket yoxlamalarından keçə, host nüvəsində modul olmadıqda yenə də ilk wg əmrində uğursuz ola bilər. Bu Proxmox konteyner arayışı həmin paylaşılan nüvə modelini, həmçinin işlədiyiniz ad məkanı və imtiyaz sərhədlərini sənədləşdirir.

Səlahiyyət ikinci məhdudiyyətdir. İnterfeysi qaldırmaq və ona ünvanlar bağlamaq onu sahiblənən ad məkanı daxilində şəbəkə idarəetmə hüquqlarını tələb edir, imtiyazsız konteyner isə bu hüquqları birbaşa saxlamaq əvəzinə istifadəçi ad məkanı vasitəsilə xəritələyir. İlk cavab kimi tam imtiyaza heç vaxt əl atmayın; konteynerdən həqiqətən nə tələb olunduğuna baxın, sonra onu verin.

Hostun nüvəsi də paylaşılan bir asılılıqdır. Proxmox nüvə yeniləməsi WireGuard tətbiqini bütün konteynerlərin altında eyni anda dəyişir, bu da bir yeniləmə ilə konteynerin gözləntiləri uyğunsuzlaşana qədər rahatdır.

Host, konteyner, VM: hər yerləşdirmə əslində nəyə sahibdir

Hostda yerləşdirmə VPN-i hipervizorun öz şəbəkəsinə qoyur. Marşrutlar, firewall qaydaları və tunel host bərpasının bir hissəsi olur, oradakı bir səhv idarəetmə interfeysini də apara bilər. Bu, konsol vasitəsilə çata bildiyiniz hostda infrastruktur marşrutlaşdırması üçün məqbuldur, kənar kanal girişi olmayan uzaq maşın üçün isə ağrılıdır.

Konteyner xidməti paketlənmiş və yenidən başladıla bilən saxlayır, eyni zamanda host nüvəsini borc alır. Bu, qəsdən paylaşılan nüvəli xidmətə uyğundur və sizə yenidən qurmaq üçün kiçik vahid verir. Onun ayrı nüvəsi yoxdur, ona görə xüsusi modul quruluşuna ehtiyac duyan hər şey bu variantdan uzağa baxır.

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 daha çox yaddaş və yamaq tələb edən daha bir sistemə başa gəlir, qarşılığında tunel öz nüvəsini, öz marşrut cədvəlini və snapshot sərhədini alır. Pis dəyişiklikdən sonra geri qaytardığınız şey VPN-dirsə, o snapshot əlavə yükə dəyər.

Sizin üçün seçim edən üç şərt

Tunel Proxmox hostunun təqdim etmədiyi bir nüvə versiyasına və ya WireGuard xüsusiyyətinə ehtiyac duyursa, burada dayanın və VM istifadə edin. Konteynerə daha yeni nüvə quraşdıra bilməzsiniz və bir qonağı razı salmaq üçün hipervizor nüvəsini dəyişməməlisiniz.

Tunel real LAN prefiksləri üçün saytın şlüzüdürsə, geri marşrutun artıq kimə aid olduğunu soruşun. Konteyner trafiki marşrutlaşdıra bilər, amma onun interfeysləri hostun yığınında oturur, ona görə də host planlaşdırsanız da planlaşdırmasanız da konfiqurasiyanın bir hissəsini daşıyır. Hostda yerləşdirmə bu barədə dürüstdür; konteynerdə yerləşdirmə çox vaxt deyil.

Sonra səhvin zərbə radiusunu ölçün. Konteyneri yenidən başlatmaq ucuzdur, VM snapshotını bərpa etmək proqnozlaşdırıla biləndir, host şəbəkəsini təmir etmək isə fiziki və ya konsol çıxışı tələb edə bilər. Düzgün seçim ən pis halı hadisə baş verdiyi saatda həqiqətən bərpa edə bildiyiniz seçimdir.

Dördüncü sual nadir hallarda həlledici olur, amma qeyd etməyə dəyər: hostdakı başqa bir şey tunel interfeysini görməlidirmi? Cavab bəlidirsə, hostda və ya konteynerdə yerləşdirmə bu görünürlüyü lokal saxlayır, VM isə sizi qonaqla host arasında marşrutlaşdırmağa məcbur edir.

Trafiki onun içindən marşrutlaşdırmadan yerləşdirməni sübut edin

Qurulduqdan sonra interfeysə əslində hansı nüvənin xidmət etdiyini və konteynerə onu saxlamaq üçün kifayət qədər səlahiyyət verilib-verilmədiyini təsdiqləyin:

$ 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

Sonra hostdan yönləndirmə tərəfini yoxlayın, çünki yalnız əl sıxma tunelin qalxdığını sübut edir. Müştəri ünvanı üçün ip route get istifadə edin və növbəti atlama ilə interfeysin dizayna uyğun olduğunu, uzaq tərəfdə geri yolun mövcud olduğunu təsdiqləyin.

Yerləşdirməni yazılı sahiblə buraxın: tətbiqi hansı nüvə daşıyır, interfeysi hansı ad məkanı saxlayır və şlüzə hansı prefiksləri yönləndirməyə icazə verilir. O cümlə üç yerləşdirmənin istənilən benchmark müqayisəsindən daha çox hadisənin qarşısını alır.

Əlaqəli məqalələr