Pingi na naslov tunela strežnika uspejo, lastna usmerjevalna tabela odjemalca je videti pravilna, in LAN za tem odjemalcem je še vedno nedosegljiv. Usmerjevalna tabela odjemalca je videti pravilna, strežnik ima pot do tunela, in paketi še vedno izginjajo. To je klasičen simptom tunela layer-3, ki ne ve, da je eden od njegovih odjemalcev tudi prehod.

Vmesnik tun nima naslednjega skoka za vsakega odjemalca. Jedro vidi en vmesnik z mnogimi partnerji, zato je treba odločitev, kateri odjemalec naj prejme paket za oddaljeni LAN, sprejeti znotraj procesa OpenVPN. Ta odločitev se nastavi z iroute, brez nje pa paket nima kam iti.

Strežnik usmerja po odjemalcu, ne po vmesniku

Ko mora strežnik poslati paket na naslov tunela odjemalca, je odgovor nedvoumen: naslov pripada seji tega odjemalca. Ko je cilj celotno podomrežje za tem odjemalcem, naslov ne pripada nikomur, ki ga strežnik pozna, in pot jedra do tunela pravi le "skozi ta vmesnik", ne da bi povedala, kateri partner.

OpenVPN to reši z notranjo usmerjevalno tabelo, ki ciljno predpono poveže z določenim odjemalcem. Ta tabela se zgradi iz vnosov iroute, zato običajna pot na gostitelju strežnika ne zadostuje. Pot jedra pripelje paket do vmesnika tunela; notranje povezovanje odloči, katera seja ga prejme. Zato se popravek nikoli ne pojavi v izpisu poti jedra.

Če povezovanja ni, paket prispe na strežnik, se ujema s potjo tunela in se zavrže, ker noben odjemalec ne zahteva cilja. Nič ne zabeleži čiste napake, zato je videti okvara kot tiha črna luknja, ne kot usmerjevalna zanka.

Zapis vnosa iroute, ki imenuje odjemalca

iroute živi v konfiguracijski datoteki, specifični za odjemalca, ne v glavni konfiguraciji strežnika. Usmerite strežnik v mapo z možnostjo client-config-dir, nato ustvarite datoteko, katere ime je skupno ime odjemalčevega potrdila, in vanjo vstavite predpono.

Za podružnico, katere LAN je 10.20.0.0/24 in katere skupno ime potrdila je branch-router, datoteka na tej poti vsebuje vrstico, kot je iroute 10.20.0.0 255.255.255.0. Glavna konfiguracija potrebuje le možnost mape; predpona živi pri odjemalcu.

Skupno ime je krhki del. Potrdilo, izdano z drugim subject, ali namestitev, ki overja uporabnike po uporabniškem imenu, medtem ko je datoteka poimenovana po potrdilu, ustvari datoteko, ki se nikoli ne prebere. Preverite ime, ki ga strežnik dejansko poroča za sejo, in razmislite o možnosti, ki neujemajočemu odjemalcu omogoči neuspeh, namesto da se tiho poveže brez svojih poti. Preimenovanje datoteke, da se ujema s potrdilom, je petminutni popravek, ki prepreči zelo dolg večer.

En odjemalec ima lahko več predpon. Dodajte eno vrstico iroute na omrežje in hranite seznam ob ostalih nastavitvah tega odjemalca, da povezovanje ostane revizijsko sledljivo.

Gradnja povratne poti v obeh smereh

Pripeljati pakete do oddaljenega LAN je pol dela. Odjemalec mora tudi pošiljati promet tega LAN v tunel, kar se običajno naredi s potiskanjem poti odjemalcu: vrstica, kot je push "route 10.8.0.0 255.255.255.0", pove vsakemu odjemalcu, kako doseže omrežje na strani strežnika. Za podružnico enakovredna pot kaže na tunel za vse, kar mora doseči na strani strežnika.

Povratna smer potrebuje lastnika na oddaljeni strani. Tam mora nekdo poznati pot nazaj: statična pot na usmerjevalniku LAN, ki usmeri sklad VPN na strežnik, ali pretvorba naslovov na strežniku, preden promet vstopi v LAN. Statična pot ohrani izvirne naslove vidne v dnevnikih in pravilih dostopa, vendar zahteva sodelovanje lastnika LAN; pretvorba je samostojna, a skriva, kdo se je dejansko povezal.

Posredovanje mora biti omogočeno na gostitelju strežnika. Brez tega jedro sprejme paket iz tunela in ga zavrne posredovati vmesniku LAN, kar je z vidika odjemalca videti enako kot manjkajoči iroute.

Preverjanje dosegljivosti s pravimi sondami

Preizkušajte po plasteh, namesto da pingate oddaljeni konec in ugibate. Na strežniku preverite, da notranje povezovanje za predpono obstaja in da pot jedra kaže na tunel. Na odjemalcu potrdite, da je potisnjena pot nameščena in da je njegova privzeta pot do naslova LAN tunel.

Nato opazujte pakete. Zajem na vmesniku tunela pokaže, ali strežnik pošilja proti odjemalcu, zajem na vmesniku LAN pa, ali posreduje. Če prvi kaže pakete, drugi pa nič, je težava v posredovanju ali filtru; če noben ne kaže ničesar, iskanje ni uspelo prej.

Dva strežnika, povezana s tunelom, ponavljata isto pravilo na obeh straneh: vsak potrebuje iroute za sklad drugega in vsak potrebuje pot ter posredovanje, ki naredita pot simetrično. Usmerjanje in politika sta tukaj ločeni zadevi. Usmerjanje odloča, kam paket lahko gre, pravilo FORWARD pa odloča, ali sme, zato odjemalec z dvema vrsticama iroute doseže obe predponi, razen če filter pravi drugače.

Sorodni članki