Virtio üzərində pfSense: Offload söndürülənə qədər TCP dayanır
Virtuallaşdırılmış pfSense ping-lərə cavab verir, sonra böyük TCP axınında dayanır. NIC-i dəyişmək əvəzinə virtio yoxlama cəmi offload yolunu söndürün və xərci ölçün.
Bir müştəri bildirir ki, tunel qoşulur, ping cavab verir, giriş səhifəsi açılır, sonra ötürmə hər cəhddə eyni nöqtədə donur. Bu şəkil çox şey deyir: əlçatanlıq işləyir, davamlı ötürmə qabiliyyəti isə yox. Firewall-ı açmazdan əvvəl VPN-in bu nasazlıqda ümumiyyətlə iştirak edib-etmədiyini müəyyənləşdirin. Böyük TCP-ni yolunda tunel olmadan eyni şlüz vasitəsilə keçirin; o da donursa, OpenVPN heç vaxt işə qarışmayıb.
virtio şəbəkə kartı istifadə edən pfSense qonağı məhz bu formada uğursuz olmaq üçün çox yaxşı səbəbə malikdir.
Kiçik paketlər keçir, böyük TCP ilişib qalır
Handshake-lər, DNS cavabları və ICMP əks-sədaları kiçikdir və adətən keçir. Davamlı ötürmələr qonağı seqmentləşdirməyə məcbur edir və zədələnmiş offload yolu məhz burada üzə çıxır. Nasazlıq simmetrik olmaq məcburiyyətində deyil: çıxan trafik təmiz ola bilər, daxil olan isə düşür, ya da əksinə, buna görə istifadəçi daxil ola bilər və sonra ilk böyük cavabda ilişib qalır. Eyni müştəri başqa şlüz vasitəsilə işlədiyi üçün günah ən yeni komponentin üzərinə düşür.
Ona görə şlüzü tunelsiz sınaqdan keçirin. Bir neçə saniyə davam edəcək qədər böyük LAN-dan WAN-a endirmə kifayətdir və bu, hər hansı ayar dəyişikliyindən əvvəl aparılmalıdır ki, sonrakı müqayisə məna kəsb etsin.
Offload əslində nə vəd edir
virtio paravirtualdır: host və qonaq işi bölüşür, host yoxlama cəmi və seqmentləşdirmə qabiliyyətlərini elan edir və qonaqdan başladığını bitirməsini gözləyir. Qonağın yığını bunu etmirsə, çərçivələr natamam yoxlama cəmləri ilə çıxır və ya host tərəfindən atılır. Emulyasiya olunan E1000 daha sadə və yavaş model təklif edir ki, orada problem pfSense-də bir dənə dəyişiklik olmadan yox olur. Qabiliyyət danışıqları hər cihaz üzrə baş verir, bu da bir qonağın aylarla işləməsini, yenidən qurulmuş əkizinin isə ilk gündən sıradan çıxmasını izah edir.
Danışıqla razılaşdırılmış dəst hipervisor versiyasından və seçilmiş şəbəkə kartı modelindən asılıdır, yalnız idxal etdiyiniz konfiqurasiyadan deyil.
Bir işarə qutusu virtio-nu saxlayır
pfSense interfeysində Sistem, sonra Qabaqcıl, sonra Şəbəkə bölməsində Aparat yoxlama cəmi offload-unu söndür adlı işarə qutusu var. Onu işarələmək qonağın yoxlama cəmlərini proqram təminatında hesablamasına səbəb olur və bu, pfSense-in arxasındakı FreeBSD yığınının paravirtual cihazdan gözlədiyi ilə uyğun gəlir. Eyni səhifədəki iki əlaqəli seçim aparat TCP seqmentləşdirmə offload-unu və aparat böyük qəbul offload-unu əhatə edir. Handshake-lər uğur qazanıb böyük ötürmələr qazanmadıqda bunlara müraciət edin.
Dəyişikliyi edərkən şəbəkə kartını virtio olaraq saxlayın. E1000-ə keçmək VM-in bütün ömrü boyu hər paketdə CPU yandırır və konfiqurasiya problemini hostu miras alan hər kəsdən gizlədir, bu isə bir az yavaş amma proqnozlaşdırıla bilən məlumat yolundan daha pis bir mübadilədir.
Təzəcə qəbul etdiyiniz xərci ölçün
Proqram yoxlama cəmi işi qonağa köçürür, ona görə heç bir xərc olmadığını güman etmək əvəzinə sonra ötürmə qabiliyyəti ölçün. Kiçik VM-də cərimə realdır, lakin səssiz itkidən fərqli olaraq görünən və sabitdir. İnterfeys xəta sayğaclarını və qonağın nüvə jurnalını əvvəl və sonra müqayisə edin. Körpünü filtrləyən hipervisor fərqli dəlillərə malik ayrı bir nasazlıqdır və heç bir offload bayrağı onu sağaltmaz.
Hər sınaqda bir şey dəyişin və menyu yolunu, işarələdiyiniz qutunu və ölçdüyünüz rəqəmi yazın. Növbəti yenidən qurulmuş qonaqla üzləşən hər kəs üçünü də istəyəcək.
BSD əsaslı digər firewall-lar öz interfeys parametrlərində ekvivalent nəzarət təqdim edir, buna görə əsaslandırma menyu yolu olmadıqda da keçərlidir.