Àwọn fọ́nù ń so pọ̀ mọ́ ibi ààyè, wọ́n ń gba àdírẹ́sì, kí wọ́n sì má lè dé ibikíbi ní kété tí ọ̀nà-ìmọ́ bá gòkè. hostapd sábà máa ń ní ìlera ní ipò yẹn, OpenVPN pẹ̀lú; ohun tí ń bàjẹ́ ni ojú-ọ̀nà àkọ́kọ́, tí ó lè máà ti wà rí lórí afárá tàbí tí ọ̀nà-ìmọ́ ti rọ́pò rẹ̀ láì fi ọ̀nà sí olùpín VPN fúnra rẹ̀ sílẹ̀. Ìtọ́nisọ́nà yìí ń dá ojú-ọ̀nà yẹn padà sí ipò rẹ̀, ó sì ń fi èsì hàn láti ọ̀dọ̀ ẹ̀rọ tí ń gbà, kì í ṣe láti Pi. Gbogbo ìgbésẹ̀ lè padà, kò sì sí ohun tí ó ń yí ìṣètò ọ̀nà-ìmọ́ padà níbí títí tí ẹ ó fi mọ irú ìrìnàjò tí ẹ fẹ́ nínú rẹ̀.

Ṣe àkọsílẹ̀ àwọn ìsopọ̀ kí ẹ tó ṣàtúnṣe ohunkóhun

Ìṣètò tí a mọ̀ ń gbé rédíò aláìlówayà àti ibùdó alókùn sínú br0, ó ń bẹ̀rẹ̀ hostapd lòdì sí afárá, ó ń pín àwọn iyáwó láti dnsmasq, nígbà tí ẹ̀rọ OpenVPN ń dá tun0. Nígbà náà àwọn ìbéèrè mẹ́ta ọ̀tọ̀ dà bí ọ̀kan: àwọn ẹ̀rọ ibi ààyè nílò Pi gẹ́gẹ́ bí ẹnubodè wọn, Pi nílò ojú-ọ̀nà sí íńtánẹ́ẹ̀tì láti dé olùpín rẹ̀, afárá sì nílò àdírẹ́sì ẹnubodè tí àwọn ẹ̀rọ yẹn lè lò.

Ka ipò lọ́wọ́lọ́wọ́ kí ẹ tó yí i padà, nítorí àwọn àṣẹ mẹ́rin yìí ń ya ìṣòro ìsopọ̀ kúrò nínú ìṣòro ọ̀nà.

ip -br addr
ip route show
ip link show master br0
bridge link show

Bí br0 bá ní àdírẹ́sì ṣùgbọ́n kò ní ojú-ọ̀nà àkọ́kọ́, àwọn ẹ̀rọ yóò dé Pi, wọn kò sì ní dé ohunkóhun tó tẹ̀lé e. Bí ojú-ọ̀nà àkọ́kọ́ bá tọ́ka sí tun0 nígbà tí ọ̀nà-ìmọ́ wà nísàlẹ̀, Pi kò ní ọ̀nà tí ń ṣiṣẹ́ rárá, àmì ẹ̀rọ náà sì máa ń hàn gan-an bẹ́ẹ̀. Àwọn ipò méjèèjì máa ń hàn bákan náà láti fọ́nù, ìdí nìyẹn tí a fi gbọ́dọ̀ ka tábìlì ọ̀nà tààrà.

Fún afárá ní ojú-ọ̀nà àkọ́kọ́ tí ó jẹ́ tirẹ̀

Raspberry Pi OS sábà máa ń fi afárá sílẹ̀ láìní ojú-ọ̀nà àkọ́kọ́ nígbà tí afárá bá wáyé lẹ́yìn kíkọ fáìlì ìsopọ̀. Àkójọ náà jẹ́ ti /etc/dhcpcd.conf, ó sì yẹ kí ó dárúkọ olùdarí òkè, kì í ṣe Pi.

interface br0
static ip_address=192.168.50.2/24
static routers=192.168.50.1
static domain_name_servers=192.168.50.1

Nínú àpẹẹrẹ yẹn 192.168.50.1 ni olùdarí tí ó wà, 192.168.50.2 sì ni àdírẹ́sì afárá Pi nínú ẹ̀yà àwẹ̀yẹ̀ kan náà, torí náà fi ètò tìẹ̀ rọ́pò rẹ̀ dípò dídà àwọn nọ́mbà. Àwọn ọmọ ẹgbẹ́ afárá kò gbọdọ̀ béèrè fún olùdarí pẹ̀lú, bí bẹ́ẹ̀ kọ́ Pi yóò ní àwọn àkọ́kọ́ tí ń díje tí olùborí wọn sinmi lórí metiriki àti àkókò, kì í ṣe lórí èrò.

Lẹ́yìn systemctl restart dhcpcd, ip route show default yẹ kí ó tọ́ka br0 lẹ́ẹ̀kan, kí ó sì má ní àdàkọ láti ibùdó alókùn. Jẹ́rìí ìwádìí, kì í ṣe tábìlì, nítorí àkọsílẹ̀ àtijọ́ lè jókòó lẹ́gbẹ̀ẹ́ èyí tí ó ṣẹ́gun: ip -4 route get 203.0.113.10 gbọdọ̀ dárúkọ br0. Àdírẹ́sì yẹn wá láti inú ìwọn ìwé TEST-NET-3, nítorí náà kò lè kọlù pẹ̀lú olùpín gidi nígbà tí ẹ ń ka èyí.

Dá ọ̀nà-ìmọ́ dúró láti má ṣe jí ọ̀nà sí olùpín tirẹ̀

Ẹ̀rọ OpenVPN tí ó gbà redirect-gateway yóò gba ojú-ọ̀nà àkọ́kọ́, yóò sì tọ́ka rẹ̀ sínú ọ̀nà-ìmọ́. Ìyẹn tọ́ nígbà tí gbogbo ẹ̀rọ ibi ààyè yẹ kí ó lo VPN, ó sì lòdì nígbà tí àwọn ibi tí ó ń lọ nìkan yẹ. Bí ó ti wù kí ó rí, ìsopọ̀ Pi fúnra rẹ̀ sí olùpín kò gbọdọ̀ rìn nínú ọ̀nà-ìmọ́ tí ó ṣì ń kọ́. OpenVPN ń fi ọ̀nà olùgbàlejò kún un sí ẹ̀gbẹ́ jìnnà nípasẹ̀ ẹnubodè àkọ́kọ́ nígbà tí ó bá yí ojú-ọ̀nà àkọ́kọ́ padà, ìyẹn sì ni ìwà tí ń pa ìrìnàjò mọ́; bí ọ̀nà yẹn kò bá sí, ọ̀nà-ìmọ́ yóò wó lulẹ̀ ní kété tí ó bá fìdí múlẹ̀.

Ìfiwéra kíákíá ti ọ̀nà ìrìnàjò yẹn ṣáájú àti lẹ́yìn àsopọ̀ tọ́ sí àwọn ìṣẹ́jú-àáyá mẹ́wàá yẹn. ip -4 route get 203.0.113.10 gbọdọ̀ dárúkọ ẹ̀rọ ìpele ìsàlẹ̀ ní àwọn ipò méjèèjì, metiriki nìkan ni ó ń yí padà. Bí ó bá dárúkọ tun0 lẹ́yìn tí ọ̀nà-ìmọ́ gòkè, a kò fi ọ̀nà olùgbàlejò kún un rí, àti àsopọ̀ tó tẹ̀lé e yóò kùnà.

Nígbà tí àwọn àkọ́sílẹ̀ àyànfẹ́ nìkan yẹ kí ó kọjá ọ̀nà-ìmọ́, lo route-nopull kí ẹ sì fi ọwọ́ kún àwọn ọ̀nà tí ẹ fẹ́, tàbí fi àkójọ tó sún mọ́ wọn ránṣẹ́ láti olùpín. Nínú ètò yẹn afárá ń pa ojú-ọ̀nà àkọ́kọ́ mọ́, DNS sì di ìpinnu tó tẹ̀lé e: gbígbé dnsmasq lọ sí olùyẹ̀já nínú ilé ní ìtumọ̀ kìkì fún àwọn orúkọ tí wọ́n ń gbé ibẹ̀ ní tòótọ́.

Pinnu ọ̀ràn gbígbé lọ àti NAT

Ọ̀nà-ìmọ́ kíkún nílò gbígbé lọ tí a ti mú ṣiṣẹ́ lórí Pi àti ẹnubodè ní ẹ̀gbẹ́ jìnnà tí ó ṣetán láti darí ẹ̀yà àwẹ̀yẹ̀ ibi ààyè. Ṣàyẹ̀wò gbígbé lọ ṣáájú ohunkóhun mìíràn, nítorí òdo ń sọ gbogbo ìyípadà ọ̀nà di aláìní ìtumọ̀.

sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o tun0 -j MASQUERADE

Ìlànà NAT ni ọ̀nà kúkúrú tí ó ń ṣiṣẹ́ nígbà tí olùpín kò bá gba àkọ́sílẹ̀ ibi ààyè, pẹ̀lú iye tí gbogbo ẹ̀rọ yóò fi hàn gẹ́gẹ́ bí àdírẹ́sì ọ̀nà-ìmọ́ Pi nínú àwọn àkọsílẹ̀ ẹ̀gbẹ́ jìnnà. Dídarí àkọ́sílẹ̀ láìsí NAT ń pa àwọn àdírẹ́sì mọ́ ní ìhà tí ó ṣeé rí ó sì sinmi lórí ọ̀nà ìpadà fún 192.168.50.0/24 ní ẹ̀gbẹ́ ilé.

Kọ ìyàn náà sí ẹ̀gbẹ́ àwọn ìlànà ògiri iná, nítorí ìlànà NAT tí kò hàn nínú ètò yóò di aláìṣe àlàyé lẹ́yìn oṣù mẹ́fà. Pa IPv6 mọ́ nínú ìpinnu kan náà; ọ̀nà IPv4 tí ń ṣiṣẹ́ lẹ́gbẹ̀ẹ́ ọ̀nà IPv6 tí ó ti bàjẹ́ ṣì ń kà bí ìdajì bàjẹ́ nínú aṣàwákiri.

Jẹ́rìí láti ọ̀dọ̀ ẹ̀rọ, lẹ́yìn náà padà lọ́nà tó mọ́

Dán wò ní ìtòlẹ́sẹẹsẹ yìí láti fọ́nù tàbí kọ̀mpútà àgbékọ́ lórí ibi ààyè: iyáwó láti dnsmasq, ping sí àdírẹ́sì afárá, lẹ́yìn náà ibi tí ó ń lọ ní ẹ̀gbẹ́ kejì ọ̀nà-ìmọ́. Ìgbésẹ̀ kọ̀ọ̀kan ń ya ìpele kan sótó dípò ṣíṣe ìkùnà kan tí kò ní èrè.

ip -4 route get 203.0.113.10
ping -c 3 -I br0 203.0.113.10

Lẹ́yìn náà jẹ́rìí pé Pi ṣì ní ọ̀nà àsìkò tirẹ̀: ip route get 203.0.113.10 gbọdọ̀ dárúkọ ẹ̀rọ ìpele ìsàlẹ̀, ping -c 3 -I br0 203.0.113.10 sì gbọdọ̀ dáhùn bí olùpín bá gbà ICMP. Bí ìgbésẹ̀ méjì àkọ́kọ́ ti ẹ̀rọ bá kọjá tí ẹ̀kẹta sì kùnà, àṣìṣe wà nínú gbígbé lọ tàbí NAT. Bí ìgbésẹ̀ kejì bá kùnà, afárá tàbí DHCP kò tíì pé.

Ìpadà ni àtúnṣe fáìlì kan àti àṣẹ méjì: yọ àkójọ kúrò, tún dhcpcd bẹ̀rẹ̀, kí ẹ sì fi ip route replace default via 192.168.50.1 dev br0 rọ́pò ojú-ọ̀nà àkọ́kọ́ ní gbangba. Ṣe èyí kí ojú-ọ̀nà ìtọ́jú tó tiì, kì í ṣe lẹ́yìn, nítorí Pi tí ó ti pàdánù ojú-ọ̀nà àkọ́kọ́ rẹ̀ kò ṣeé dé láti inú nẹ́tíwọ́kì tí ìwọ yóò lò láti tún un ṣe.

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