Àwọn bọ́ọ̀dù ìdàgbàsókè méjì gbọ́dọ̀ pín ẹ̀ka Ethernet kan nígbà tí àwọn ibùdó wọn wà ní àwọn ilé oríṣiríṣi. Ojú-ọ̀nà náà ti wà tẹ́lẹ̀, ó sì ti ń gbé Ethernet, nítorí náà iṣẹ́ tó kù dàbí àwọn àṣẹ mẹ́ta, kì í sì í ṣe bẹ́ẹ̀. Ohun tí agbàlejo ń ṣe pẹ̀lú férémù tí a ti gbà kọjá afara, ibi tí àdírẹ́sì kọ̀mpútà fúnra rẹ̀ wà, àti irú ààlà tí afara kò dá ni àwọn òtítọ́ mẹ́ta ọ̀tọ̀ọ̀tọ̀, àti ṣíṣe àṣìṣe nínú èkejì ni ìdí tó wọ́pọ̀ tí yàrá-ìdánwò fi ń ṣiṣẹ́ lẹ́ẹ̀kọ̀ọ̀kan tí àǹfààní ìṣàkóso rẹ̀ sì ń dín kù ní ìdákẹ́jẹ́ẹ́. Kò sí ọ̀kan nínú àwọn òtítọ́ mẹ́ta yìí tí ó hàn nínú àwòrán ìtòlẹ́sẹẹsẹ.

Ọ̀nà tó wà nísàlẹ̀ gbà pé ìsopọ̀ TAP tí a fìdí rẹ̀ múlẹ̀ wà laarin kọ̀mpútà Linux méjì, pọ́ọ̀tì oníwaya àkànṣe kan fún ibùdó kọ̀ọ̀kan, àti ìnterfésì ìṣàkóso tí kì í ṣe apá kan ìdánwò náà. Ìtòlẹ́sẹẹsẹ ṣe pàtàkì: férémù kọ́kọ́, àdírẹ́sì lẹ́yìn, ààlà ní ìparí.

Ohun tí afara ń gbé ní ti gidi

Afara jẹ́ swíìṣì tí a ṣe nínú sọ́fíwéà. Ó ń kọ́ àdírẹ́sì MAC wo ni ó farahàn lẹ́yìn pọ́ọ̀tì ọmọ ẹgbẹ́ wo, ó sì ń gbé àwọn férémù kọjá laarin àwọn ọmọ ẹgbẹ́ láìwo tábìlì ìṣàmúlò IP. Kò sí ohun kan nínú àpèjúwe yẹn tí ó ní subnẹ́ẹ̀tì, ẹnubodè tàbí ọ̀nà àìdánilójú, ìdí nìyẹn tí mímú gbígbé IP ṣiṣẹ́ kò fi dá ìsopọ̀ yìí, àti ìdí tí ping fi lè ṣàṣeyọrí nígbà tí ìrìnàjò mìíràn ṣì ń kùnà. Bọ́ọ̀dù lè dé ọ̀dọ̀ alábàákẹ́gbẹ́ rẹ̀ láìsí ọ̀nà àìdánilójú kankan, èyí tí ó ń yà àwọn tí wọ́n ń retí pé ìpele kejì yóò huwa bí ìpele kẹta lẹ́nu.

Kọ̀mpútà kọ̀ọ̀kan ń fi pọ́ọ̀tì oníwaya kan àti ẹ̀rọ TAP fún afara kan náà, nítorí náà férémù láti bọ́ọ̀dù kan wọ inú pọ́ọ̀tì àdúgbò, a gbé e lọ sí ẹ̀rọ TAP, ó kọjá ojú-ọ̀nà, ó dé ẹ̀rọ TAP alábàákẹ́gbẹ́, a sì gbé e jáde sí bọ́ọ̀dù alábàákẹ́gbẹ́. Ojú-ọ̀nà jẹ́ pọ́ọ̀tì ọmọ ẹgbẹ́ bíi èyíkéyìí mìíràn, afara kò sì mọ̀ tàbí kò bìkítà pé VPN wà lẹ́yìn rẹ̀. Ìdọ́gba yẹn ni ó mú kí àpẹẹrẹ rọrùn láti ronú lé e: ẹ̀gbẹ́ kọ̀ọ̀kan ní pọ́ọ̀tì kan tí ó kọjú sí yàrá-ìdánwò àti pọ́ọ̀tì ojú-ọ̀nà kan, kò sì sí ẹ̀gbẹ́ pàtàkì.

Board A -- bench0 -- br-test -- tap-bench
                                 |  OpenVPN TAP
Board B -- bench0 -- br-test -- tap-bench

Àwọn orúkọ tó jọra lórí kọ̀mpútà méjèèjì jẹ́ orúkọ àdúgbò, kì í ṣe àwọn ohun tí a pín. Ojú-ọ̀nà Ethernet kan wà laarin àwọn ibùdó, láìsí kebù ìkejì àti láìsí ojú-ọ̀nà ìkejì tí ó dè ìyípo; afara tí ó bá rí MAC kan náà tí ó dé lórí pọ́ọ̀tì méjì yóò fi tayọ̀tayọ̀ gbé e kọjá ní àyíká.

Fún afara ní àdírẹ́sì, kì í ṣe àwọn pọ́ọ̀tì ọmọ ẹgbẹ́ rẹ̀

Ìdánimọ̀ kọ̀mpútà lórí ẹ̀ka yàrá-ìdánwò jẹ́ ti ẹ̀rọ afara. Àwọn pọ́ọ̀tì ọmọ ẹgbẹ́ wà láìsí nọ́mbà, nítorí pọ́ọ̀tì jẹ́ ọmọ ẹgbẹ́ tí ń gbé kọjá, àdírẹ́sì kan lórí rẹ̀ yóò sì dá olówó ìkejì tí ó ń díje fún ẹ̀ka kan náà. Èyí ni àtúnṣe tí ọ̀pọ̀ àwọn ìlànà tí a fi ọwọ́ kọ ń ṣe lọ́nà tí kò tọ́: wọ́n ń fún ẹ̀rọ TAP àti afara ní àdírẹ́sì, lẹ́yìn náà wọ́n ń ṣe kàyéfì èwo ni alábàákẹ́gbẹ́ ń dé gidi.

ip link add br-test type bridge
ip link set bench0 master br-test
ip link set tap-bench master br-test
ip address add 172.30.90.2/24 dev br-test
ip link set bench0 up
ip link set tap-bench up
ip link set br-test up

Alábàákẹ́gbẹ́ ń lo irú kan náà pẹ̀lú àdírẹ́sì agbàlejo mìíràn, àwọn bọ́ọ̀dù sì ń gba àdírẹ́sì ní ibi kan náà pẹ̀lú àdírẹ́sì afara kọ̀mpútà gẹ́gẹ́ bí ìfò tó kàn tí wọ́n bá nílò ọ̀kan. Lo àwọn ìwọ̀n àkọsílẹ̀ títí tí ètò yóò fi gbà, kí o sì pa ìwọ̀n náà mọ́ kí ó má bàa kọlu ohun tí ọ́fíìsì ti ń darí. Ṣáájú ṣíṣe ohunkóhun nínú rẹ̀, jẹ́rìí pé àwọn pọ́ọ̀tì ọmọ ẹgbẹ́ kò gbé àdírẹ́sì tó kù, alábàárà DHCP àti ìjẹ́ọmọ ẹgbẹ́ nínú afara mìíràn, kí o sì ṣe àdírẹ́sì ẹ̀rọ TAP ní ìbámu nípasẹ̀ ohun tí ó ní ìtòlẹ́sẹẹsẹ ojú-ọ̀nà kí ó má baà mú àdírẹ́sì padà lẹ́yìn.

Kí ló fà á tí pọ́ọ̀tì àkànṣe kan wà fún ibùdó kọ̀ọ̀kan

Pọ́ọ̀tì oníwaya àkànṣe ni ó ń dá ìdánwò dúró láti di àyípadà fún gbogbo ọ́fíìsì. Ìnterfésì ìṣàkóso ń gbé SSH, ọ̀nà àìdánilójú àti ìsopọ̀ VPN tí ó wà lóde, kò sì sí ọ̀kan nínú wọn tí ó jẹ́ ti afara tí èrò rẹ̀ jẹ́ gbígbé àwọn férémù yàrá-ìdánwò.

Sísopọ̀ àdàpítà ìṣàkóso ń fi LAN ọ́fíìsì sí ààyè ìpinnu gbígbé kan láti bọ́ọ̀dù ìdàgbàsókè, bọ́ọ̀dù tí ó sì ń huwa búburú ní ìpele kejì ni irú ẹ̀rọ tí ìwọ kò fẹ́ lórí ẹ̀ka yẹn. Àdàpítà Wi-Fi tilẹ̀ burú jù: gbígbé ìnterfésì aláìsíwaya kọjá ní ipò ìpìlẹ̀ kò huwa bí gbígbé Ethernet kọjá, ìkùnà sì ń dàrú dípò kí ó mọ́.

Pa ìwọ̀n yàrá-ìdánwò mọ́ kúrò níbi èyíkéyìí ìwọ̀n DHCP ìṣelọ́pọ̀. Tí àwọn bọ́ọ̀dù bá nílò àdírẹ́sì aláyọ̀yọ̀ lẹ́yìn, olùpínpín tí a fọwọ́ sí pẹ̀lú adágún kan ni ètò kan ṣoṣo tí ó ń wà ní àfojúsùn; àwọn olùdarí ojú-ọ̀nà déédéé ti ibi méjì tí wọ́n ń dáhùn lórí ẹ̀ka kan náà ń dá àwọn àdírẹ́sì tí ẹnikẹ́ni kò lè ṣàlàyé.

Ààlà tí afara kò dá

Gbígbé kọjá kì í ṣe ìdarí, bẹ́ẹ̀ ni kì í ṣe ìyàsọ́tọ̀. Àwọn férémù tí ó kọjá afara ṣì lè dé àwọn ìkọ̀kọ̀ àyọ̀ṣẹ́nú agbàlejo, ní ìbámu pẹ̀lú ọ̀nà bridge-netfilter tí a fi sórí ẹ̀rọ, nítorí náà a gbọ́dọ̀ yẹ̀wò ìlànà tí ó wúlò dípò kí a dá a lórí. Pípa firewall kúrò nítorí férémù kan sọnù ń pààrọ̀ àṣìṣe pàtó pẹ̀lú àṣìṣe gbogbogbò.

Gbígbé IP kọjá laarin afara àti gbogbo ìnterfésì ìṣàkóso tàbí uplink gbọ́dọ̀ wà ní pípa tàbí kí a kọ̀ ọ́ ní gbangba, èyí sì jẹ́ ìṣàkóso ọ̀tọ̀ láti ìjẹ́ọmọ ẹgbẹ́ afara. Bọ́ọ̀dù tí ó yan àdírẹ́sì yàrá-ìdánwò kọ̀mpútà gẹ́gẹ́ bí ẹnubodè rẹ̀ ń dán èyí wò gan-an: tí gbígbé ìṣàkóso bá ṣàṣeyọrí, ààlà tí o ní lọ́kàn kò sí níbẹ̀ rí.

Àwọn ìdílé méjì mìíràn tọ́ sí ìpinnu tí ó ṣe kedere. Ètò àdírẹ́sì kò sọ afara di IPv4 nìkan, nítorí náà IPv6 àti àwọn EtherType mìíràn nílò ètò tàbí àyọ̀ṣẹ́nú tiwọn. Píng tí ó ṣàṣeyọrí kò sì sọ ohunkóhun nípa bóyá ìkéde àwárí bọ́ọ̀dù, àwọn ẹgbẹ́ multicast tàbí férémù jumbo yóò kọjá ọ̀nà náà, nítorí wọ́n jẹ́ kíláàsì ìrìnàjò ọ̀tọ̀ọ̀tọ̀ pẹ̀lú àwọn àìdánilójú ọ̀tọ̀ọ̀tọ̀.

Níkẹyìn, gbígbé àti àṣírí jẹ́ ìrajà méjì ọ̀tọ̀ọ̀tọ̀. TAP ń gbé Ethernet; iṣẹ́ OpenVPN ń pèsè ààbò yí i ká. Àpapọ̀ VXLAN pẹ̀lú ń gbé Ethernet, kò sì pèsè àṣírí fúnra rẹ̀, nítorí náà pààrọ̀ ọ̀kan pẹ̀lú èkejì ń yí àwọn ẹ̀yà ààbò padà pàápàá nígbà tí àwòrán ìtòlẹ́sẹẹsẹ bá dà bíi ti ara wọn.

Ìwà pẹ́ títí àti àwọn ìdánwò tí ó ń fi í hàn

Àṣẹ tí a tẹ̀ lẹ́ẹ̀kan lẹ́yìn ìsopọ̀ kì í ṣe ìtòlẹ́sẹẹsẹ. Jẹ́ kí afara, ìjẹ́ọmọ ẹgbẹ́ pọ́ọ̀tì àti àdírẹ́sì agbàlejo kan ṣoṣo wà pẹ́ títí nípasẹ̀ olùdarí nẹ́tíwọ́kì kọ̀mpútà tí ó wà tẹ́lẹ̀, kí o sì so ìsopọ̀ náà mọ́ ìfarahàn ẹ̀rọ TAP kí àtúnṣopọ̀ má baà fi afara tí ó ní ọmọ ẹgbẹ́ tí ó sọnù sílẹ̀.

bridge link show
ip -d link show br-test
bridge fdb show br br-test | head

Lẹ́yìn náà dán ohun tí àwọn bọ́ọ̀dù nílò gidi ní ẹ̀gbẹ́ méjèèjì wò, tún ojú-ọ̀nà náà so, kí o sì tún kọ̀mpútà kan ṣiṣẹ́ ní ìbámu pẹ̀lú ètò ìmúpadàbọ̀sípò tí a fọwọ́ sí. Jẹ́rìí àwọn ohun mẹ́ta lẹ́yìn náà: àǹfààní ìṣàkóso ṣì ń ṣiṣẹ́ ní ìdánimọ̀ra, kò sí àdírẹ́sì yàrá-ìdánwò ìlọ́po méjì tí ó farahàn, kò sì sí ìnterfésì ìṣelọ́pọ̀ àìretí tí ó darapọ̀ mọ́ afara. Àkópọ̀ yẹn ni ẹ̀rí pé ìdánwò náà wà nínú ibùdó rẹ̀.

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