Ohun èlò inú àyè orúkọ VPN kò débẹ̀ láti LAN
Àyè orúkọ nẹ́tíwọ́kì ń fún ètò kan ní ojú-ọ̀nà tirẹ̀ àti loopback tirẹ̀. Ṣe àtẹ̀jáde kìkì port rẹ pẹ̀lú ìfò socat tàbí bárà veth dípò host.
Iṣẹ́ rẹ ń ṣiṣẹ́ lórí ẹ̀rọ, ojú-ọ̀nà ti gòkè, ṣùgbọ́n aṣàwákiri tó wà lórí tábìlì rẹ ṣì ń dúró de ìdáhùn. Kò sí ohun tó bàjẹ́ ní ìtumọ̀ deede: ohun èlò ń gbọ́ nínú àyè orúkọ nẹ́tíwọ́kì, àti pé stack yẹn kò hàn sí LAN. Loopback rẹ̀ jẹ́ ti àyè orúkọ, nítorí náà alábàṣepọ̀ lórí ẹ̀rọ mìíràn kò ní àdírẹ́sì tó dé port. Ìfò kan tí a mọ̀ọ́mọ̀ ṣe, tàbí bárà veth kan, ń tún èyí ṣe láìṣe gbé ìyókù ti host.
Ìdí tí kò fi sí ohun tó ń dáhùn lórí àdírẹ́sì LAN
Àyè orúkọ jẹ́ stack nẹ́tíwọ́kì pípé: àwọn interface, ipa-ọ̀nà, ìlànà firewall àti loopback aládàáni. Ìlànà tí a fi ip netns exec bẹ̀rẹ̀ ń rí stack yẹn nìkan, nítorí náà àdírẹ́sì tó so mọ́ ẹ̀ ń yanjú nínú àyè orúkọ nìkan. 127.0.0.1 ti host fúnra rẹ̀ jẹ́ loopback mìíràn pátápátá.
Ìdí ni pé curl lórí host kùnà nígbà tí àṣẹ kan náà nínú àyè orúkọ ń ṣàṣeyọrí. Ohun èlò náà wà ní àlàáfíà; àdírẹ́sì kò sí nínú stack host, bẹ́ẹ̀ ni.
Ṣe àtẹ̀jáde port kan pẹ̀lú ìfò socat
socat ń so stack méjèèjì pọ̀ nínú àyè olùṣe, èyí tó nígbà tí port TCP kan ṣoṣo bá yẹ láti kọjá. Ẹ̀gbẹ́ host ń gbọ́ lórí LAN, àti fún gbogbo ìsopọ̀ tí a gbà, ó ń bẹ̀rẹ̀ socat kejì nínú àyè orúkọ tó so mọ́ loopback ti ohun èlò. Ìlànà inú ń dé ohun èlò gẹ́gẹ́ bí alábàṣepọ̀ agbègbè yóò ṣe. Kò sí ohun tó yí padà nínú ìtọ́sọ́nà àyè orúkọ, nítorí náà ohun èlò ń tẹ̀síwájú lílo ojú-ọ̀nà gẹ́gẹ́ bí ọ̀nà jáde rẹ̀ nìkan.
socat TCP-LISTEN:9100,reuseaddr,fork EXEC:'ip netns exec vpn socat STDIO tcp-connect:127.0.0.1:9100',nofork
Ìlànà òde nílò root tàbí agbára láti wọ àyè orúkọ. Tí VPN bá ṣubú, ohun èlò pàdánù ọ̀nà rẹ̀, port tí a tẹ̀jáde sì kùnà ní dídì, ìyẹn ni ìhùwàsí tí o fẹ́ láti ẹ̀wọ̀n.
Lo bárà veth nígbà tí ó ju port kan lọ ń kọjá
Bárà veth ni ìdáhùn tó tọ́ nígbà tí àwọn port tàbí protocol púpọ̀ yẹ láti kọjá, tàbí nígbà tí àwọn host mìíràn nílò láti bẹ̀rẹ̀ ìsopọ̀. Ipin kan ń dúró nínú host, èkejì ń lọ sínú àyè orúkọ, àti /30 kékeré ń fún ẹ̀gbẹ́ méjèèjì ní àdírẹ́sì tó dúró ṣinṣin. Lẹ́yìn náà ipa-ọ̀nà host ń fi àdírẹ́sì àyè orúkọ ránṣẹ́ kọjá bárà náà.
ip link add veth0 type veth peer name veth1
ip link set veth1 netns vpn
ip addr add 10.77.0.1/30 dev veth0
ip link set veth0 up
ip netns exec vpn ip addr add 10.77.0.2/30 dev veth1
ip netns exec vpn ip link set veth1 up
Má ṣe àfikún ipa-ọ̀nà àìdábọ̀ kọjá host àyàfi tí o bá fẹ́ fọ́ ẹ̀wọ̀n. Ojú-ọ̀nà gbọ́dọ̀ wà gẹ́gẹ́ bí ọ̀nà jáde, nítorí náà kọjá bárà ni a lè dé àdírẹ́sì iṣẹ́ tí a tẹ̀jáde nìkan. Tún fún àyè orúkọ ní faili olùyanjú tirẹ̀, nítorí ip netns exec ń ka /etc/netns/vpn/resolv.conf àti láìsí rẹ̀ ìyanjú orúkọ nínú ẹ̀wọ̀n kò ní nǹkan.
Ṣe àdánwò láti ẹ̀rọ mìíràn, kì í ṣe láti host
Ṣe àdánwò láti ẹ̀rọ kejì, nítorí host lè dé olùgbọ́ agbègbè kọjá àwọn ọ̀nà tí kò sọ nǹkan kan nípa LAN. Kọ́kọ́ ṣàyẹ̀wò ohun tí ohun èlò so mọ́ nínú àyè orúkọ, lẹ́yìn náà so mọ́ àdírẹ́sì tí a tẹ̀jáde láti òde. Sísopọ̀ mọ́ gbogbo àdírẹ́sì níbẹ̀ kò mú ẹ̀wọ̀n gbòòrò, nítorí wildcard ṣì jẹ́ ti àyè orúkọ àti LAN kò lè rí i.
ip netns exec vpn ss -lntp
Tí ìsopọ̀ láti host bá ṣiṣẹ́ tí ti LAN kò ṣiṣẹ́, apá tó ṣẹ́kù ni ìfò tàbí ipa-ọ̀nà, kì í ṣe àdírẹ́sì ìsopọ̀. Bẹ̀rẹ̀ OpenVPN nínú àyè orúkọ dípò gbígbé ẹ̀rọ tun tó ń ṣiṣẹ́ sínú rẹ̀, nítorí gbígbé interface ń pa á, ó sì lè nu àwọn ipa-ọ̀nà tí o kò ní lè túnṣe láti òde. Fi àwọn àṣẹ ìmúbọ̀sípò sí orí console, kì í ṣe nínú ẹ̀wọ̀n.