Oba načrta varujeta isti promet z isto strojno opremo IPsec in se razlikujeta po tem, kaj odloči, kateri paket pride v tunel. Pri povezavi na podlagi pravil to delo opravijo dogovorjeni izbirniki prometa; pri povezavi na podlagi poti ga opravi pot, ki kaže na vmesnik tunela. Če oba zamešamo, nastane znana nit za podporo, v kateri tunel poroča, da je vzpostavljen, aplikacija pa ne doseže ničesar. Razlika je najpomembnejša, ko dodajate omrežje, izvajate usmerjevalni protokol ali razhroščujete pot, ki tiho odide skozi napačen izhod.

Dva načina odločanja, kaj pride v tunel

VPN na podlagi pravil zgradi varnostno pravilo, ki se ujema s predponami vira in cilja, nato pa šifrira vse, kar se vklopi. Partner se mora dogovoriti za združljive izbirnike, zato dejanski obseg na koncu postane presek tega, kar sta predlagali obe strani. Nič zunaj tega preseka ni zaščiteno, karkoli pravi usmerjevalna tabela.

VPN na podlagi poti ustvari vmesnik, ki predstavlja tunel, in pusti usmerjevalni tabeli, da pošilja promet vanj. Daemon IKE še vedno namesti stanje in pravilo za vsak vmesnik, in to je podrobnost, ki jo ljudje preskočijo, ko se odločijo, da so poti nadomestile šifriranje. Oba načrta šifrirata z IPsec; razlikuje se le mehanizem izbire.

Spodnjo primerjavo berite kot nabor znakov okvare in ne kot tabelo rezultatov, ker noben stolpec ne zmaga sam po sebi.

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

Na podlagi pravil: izbirnik je pogodba

Izbirniki se dogovarjajo, ne le nastavljajo. Predlagajte 10.10.0.0/16 na eni strani in 10.10.1.0/24 na drugi, pa bo povezava pokrila, kar je dogovor dosegel, medtem ko vsak drug gostitelj ostane zunaj.

Berite nameščeno stanje namesto konfiguracijske datoteke. Pri partnerju Linux so lastne tabele jedra osnovna resnica in prikazujejo, kaj je preživelo dogovor. Pravilo, ki navaja pravilne predpone brez ustreznega stanja, pomeni, da se povezava ni nikoli vzpostavila. Stanje skupaj s pravilom za napačno predpono je nasprotna težava in ustvari tunel, ki izgleda zdrav, medtem ko eno podomrežje ne doseže ničesar.

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

Primerjajte oba izhoda s predponami, za katere menite, da jih ščitite. Ta ena primerjava reši večino poročil o delujočem tunelu z nedosegljivim strežnikom. Pokaže tudi, katerega partnerja spremeniti, saj je neskladje običajno vidno le v eni smeri.

Na podlagi poti: vmesnik je pogodba

Vmesnik XFRM tunelu da ime in identiteto, promet pa do njega pride, ker tako pravi usmerjevalna tabela. Več oddaljenih predpon nato postane problem usmerjanja in ne problem izbirnika, usmerjevalni protokol pa jih lahko oglašuje. To je resnična korist, ne šifriranje.

Vmesnik ne odpravi potrebe po pravilu. Daemon namesti pravila za vsak vmesnik, vezana na identiteto vmesnika, zato paket, ki prispe na napačen vmesnik, še vedno ne uspe. Tudi izvorni naslov, ki ga partner ne bo sprejel, ne uspe, celo s popolno potjo. Na podlagi poti pomeni, da pot odloča o vstopu, ne da je pravilo izginilo.

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

Opazujte števce vmesnika, ko je pot na mestu. Pot obstaja, števci pa ostanejo na ničli, kar pomeni, da se v tunel nič ne ujema, in to običajno kaže na manjkajoče stanje, ne na manjkajočo pot.

Kje se ta dva načrta resnično razhajata

Dodajanje omrežja je najčistejši preizkus, kateri model vam ustreza. Načrt na podlagi poti doda pot in največ enkrat razširi izbirnik, medtem ko načrt na podlagi pravil ureja pare predpon pri obeh partnerjih in znova dogovarja. Dve stabilni podomrežji naredita to urejanje trivialno, dvajset pa ga spremeni v projekt.

Noben model ne nadomesti požarnega zidu in primerjave se običajno ustavijo pred to točko. Širok izbirnik ali široka pot odločata, kaj je šifrirano, ne kaj je dovoljeno.

Vedenje MTU se v praksi prav tako razlikuje. Kapsuliranje zmanjša uporabno obremenitev, vmesnik na podlagi poti pa nosi svoj MTU, zato stiskanje MSS na obeh prehodih prepreči simptom črne luknje, kjer prispejo majhni odgovori, veliki pa izginejo. Tuneli na podlagi pravil naletijo na isto steno z druge strani, ker izbirnik ne pove ničesar o velikosti paketa. Stiskanje nastavite namerno, namesto da krivite partnerja.

Selitev brez izgube povratne poti

Zabeležite obstoječe pare predpon, preden karkoli spremenite, nato premaknite eno pot aplikacije in jo spremljajte od začetka do konca. Tunel, ki se vzpostavi, ni tunel, ki posreduje, in razlika se pokaže v smeri odgovora.

Ko se partnerja povežeta, gostitelji LAN pa ne, preglejte povratno pot in izvorni naslov, ki ga bo uporabil oddaljeni gostitelj. Gostitelj z dvema vmesnikoma lahko odgovori z napačnega, in nobena sprememba izbirnika tega ne popravi. Zajemite promet na obeh koncih, preden urejate algoritme.

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

Med delom ohranite upravljalno pot, ki ni odvisna od tunela. Vrnitev je lažja, ko lasten dostop prehoda ne vozi po povezavi, ki jo razhroščujete.

Sorodni članki