Оба решења штите исти саобраћај истом ИПсец машинеријом, а разликују се по томе шта одлучује који пакет улази у тунел. У вези заснованој на политикама то раде договорени селектори саобраћаја; у вези заснованој на рутама то ради рута која показује на интерфејс тунела. Мешање двају ствара познату нит за подршку у којој тунел пријављује да је успостављен, а апликација не стиже никуда. Разлика је најважнија када додајете мрежу, покрећете протокол рутирања или отклањате грешку на путу који тихо излази на погрешном излазу.

Два начина да одлучите шта улази у тунел

ВПН заснован на политикама гради безбедносну политику која се поклапа са префиксима извора и одредишта, а затим шифрује све што се уклопи. Друга страна мора да договори компатибилне селекторе, па делотворни обухват на крају постаје пресек онога што су обе стране предложиле. Ништа изван тог пресека није заштићено, шта год таблица рутирања каже.

ВПН заснован на рутама ствара интерфејс који представља тунел и пушта таблицу рутирања да шаље саобраћај у њега. ИКЕ демон и даље инсталира стање и политику по интерфејсу, а то је детаљ који људи прескачу када одлуче да су руте замениле шифровање. Оба решења шифрују ИПсец-ом; разликује се само механизам избора.

Читајте поређење испод као скуп потписа квара, а не као табелу резултата, јер ниједна колона не побеђује сама по себи.

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

Заснован на политикама: селектор је уговор

Селектори се договарају, не само конфигуришу. Предложите 10.10.0.0/16 са једне стране и 10.10.1.0/24 са друге, и асоцијација ће покрити оно на чему су преговори стали, док сваки други домаћин остаје изван.

Читајте инсталирано стање уместо конфигурационе датотеке. На Linux партнеру сопствене таблице кернела су основна истина и показују шта је преживело преговоре. Политика која именује исправне префиксе без одговарајућег стања значи да се асоцијација никада није подигла. Стање упаренo са политиком за погрешан префикс је супротан проблем и ствара тунел који изгледа здраво док једна подмрежа не стиже никуда.

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

Упоредите оба излаза са префиксима за које мислите да их штитите. То једно поређење решава већину пријава о тунелу који ради са недоступним сервером. Оно такође показује коју страну треба променити, јер се неусаглашеност обично види само у једном смеру.

Заснован на рутама: интерфејс је уговор

ИФРМ интерфејс даје тунелу име и идентитет, а саобраћај стиже до њега јер таблица рутирања тако каже. Неколико удаљених префикса тада постаје проблем рутирања, а не проблем селектора, и протокол рутирања може да их оглашава. То је права корист, а не шифровање.

Интерфејс не уклања потребу за политиком. Демон инсталира правила по интерфејсу везана за идентитет интерфејса, па пакет који стигне на погрешан интерфејс и даље не пролази. Изворна адреса коју друга страна неће прихватити такође не пролази, чак и са савршеном рутом. Заснован на рутама значи да рута одлучује о улазу, а не да је политика нестала.

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

Пратите бројаче интерфејса када рута буде на месту. Рута постоји, а бројачи стоје на нули, што значи да се ништа не уклапа у тунел, и то обично указује на стање које недостаје, а не на руту која недостаје.

Где се та два решења заиста разилазе

Додавање мреже је најчистији тест који вам модел одговара. Решење засновано на рутама додаје руту и највише једном проширује селектор, док решење засновано на политикама уређује парове префикса на обе стране и поново преговара. Две стабилне подмреже чине то уређивање тривијалним, а двадесет га претварају у пројекат.

Ниједан модел не замењује заштитни зид, и поређења се обично заустављају пре ове тачке. Широк селектор или широка рута одлучују шта се шифрује, а не шта је дозвољено.

Понашање МТУ-а се такође разликује у пракси. Инкапсулација смањује корисни терет, а интерфејс заснован на рутама носи сопствени МТУ, па причвршћивање МСС-а на оба пролаза избегава симптом црне рупе у којем мали одговори стижу, а велики нестају. Тунели засновани на политикама сусрећу исти зид са друге стране, јер селектор ништа не каже о величини пакета. Поставите причвршћивање намерно уместо да кривите другу страну.

Миграција без губитка повратног пута

Забележите постојеће парове префикса пре него што било шта промените, затим преместите једну путању апликације и посматрајте је од почетка до краја. Тунел који се успостави није тунел који прослеђује, а разлика се појављује у смеру одговора.

Када се стране повежу, а домаћини ЛАН-а не могу, проверите повратну руту и изворну адресу коју ће удаљени домаћин користити. Домаћин са два интерфејса може да одговори са погрешног, и никаква промена селектора то не поправља. Снимите саобраћај на оба краја пре уређивања алгоритама.

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

Задржите путању управљања која не зависи од тунела док радите. Враћање је лакше када приступ самог пролаза не иде преко везе коју отклањате.

Повезани чланци