Кратко

  • При отказе мастер EAPS открывает вторичный порт, очищает свою FDB и рассылает flush транзитным узлам. При возврате физической линии он снова блокирует порт и запускает новую очистку. Это две топологии и две эпохи знания.
  • Для каждого перехода нужны отдельные идентификаторы, время обнаружения, решение, состояние порта, выполнение flush, корректное переобучение, поведение пакетов и результат приложения. Итоговый normal не должен стирать историю.

Кнопки «отменить» у топологии не было

Сначала рвётся один участок кольца. Мастер открывает вторичный порт, и трафик получает оставшееся направление. Позже участок возвращается. Кажется естественным просто вернуть прежнее состояние. Но распределённые мосты уже забыли часть прошлого и выучили новые местоположения MAC. Возврат физической схемы не возвращает их память назад.

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

RFC 3619 вышел в октябре 2003 года как Informational и описал EAPS Version 1, технологию Extreme Networks. Документ прямо не является Internet Standard. Упоминание сходимости менее секунды и часто менее 50 миллисекунд относится к описанию механизма. Это не современное измерение, не гарантия продукта и не доказательство результата конкретного сервиса.

Полезный вопрос для руководства — не насколько красиво вернулась линия, а какие факты были необратимо отброшены на каждом переходе и кто подтвердил новое состояние.

Мастер открывал ограниченные ворота

В EAPS-домене один узел является мастером, остальные — транзитными. Мастер назначает первичный и вторичный порты. В нормальном состоянии на вторичном блокируется трафик, не относящийся к Control VLAN. Физическое кольцо становится логически безпетлевым для обычного Ethernet-обучения.

Health-check выходит через первичный порт, проходит Control VLAN и ожидается на вторичном. Если мастер решает, что кольцо нарушено, он открывает вторичный порт для защищённых VLAN. Когда целостность возвращается, он снова его блокирует.

Полномочие узкое: конкретный домен, набор VLAN, ворота и версия конфигурации. Оно не распространяется автоматически на внешние пути, очереди, сессии или приложение. Запись должна назвать домен, мастера, Control VLAN, защищённые VLAN, оба порта, таймеры и конфигурационную эпоху.

Различие Heng Lu между записью, властью и действительностью здесь буквально исполняется кодом. Мастер имеет право выполнить решение по общим правилам. Это не даёт ему сенсоров для фактов, которые health-check не наблюдал.

Первый переход начинался с двух видов свидетельства

Транзитный узел, заметив локальный link-down, немедленно посылает мастеру LINK-DOWN. Независимо мастер периодически отправляет health-check. Если ожидаемый кадр не возвращается до fail period, он делает вывод об отказе. Polling страхует потерянное уведомление.

Оба пути могут открыть вторичный порт, но несут разную неопределённость. LINK-DOWN — положительное сообщение о локальном интерфейсе. Timeout — вывод из отсутствия ожидаемого кадра. Молчание может быть связано с разрывом, потерей, перегрузкой или проблемой самой Control VLAN.

Событие должно сохранять, какой триггер сработал, порт или sequence, время, значение таймера и согласился ли второй свидетель. Итог ring-fault — решение функции защиты, а не полный диагноз причины.

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

Первая очистка открывала новую эпоху знания

После решения об отказе мастер открывает вторичный порт, очищает собственную bridging table и посылает flush транзитным узлам. Местоположения MAC, выученные в старой топологии, больше нельзя считать надёжными.

Очистка — это контролируемое забывание, а не восстановление. Сразу после неё мост знает меньше. Неизвестные назначения могут flood-иться, тихие адреса остаются неизвестными, а первые кадры обучают систему в переходной обстановке.

Нужны отметки выдачи flush, выполнения на каждом узле, первого корректного обучения критических назначений, стабилизации unknown unicast и первой успешной пользовательской транзакции. Следует измерять потерю, дублирование, нарушение порядка, задержку и ошибочное соединение.

RFC 4427 позже разделил detection, correlation, notification, recovery switching и total recovery time. Hitless означает отсутствие потери, дубликатов, нарушения порядка и битовых ошибок. Быстрая операция порта не завершает более длинные часы.

Возвращённая линия сначала была запрещена

Когда физическая линия поднимается, мастер может оставаться в ring-fault, а вторичный порт — открытым. Если транзитный узел сразу пропустит защищённые VLAN через восстановленный участок, полный физический круг снова создаст петлю.

Поэтому узел блокирует защищённые VLAN на восстановленном порту и входит в PRE-FORWARDING. Link-up сообщает физический факт, но не выдаёт разрешение на пересылку. Мастер продолжает health-check. Получив кадр через вторичный порт, он возвращается в normal, блокирует там неуправляющий трафик и рассылает новый flush.

PRE-FORWARDING сохраняет честный зазор между тремя состояниями: линия существует, распределённое управление согласовано, сервис подтверждён. Система, которая напрямую превращает link-up в recovered, удаляет этот зазор из истории.

Восстановление должно иметь собственный ID: наблюдение линии, вход в PRE-FORWARDING, возврат health-check, решение мастера, блокировка порта, второй flush, разблокировка защищённых VLAN и результат пользователя. Это не хвост первого события, а новый риск.

Вторая очистка не возвращала старую память

После аварийного переключения FDB уже адаптировалась к обходному направлению. При возврате нормальной схемы эти записи тоже могут стать неверными. Поэтому второй flush не «откатывает» таблицу к снимку до аварии. Он снова отказывается доверять прошлому и начинает обучение с нуля.

Эта разница влияет на расследование. Если хранить только текущую FDB, нельзя установить, какой путь был выучен после отказа и какой после восстановления. Нужен идентификатор эпохи, связанный с причиной очистки, доменом и конфигурацией.

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

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

Несколько доменов умножают эпохи

RFC 3619 допускает несколько EAPS-доменов на одном физическом кольце, каждый со своим мастером и набором защищённых VLAN. Коммутатор также может участвовать в нескольких кольцах через отдельные instances.

Один домен способен быть normal, другой — ring-fault, третий — PRE-FORWARDING. Их Control VLAN, таймеры, мастера и FDB-эпохи различаются. Общая линия — общий физический факт, но не общая история управления.

События следует индексировать доменом и VLAN scope, а не только шасси или волокном. Позднейшие архитектуры используют понятие recovery domain именно потому, что защита имеет границы. Она не доказывает вход до кольца, выход после него или приложение.

Если несколько уровней реагируют на один разрыв, hold-off и reversion должны предотвращать борьбу автоматик. Сервисный тест проходит настоящий ingress и egress, а затем проверяет приложение.

Сигнал управления тоже требует происхождения

Раздел безопасности RFC 3619 предупреждает: физический доступ к Ethernet-соединениям позволяет подделывать bridge- или EAPS-кадры и нарушать сеть. При существенном риске активной атаки рекомендуются шифрование линии или подходящая защита верхнего уровня.

Тип кадра определяет синтаксис, но не полномочие. Сигнал следует связать с разрешённым интерфейсом, идентичностью, доменом, конфигурационной эпохой и ожидаемой последовательностью. Невозможные переходы и повторные команды очистки должны вызывать тревогу; исходный кадр или счётчик нужно сохранить.

Чем быстрее одно наблюдение способно стереть распределённое знание, тем важнее возможность восстановить его происхождение. Это не аргумент против автоматики, а условие её подотчётности.

Нормальное состояние не закрывает бухгалтерию

Минимальная цепочка включает физическое наблюдение, alert или polling, решение мастера, операцию порта, распространение flush, FDB-эпоху, переобучение, поведение пакетов и результат приложения. У каждого звена свой владелец и способ отката.

Измерение только мастера поощряет короткие таймеры и скрывает ложные переключения. Измерение только приложения не показывает, где возникла задержка. Нужны обе точки зрения, и ни одна не должна притворяться другой.

Авария создала одну новую топологию. Возврат создал следующую. Итоговый normal — текущий статус, не доказательство того, что оба перехода были безвредны. Пока каждая эпоха не получила отдельную квитанцию, кольцо вернулось лишь на схеме.

Источники