Принтерът на бюрото продължава да работи, след като тунелът се вдигне, а сървър в другия офис тихо се разрешава до нещо локално. И двете поведения идват от едно и също правило: най-конкретният маршрут печели, а директно свързаният префикс е колкото се може по-конкретен. Обикновено това е дизайнът, който искате, и също така така дублиран частен диапазон открадва отдалечен адрес. Четенето на избора на ядрото първо превръща загадъчния отказ в сравнение на префикси.

Свързаният префикс е по-конкретен от маршрута по подразбиране

Тунелът обикновено инсталира маршрут по подразбиране или набор от префикси, докато локалният интерфейс носи свързан префикс плюс маршрут към цялата LAN. Между тях решава съвпадението на най-дългия префикс, затова дестинация в префикса на LAN никога не достига до тунела. Затова принтер, административната страница на рутера и локален NAS остават достъпни, докато VPN е включен. Затова и отдалечен ресурс в застъпващ се диапазон отива до грешната машина.

Частното адресно пространство не е уникално и два обекта да изберат един и същ префикс е достатъчно обичайно, за да се планира. Когато диапазоните се застъпят, локалният отговор идва бързо и изглежда авторитетен, затова отказът лесно се разчита като проблем с влизането. Дестинацията отговори, просто не тази, която имахте предвид.

Прочетете избора, който ядрото би направило

Попитайте ядрото кой маршрут би използвало за точната дестинация, вместо да четете таблицата отгоре. След това потърсете правила за политика, които биха избрали друга таблица. Две команди отговарят на двата въпроса за няколко секунди.

ip route get 10.20.30.41
ip route show table all | grep -E '10\.|default'
ip rule show

Първият изход посочва интерфейса, следващия хоп и адреса на източника, които ядрото би използвало, и това е отговорът, който има значение. Стойност dev, сочеща към локалния бридж, означава, че пакетът никога не влиза в тунела, каквото и да твърди панелът със състоянието на VPN клиента. Филтрираният списък на таблиците показва дали друга таблица държи същия префикс, а списъкът с правила показва реда, в който тези таблици се преглеждат. Правило за политика може да насочи префикс през конкретна таблица дори когато главната таблица не е съгласна, така че този ред е част от отговора.

Локалният достъп е отделно разрешение

Да имаш маршрут не е същото като да имаш право да го използваш. Повечето клиенти могат да блокират локалната мрежова комуникация, докато тунелът е вдигнат, и тази настройка е решение на политика, а не артефакт на маршрутизацията. Когато доверена близка услуга е част от дизайна, включете поддържаната опция за локален достъп, вместо да измисляте маршрути. Когато устройството е в публичен Wi-Fi, оставете я изключена.

Двата слоя се провалят различно. Блокиран локален път дава изчакване, въпреки че маршрутът съществува, докато застъпващ се маршрут дава отговор от грешен хост. Различаването им струва една заявка и спестява следобед промени по защитната стена, а схемата за препращане е описана в бележките на strongSwan за препращане.

Отстранете застъпване без натрупване на маршрути до хостове

Маршрут до хост за един адрес изглежда, че отстранява застъпване, и се проваля в момента, в който потрябва втори адрес в същия диапазон. Двадесет такива по-късно никой не може да каже кой префикс е авторитетен. Трайните решения са промяна на адресирането, документирана топология, която избягва дублирания диапазон, или транслация в единия край. Всяко струва време за планиране веднъж, вместо поддръжка завинаги.

Ако временен маршрут до хост наистина е нужен, запишете до него причината, собственика и датата, за да може по-късно да се премахне. След това тествайте точния адрес и услуга плюс публична дестинация, защото промяна в локалния достъп, която тихо изключва несвързани приложения от тунела, е по-лоша от първоначалната повреда. Дръжте локалния префикс и отдалечения префикс записани отделно; този навик спира работещ локален ping да се препредава като доказателство, че отдалеченият офис е достъпен.

Подобни статии