Kifaa kimoja kinaweza kutazama pande mbili kwa wakati mmoja: watumiaji wanaozunguka wanajiunga ndani, na sanduku hilo hilo linajiunga nje kwa mtoa huduma wa kutoka ili trafiki iliyochaguliwa itoke kupitia mtandao mwingine. Kuwasha huduma zote mbili huchukua dakika; kuzifanya ziishi pamoja kunahitaji ubunifu, kwa sababu jukumu la pili huandika upya jedwali la uelekezaji ambalo la kwanza linategemea. Masharti matatu yanaamua kama mpangilio unafanya kazi, yaani kama huduma inayoingia inahifadhi njia yake ya kurudi, kama handaki linalotoka bado linafika kwa mwenza wake, na kama trafiki uliyokusudia kupeleka inachaguliwa kwa kutoka. Kosa moja na utapata handaki mbili ambazo zote zinaripoti zimeunganishwa wakati hakuna kitu cha manufaa kinachopita kati yao. Ukaguzi ulio hapa chini huweka kila sharti kwa mpangilio ambao hitilafu huonekana kwa kawaida.

Taja majukumu mawili kabla ya kugusa mpangilio wowote

Andika ukweli wanne kwa kila mfano: mwenza wake wa mbali, nyenzo zake za uthibitishaji, bwawa la anwani analogawa, na mitandao iliyo nyuma yake. Mifano miwili ni vitu tofauti kwenye kifaa na inapaswa kubaki tofauti pia katika madokezo yako. Karibu kila dalili ya kutatanisha baadaye hutokana na kuchanganya thamani zao, na mifano miwili inayoshiriki seti moja ya madokezo ndiyo njia ambayo bwawa lisilofaa huishia kwenye sehemu isiyofaa.

Huduma inayoingia inahitaji mtandao wa handaki ambao hauuki anwani za handaki linalotoka au mtandao wowote wa kibinafsi ambao kifaa kinauelekeza. Kuingiliana ndilo kosa pekee linalozalisha dalili katika majukumu yote mawili kwa wakati mmoja, na ni rahisi zaidi kulikamata kwenye karatasi. Linganisha mabwawa yote mawili na kila mtandao wa kibinafsi ulioelekezwa mahali pamoja kabla ya kusanidi huduma yoyote.

Vifaa vinavyoshirikiwa haimaanishi vitambulisho vinavyoshirikiwa, na cheti cha mteja kutoka bwawa la ufikiaji wa mbali hakipaswi kuwa kinatumika dhidi ya mtoa huduma wa kutoka. Nyenzo tofauti pia hufanya kufuta kuwa uamuzi wa ndani badala ya tukio la meli yote.

Weka majibu ya seva kwenye njia ya WAN

Majibu ambayo kifaa yenyewe huzalisha ni mwathirika wa kwanza wa njia chaguo-msingi isiyojali. Pakiti iliyofungwa ya mtumiaji anayezunguka inapowasili, jibu ni trafiki iliyotokea ndani na lazima itoke kupitia kiolesura ambacho mtumiaji huyo aliingia. Ikiwa mteja anayetoka ameweka njia chaguo-msingi inayoikamata, jibu huingia kwenye handaki lisilofaa na kikao kinakwama wakati huduma bado inaonekana nzuri.

Hakuna kisanduku kimoja cha kuteua kinachotatua hili, kwa sababu uamuzi unahusu trafiki ambayo mteja anayetoka anaweza kuikamata. Ama usivute njia yoyote na uelekeze tu kile unachochagua, au vuta njia na uongeze misamaha inayoweka huduma za kifaa yenyewe zikiendelea. Andika chaguo kando ya mfano, la sivyo mtu anayefuata atadhani lingine.

netstat -rn | head -20
pfctl -sr | grep -i vpn
ifconfig | grep -A3 ovpn

Soma jedwali la uelekezaji kwa ulinganifu mrefu zaidi, si kwa mpangilio uliosanidi kitu. Swali ni kwamba ingizo gani linashinda kwa anwani ya mwenza wa kutoka na ingizo gani linashinda kwa jibu la huduma inayoingia, na majibu hayo mawili yanaweza kutofautiana.

Usiache handaki linalotoka lile kitovu chake mwenyewe

Mteja anayetoka lazima afikie anwani ya umma ya mwenza wake ili kuunda handaki kabisa. Ikiwa anwani hiyo yenyewe inaelekezwa ndani ya handaki, mteja anafukuza mkia wake mwenyewe: usafirishaji haupandi kamwe, au hupanda kisha huanguka wakati njia inapowekwa. Kumbukumbu inaonekana kama muda wa uthibitishaji umeisha badala ya hitilafu ya uelekezaji, ndiyo maana njia inastahili ukaguzi wa kwanza.

Kagua njia kabla ya vitambulisho na tena baada ya handaki kupanda, kwa sababu ingizo linaweza kuwa sahihi wakati wa kuwasha na lisilofaa dakika moja baadaye. Anwani ya mwenza lazima ielekeze kwenye njia ya kawaida ya WAN, kamwe si kwenye kifaa cha handaki. Usafirishaji unapotulia, swali la kuvutia linahamia kwenye trafiki inayopelekwa, ambayo ni uamuzi unaofuata.

netstat -rn | grep -F '198.51.100.10'
traceroute -n 198.51.100.10

Chagua watumiaji gani wanapata kutoka

Sera ya chanzo ni ya kiingilio ambacho trafiki huingia kwenye kifaa, kwa hiyo chagua bwawa la ufikiaji wa mbali, au utambulisho mwembamba ndani yake. Hifadhi maeneo ya kibinafsi na misamaha ya usimamizi ambayo haipaswi kamwe kupelekwa kwenye kutoka, na weka kanuni hizo kabla ya ile pana. Njia ya kutoka kisha inahitaji tafsiri yake yenyewe au mpangilio wa kurudi ulioelekezwa, ambayo katika miundo mingi inamaanisha NAT inayotoka kwenye kiolesura cha kutoka inayofunika bwawa. Tafsiri haichagui kutoka; inaandika upya tu kile ambacho tayari kimetoka, kwa hiyo kanuni ya NAT kwenye WAN isiyohusiana haibadilishi chochote katika uteuzi.

Thibitisha kwamba upande wa mbali unaruhusu trafiki inayopelekwa kutoka muundo huu, kwa sababu watoa huduma wengine wanaruhusu na wengine hawaturuhusu. Tofauti inaonekana kama handaki linalounganisha na halibebi chochote, ambalo ni rahisi kulisoma kama hitilafu ya ndani. Jaribu mikondo mitatu kwa tofauti, kwa sababu inashindwa kwa kujitegemea, na miwili kati ya mitatu ni muundo uliojengwa nusu.

openvpn --config user07.ovpn
curl -sS https://ifconfig.me
curl --interface 10.10.10.1 -sS https://intranet.corp.example/health

Amri ya kwanza ni muunganisho wa nje wa mtumiaji anayezunguka, na inafanya kazi wakati mteja anaripoti kwamba mfuatano wa kuanzisha umekamilika. Ya pili, inayoendeshwa kutoka kwenye kompyuta ya mkononi iliyounganishwa, inapaswa kuripoti anwani ya mtoa huduma wa kutoka badala ya anwani yako ya WAN. Ya tatu inaendeshwa kwenye kifaa ikiwa imefungwa kwa anwani kutoka kwenye bwawa, na inajaribu sera ya chanzo kwa trafiki inayopelekwa bila kuhusisha mtumiaji wa mbali kabisa. Ikiwa badala yake inajibu kutoka WAN, sera haikulingana, na hakuna kiasi cha uhariri wa NAT kinachotengeneza tatizo la uteuzi.

Amua nini kinatokea wakati kutoka kunashindwa

Andika tabia ya hitilafu kabla haijatokea: handaki linalotoka linapoanguka, watumiaji wanarudi kwenye WAN ya kawaida au wanazuiwa hadi kutoka kurudi? Majibu yote mawili yanaweza kuteteleka, na kifaa hakitachagua kwa niaba yako. Njia iliyoondolewa au sera inayoelekeza kwenye lango lililokufa haitoi matokeo ya kuzuiwa kabisa kiotomatiki. Ikiwa unataka kuzuiwa, sera lazima iseme hivyo waziwazi, na lazima ijarbiwe kwa kuondoa kutoka badala ya kufikiri juu yake. Ikiwa unataka kurudi, watangazie watumiaji, kwa sababu trafiki inayochukua njia ya kawaida kwa utulivu ndiyo trafiki ambayo mtu alidhani imefunikwa.

Zima mfano wa mteja, angalia mtumiaji aliyeunganishwa bado anafikia nini, kisha uanzishe tena. Ombi linaloisha muda ndilo tokeo la kuzuiwa kabisa uliloomba; lile linalojibu kwa anwani ya WAN ni kurudi usilokuandika. Rudia ukaguzi kwa IPv6 na DNS, kwa sababu sera iliyoandikwa kwa IPv4 haisemi chochote kuhusu trafiki ya AAAA na kitatuzi kinachosukumwa na handaki lolote hujibu kutoka mahali ambapo swali linatoka kweli.

pfSsh.php playback svc stop openvpn client 2
curl --max-time 6 -sS https://ifconfig.me
pfSsh.php playback svc start openvpn client 2

Mapishi ya Netgate kwa OpenVPN iliyoelekezwa yanaonyesha jinsi sera ya chanzo, ugawaji wa kiolesura na tafsiri inayotoka vinavyolingana, na wigo wake kutoka tovuti hadi tovuti ni sehemu ambayo haipaswi kunakiliwa yote. Lisilokwambia ni sharti gani kati ya matatu hapo juu ambalo muundo wako umevunja tayari.

Makala zinazohusiana