pfSense lórí Virtio: TCP dúró títí tí a ó fi pa offload
pfSense tí a ṣe àfihàn ẹ̀rọ ń dáhùn ping lẹ́yìn náà ó dúró lórí TCP ńlá. Pa ọ̀nà offload ti checksum virtio, kí o sì díwọ̀n iye owó dípò yíyí káàdì nẹ́tíwọ́kì.
Òǹkàwé kan jábọ̀ pé tunnel ń so, ping ń dáhùn, ojú-ìwé ìwọlé ń gbé wọlé, lẹ́yìn náà ìgbéjáde ń dí lórí ibi kan náà ní gbogbo ìgbìyànjú. Àwòrán yẹn ti sọ ọ̀pọ̀: ìwọlé ń ṣiṣẹ́ ṣùgbọ́n agbára ìgbéjáde tí ó dúró ṣinṣin kò ṣiṣẹ́. Kí o tó ṣí firewall, wádìí bóyá VPN tilẹ̀ ń kópa nínú ìkùnà yìí. Fi TCP ńlá kọjá gbàgede kan náà láìsí tunnel ní ọ̀nà; bí ó bá tún dí, OpenVPN kò kópa rárá.
Àlejò pfSense tí ó ń lo káàdì nẹ́tíwọ́kì virtio ní ìdí tí ó dára gan-an láti kùnà ní irú ìrísí yẹn gan-an.
Àwọn pákẹ́tì kékeré ń kọjá, TCP ńlá ń rọ̀
Ìfọwọ́bára, àwọn ìdáhùn DNS àti ìró ICMP kéré, wọ́n sì sábà ń kọjá. Ìgbéjáde tí ó dúró ṣinṣin fipá mú àlejò láti pín ìpín, ibẹ̀ sì ni ọ̀nà offload tí ó bàjẹ́ ti farahàn. Ìkùnà kò gbọdọ̀ jẹ́ alátagbà: ìjáde lè já mọ́, nígbà tí ìwọlé ń ṣubú, tàbí ìdàkejì, nítorí náà olùlò lè wọlé lẹ́yìn náà ó dí lórí ìdáhùn ńlá àkọ́kọ́. Nítorí pé òǹkàwé kan náà ń ṣiṣẹ́ nípasẹ̀ gbàgede mìíràn, ẹ̀bi ń wọ́ lórí ẹ̀yà tuntun.
Nítorí náà dán gbàgede náà wò láìsí tunnel. Ìgbàsílẹ̀ láti LAN sí WAN tí ó tóbi tó láti ṣiṣẹ́ fún ìṣẹ́jú àáyá mélòó kan ti tó, ó sì gbọdọ̀ ṣe kí ó tó èyíkéyìí ìyípadà ètò kí ìfiwéra lẹ́yìn náà lè ní ìtumọ̀.
Kí ni offload ń ṣèlérí gan-an
virtio jẹ́ paravirtual: olùgbàlejò àti àlejò ń pín iṣẹ́, olùgbàlejò ń kéde agbára checksum àti pínpín, ó sì ń retí pé àlejò yóò parí ohun tí ó bẹ̀rẹ̀. Bí ìkópọ̀ àlejò kò bá ṣe bẹ́ẹ̀, àwọn férémù ń jáde pẹ̀lú checksum tí kò pé tàbí olùgbàlejò ń sọnù. E1000 tí a ṣe àfarawé ń pèsè àwòrán tí ó rọrùn àti tí ó lọra, nínú èyí tí ìṣòro náà ń pòórá láìsí ìyípadà kan ní pfSense. Ìdúnàádúrà agbára ń ṣẹlẹ̀ fún ẹ̀rọ kọ̀ọ̀kan, èyí tí ó ṣàlàyé ìdí tí àlejò kan fi ń ṣiṣẹ́ fún oṣù púpọ̀ nígbà tí ìbejì rẹ̀ tí a tún kọ́ ń kùnà ní ọjọ́ kìíní.
Ẹ̀ka tí a dúnàádúrà lórí rẹ̀ dá lórí ẹ̀yà hypervisor àti àwòrán káàdì nẹ́tíwọ́kì tí a yàn, kì í ṣe lórí ìṣètò tí o gbé wọlé nìkan.
Pátákó ìṣàyàn kan ń pa virtio mọ́
Nínú ojú-ìwé pfSense, Ẹ̀rọ lẹ́yìn náà Ìlọ́tìkọ̀ lẹ́yìn náà Nẹ́tíwọ́kì ní pátákó ìṣàyàn tí a pè ní Pa offload checksum ohun-èlò. Bí o bá yàn án, àlejò ń ṣírò checksum nínú sọ́fítíwèà, èyí tí ó bá ohun tí ìkópọ̀ FreeBSD lẹ́yìn pfSense ń retí láti ẹ̀rọ paravirtual mu. Àwọn àṣàyàn méjì tí ó ní ìbáṣepọ̀ lórí ojú-ìwé kan náà ń bo offload pínpín TCP ohun-èlò àti offload gbígbà ńlá ohun-èlò. Yípadà sí wọn nígbà tí ìfọwọ́bára bá ṣàṣeyọrí ṣùgbọ́n ìgbéjáde ńlá kò ṣàṣeyọrí.
Fi káàdì nẹ́tíwọ́kì sílẹ̀ gẹ́gẹ́ bí virtio nígbà tí o ń ṣe ìyípadà náà. Yíyí padà sí E1000 ń sun CPU lórí gbogbo pákẹ́tì fún gbogbo ìgbésí ayé VM, ó sì ń fi ìṣòro ìṣètò pamọ́ fún ẹnikẹ́ni tí yóò jogún olùgbàlejò, èyí tí ó jẹ́ pàṣípààrọ̀ tí ó burú ju ọ̀nà dátà tí ó lọra díẹ̀ ṣùgbọ́n tí a lè sọ tẹ́lẹ̀.
Díwọ̀n iye owó tí o ṣẹ̀ṣẹ̀ gbà
Checksum sọ́fítíwèà ń gbé iṣẹ́ sínú àlejò, nítorí náà díwọ̀n agbára ìgbéjáde lẹ́yìn náà dípò ríronú pé kò ná owó kankan. Lórí VM kékeré ìjìyà náà jẹ́ gidi, ṣùgbọ́n ó hàn, ó sì dúró ṣinṣin, yàtọ̀ sí pàdánù ìdákẹ́jẹ́ẹ́. Fi àwọn olùkà ìṣìnà ojú-ìwé àti àkọsílẹ̀ kérnẹ́lì àlejò wé ṣáájú àti lẹ́yìn. Hypervisor tí ó ń ṣe àyọ̀sẹ́wá lórí afárá jẹ́ ìkùnà ọ̀tọ̀ pẹ̀lú ẹ̀rí mìíràn, kò sì sí àsíá offload kankan tí yóò wo ó.
Yí ohun kan padà fún ìdánwò kọ̀ọ̀kan kí o sì kọ ọ̀nà àkójọ ààyò, pátákó tí o yàn àti nọ́mbà tí o díwọ̀n sílẹ̀. Ẹnikẹ́ni tí yóò dojú kọ àlejò tí a tún kọ́ tókàn yóò fẹ́ èyí mẹ́tẹ̀ẹ̀ta.
Àwọn firewall mìíràn tí ó dá lórí BSD ń pèsè ìṣàkóso tí ó dọ́gba nínú ètò ojú-ìwé wọn fúnra wọn, nítorí náà ìrònú náà ń lọ àní nígbà tí ọ̀nà àkójọ ààyò kò bá lọ.