Четыре проверки отделяют неисправность таблицы политик от неисправности маршрутизации: какое правило совпало, какую таблицу назвало это правило, что содержит эта таблица и какой маршрут в ней победил. К основной таблице больше не обращаются, как только предыдущая таблица выдала маршрут, поэтому запись LAN, видимая там, может быть несущественной для проверяемого пакета. Выполняйте проверки по порядку, и отсутствующий маршрут обнаружится на третьем шаге, а не на четвёртом.

Сопоставление по самому длинному префиксу происходит внутри одной таблицы; оно не сравнивает маршруты всех таблиц как единый список.

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

Возьмите политику, в которой трафик из подсети сначала обращается к таблице 200, таблица 200 содержит маршрут по умолчанию через туннель, а основная таблица содержит префикс LAN. Пакет к адресу LAN может совпасть с этим маршрутом по умолчанию в таблице 200 и остановиться там. Поскольку поиск выдал маршрут, более позднее правило основной таблицы уже не получает возможности предложить свою более точную запись. В результате пакет уходит в туннель, а вполне исправный маршрут LAN остаётся неиспользованным.

Предыдущие правила и собственный поиск машиной локальных адресов по-прежнему действуют, поэтому тест должен использовать источник, метку и интерфейс, которые несёт реальный поток. Спросите с чем-то другим, и LAN может быть выбран правильно, что скрывает именно ту неисправность, которую вы ищете.

Разместите исключение для LAN там, где ему место

Выбранная таблица может нести нужные ей маршруты LAN, подключённые маршруты и маршрут до конечной точки, что оставляет политику самодостаточной. Другая схема использует явное более раннее правило для префикса LAN или намеренный отбрасывающий маршрут, передающий префикс более позднему поиску. Каждый из них — законный шаблон со своим владельцем. Выбирайте по предполагаемой политике и по тому, кто обслуживает маршруты, а не по тому, что короче набирать.

Каким бы ни был шаблон, исключение должно быть видимым там, где определена политика. Маршрут, добавленный вручную и не зафиксированный, исчезнет при следующей перезагрузке и захватит диагностику с собой.

Не копируйте основную таблицу целиком

Копирование каждого маршрута из основной таблицы в таблицу политик выглядит как исправление, но создаёт снимок. Администратор может динамически добавлять или удалять адреса и интерфейсы, и копия устаревает незаметно. Держите жизненный цикл маршрутов у владельца конфигурации и создавайте таблицу заново из конфигурации, а не из одного момента времени.

Скопированная таблица также сводит на нет цель, поскольку воспроизводит резервное поведение, которое политика должна была ограничить.

Проверяйте ответы отдельно от маршрутов

Даже после того как поиск выбрал нужный путь, ответы могут не проходить по причинам, не связанным с таблицей. Трансляция может применяться на неверном интерфейсе, проверка обратного пути может отклонить пакет, пришедший неожиданным путём, или конечная точка просто не ответит. Это разные неисправности с разными доказательствами, и ни одну из них не исправляет редактирование записей маршрутов.

Сохраните результаты поиска для именно этого потока по обе стороны изменения, чтобы исправление оставалось видимым. Глобальное отключение проверок обратного пути или очистка правил не даёт отсутствующего маршрута и ослабляет несвязанные средства контроля.

Запишите правило, таблицу, победивший маршрут и путь ответа. Эта запись отделяет ошибку политики от сломанной службы.

Похожие статьи