VPN između lokacija temeljen na rutama nasuprot onom temeljenom na pravilima: što se razlikuje
IPsec temeljen na pravilima odabire promet selektorom; onaj temeljen na rutama šalje ga kroz sučelje tunela. Oba i dalje trebaju vatrozidna pravila i povratnu rutu.
Oba pristupa štite isti promet istim IPsec mehanizmom, a razlikuju se u tome što odlučuje koji paket ulazi u tunel. U vezi temeljenoj na pravilima taj posao rade dogovoreni selektori prometa; u onoj temeljenoj na rutama radi ga ruta koja pokazuje na sučelje tunela. Miješanje dvaju stvara poznatu temu u podršci u kojoj tunel javlja da je uspostavljen, a aplikacija ne dolazi ni do čega. Razlika je najvažnija kada dodajete mrežu, pokrećete protokol usmjeravanja ili tražite grešku na putu koji tiho izlazi na pogrešnom izlazu.
Dva načina da odlučite što ulazi u tunel
VPN temeljen na pravilima gradi sigurnosno pravilo koje odgovara izvornim i odredišnim prefiksima, a zatim šifrira sve što se uklopi. Druga strana mora dogovoriti kompatibilne selektore, pa djelotvorni opseg na kraju postaje presjek onoga što su obje strane predložile. Ništa izvan tog presjeka nije zaštićeno, što god govorila tablica usmjeravanja.
VPN temeljen na rutama stvara sučelje koje predstavlja tunel i pušta tablicu usmjeravanja da u njega šalje promet. IKE demon i dalje instalira stanje i pravilo po sučelju, a to je pojedinost koju ljudi preskaču kada zaključe da su rute zamijenile šifriranje. Oba pristupa šifriraju IPsec-om; razlikuje se samo mehanizam odabira.
Čitajte usporedbu u nastavku kao skup potpisa kvara, a ne kao tablicu rezultata, jer nijedan stupac ne pobjeđuje sam po sebi.
| Aspect | Policy-based | Route-based |
|---|---|---|
| What selects traffic | Negotiated selectors | A route into the tunnel interface |
| Adding a network | Edit selectors on both peers | Add a route, widen the selector once |
| Dynamic routing | Awkward to run over the tunnel | Runs over the interface directly |
| Typical failure | Tunnel up, host outside the selector | Tunnel up, no route or wrong source |
Temeljen na pravilima: selektor je ugovor
O selektorima se pregovara, ne samo da se konfiguriraju. Predložite 10.10.0.0/16 s jedne strane i 10.10.1.0/24 s druge, i asocijacija će pokriti ono na čemu su pregovori stali, dok svaki drugi host ostaje izvan.
Čitajte instalirano stanje umjesto konfiguracijske datoteke. Na Linux partneru vlastite tablice kernela osnovna su istina i pokazuju što je preživjelo pregovore. Pravilo koje imenuje ispravne prefikse bez odgovarajućeg stanja znači da se asocijacija nikada nije podigla. Stanje upareno s pravilom za pogrešan prefiks suprotan je problem i stvara tunel koji izgleda zdravo dok jedna podmreža ne može doći ni do čega.
sudo ip xfrm state
sudo ip xfrm policy
sudo swanctl --list-sas
Usporedite oba izlaza s prefiksima za koje mislite da ih štitite. Ta jedna usporedba rješava većinu prijava o tunelu koji radi s nedostupnim poslužiteljem. Također pokazuje koju stranu promijeniti, jer se nepodudarnost obično vidi samo u jednom smjeru.
Temeljen na rutama: sučelje je ugovor
XFRM sučelje daje tunelu ime i identitet, a promet do njega dolazi jer tablica usmjeravanja tako kaže. Nekoliko udaljenih prefiksa tada postaje problem usmjeravanja, a ne problem selektora, i protokol usmjeravanja može ih oglašavati. To je prava korist, a ne šifriranje.
Sučelje ne uklanja potrebu za pravilima. Demon instalira pravila po sučelju vezana uz identitet sučelja, pa paket koji stigne na pogrešno sučelje i dalje ne prolazi. Izvorna adresa koju druga strana neće prihvatiti također ne prolazi, čak i uz savršenu rutu. Temeljen na rutama znači da ruta odlučuje o ulazu, a ne da je pravilo nestalo.
sudo ip link add xfrm0 type xfrm dev eth0 if_id 42
sudo ip route add 10.20.0.0/16 dev xfrm0
ip -s link show xfrm0
ip route get 10.20.5.10
Pratite brojače sučelja nakon što ruta bude na mjestu. Ruta koja postoji dok brojači stoje na nuli znači da se ništa ne uklapa u tunel, što obično upućuje na stanje koje nedostaje, a ne na rutu koja nedostaje.
Gdje se ta dva pristupa stvarno razilaze
Dodavanje mreže najčišći je test koji vam model odgovara. Pristup temeljen na rutama dodaje rutu i najviše jednom proširuje selektor, dok pristup temeljen na pravilima uređuje parove prefiksa na obje strane i ponovno pregovara. Dvije stabilne podmreže čine tu izmjenu trivijalnom, a dvadeset je pretvaraju u projekt.
Nijedan model ne zamjenjuje vatrozid, i usporedbe se obično zaustavljaju prije te točke. Širok selektor ili široka ruta odlučuju što se šifrira, a ne što je dopušteno.
Ponašanje MTU-a također se razlikuje u praksi. Enkapsulacija smanjuje korisni teret, a sučelje temeljeno na rutama nosi vlastiti MTU, pa pričvršćivanje MSS-a na oba pristupnika izbjegava simptom crne rupe u kojem mali odgovori stižu, a veliki nestaju. Tuneli temeljeni na pravilima susreću isti zid s druge strane, jer selektor ne govori ništa o veličini paketa. Postavite pričvršćivanje namjerno umjesto da krivite drugu stranu.
Migracija bez gubitka povratne putanje
Zabilježite postojeće parove prefiksa prije nego što bilo što promijenite, zatim premjestite jednu putanju aplikacije i promatrajte je od početka do kraja. Tunel koji se uspostavi nije tunel koji prosljeđuje, a razlika se pojavljuje u smjeru odgovora.
Kada se strane povežu, ali hostovi LAN-a ne mogu, provjerite povratnu rutu i izvornu adresu koju će udaljeni host koristiti. Host s dva sučelja može odgovoriti s pogrešnog, i nikakva promjena selektora to ne popravlja. Snimite promet na oba kraja prije uređivanja algoritama.
ip route get 10.20.5.10
sudo tcpdump -ni any host 10.20.5.10 and icmp
sudo swanctl --list-conns
Zadržite putanju upravljanja koja ne ovisi o tunelu dok radite. Vraćanje je lakše kada vlastiti pristup pristupnika ne ide preko veze koju otklanjate.