Маршрут null в NX-OS EVPN: держите отбрасывание внутри одного тенанта
Запись Null0 отбрасывает локально и ничего не анонсирует. Маркировка, политика экспорта и политика принимающего VTEP — это три отдельных решения, которые нужно проверить.
Запрос приходит как изменение в одну строку: заблокировать один адрес. Вы добавляете маршрут к хосту в Null0 в контексте тенанта, префикс, как и ожидалось, исчезает из локальной таблицы, и тогда начинаются вопросы. Покинул ли маршрут устройство? Отбросили ли удалённые VTEP или просто потеряли доступность? Затронут ли теперь второй тенант?
Правильный локальный статический маршрут отвечает только на первый из этих вопросов, поэтому изменение blackhole — это на самом деле три проверенных результата, а не одна команда.
Что изменение действительно должно дать
Начните с того, что запишите три результата. Целевой тенант должен отбросить пункт назначения локально. Экспортировать можно только разрешённый маршрут, и ничего другого не должно ехать вместе с ним. Каждый принимающий VTEP должен выбрать предусмотренное действие отбрасывания, а не другой путь.
У каждого результата свои доказательства, и ни один не подразумевает остальные. Локальный маршрут Null0 даёт локальное отбрасывание и без перераспределения не экспортирует вообще ничего. Перераспределённый маршрут без согласованной community приходит как обычный префикс и пересылается. Community без политики приёма может быть полностью проигнорирована.
Запись результатов заранее защищает и от частой ошибки: изменение выглядит работающим, потому что пункт назначения уже был недоступен по несвязанной причине. Если вы не можете описать, как различите эти случаи, приёмочный тест ещё не спроектирован.
Локальное утверждение выполняет только первую часть
Для NX-OS в линейке 10.4(x) маршрут null находится внутри контекста VRF тенанта, а не в одной команде, которая называет VRF. Фрагмент короткий, и это отнюдь не полная конфигурация EVPN.
vrf context TENANT_A
ip route 192.0.2.10/32 Null0
Адрес — это префикс документации, а не цель. Обратите внимание на разницу синтаксиса с IOS, где имя VRF появляется внутри самой команды маршрута, и подтвердите поддерживаемую форму для версии, которую вы действительно используете, прежде чем что-либо вставлять.
Сама по себе эта строка отбрасывает трафик к этому хосту внутри TENANT_A и больше ничего не делает. Она не маркирует маршрут, не выбирает его для BGP и не задаёт community. Это отдельные конфигурационные решения, и каждое из них — место, где изменение может оказаться либо слишком узким, чтобы работать, либо слишком широким, чтобы быть безопасным.
Локальное отбрасывание затрагивает и легитимный трафик к тому же пункту назначения. Если цель — остановить один злоупотребляющий источник, пока реальным пользователям адрес всё ещё нужен, маршрут null — неподходящий инструмент, и вы узнаете об этом из первого обращения в поддержку.
Экспорт и импорт — отдельные соглашения
Перераспределение — это место, где определяется охват. Ограничьте подходящие префиксы одобренной мерой, держите её внутри тенанта и ограничьте исходные пиры теми, что есть в проекте. Перераспределять каждый статический маршрут только потому, что один помеченный маршрут к хосту должен пройти, — это путь, которым изменение обслуживания превращается в инцидент маршрутизации.
Community BLACKHOLE — это соглашение о известном значении, а не разрешение любому соседу отбрасывать любой адрес. RFC 7999 описывает её именно в этих терминах, а граница доверия в отношении того, кто может её анонсировать, является частью проекта, а не деталью реализации.
Принимающей стороне нужна собственная конфигурация. В NX-OS маршруты null типа 5 требуют обработки route-map на VTEP, чтобы выбрать поведение отбрасывания, что описано вместе с шагами экспорта. Отправляющее устройство, которое правильно маркирует, и получатель, который игнорирует метку, дают изменение, которое выглядит применённым и всё равно пересылает трафик.
Просмотрите route-map на побочные эффекты, пока вы там. Новая ограничительная политика может подавить легитимную доступность несвязанных префиксов, и этот ущерб проявляется позже blackhole и его труднее связать с ним.
Напишите отзыв до вставки
Зафиксируйте владельца пункта назначения, причину, утверждающего и срок действия до того, как что-либо будет настроено. Отбрасывание без срока становится постоянной записью, происхождение которой никто не помнит, и следующий человек, который будет отлаживать адрес, будет считать её нормальной частью сети.
Держите независимый путь управления, который не зависит от маршрута, который вы меняете. Если мера охватывает адрес, по которому вы попадаете на устройство, вы создали блокировку с дополнительными шагами.
Назовите точное управляющее действие, которое снимает меру, и проверьте это снятие в лаборатории или в окне, которое вы можете себе позволить. Отзыв, который никто не репетировал, — это план, а не процедура.
Принимайте с доказательствами, а не с выводом команды
Проверьте выбранное состояние маршрутизации и состояние пересылки на предусмотренных VTEP, а также проверьте соседний пункт назначения, который должен остаться незатронутым. Подтвердите, что никакой другой тенант не импортировал префикс, потому что утечка между тенантами — это режим отказа, который превращает действие обслуживания в инцидент.
Затем отзовите и убедитесь, что обычный маршрут и сервис возвращаются. Руководство по маршрутам null в NX-OS EVPN для версии 10.4(x) документирует маркировку, перераспределение и политику приёма, описанные здесь, и это тот источник, с которым нужно сверять собственную версию.