Dva skoka VPN na enem Pi: katera pot nosi katerega partnerja
Dva naslova tunela na enem Pi nista napaka. Vsak cilj potrebuje svojega nosilca, svoj dokaz in napovedano rezervo, ko zunanji skok umre.
Dva naslova tunela na eni majhni plošči izgledata kot napaka, in refleks je izbrisati enega. Ta refleks zlomi tisto, kar bi moral urediti. Gostitelj z dvema skokoma drži en naslov na vsako povezavo, in vsak naslov izbere druga pot. Vprašanje, ki se ga je vredno vprašati, je, katera pot izbere katerega nosilca za kateri cilj, ne koliko naslovov obstaja.
Trije cilji, ki potrebujejo različne nosilce
Veriga dveh skokov so trije razredi ciljev, zloženi drug na drugega, in vsakega nosi druga povezava. Zunanjega partnerja je treba doseči po fizični povezavi. Notranjega partnerja je treba doseči po zunanjem tunelu. Cilj pokrite aplikacije je treba doseči po notranjem tunelu, katerega lastni transport nosi zunanji.
| Destination class | View that names the carrier | Command that proves it | Symptom when the wrong carrier wins |
|---|---|---|---|
| Outer peer, 198.51.100.10 | the main table, by destination | ip route get 198.51.100.10 | the outer handshake never completes |
| Inner peer, 203.0.113.7 | the main table once the outer tunnel is up | ip route get 203.0.113.7 | the inner handshake leaves over the physical link |
| Application destination, 172.30.9.1 | the table the inner client's traffic is selected into | ip route get 172.30.9.1 from 10.8.0.2 | the exit address looks right and the traffic never crossed the outer hop |
| Parallel tunnels, one per source group | one policy per group, not the main table | ip rule show beside a marked test connection | both tunnels are up and one steals the other's traffic |
Izpolnite vrstice z resničnimi naslovi bralca, preden se dotaknete poti, ker je tabela uporabna le, ko je konkretna. Delujoča veriga hkrati izpolnjuje vse štiri vrstice, napol delujoča pa običajno izpolnjuje eno od njih z napačnim nosilcem. Prav branje napačne vrstice kot okvare spremeni problem usmerjanja v celo popoldne popravkov.
Naslovi imajo vloge, ne števila
Linux dovoljuje več naslovov na enem vmesniku in več tunelov na enem gostitelju, zato število ne pove ničesar o pravilnosti. Pomembno je, kateri naslov pripada kateri povezavi, in ali pot za danega partnerja izbere povezavo, ki ste jo mislili. Trije pogledi na to odgovarjajo iz treh smeri, in vredno jih je brati v istem vrstnem redu vsakič.
Popis naslovov kaže, kaj obstaja in katera povezava ga ima. Tabela poti odgovarja na vprašanje nosilca za običajen ciljni promet. Pogled pravil odgovarja nanj znova za promet, izbran po viru ali oznaki, kar je običajna ureditev, ko si dva odjemalca delita enega gostitelja.
ip -4 addr show
ip -4 route show table all
ip rule show
Brisanje naslova, ker seznam izgleda dolg, lahko odstrani del poti, in brisanje poti, ker izgleda odveč, naredi isto tišje. Nobeno od tega ne sproži napake; partner preprosto preneha odgovarjati na poti, ki ste jo mislili, medtem ko ostane dosegljiv po drugi. Aplikacija, ki poroča izhodni naslov notranjega partnerja, ne dokazuje, da je promet prešel zunanji tunel, saj neposreden dostop da enako opažanje. Prav ta vrzel med opažanjem in dokazom je razlog, da se nosilec preverja na plasti usmerjanja.
Vrstni red aktivacije premaga fiksno čakanje
Če je notranji odjemalec odvisen od naslova ali poti, ki jo zagotavlja zunanji odjemalec, mora aktivacija počakati na ta vir, ne na zakasnitev. Čakanje deluje do dneva, ko je zunanji tunel počasen, in takrat občasno spodleti na način, ki ga nihče ne more ponoviti. Vrstni red, ki temelji na odvisnostih, odstrani ugibanje in ne stane ničesar razen enkratnega opisa odvisnosti. Tudi imena vmesnikov niso mehanizem vrstnega reda.
Jedro dodeljuje imena, kot sta tun0 in tun1, v vrstnem redu ustvarjanja, in ta vrstni red se lahko spremeni med ponovnimi zagoni ali ponovnimi povezavami. Povežite konfiguracijo z identiteto, ki jo zagotavlja orodje, ali z imenom, ki ga zavestno dodelite. Ime, ki ga izberete vi, je pogodba; ime, ki ga izbere jedro, je naključje.
Držite transport vsakega odjemalca zunaj aplikacijske poti drugega, in bodite natančni glede tega, kar možnosti usmerjanja OpenVPN 2.6 resnično obljubljajo. Dokumentirani mehanizem privzetega preusmerjanja ohranja odjemalca sposobnega doseči svojega oddaljenega partnerja prek prehoda, ki je že obstajal, kar prereže eno določeno rekurzivno zanko. Iz enega odjemalca ne naredi nosilca drugega, zato preostanek verige ostaja vaša zasnova. Kjer veriga potrebuje politiko namesto poti, napišite izrecno pravilo vira ali oznake in ga preizkusite s prometom, ki se mora ujemati.
Kaj se zgodi, ko zunanji skok umre
Preden se veriga šteje za popolno, odločite, kaj se zgodi, ko zunanji skok izgine. Transport notranjega odjemalca umre z njim, in naslednji korak je vprašanje politike, ne tehnike: spodleteti, poskusiti znova ali se neposredno povezati po fizični povezavi. Prav tretji izid je tisti, o katerem je vredno razmisliti. Tiho spremeni zasnovo z dvema skokoma v zasnovo z enim skokom v trenutku, ko uporabnik verjame, da je pokritost še nedotaknjena.
Če sta dva skoka obvezna, notranji odjemalec ne sme biti sposoben vzpostaviti neposredne poti, ko zunanjega ni, in način, da to ugotovite, je prekiniti zunanji skok in opazovati, kaj počne notranji. Odobrena rezerva je legitimno zagotovilo, vendar jo je treba zapisati, preizkusiti in sporočiti. Rezerva, ki je nihče ni dokumentiral, se pri pregledu dogodka ne razlikuje od uhajanja.
DNS in druga družina naslovov spadata k isti odločitvi. Lokalno ustvarjena poizvedba sledi lastni politiki gostitelja, ne politiki posredovanega odjemalca, zato razreševalnik, ki deluje za posredovani promet, morda ni tisti, ki ga uporablja sam gostitelj.
Sprejmite vsako plast v vrstnem redu, v katerem ste jo zgradili
Preizkusite v vrstnem redu, v katerem je bila veriga zgrajena: najprej sam zunanji tunel, nato transport notranjega odjemalca skozi zunanji tunel, nato aplikacija skozi notranji tunel. Vsaka sprejemljivost mora biti nova povezava, ne stran, ki je bila že odprta. Nato vsako plast posebej prekinite in obnovite ter opazujte, kaj počne naslednja.
Rezultat rezerve je tukaj najdragocenejše opažanje in tisto, ki ga stran z javnim IP nikoli ne pokaže. Shranite poti partnerjev, naslove, ki jih uporabljajo, in ta rezultat ob konfiguraciji, ker srečna pot ni del, o katerem se sprašuje pozneje.