Ìmúlò Linux lasan ń lo VPN láìfọwọ́ kan TUN
Daemon ni ó ni ẹ̀rọ TUN àti ọ̀nà abẹ́lẹ̀; àwọn ìmúlò kàn ń ṣí socket. Pa àǹfààní ìṣètò àti ààyè nẹ́tíwọ́kì mọ́ gẹ́gẹ́ bí ààlà ọ̀tọ̀ọ̀tọ̀.
Aṣàwákiri tí ó ń lo Linux VPN tí a ti ṣètò kò ṣí /dev/net/tun. Ó ṣí socket, kọ̀ǹpútà sì pinnu irú ojú-ọ̀nà tí àwọn pákẹ́ẹ̀tì socket yẹn gbà jáde. Ìlànà tí ó dá ọ̀nà abẹ́lẹ̀ ń ṣe iṣẹ́ mìíràn ju ìlànà tí ó ń gbé ìrìnnà rẹ̀. Pípa àwọn ipa méjì yìí mọ́ ọ̀tọ̀ọ̀tọ̀ ń dáhùn ọ̀pọ̀lọpọ̀ ìbéèrè nípa ààyè kí a tó béèrè wọn.
Tẹ̀lé pákẹ́ẹ̀tì kan láti socket dé ọ̀nà abẹ́lẹ̀
Ìmúlò lasan pe connect tàbí send, kọ̀ǹpútà sì wá ọ̀nà sí ibi tí ó ń lọ. Bí ọ̀nà tí a yàn bá tọ́ka sí ojú-ọ̀nà abẹ́lẹ̀, a fi pákẹ́ẹ̀tì sí ìlà ní ẹ̀rọ tí daemon VPN ń kà. Daemon ń fi àmì ìkọ̀kọ̀ bo ó, ó sì ń gbé e jáde nípasẹ̀ ojú-ọ̀nà ara. Gbogbo ọfà nínú àpèjúwe yẹn jẹ́ ibi tí a ti lè dáhùn ìbéèrè nípa ààyè.
Kò sí ohunkóhun ní ọ̀nà yẹn tí ó béèrè pé kí ìmúlò mọ ẹ̀rọ náà. Daemon ń di àpèjúwe fáìlì mú, ó sì ń ṣe àwọn iṣẹ́ ojú-ọ̀nà, nígbà tí ìmúlò kàn ń rí API nẹ́tíwọ́kì lasan.
Ya ẹ̀ka méjì náà lẹ́ẹ̀kan, àwọn ìbéèrè nípa ààyè yóò sì rọrùn láti gbé kalẹ̀. Ẹ̀ka òkè ni ayé àwọn ìmúlò, ẹ̀ka ìsàlẹ̀ sì jẹ́ ti daemon.
Pinnu ẹni tí ó nílò ẹ̀rọ náà àti ẹni tí kò nílò
Dídá ojú-ọ̀nà TUN tàbí dídarapọ̀ mọ́ ọn béèrè ààyè sí ẹ̀rọ náà àti ní àfikún agbára láti ṣètò rẹ̀, ìdí ni pé iṣẹ́ VPN tí a ṣe àtìlẹ́yìn fún bẹ̀rẹ̀ pẹ̀lú àṣẹ ìṣàkóso nẹ́tíwọ́kì tàbí ó ń lo olùrànlọ́wọ́ aláṣẹ. Ìbéèrè yẹn jẹ́ ti daemon. Kò sọ ohunkóhun nípa aṣàwákiri, oníbàárà dátàbésì tàbí irinṣẹ́ gbígbé fáìlì. Iṣẹ́ tí ó nílò agbára yẹn nílò ó fún ìgbésẹ̀ ìṣètò tirẹ̀, kì í ṣe fún àwọn oníbàárà rẹ̀.
Ní kété tí ọ̀nà àti ìlànà bá wà ní ipò, ìlànà lasan ń lo ọ̀nà tí ó jáde nípasẹ̀ àwọn ìpè socket deede rẹ̀. Kò nílò node ẹ̀rọ náà, kò sì nílò root.
Yíyí àwọn ààyè ẹ̀rọ náà padà kì í ṣe ọ̀nà láti fún ìmúlò ní ààyè sí ibi tí ó ń lọ. Ó kàn ń gbé ààlà ẹ̀rọ náà lọ síbòmíràn.
Ṣàyẹ̀wò pápá orúkọ tí ìmúlò ń ṣiṣẹ́ nínú gan-an
Container, tàbí pápá orúkọ nẹ́tíwọ́kì kejì, ń fún àwọn ìlànà rẹ̀ ní àkójọ ojú-ọ̀nà àti tábìlì ọ̀nà ọ̀tọ̀ọ̀tọ̀. Ọ̀nà abẹ́lẹ̀ lórí olùgbàlejò kò farahàn níbẹ̀ fúnra rẹ̀, kò sì sí ìyípadà ààyè ẹ̀rọ nào tí yóò yí i padà. Ìmúlò yóò kàn gba ọ̀nà nípasẹ̀ ohun tí pápá orúkọ yẹn ń pèsè. Ìdí ni pé àwòrán container kò lè jogún ọ̀nà abẹ́lẹ̀ olùgbàlejò láìròtẹ́lẹ̀.
Ṣàyẹ̀wò pẹ̀lú ip netns list àti ip -n NAME route, tàbí nípa wíwo ìsopọ̀ pápá orúkọ ìlànà náà. Ìdáhùn sábà máa ń hàn nínú àṣẹ kan ṣoṣo.
A tún lè fún àwọn olùlò méjì lórí olùgbàlejò kan ní àwọn ọ̀nà ọ̀tọ̀ọ̀tọ̀ nípasẹ̀ ìlànà. Ìyẹn jẹ́ ìpinnu nẹ́tíwọ́kì, kì í ṣe ẹ̀rí nípa ìní ẹ̀rọ náà.
Ya àwọn agbára kúrò nínú ìlànà nẹ́tíwọ́kì
Àwọn irinṣẹ́ kan nílò ju socket lọ. Gbígbá pákẹ́ẹ̀tì nílò socket àìfọwọ́ kàn, yíyí ọ̀nà padà sì nílò àṣẹ ìṣàkóso. Wọ́n jẹ́ àwọn iṣẹ́ ọ̀tọ̀ọ̀tọ̀ pẹ̀lú àwọn ààyè ọ̀tọ̀ọ̀tọ̀, kò sì yẹ kí a ka fífúnni ní ọ̀kan gẹ́gẹ́ bí ìbéèrè gbogbogbò fún lílo VPN.
Ètò tí ó ń ṣe ọ̀nà abẹ́lẹ̀ tirẹ̀ ni ọ̀ràn kẹta. Ó ń ṣí TUN gan-an nítorí pé ó ń gba ipa daemon, ìdí ni pé ó nílò àwọn àǹfààní daemon.
Dárúkọ iṣẹ́ náà kí o tó dárúkọ àǹfààní náà. Sábà máa ń rọrùn láti ya wọ́n méjèèjì kúrò ju bí ó ti dà.
Ṣèdánwò ìpín yẹn pẹ̀lú àwọn àkọsílẹ̀ méjì
Sopọ̀ ọ̀nà abẹ́lẹ̀ gẹ́gẹ́ bí iṣẹ́, lẹ́yìn náà ṣiṣẹ́ ìmúlò náà gẹ́gẹ́ bí olùlò lasan kí o sì jẹ́rìí pé ó dé orísun àdáni. Ṣàyẹ̀wò ip route get fún ibi tí ó ń lọ láti inú shell olùlò yẹn láti rí ojú-ọ̀nà tí a yàn. Bí ọ̀nà bá tọ́ tí ìsopọ̀ kò sì ṣiṣẹ́, ìṣòro náà ni ìlànà, kì í ṣe àǹfààní.
Àpẹẹrẹ tí ó jáde ni àǹfààní tí ó kéré jù pẹ̀lú ààlà tí ó ṣe kedere: ẹ̀yà kan ni ó ni ìṣètò àti àwọn ohun àmúṣọrọ̀ ọ̀nà abẹ́lẹ̀, àwọn ẹrù iṣẹ́ ń pa àwọn àkọsílẹ̀ deede wọ́n mọ́, ìlànà nẹ́tíwọ́kì sì ń pinnu ohun tí ó lè kọjá. Ṣíṣe gbogbo rẹ̀ gẹ́gẹ́ bí root ń wó àwọn ipa yẹn lulẹ̀ láìṣàlàyé ohunkóhun.