VPN àti LAN ilé lórí subnet kan náà: tẹ̀lé ọ̀nà kíákíá
Àwọn adapter méjèèjì ń béèrè 192.168.1.0/24, ọ̀nà kan ṣoṣo sì ń borí. Tẹ̀lé àkójọ adapter, ọ̀nà tó borí àti ọ̀nà ìpadà kí o tó tún nọ́mbà ṣe tàbí dẹ́bi DNS.
O so mọ́ VPN ọ́fíìsì, àpẹẹrẹ inú tray di àwọ̀ ewé, intranet ń gbé wọlé, àti ẹ̀rọ ìtẹ̀wé tó wà ní mítà méjì ń dáhùn. Pípín tó ń ṣiṣẹ́ ní àárọ̀ ń parí àkókò lórí ẹ̀rọ kan náà, kò sì sí àkọsílẹ̀ tó mẹ́nu kan ẹ̀rọ ìtẹ̀wé. Ìdáhùn àkọ́kọ́ ni DNS, nítorí orúkọ tí kò yanjú dà bí orúkọ tí kò sí, ṣùgbọ́n ìṣòro wà nínú àdírẹ́sì: adapter méjì ń béèrè 192.168.1.0/24 báyìí, ọ̀nà kan ṣoṣo sì lè borí àkọ́sí yẹn. Tẹ̀lé rẹ̀ ní ìtòlẹ́sẹẹsẹ yìí, ìwọ yóò rí adapter tó gbà á kí o tó yí ohunkóhun padà.
Bẹ̀rẹ̀ ní àmì, kì í ṣe ní tunnel
Àmì náà ni ìwọ̀n. Bí intranet bá ń ṣiṣẹ́ tí gbogbo ẹ̀rọ ibílẹ̀ sì ń kùnà, tunnel wà ní àlàáfíà, ọ̀nà ibílẹ̀ kò sí. Bí ẹ̀rọ ibílẹ̀ bá ń ṣiṣẹ́ tí intranet sì ń kùnà, ìdàkejì ni. Bí ohun gbogbo bá ń ṣiṣẹ́ àyàfi ọ̀gá kan, àdírẹ́sì kan tó wà ní ẹ̀gbẹ́ méjèèjì ni o ń wò.
Kọ àdírẹ́sì ibílẹ̀ kan àti ti ọ̀nà jíjìn kan sílẹ̀ kí o tó fọwọ́ kan ètò kankan. “Ẹ̀rọ ìtẹ̀wé” kò ṣeé dán wò; 192.168.1.40 ṣeé dán wò. Ìgbésẹ̀ kan yẹn ń dá wákàtí tí ó ń sàn jù lórí ìṣòro yìí dúró, ìyẹn kíkọ ètò DNS padà nítorí ìpinnu ọ̀nà.
Ìgbésẹ̀ 1: wo adapter méjèèjì tí ń béèrè àkọ́sí
Ṣí Àwọn Ìsopọ̀ Nẹ́tíwọ́ọ̀kì (ncpa.cpl) kí o sì ka adapter méjèèjì lẹ́gbẹ̀ẹ́ ara wọn. Adapter Ethernet ń fi 192.168.1.50/24 hàn pẹ̀lú ẹnubodè 192.168.1.1. Adapter VPN ń fi 192.168.1.201/24 tí server rán hàn. Ẹ̀gbẹ́ méjèèjì tọ́, ẹ̀gbẹ́ méjèèjì gbà pé àkọ́sí náà jẹ́ on-link, stack yóò sì pa ọ̀nà kan mọ́ fún un.
Get-NetIPAddress -AddressFamily IPv4 ń ṣe àkójọ àwọn àdírẹ́sì, Get-NetIPInterface | Sort-Object InterfaceMetric sì ń fi ìtòlẹ́sẹẹsẹ tí stack yóò lò wọ́n hàn. Ọ̀wọ̀n metric yẹn ni ìpinnu tí ìwọ ń lọ kà, nítorí náà kọ àwọn nọ́mbà sílẹ̀ dípò gbígbìyànjú láti rántí wọn.
Túkọ́ ẹ̀kọ́ DNS lórí ẹ̀ṣẹ̀ ní ọ̀nà tí kò fi owó púpọ̀: Resolve-DnsName printer.office.lan ń dá àdírẹ́sì kan náà padà bí ti àná. Orúkọ yanjú; lẹ́yìn náà pákẹ́tì jáde nípasẹ̀ adapter tí kò tọ́. Ìṣẹ́jú méjì níbí ń gba ọ̀sán kan lórí ètò olùyanjú.
Ìgbésẹ̀ 2: ka ọ̀nà tó borí gan-an
Find-NetRoute -RemoteIPAddress 192.168.1.40 ń tẹ interface, ìgbésẹ̀ tó kàn àti orísun tí stack yóò lò fún àdírẹ́sì yẹn jáde. Wo àbájáde yẹn bí ìdáhùn, kì í ṣe àmì. route print -4 ń fún ni gbogbo tábìlì nígbà tí o bá fẹ́ rí ìforúkọsílẹ̀ tó pàdánù àti mélòó.
Ìpàtàkì ń borí èrò. 192.168.0.0/25 tí a ti rán borí 192.168.0.0/24 ibílẹ̀ nítorí àkọ́sí náà gùn, nítorí náà 192.168.0.0 sí 192.168.0.127 ń jáde nípasẹ̀ tunnel nígbà tí ìdajì òkè ń dúró ní ibílẹ̀. Pípàdánù ìdajì LAN láìsí ìfiránṣẹ́ àṣìṣe ni ìhùwàsí tó tọ́ fún tábìlì yẹn.
tracert -d 192.168.1.40 ń jẹ́rìí èyí láti ìta tábìlì: bí ìgbésẹ̀ àkọ́kọ́ bá jẹ́ àdírẹ́sì tunnel dípò router rẹ, ọ̀nà ni gbogbo ìtàn. Lórí Linux ìbéèrè kan náà ni ip route get 192.168.1.40, tí ń tẹ àdírẹ́sì orísun àti ẹ̀rọ jáde ní ìlà kan. Nígbà tí ìdáhùn bá dárúkọ tun0, jáwọ́ láti wo ẹ̀rọ ìwò.
Ìgbésẹ̀ 3: yẹ ọ̀nà ìpadà wò kí o tó dẹ́bi akẹ́kọ̀ọ́
Ọ̀nà ìlọ tó tọ́ yóò ṣì kùnà bí ẹ̀gbẹ́ jíjìn kò bá lè dáhùn. Nígbà tí a bá ń dé LAN akẹ́kọ̀ọ́ nípasẹ̀ tunnel, ẹnubodè LAN yẹn gbọ́dọ̀ mọ ibi tí àkójọ tunnel wà: ip route add 10.8.0.0/24 via 192.168.1.12 lórí router yẹn, àti push “route 192.168.1.0 255.255.255.0” láti server kí àwọn akẹ́kọ̀ọ́ lè mọ ọ̀nà ìpadà.
Láìsí ìforúkọsílẹ̀ àkọ́kọ́, ìdáhùn ń fi ibi-àfojúsùn sílẹ̀ lọ sí ẹnubodè àkọ́kọ́ rẹ̀, tí ń fi àdírẹ́sì àdáni ránṣẹ́ sí olùpèsè tí ó sì sọ ọ́ nù. Àmì náà jẹ́ ọ̀nà kan, ó sì rọrùn láti kà lọ́nà tí kò tọ́: àwọn ìbéèrè ń hàn lórí tun0, àwọn ìdáhùn kò hàn rárá.
Òfin masquerade lórí ọ̀gá VPN ń yọ àìní ọ̀nà tí ó dúró yẹn kúrò: iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE. Ó tún ń fi àwọn àdírẹ́sì orísun gidi pamọ́, èyí tí ń mú gbogbo ìbéèrè àkọsílẹ̀ tó tẹ̀lẹ́yìn le. Ọ̀gá àfojúsùn tí ẹnubodè àkọ́kọ́ kò tọ́ ń mú ìdákẹ́jẹ́ kan náà wá, pẹ̀lú ìtúnjú ICMP ní ipò tó dára jù àti ihò dúdú ní ipò déédéé, nítorí náà gbígbà yẹn wà ní ẹ̀gbẹ́ méjèèjì.
Ìgbésẹ̀ 4: yan àtúnṣe tí ìwọ lè gbé pẹ̀lú
Àtúnṣe márùn-ún ni a ń lò fún èyí, wọn kò sì lè rọ́pò ara wọn. Yan ní ìbámu pẹ̀lú ohun tí ó gbọ́dọ̀ wà ní àárín ọwọ́ ní àkókò kan, kì í ṣe èyí tí àṣẹ tó kúrú jù.
| Repair | What it fixes | What it costs |
|---|---|---|
| Flip interface metrics | Alternating access: office now, home later, never both | Get-NetAdapter -Name "Ethernet 2" | Set-NetIPInterface -InterfaceMetric 21; set the VPN adapter back to 5000. A client that rewrites metrics on connect defeats it |
| Renumber one side | Every host reachable in both directions | DHCP reservations, printer queues, firewall rules and hard-coded addresses all move |
| Narrow the advertised prefix | Remote hosts really live in the upper half | Breaks the day someone adds a host below the cut |
| Translate with client-nat | Both address plans stay untouched | Stateless per-client mapping, unreadable logs, anything embedding addresses breaks |
| Publish one service with DNAT | One service on the VPN host reachable from the LAN | Both address plans stay; source addresses and reverse lookups stop being meaningful |
Metric ni àṣàyàn tí kò fi owó púpọ̀ àti èyí tí àwọn ènìyàn ń kọ́kọ́ fi ọwọ́ kàn. Ìyípadà náà kan interface, nítorí náà ó ń ṣiṣẹ́ nígbà tí tunnel wà lókè, ibi rẹ̀ sì wà nínú script lẹ́gbẹ̀ẹ́ akẹ́kọ̀ọ́ kì í ṣe nínú shell tí ìwọ yóò gbàgbé. Kò lè fún ní ààyè sí àdírẹ́sì kan náà ní nẹ́tíwọ́ọ̀kì méjì lẹ́ẹ̀kan náà, àti ààlà yẹn ni ó ń rán gbogbo àwọn yòókù sísàlẹ̀ tábìlì.
Títún LAN ilé nọ́mbà sí 10.10.0.0/24 ni ojútùú mímọ́: ìmúdọ̀tun iyáwó DHCP kan pẹ̀lú àwọn ìforúkọsílẹ̀, ìlà ìtẹ̀wé àti àwọn àdírẹ́sì tí a kọ tààrà tó mẹ́nu kan ìpele àtijọ́. Títún ẹ̀gbẹ́ ọ́fíìsì nọ́mbà kì í sábà jẹ́ ìpinnu rẹ. Bí IPv6 bá wà nínú nẹ́tíwọ́ọ̀kì méjèèjì, ó ń yọ ìparí kúrò pátápátá, ní lílo àkọ́sí ibílẹ̀ àrà ọ̀tọ̀ láti fd00::/8 dípò ohun tí ó rọrùn láti rántí, ṣùgbọ́n dán ohun-èlò wò nípasẹ̀ TCP, kì í ṣe ping, nítorí ICMP lè ṣiṣẹ́ nígbà tí iṣẹ́ kò ṣiṣẹ́.
Àṣàyàn ìtumọ̀ OpenVPN fúnra rẹ̀ ni ọ̀nà ìkẹyìn, a ń rán an láti server sínú àkọsílẹ̀ àkójọ àkọ́kọ́ tí ó jẹ́ ti akẹ́kọ̀ọ́ pàtó. Ó ń gba àwọn paramítà mẹ́rin lẹ́yìn orúkọ àṣàyàn náà — ìtọ́sọ́nà, nẹ́tíwọ́ọ̀kì, bọ́ọ̀dù àti orúkọ mìíràn — orúkọ mìíràn kì í sì í ṣe àṣàyàn: push "route 192.168.2.0 255.255.255.0" àti push "client-nat dnat 192.168.2.0 255.255.255.0 192.168.1.0". Nẹ́tíwọ́ọ̀kì àti bọ́ọ̀dù ni ìpele tí akẹ́kọ̀ọ́ ń rí (192.168.2.0/24), orúkọ mìíràn ni ìpele ọ́fíìsì gidi ní ẹ̀gbẹ́ server (192.168.1.0/24), ọ̀nà tí a rán sì ni ó ń jẹ́ kí ìpele tí ó hàn yẹn dé. Ọ́fíìsì yóò wá hàn sí akẹ́kọ̀ọ́ yẹn lábẹ́ 192.168.2.x. Kọ àdàkọ ìsopọ̀ sínú profáìlì, bí bẹ́ẹ̀ kọ́ ẹni tó kàn yóò ṣe àtúnyẹ̀wò rẹ̀ bí ìkùnà ọ̀nà.
Pípọ́ṣítì iṣẹ́ kan ṣoṣo ni ẹ̀yà tóóró ti ìtumọ̀, kò sì nílò àṣàyàn OpenVPN rárá. Òfin DNAT lórí ọ̀gá VPN ń tún pọ́ọ̀tì kan ṣe, nítorí náà LAN ń pa àwọn àdírẹ́sì rẹ̀ mọ́, ó sì ń dé iṣẹ́ ní àdírẹ́sì ọ̀gá tí ó ti mọ̀. Iye náà ni èyí tí ó sábà: iṣẹ́ ń wo ọ̀gá VPN bí orísun, nítorí náà àwọn àkọsílẹ̀ fún akẹ́kọ̀ọ́ kọ̀ọ̀kan àti ìwárí ìdàkejì kò ní ìtumọ̀ mọ́. Èyí ń bo ìlà ìtẹ̀wé kan tàbí ojú-ìwé ìṣàkóso kan, kì í ṣe àwọn ọ̀gá ní ẹ̀gbẹ́ méjèèjì tí wọ́n ń dé ara wọn.
Kí ni kò ní ṣiṣẹ́ síbẹ̀, kí ni ó yẹ kí a kọ sílẹ̀
Ìgbóhùn kò kọjá tunnel tí a ti ṣe ọ̀nà fún. DLNA, UPnP, wíwò NetBIOS àti Wake-on-LAN gbára lé ìgbóhùn tàbí multicast tí ẹ̀rọ tun kò gbé, nítorí náà kò sí ọ̀nà tó ń tún ìwárí ṣe. Bíbrídìjì pẹ̀lú dev tap ń mú apá gùn, pẹ̀lú rẹ̀ ni ìgbóhùn DHCP, ARP àti gbogbo pákẹ́tì ìwárí mìíràn; yàn ọ̀nà ọ̀gá unicast bí route 192.168.2.1 255.255.255.255 fún àdírẹ́sì ẹ̀gbẹ́ LAN ti router jíjìn.
Router méjì tí àwọn méjèèjì ń lò 192.168.1.1 lórí ọ̀nà kan náà wà nínú ìdílé ìṣòro kan: àdírẹ́sì ibílẹ̀ ń borí nígbà gbogbo, nítorí náà ojú-ìwé router jíjìn kò dé títí LAN kan yóò fi kúrò. Fífi adapter kejì kún kò yí ohunkóhun padà nínú ọ̀kan lára àwọn ipò méjèèjì.
Kọ ẹ̀rí sílẹ̀ kí o tó ṣàtúnṣe ohunkóhun: ip route get tàbí Find-NetRoute, ping -c 3 sí àdírẹ́sì tí a ń sọ̀rọ̀ rẹ̀, traceroute kan, àti tcpdump -ni tun0 icmp lórí akẹ́kọ̀ọ́, lẹ́yìn náà tábìlì ọ̀nà àti àwọn olùkà NAT lórí server. Ping tí ó ń ṣiṣẹ́ ní ọ̀nà kan tí ó sì ń kú ní èkejì ń tọ́ka sí ọ̀nà ìpadà, kì í ṣe tunnel, ìyàtọ̀ kan náà sì ni ó ń pinnu àtúnṣe wo nínú àwọn tó wà lókè ni ìwọ nílò gan-an.