Oba návrhy chránia tú istú prevádzku tým istým strojom IPsec a líšia sa tým, čo rozhoduje, ktorý paket vstúpi do tunela. V spojení založenom na politikách to robia vyjednané selektory prevádzky; v spojení založenom na trasách to robí trasa smerujúca na rozhranie tunela. Zámena oboch vytvára známu podpornú diskusiu, v ktorej tunel hlási, že je vytvorený, ale aplikácia sa nikam nedostane. Rozdiel je najdôležitejší, keď pridávate sieť, spúšťate smerovací protokol alebo ladíte cestu, ktorá potichu odchádza nesprávnym výstupom.

Dva spôsoby rozhodovania, čo sa dostane do tunela

VPN založená na politikách zostavuje bezpečnostnú politiku zodpovedajúcu prefixom zdroja a cieľa a potom šifruje všetko, čo sa hodí. Partner musí vyjednať kompatibilné selektory, preto efektívny rozsah nakoniec tvorí prienik toho, čo navrhli obe strany. Nič mimo tohto prieniku nie je chránené, nech hovorí smerovacia tabuľka čokoľvek.

VPN založená na trasách vytvára rozhranie, ktoré predstavuje tunel, a necháva smerovaciu tabuľku posielať doňho prevádzku. Démon IKE stále inštaluje stav a politiku pre každé rozhranie, a to je detail, ktorý ľudia vynechávajú, keď sa rozhodnú, že trasy nahradili šifrovanie. Oba návrhy šifrujú pomocou IPsec; líši sa iba mechanizmus výberu.

Čítajte porovnanie nižšie ako súbor príznakov zlyhania a nie ako bodovaciu tabuľku, pretože ani jeden stĺpec nevyhráva sám o sebe.

AspectPolicy-basedRoute-based
What selects trafficNegotiated selectorsA route into the tunnel interface
Adding a networkEdit selectors on both peersAdd a route, widen the selector once
Dynamic routingAwkward to run over the tunnelRuns over the interface directly
Typical failureTunnel up, host outside the selectorTunnel up, no route or wrong source

Založený na politikách: selektor je zmluva

Selektory sa vyjednávajú, nie iba konfigurujú. Navrhnite 10.10.0.0/16 na jednej strane a 10.10.1.0/24 na druhej, a asociácia pokryje to, na čom sa vyjednávanie zastavilo, kým každý iný host zostane vonku.

Čítajte nainštalovaný stav namiesto konfiguračného súboru. Pri partnerovi Linux sú vlastné tabuľky jadra základnou pravdou a ukazujú, čo prežilo vyjednávanie. Politika, ktorá pomenúva správne prefixy bez zodpovedajúceho stavu, znamená, že asociácia sa nikdy nevytvorila. Stav spárovaný s politikou pre nesprávny prefix je opačný problém a vytvára tunel, ktorý vyzerá zdravo, kým jedna podsieť sa nikam nedostane.

sudo ip xfrm state
sudo ip xfrm policy
sudo swanctl --list-sas

Porovnajte oba výstupy s prefixmi, o ktorých si myslíte, že ich chránite. To jedno porovnanie rieši väčšinu hlásení o fungujúcom tuneli s nedostupným serverom. Ukazuje aj to, ktorého partnera zmeniť, pretože nezhoda je zvyčajne viditeľná iba v jednom smere.

Založený na trasách: rozhranie je zmluva

Rozhranie XFRM dáva tunelu názov a identitu a prevádzka sa k nemu dostane, pretože to hovorí smerovacia tabuľka. Viacero vzdialených prefixov sa potom stane problémom smerovania a nie problémom selektora a smerovací protokol ich môže oznamovať. To je skutočný zisk, nie šifrovanie.

Rozhranie neodstraňuje potrebu politiky. Démon inštaluje pravidlá pre každé rozhranie naviazané na identitu rozhrania, takže paket prichádzajúci na nesprávne rozhranie stále zlyhá. Zlyhá aj zdrojová adresa, ktorú partner neprijme, a to aj pri dokonalej trase. Založený na trasách znamená, že trasa rozhoduje o vstupe, nie že politika zmizla.

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

Sledujte počítadlá rozhrania, keď je trasa na mieste. Trasa existuje, ale počítadlá zostávajú na nule, čo znamená, že sa do tunela nič nepriraďuje, a to zvyčajne poukazuje na chýbajúci stav a nie na chýbajúcu trasu.

Kde sa tieto dva návrhy naozaj rozchádzajú

Pridanie siete je najčistejší test, ktorý model vám sedí. Návrh založený na trasách pridá trasu a nanajvýš raz rozšíri selektor, kým návrh založený na politikách upravuje páry prefixov na oboch partneroch a znova vyjednáva. Dve stabilné podsiete robia tú úpravu triviálnou a dvadsať z nej robí projekt.

Ani jeden model nenahrádza bránu firewall a porovnania sa zvyčajne zastavia pred týmto bodom. Široký selektor alebo široká trasa rozhodujú, čo sa šifruje, nie čo je povolené.

Správanie MTU sa v praxi tiež líši. Zapuzdrenie znižuje použiteľnú záťaž a rozhranie založené na trasách nesie vlastné MTU, takže zovretie MSS na oboch bránach zabraňuje symptómu čiernej diery, keď prichádzajú malé odpovede a veľké miznú. Tunele založené na politikách narážajú na tú istú stenu z druhej strany, pretože selektor nič nehovorí o veľkosti paketu. Nastavte zovretie zámerne, namiesto obviňovania partnera.

Migrácia bez straty spätnej cesty

Zaznamenajte existujúce páry prefixov pred akoukoľvek zmenou, potom presuňte jednu cestu aplikácie a sledujte ju od začiatku do konca. Tunel, ktorý sa vytvorí, nie je tunel, ktorý preposiela, a rozdiel sa prejaví v smere odpovede.

Keď sa partneri pripoja, ale hosty LAN nie, skontrolujte spätnú trasu a zdrojovú adresu, ktorú vzdialený host použije. Host s dvoma rozhraniami môže odpovedať z nesprávneho a žiadna zmena selektora to neopraví. Zachyťte prevádzku na oboch koncoch pred úpravou algoritmov.

ip route get 10.20.5.10
sudo tcpdump -ni any host 10.20.5.10 and icmp
sudo swanctl --list-conns

Počas práce si ponechajte riadiacu cestu, ktorá nezávisí od tunela. Návrat je jednoduchší, keď vlastný prístup brány nejazdí po spojení, ktoré ladíte.

Súvisiace články