Egy ügyfél jelenti, hogy az alagút csatlakozik, a ping válaszol, a bejelentkező oldal betöltődik, majd az átvitel minden kísérletnél ugyanazon a ponton lefagy. Ez a minta már sokat elárul: az elérhetőség működik, a tartós átviteli sebesség nem. Mielőtt kinyitná a tűzfalat, derítse ki, hogy a VPN egyáltalán részt vesz-e a hibában. Küldjön nagy TCP-t ugyanazon az átjárón keresztül, alagút nélkül az útvonalon; ha az is lefagy, az OpenVPN soha nem volt érintett.

Egy virtio hálókártyát használó pfSense vendégnek nagyon jó oka van arra, hogy pontosan ilyen formában valljon kudarcot.

A kis csomagok átjutnak, a nagy TCP elakad

A kézfogások, a DNS-válaszok és az ICMP-visszhangok kicsik, és általában átjutnak. A tartós átvitelek szegmentálásra kényszerítik a vendéget, és itt bukkan elő a sérült offload-útvonal. A hiba nem feltétlenül szimmetrikus: a kimenő forgalom tiszta lehet, miközben a bejövő elvész, vagy fordítva, így a felhasználó be tud jelentkezni, majd megakad az első nagy válasznál. Mivel ugyanaz az ügyfél egy másik átjárón keresztül működik, a hibát a legújabb komponens kapja.

Ezért tesztelje az átjárót az alagút nélkül. Elegendő egy LAN-ból WAN-ba irányuló letöltés, amely elég nagy ahhoz, hogy néhány másodpercig fusson, és ezt minden beállításmódosítás előtt el kell végezni, hogy a későbbi összehasonlításnak legyen értelme.

Mit ígér valójában az offload

A virtio paravirtualizált: a gazdagép és a vendég megosztja a munkát, a gazdagép ellenőrzőösszeg- és szegmentálási képességeket hirdet, és elvárja, hogy a vendég befejezze, amit elkezdett. Ha a vendég vereme ezt nem teszi, a keretek hiányos ellenőrzőösszeggel távoznak, vagy a gazdagép eldobja őket. Az emulált E1000 egyszerűbb és lassabb modellt kínál, amelyben a probléma eltűnik egyetlen pfSense-módosítás nélkül. A képességek egyeztetése eszközönként történik, ami megmagyarázza, miért fut az egyik vendég hónapokig, míg az újraépített ikertestvére már az első napon elbukik.

Az egyeztetett készlet a hipervizor verziójától és a választott hálókártya-modelltől függ, nem csak az importált konfigurációtól.

Egy jelölőnégyzet megtartja a virtiót

A pfSense felületén a Rendszer, majd Speciális, majd Hálózat alatt található egy jelölőnégyzet: Hardveres ellenőrzőösszeg-offload letiltása. Bejelölésekor a vendég szoftverben számítja az ellenőrzőösszegeket, ami megfelel annak, amit a pfSense mögötti FreeBSD verem elvár egy paravirtualizált eszköztől. Ugyanazon az oldalon két kapcsolódó beállítás fedi a hardveres TCP-szegmentációs offloadot és a hardveres nagy fogadási offloadot. Akkor nyúljon ezekhez, amikor a kézfogások sikerülnek, de a nagy átvitelek nem.

Hagyja a hálókártyát virtióként, miközben a módosítást elvégzi. Az E1000-re váltás a VM teljes élettartama alatt minden csomagnál processzort éget, és elrejti a konfigurációs problémát mindenki elől, aki örökli a gazdagépet, ami rosszabb üzlet egy valamivel lassabb, de kiszámítható adatútvonalnál.

Mérje meg a költséget, amelyet épp elfogadott

A szoftveres ellenőrzőösszeg-számítás munkát helyez át a vendégbe, ezért utána mérje meg az átviteli sebességet, ahelyett hogy feltételezné, hogy semmibe sem kerül. Kis VM-en a büntetés valós, de látható és stabil, ellentétben egy csendes veszteséggel. Hasonlítsa össze az interfész hibaszámlálóit és a vendég kernelnaplóját előtte és utána. A hidat szűrő hipervizor külön hiba más bizonyítékokkal, és semmilyen offload-jelző nem gyógyítja meg.

Tesztenként egy dolgot változtasson, és jegyezze fel a menüútvonalat, a bejelölt négyzetet és a mért számot. Aki a következő újraépített vendéggel találkozik, mindhármat kérni fogja.

Más BSD-alapú tűzfalak egyenértékű vezérlést kínálnak saját interfészbeállításaik alatt, így az érvelés akkor is érvényes marad, amikor a menüútvonal nem.

Kapcsolódó cikkek