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

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

VPN заснован на политики гради безбедносна политика што се совпаѓа со префиксите на изворот и одредиштето, потоа го шифрира сето што се вклопува. Партнерот мора да договори компатибилни селектори, па затоа делотворниот опсег на крајот станува пресек на она што го предложиле двете страни. Ништо надвор од тој пресек не е заштитено, што и да кажува табелата за рутирање.

VPN заснован на рути создава интерфејс што го претставува тунелот и му дозволува на табелата за рутирање да праќа сообраќај во него. IKE демонот сѐ уште ја инсталира состојбата и политиката по интерфејс, и тоа е детаљот што луѓето го прескокнуваат кога одлучуваат дека рутите го замениле шифрирањето. Двата дизајна шифрираат со IPsec; се разликува само механизмот за избор.

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

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 партнер, сопствените табели на јадрото се основната вистина, и тие покажуваат што преживеало од преговорите. Политика што ги именува точните префикси без соодветна состојба значи дека асоцијацијата никогаш не се кренала. Состојба спарена со политика за погрешниот префикс е спротивниот проблем, и таа го создава тунелот што изгледа здрав додека една подмрежа не стигнува никаде.

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

Споредете ги двете излези со префиксите за кои сметате дека ги штитите. Таа единствена споредба решава повеќето пријави за тунел што работи со недостапен сервер. Таа исто така покажува кој партнер да се смени, бидејќи несовпаѓањето обично се гледа само во една насока.

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

XFRM интерфејсот му дава на тунелот име и идентитет, а сообраќајот стигнува до него зашто табелата за рутирање така вели. Неколку оддалечени префикси тогаш стануваат проблем на рутирање наместо проблем на селектор, и протокол за рутирање може да ги објавува. Тоа е вистинската корист, не шифрирањето.

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

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

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

Каде двата дизајна навистина се разидуваат

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

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

Однесувањето на MTU исто така се разликува во практиката. Инкапсулацијата го намалува употребливиот товар, а интерфејсот заснован на рути носи сопствен MTU, па затоа стегањето на MSS на двете порти го избегнува симптомот на црна дупка каде малите одговори пристигнуваат, а големите исчезнуваат. Тунелите засновани на политики удираат во истиот ѕид од другата страна, зашто селекторот не кажува ништо за големината на пакетот. Поставете го стегањето намерно наместо да го обвинувате партнерот.

Преселба без губење на повратниот пат

Запишете ги постоечките парови префикси пред да смените нешто, потоа преместете еден пат на апликација и гледајте го од почеток до крај. Тунел што се воспоставува не е тунел што препраќа, и разликата се појавува во насоката на одговорот.

Кога партнерите се поврзуваат, но домаќините на LAN не можат, проверете ја повратната рута и изворната адреса што ќе ја користи далечниот домаќин. Домаќин со два интерфејса може да одговори од погрешниот, и никаква промена на селекторот тоа не го поправа. Фатете сообраќај на двата краја пред да ги уредувате алгоритмите.

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

Одржувајте управувачки пат што не зависи од тунелот додека работите. Враќањето назад е полесно кога пристапот на самата порта не патува по врската што ја отстранувате.

Поврзани статии