Wateja wa OpenVPN hawawioni wenzao: subnet au net30?
Wateja hufika kwenye seva lakini si kwa wenzao. Tenganisha hitilafu kwa ping moja, kisha chagua topolojia ya subnet, client-to-client au sehemu ya TAP iliyofungwa daraja.
Hitilafu mbili zisizohusiana hutoa malalamiko yale yale. Katika ya kwanza, mteja mmoja hafiki kwa mwingine hata kwa anwani ya handaki, kwa sababu anwani haziko kwenye subnet moja au seva haisambazii trafiki kati ya wenzao. Katika ya pili, ping inafanya kazi lakini orodha ya vifaa vya programu inabaki tupu, kwa sababu ugunduzi hutegemea broadcast ambayo handaki ya tabaka 3 haiwezi kubeba. Ping moja huwatenganisha, na suluhisho la kila moja halifanani kabisa na la lingine.
Ping moja hugawanya tatizo mara mbili
Kutoka kwa mteja mmoja, pinga anwani ya handaki ya mteja mwingine, si jina lake na si anwani yake ya LAN. Ikiwa hiyo itashindikana, usambazaji au uwekaji anwani ndio tatizo na ugunduzi hauna umuhimu mpaka irekebishwe. Ikiwa itafanikiwa, usambazaji unafanya kazi tayari na kinachokosekana ni broadcast au utatuzi wa majina.
ip addr show tun0
Soma kiolesura cha mteja kabla ya kitu kingine chochote, kwa sababu netmask hutaja topolojia. /24 au barakoa nyingine ya subnet inamaanisha bwawa la pamoja; /30 yenye anwani ya mwenza inamaanisha mpangilio wa zamani wa nukta-hadi-nukta, ambapo kila mteja ana jirani mmoja tu, seva.
net30 dhidi ya subnet, ikisomwa kutoka upande wa mteja
| What you observe | net30 | subnet |
|---|---|---|
| Client netmask | /30 with a peer address | The pool's own mask |
| Peers a client can address directly | One, the server | Every client in the pool |
| Addressing | One /30 block per client, with the server as the only peer | One pool mask shared by all clients |
| Effect of client-to-client | Required for any peer traffic | Required for peer traffic, still no broadcast |
Kwa net30 seva hutoa kizuizi kidogo kwa kila mteja, kwa hiyo hakuna njia kuelekea anwani ya handaki ya mteja mwingine isipokuwa seva isambaze. Kwa subnet bwawa lote ni mtandao mmoja, kila mteja anaweza kumwelekea mwenzake yeyote, na seva husambaza kati yao. Ndiyo sababu usanidi mmoja wa seva unaweza kuonekana mzuri huku ping kati ya wenzao zikishindikana: hakuna kilichovunjika, wateja hawako kwenye mtandao mmoja tu. Mteja huona kiungo kinachofanya kazi na anwani ya mwenza isiyojibu, ambayo husomwa kama firewall lakini kwa kweli ni mpangilio wa anwani.
Kubadilisha maagizo ni uhariri upande wa seva pamoja na kuwasha upya, na inatumika kwa muunganisho unaofuata si vikao vilivyo wazi tayari. Unganisha tena wateja kabla ya kuamua kuhusu mabadiliko. Ikiwa kifaa huzalisha upya usanidi kutoka kiolesura cha wavuti, andika maagizo, faili na tarehe, na fanya uhariri kupitia kiolesura linapokuwepo, kwa sababu ujenzi upya utafuta uhariri wa mkono wakati wa kuhifadhi unaofuata.
client-to-client ni lango tofauti
Hata ndani ya subnet moja seva hutupa pakiti zinazotoka kwa mteja mmoja na kuelekezwa kwa mwingine isipokuwa client-to-client imewekwa. Neno hilo muhimu hufanya seva kuwa msambazaji wa trafiki kati ya wenzao badala ya kituo cha mwisho kinachokubali tu. Ni sharti la pili ambalo watu hulikosa baada ya kurekebisha topolojia.
Hii haienei hadi broadcast. Mpangilio husambaza unicast kati ya wateja; haufanyi handaki kuwa sehemu inayoshirikiwa, na hakuna kiasi chake kitakachowasilisha ombi la ugunduzi la multicast kwa kila mwenza.
TUN dhidi ya TAP, na kila moja inaweza kubeba nini
| Property | TUN | TAP |
|---|---|---|
| Layer | Layer 3, IP packets | Layer 2, Ethernet frames |
| Broadcast and multicast | Not carried | Carried |
| Bridging to the LAN | Not applicable | Required for a shared segment |
| Client platform support | Everywhere | Missing on Android and iOS, limited on macOS |
Kufunga daraja kifaa cha tap ndani ya LAN huweka wateja wa mbali kwenye kikoa cha broadcast cha ofisi, jambo ambalo hutatua ugunduzi kabisa. Bei ni majukwaa ambayo hayatekelezi TAP, daraja ambalo lazima liwepo kwenye seva, na kikoa cha kushindikana ambapo dhoruba ya broadcast kwenye kebo ya ofisi hufika kwa kila kompyuta mpakato ya mbali.
Kwa vituo vya kazi viwili au vitatu vinavyohitaji utatuzi wa majina, ingizo la hosts au anwani ya unicast ni nafuu sana kuliko daraja. Elekea TAP wakati itifaki usiyoweza kuibadilisha inategemea ugunduzi wa tabaka 2, na si kabla.
Wateja wa subnet moja bila daraja
Kutoa anwani kutoka safu ya LAN hakuweki mteja kwenye kebo. Seva hupitisha kati ya handaki na Ethernet, kwa hiyo ARP ya anwani hiyo husimama kwenye kiolesura cha seva na LAN iliyobaki haijui kamwe inapoishi.
ip neigh add proxy 10.50.1.250 dev eth0
Proxy ARP hufunga pengo hilo kwa kuifanya seva ijibu kwa niaba ya mteja. Kwa safu, parpd husimamia maingizo wateja wanapokuja na kwenda, wakati sysctl net.ipv4.conf.eth0.proxy_arp=1 hujibu kwa kila kitu kinachopitishwa mahali pengine, jambo ambalo ni pana vya kutosha kuunda mshangao wake kwenye sehemu yenye shughuli nyingi.
Njia yoyote utakayochagua, ondoa NAT kati ya handaki na kebo. Kanuni ya MASQUERADE huficha swali la uwekaji anwani ambalo unajaribu kujibu. Pia humwachia mtu anayefuata topolojia ambayo hawezi kufikiria juu yake kutoka upande wa mteja.
Kabla ya kubadilisha chochote, nasa jaribio moja kwenye seva kwa tcpdump -ni tun0 na uthibitisha kama pakiti ya mwenza inafika hata. Kufika na kutupwa kunaashiria client-to-client; kutofika kamwe kunaashiria topolojia au upitishaji. Mwongozo wa OpenVPN 2.6 unaandika maneno yote mawili muhimu na topolojia chaguo-msingi, jambo ambalo linafaa kulinganisha na toleo lako kabla ya kunakili mstari kutoka chapisho la jukwaa.
- Kiolesura cha tun huonyesha barakoa ya bwawa badala ya jozi ya wenza /30.
- Ping ya moja kwa moja kwenye anwani nyingine ya handaki hufanikiwa kabla ya kujaribu ugunduzi.
- Usanidi wa seva unajumuisha
client-to-clientkila wakati wenza wanapaswa kubadilishana pakiti. - Taja itifaki ya ugunduzi unayojaribu badala ya kusema programu inashindikana.
- Tumia TAP tu ikiwa kila jukwaa la mteja kwenye kikundi linaiunga mkono.
- Weka NAT nje ya njia kati ya handaki na LAN wakati ufikiaji ndani ya subnet moja ni muhimu.