Shell ìbáraẹnisọ̀rọ̀ kan lórí ọ̀nà náà ń dì fún ìṣẹ́jú àáyá díẹ̀ nígbà tí ẹ̀dà fáìlì ń lọ, lẹ́yìn náà ó ń tẹ̀síwájú bí ẹni pé kò sí nǹkan tí ó ṣẹlẹ̀. Ìṣòro wà pẹ̀lú ìgbàsílẹ̀ nìkan, ṣùgbọ́n shell náà ń dúró pẹ̀lú, àti àwọn méjèèjì ń bọ̀ sípò ní àkókò kan náà. Àpẹẹrẹ yẹn ni àmì ìṣàn kan tí ó ṣeé gbẹ́kẹ̀lé tí ó ń gbé ọ̀pọ̀ ìjíròrò, ó sì ń ye gbogbo àyípadà ìṣàtúnṣe tí àwọn ènìyàn kọ́kọ́ gbìyànjú.

Ó yẹ kí a ka àmì náà pẹ̀lú àkíyèsí nítorí pé ó ń tọ́ka sí ẹ̀rọ kan kì í ṣe ètò kan: ìdádúró náà jẹ́ ti gbogbo ènìyàn, nítorí náà ìdí náà jẹ́ ti gbogbo ènìyàn, àti ohun tí ó jẹ́ ti gbogbo ènìyàn ni ìsopọ̀ ìta. Gbogbo nǹkan mìíràn nínú àkọsílẹ̀ náà ń dàbí deede nígbà tí èyí ń ṣẹlẹ̀.

Àmì náà: gbogbo nǹkan ń dúró ní àkókò kan

Ìsopọ̀ inú méjì tí ó ń di papọ̀ ni àmì náà. Ìgbàsílẹ̀ tí ó lọra àti shell tí ó lọra jẹ́ ìjíròrò TCP ọ̀tọ̀ọ̀tọ̀ pẹ̀lú àwọn nọ́mbà ìtẹ̀lé ọ̀tọ̀ọ̀tọ̀ àti ipò ìpọ́n ọ̀tọ̀ọ̀tọ̀, nítorí náà àìdáa nínú ọ̀kan kò yẹ kí ó fi ọwọ́ kan èkejì. Nígbà tí wọ́n bá dúró ní ìlù kan náà, ohun kan lókè wọn ń tò àwọn byte wọn.

Ohun yẹn ni ìpele ìgbékalẹ̀ ti ọ̀nà náà. Nínú ipò TCP, OpenVPN ń kọ àwọn pákítì tí a fi pa mọ́ sínú ìsopọ̀ TCP kan ṣoṣo sí ọ̀rẹ́ ẹ̀gbẹ́, àti májẹ̀mú TCP ni ìfijíṣẹ́ ìtẹ̀lé ti ìṣàn byte kan ṣoṣo. A kì í fi àwọn byte tí ó tẹ̀lé náà fún ohun èlò kí àwọn tí ó sọnù tó, èyí kò ní ìbáṣepọ̀ pẹ̀lú ìjíròrò inú tí wọ́n jẹ́ tiẹ̀.

Kíyèsí ohun tí àmì náà kò sọ. Kò sọ pé ọ̀nà náà ti bàjẹ́, pé ẹ̀rọ ìpèsè ti kún, tàbí pé ìkọ̀kọ̀ ti lọra. Àwọn wọnnì ń dá àwọn ìrísí mìíràn: ìgbéjáde tí ó kéré tọ̀tọ̀, àwọn àkókò tí ó parí, tàbí àwọn ìkùnà tí ó kan ẹ̀gbẹ́ kan. Ìdádúró tí a pín tí ó parí nígbà tí a bá tún fi ẹ̀ka tí ó sọnù ránṣẹ́ jẹ́ ìpa ìtẹ̀lé ní pàtó.

Ìṣàn byte ìta kan, ọ̀pọ̀ ìjíròrò inú

Fojú inú wò ó pé ọ̀nà náà ń gbé ìgbàsílẹ̀ àti shell ní àkókò kan. Ẹ̀ka kan ti ìsopọ̀ ìta sọnù. Àwọn ẹ̀ka tí ó tẹ̀lé lè dé ọ̀dọ̀ ẹ̀rọ tí ó gbà, àti pé ìpilẹ̀ TCP tí ó gbà yóò jẹ́rìí wọn, ṣùgbọ́n kò lè fi wọ́n ránṣẹ́ sókè títí àlàfo yóò fi kún. Nítorí náà OpenVPN kò ní ohun tí yóò kà fún shell, bí ó tilẹ̀ jẹ́ pé àwọn byte ti shell fúnra wọn dé ní ìgbà pípẹ́ sẹ́yìn.

Èyí ni ìdènà orí ìlà nínú ìsopọ̀ kan, kò sì ní ìbéèrè pé kí àwọn ohun èlò méjèèjì pín ìsopọ̀ inú. Wọ́n ń pín èyí tí ó wà ní ìta, èyí sì tó.

Ìpa ìpele kejì ń mú kí ó burú sí i. Olùránṣẹ́ inú tí kò rí ìjẹ́rìí lè tún fi dátà tí ìpele ìta ti ń gbìyànjú láti fijíṣẹ́ ránṣẹ́. Ìránṣẹ́ tún náà di ìrìnàjò ọ̀nà àfikún lórí ọ̀nà tí ó ṣẹ̀ṣẹ̀ fi hàn pé ó lè pàdánù àwọn ẹ̀ka, nítorí náà iṣẹ́ ìmúpadà ń díje pẹ̀lú ìmúpadà tí ó ṣe pàtàkì.

Kò sí nínú èyí tí ó ń ṣe ìdánilójú ìwópalẹ̀. Lórí ọ̀nà mímọ́ pẹ̀lú àwọn ìrìnàjò kúkúrú àti àwọn ìlà tí ó gbòòrò, ìṣètò yìí lè jẹ́ ohun tí a lè lò pátápátá fún ọ̀dún. Àìdáa náà ń farahàn nígbà tí pàdánù, ìdádúró àti jíjìn ìlà bá pàdé, ìdí niyì tí àwọn ìròyìn fi ń kóra jọ ní àyíká àwọn ọ̀nà ìsopọ̀ òkè tí ó kún àti àwọn ìsopọ̀ alágbèéká, kì í ṣe ní àyíká àwọn ọ́fíìsì tí a pèsè dáadáa.

Ìdí tí àkókò inú tí ó gùn kò lè ṣèrànwọ́

Gbígbé àkókò ìdúró kíkéré jùlọ fún ìránṣẹ́ tún sókè lórí ọ̀nà pẹ̀lú rto_min ń dúró ìránṣẹ́ tún tí ó dá lórí àkókò fún ìrìnàjò TCP tí a dá ní àdúgbò tí ó ń lo ọ̀nà yẹn. Ó jẹ́ ìtẹ̀mọ́ni gidi pẹ̀lú ìpa gidi, ó sì ń kojú ìṣòro ìpele kejì dípò ti kìíní.

ip route show
ip route show cache 2>/dev/null | head
ss -tin dst 10.70.0.1

Ohun tí kò lè ṣe ni ìdásílẹ̀ àwọn byte ìta ní àìtẹ̀lé, ìmúpadà ẹ̀ka tí ó sọnù kíákíá, tàbí mímú kí ẹ̀rọ ìpèsè ohun èlò tí ó jìnnà gbà àkókò ìdúró kan náà. Ìpilẹ̀ tí ó gbà ń fijíṣẹ́ ní ìtẹ̀lé ṣì, olùránṣẹ́ ní ìpẹ̀kun tí ó jìnnà sì ń lo àwọn ìwọ̀n ìrìnàjò rẹ̀ fúnra rẹ̀.

Kò tún pa gbogbo àwọn ọ̀nà ìmúpadà pàdánù mìíràn. Níbi tí pàdánù gidi ń béèrè ìmúpadà tí ó dá lórí àkókò, kíkéré tí ó tóbi ń mú kí ohun èlò dúró pẹ́ kí ó tó ṣiṣẹ́, èyí tí ó tako ohun tí ìpàdé tí ó ní ìfòyà ìdádúró nílò.

Ìpilẹ̀ tí ó dúró ṣinṣin fún ìṣẹ́jú àáyá méjìlá ń farahàn nínú ìmọ̀ràn lórí kókó yìí bí ẹni pé wíwà ọ̀nà TCP ń béèrè rẹ̀. Àkókò ìránṣẹ́ tún tí a ṣàpèjúwe nínú RFC 6298 ni a ń mú jáde láti inú àkókò ìrìnàjò tí a wọ̀n pẹ̀lú ìpadàsẹ́yìn olóye, nítorí náà ìpilẹ̀ tí kò yí padà jẹ́ yíyàn ètò fún ọ̀nà pàtó, kì í ṣe ìbéèrè ìlànà. Bí a bá lò ó ní gbòòrò, ó ń fi àmì náà pamọ́ nígbà tí ó ń yí ìmúpadà padà fún gbogbo ìṣàn tí ọ̀nà yẹn ń bo.

Ohun tí tcp-nodelay ń ṣe àti ohun tí kò ṣe

Àṣàyàn ọ̀nà tí ó pa bọ́ọ̀sìtà ìrísí Nagle mọ́ lórí sọ́kẹ́tì ìgbékalẹ̀ ní èròǹgbà tóóró: ó ń dá àwọn kíkọ kékeré dúró láti retí dátà síi kí ó tó ránṣẹ́. Èyí ń ràn àwọn ìrìnàjò ìbáraẹnisọ̀rọ̀ lọ́wọ́ láti yẹra fún ìdádúró àfikún lórí ọ̀nà tí ó yá fún ìlera.

Kò sọ ìgbékalẹ̀ di àìtẹ̀lé, kò sì kúkúrú ìmúpadà lẹ́yìn ẹ̀ka tí ó sọnù. Shell tí ó dúró fún àkókò ìránṣẹ́ tún yóò ṣì dúró pẹ̀lú àṣàyàn náà ní ṣíṣí, nítorí àṣàyàn kò fi ọwọ́ kan òfin ìtẹ̀lé rí.

Ó rọrùn láti dàpọ̀ àwọn méjèèjì nítorí pé a ń ṣàpèjúwe àwọn méjèèjì gẹ́gẹ́ bí àtúnṣe ìdádúró. Ọ̀kan ń yọ ìdúró àtọwọ́dá tí bọ́ọ̀sìtà mú wá kúrò, èkejì yóò béèrè fún yíyí ohun tí ìgbékalẹ̀ ń ṣe ìdánilójú padà, kò sì sí àṣàyàn sọ́kẹ́tì tí ó ṣe bẹ́ẹ̀.

Bí a ṣe lè fi ìgbékalẹ̀ wé ara wọn lọ́nà títọ́

Bí olùṣàkóso bá gbà á, tí àwọn iṣẹ́ méjèèjì sì wà, fi iṣẹ́ UDP àti iṣẹ́ TCP tí ó ń gbé ẹrù iṣẹ́ kan náà wé ara wọn lórí ọ̀nà ìwọlé kan náà sí ẹ̀rọ ìpèsè kan náà. Yíyí orílẹ̀-èdè, olùpèsè tàbí ìran ẹ̀rọ ìpèsè padà láàrin àwọn àdánwò méjèèjì ń mú onílàákàyè wá tí yóò jẹ ọba lórí àbájáde.

Wo ìdádúró tí a pín dípò nọ́mbà ìgbéjáde. Ọ̀pọ̀ ohun èlò inú tí ó di papọ̀ nígbà pàdánù ìta ni àkíyèsí tí ó dà àmì ìdènà orí ìlà; nọ́mbà ìdánwò ìyá kan tí ó kéré kò ṣe bẹ́ẹ̀.

Àwọn gbígbà tí a gbà láyè lórí ìpele ọ̀nà àti lórí ìpele ti ara ń pín àwọn ìpele méjèèjì mọ́ ní pípé, nítorí àwọn ìránṣẹ́ tún inú àti ti ìta jẹ́ ti àwọn ìsopọ̀ ọ̀tọ̀ọ̀tọ̀ pẹ̀lú àwọn ààyè ìtẹ̀lé ọ̀tọ̀ọ̀tọ̀. Rírí àwọn ìránṣẹ́ tún inú nígbà tí ìṣàn ìta ń fi àlàfo hàn ni ẹ̀rí tààrà.

Yíyí padà sí UDP ń yọ ìṣàn ìgbẹ́kẹ̀lé àfikún kúrò, ó sì ń fi TCP inú sílẹ̀ láti ṣe ìmúpadà rẹ̀ fúnra rẹ̀. Kò ṣe ìlérí àìsí pàdánù tàbí ìdádúró kéré, àti pé ọ̀nà òkè tí ó kún, àwọn ìlà tí ó tóbi jù, tàbí ìṣòro MTU yóò ṣì nílò àtúnṣe. Ìrìnàjò tí ó wà ní ìta ọ̀nà kì í dúró lẹ́yìn àlàfo ìtẹ̀lé ọ̀nà, bí ó tilẹ̀ jẹ́ pé ó lè ṣì jìyà nígbà tí àwọn ọ̀nà méjèèjì bá pín ìsopọ̀ kan tí ó kún, àti pé ìdènà pínpín yẹn yẹ fún ìwádìí tirẹ̀ dípò kí a ká a mọ́ èyí.

Àwọn àpilẹ̀kọ tó jọra