pfSense op Virtio: TCP staak tot die offload afgeskakel word
’n Gevirtualiseerde pfSense laat pings deur en staak dan op groot TCP-oordragte. Skakel die virtio-kontrolesom-offloadpad af en meet die koste eerder as om die netwerkkaart te vervang.
’n Kliënt rapporteer dat die tonnel verbind, ’n ping antwoord, die aanmeldbladsy laai en die oordrag dan by elke poging op dieselfde punt vasvries. Daardie patroon sê reeds baie: bereikbaarheid werk en volgehoue deurset nie. Voordat jy die firewall oopmaak, moet jy vasstel of die VPN hoegenaamd by die fout betrokke is. Stuur groot TCP deur dieselfde gateway sonder enige tonnel in die pad; as dit ook vasvries, was OpenVPN nooit betrokke nie.
’n pfSense-gasheer met ’n virtio-netwerkkaart het ’n baie goeie rede om presies in daardie vorm te faal.
Klein pakkies kom deur, groot TCP hang
Handdrukke, DNS-antwoorde en ICMP-eggo's is klein en kom gewoonlik deur. Volgehoue oordragte dwing die gasheer om te segmenteer, en dit is waar ’n beskadigde offloadpad na vore kom. Die fout hoef nie simmetries te wees nie: uitgaande verkeer kan skoon wees terwyl inkomende verkeer val, of andersom, so ’n gebruiker kan aanmeld en dan by die eerste groot antwoord vashaak. Omdat dieselfde kliënt deur ’n ander gateway werk, kry die nuutste komponent die skuld.
Toets dus die gateway sonder die tonnel. ’n LAN-tot-WAN-aflaai wat lank genoeg duur om ’n paar sekondes te loop, is genoeg, en dit moet voor enige instellingsverandering gedoen word sodat die vergelyking daarna iets beteken.
Wat offload werklik belowe
virtio is paravirtueel: gasheer en gas deel die werk, die gasheer adverteer kontrolesom- en segmenteervermoëns en verwag dat die gas klaarmaak wat hy begin het. As die gas se stapel dit nie doen nie, verlaat raamwerke die gas met onvolledige kontrolesomme of word deur die gasheer laat val. ’n Geëmuleerde E1000 bied ’n eenvoudiger, stadiger model waarin die probleem verdwyn sonder ’n enkele pfSense-verandering. Vermoë-onderhandeling gebeur per toestel, wat verduidelik waarom een gas maande lank werk en sy herboude tweeling op dag een faal.
Die onderhandelde stel hang af van die hipervisor-weergawe en die gekose netwerkkaartmodel, nie net van die konfigurasie wat jy ingevoer het nie.
Een merkblokkie hou virtio
In die pfSense-koppelvlak hou Stelsel dan Gevorderd dan Netwerk ’n merkblokkie met die naam Deaktiveer hardeware-kontrolesom-offload. Deur dit te merk, bereken die gas kontrolesomme in sagteware, wat ooreenstem met wat die FreeBSD-stapel agter pfSense van ’n paravirtuele toestel verwag. Twee verwante opsies op dieselfde bladsy dek hardeware-TCP-segmenteringsoffload en hardeware-grootontvangs-offload. Gryp na dié wanneer handdrukke slaag maar groot oordragte nie.
Laat die netwerkkaart as virtio terwyl jy die verandering maak. Om na E1000 oor te skakel, brand CPU op elke pakkie vir die leeftyd van die VM en verberg die konfigurasieprobleem vir wie die gasheer ook al oorneem, wat ’n slegter ruil is as ’n effens stadiger maar voorspelbare datapad.
Meet die koste wat jy pas aanvaar het
Sagteware-kontrolesomme skuif werk na die gas, so neem daarna ’n deursetmeting eerder as om aan te neem dit kos niks nie. Op ’n klein VM is die prys werklik, maar dit is sigbaar en stabiel, anders as ’n stil verlies. Vergelyk koppelvlak-fouttellers en die gas se kernlog voor en na. ’n Hipervisor wat die brug filter, is ’n aparte fout met ander bewyse, en geen offload-vlag sal dit genees nie.
Verander een ding per toets en skryf die kieslysroete, die blokkie wat jy gemerk het en die getal wat jy gemeet het neer. Wie die volgende herboude gas kry, sal al drie wil hê.
Ander BSD-gebaseerde firewalls bied ’n ekwivalente beheer onder hul eie koppelvlakinstellings, so die redenasie reis selfs wanneer die kieslysroete dit nie doen nie.