Тихий хост EVPN так и не разрешается: проследите ARP до привязки
Хост, который редко передаёт, может выглядеть отсутствующим даже при активном подключении. Последовательно проследите обмен разрешения, маршрут MAC и привязку прокси.
Конечная точка подключена, её порт активен, а хост мониторинга по-прежнему не может до неё добраться. Кто-то запускает ping с другой стороны, и всё начинает работать, из-за чего проблема кажется периодической, а fabric — безвинной. Этот шаблон — подпись тихого хоста: он редко передаёт, поэтому поведение fabric при обнаружении и обновлении важнее состояния его подключения. Начните с одного целевого IP, MAC и bridge domain и проследите следующий обмен разрешения.
Проследите следующий обмен ARP или ND
Для IPv4 наблюдайте за обменом ARP у хоста-запросчика; для IPv6 следите за Neighbor Solicitation и Advertisement. Убедитесь, что запрос попадает в нужный локальный сегмент и нужный VNI, потому что на запрос, который так и не доходит до правильного bridge domain, не может ответить ни один прокси.
Затем посмотрите, что fabric знает о цели. Маршрут только по MAC может определить адресат Layer 2, тогда как у прокси ещё нет для него привязки IP-to-MAC. Это отдельные записи, и проверка одной ничего не говорит о другой.
Если существует действительная привязка, прокси может ответить согласно своей политике, но MAC в этой привязке всё ещё нуждается в активном пути пересылки. Если привязки нет, запрос должен дойти до подключения конечной точки по пути flooding или репликации, прежде чем что-либо сможет научиться из ответа.
Две записи, которые должны совпадать
Маршрут MAC отвечает, где живёт адрес Ethernet. Таблица прокси отвечает, какой IP отображается на какой MAC. У хоста, который давно не говорил, может быть совершенно исправный маршрут MAC и ни одной пригодной записи прокси, и это ровно то состояние, которое даёт сбой разрешения на здоровом подключении.
На удалённом подключении проверьте, действительно ли конечная точка получает обмен и отвечает на него. Её ответ обновляет локальное обучение и соответствующее объявление EVPN, поэтому ручной ping как будто всё исправляет: вы создали трафик, которого ждала fabric. Это также объясняет, почему исправление не держится: как только обновлённая запись устаревает, конечная точка снова замолкает. Запланированный ping лечит симптом и скрывает пробел в проектировании.
После ответа проследите выбранный маршрут и установленное состояние пересылки обратно к запросчику. Успех разрешения и успех пересылки — два отдельных события, и тикет, который их смешивает, отправляет вас не на тот уровень.
Что стандарт на самом деле предполагает
RFC 9161 описывает динамическое обучение прокси и стандартное flooding неизвестных запросов ARP и ND. Полное подавление этого flooding ограничено развёртываниями, чьи допущения об обучении или обеспечении делают его безопасным, а это более узкое условие, чем подразумевают большинство руководств по настройке.
Fabric, которая ожидает недавно обнаруженные конечные точки, нуждается в работающем пути для этих запросов. Если кто-то отключил flooding неизвестных запросов, чтобы уменьшить трафик BUM, тихие хосты — это та часть населения, которая за это платит, и симптом приходит недели спустя как жалоба на периодическую доступность.
Читайте настройку подавления как заявление о том, что fabric обещает знать. Если ничто не обеспечивает привязки, обещание неверно для редких отправителей. Сравните настроенное подавление с системой обеспечения, которая должна его питать. Когда эти двое не совпадают, fabric ведёт себя точно так, как настроено, и исправлять нужно именно ожидание.
Обновление, старение и статическая альтернатива
Стандарт описывает поддерживаемые пробы обновления до того, как динамические записи устареют. Ответы обновляют соответствующее состояние bridge и прокси; отсутствие ответов может законно привести к удалению и отзыву маршрута. Это не ошибка, которую следует подавлять растягиванием каждого таймера.
Бесконечное продление таймеров старения меняет видимый отказ на устаревший: fabric продолжает объявлять местоположение, которое хост покинул. Используйте документированные средства управления реализации и выберите срок жизни, соответствующий тому, как часто конечную точку разумно ожидать говорящей.
Для известных, управляемых конечных точек статическая или предоставленная контроллером привязка — законная вторая модель. Ей нужен владелец, который занимается заменой и перемещением, потому что предоставленная запись не обновляет себя, когда хост переходит на другой порт.
Что записать перед следующим тикетом
Держите источник привязки, время последнего обновления, текущее расположение и любое событие отзыва рядом с маршрутом MAC. Эта запись отвечает на вопрос, который тикет на самом деле задаёт: приложение ждёт обнаружения, полагается на устаревшее состояние или не может пересылать после успешного разрешения?
Затем решите, какой из трёх вы готовы эксплуатировать. Обнаружение с flooding, обновление с реалистичным сроком жизни или обеспечение с владельцем — всё это защитимо. Fabric, настроенная для одного и от которой ожидают поведения как от другого, — это место, где тихие хосты исчезают.