Кратко

  • В RFC 9524 Replication-SID вызывает локальный список ветвей на одном SR-узле. У корня, транзитного узла, листа и Bud корректное состояние выглядит по-разному.
  • Отдельно корректные сегменты могут сложиться в ошибочный граф. Цикл умножает пакеты, пока не исчерпан MPLS TTL или IPv6 Hop Limit.
  • Статус «дерево активно» требует трёх свидетельств одной версии: ориентированного графа с проверкой циклов, чтения реально установленного состояния и наблюдения доставки на ожидаемые листья.

Почему сумма успешных операций не равна дереву

Пусть корень A создаёт копии к B и C. На B осталась ветвь прежнего поколения, ведущая обратно к A. Оба маршрутизатора находят Replication-SID, разрешают следующий переход и правильно выполняют свой локальный список. Система, считающая только успешные ответы на конфигурацию, покажет норму. Полный граф при этом цикличен.

RFC 9524 прямо описывает последствие. Ошибочно подготовленная цепочка Replication segments может образовать петлю, особенно при раздельной настройке SR-узлов без плоскости управления. Копии создают шторм, пока MPLS TTL в SR-MPLS либо IPv6 Hop Limit в SRv6 не достигнет нуля. Ограничитель времени жизни завершает пакет, но не подтверждает структуру.

Локальная квитанция остаётся важной: она говорит, что конкретное устройство приняло и исполнило состояние. Но она не уполномочена говорить за остальные узлы и за свойства композиции — полноту, отсутствие циклов и правильную связь с сервисом.

На что в действительности указывает SID

Replication segment — локальная логическая конструкция на узле репликации. Она соединяет этот узел с набором нижележащих узлов. Идентичность задаётся парой <Replication-ID, Node-ID>, а Replication-SID служит идентификатором плоскости данных: меткой в SR-MPLS либо SID в SRv6.

Активный SID выбирает локальное Replication state. Концептуально это список ветвей. Ветка содержит нижележащий узел, его Replication-SID и способ достижения: интерфейс и следующий переход, путь с ограничениями, список SID либо SR Policy. Состояние настраивают локально или программируют через плоскость управления.

Число SID не является сжатым описанием дерева. Его смысл определяют владеющий узел, роль, поколение, ветви и период действия. Реестр, где оставили только SID, хранит указатель, но теряет содержимое, на которое он указывал.

Пустой список иногда является правильным ответом

Список ветвей может быть пуст. Листу не требуется дальнейшая репликация, хотя его Replication-SID может обозначать многоточечный сервис. Для обобщения RFC 9524 всё равно называет его Replication segment. Bud одновременно является узлом репликации и листом: он создаёт нижележащие копии и выполняет локальную доставку.

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

Сопоставление имеет срок действия. После превращения листа в Bud или изменения набора получателей прежняя интерпретация устаревает, даже если номер SID сохранился.

Локальная механика двух плоскостей данных

В SR-MPLS узел снимает активный Replication-SID и делает копию для каждой ветви локального состояния. На копию помещаются нижележащий Replication-SID и нужные для пути метки. Локальная доставка на листе либо Bud остаётся отдельной конфигурацией.

В SRv6 поведение End.Replicate находит состояние по функциональной части SID. Если состояния нет, пакет отбрасывается. Узел проверяет и уменьшает Hop Limit, обрабатывает разрешённые данные SRH и создаёт копию на каждую ветвь. Адресом назначения становится нижележащий Replication-SID; при необходимости добавляется список сегментов.

Успех доказывает узкое утверждение: этот узел исполнил эту версию состояния. Он не доказывает совместимое состояние на следующем узле, достижимость всех листьев, отсутствие возврата к предку либо правильный VPN-контекст.

При сшивании меняется объект доказательства

Replication segments на корне, промежуточных узлах и листьях можно сшить в дерево «точка — множество точек». RFC 9524 оставляет конкретную процедуру другим документам, но требует, чтобы спецификация плоскости управления предотвращала циклы либо обнаруживала и смягчала их в устойчивом состоянии. Локально подготовленная цепочка не должна замыкаться.

Позднейший RFC 9960 формализовал SR P2MP Policy: корень, набор листьев и candidate paths. Candidate path может создать P2MP tree instance, а контроллер программирует составляющие Replication segments. RFC 10018 связал такие деревья с процедурами MVPN и EVPN.

Это последовательные, но не взаимозаменяемые уровни. Replication-SID — локальный дескриптор; state — локальный план ветвей; tree instance — межузловая композиция; сервисное намерение задаёт корень, листья и контекст; наблюдение доставки показывает фактических получателей. Зелёный сигнал нижнего уровня не сертифицирует верхние.

TTL — предохранитель, а не проверка графа

Цикл действительно прекращается, когда TTL или Hop Limit обнуляется. Но если каждый обход производит несколько копий, общий объём определяется коэффициентом ветвления, начальным временем жизни и положением цикла. Ограниченный шторм остаётся штормом.

SRv6 допускает IPv6 Hop Limit Threshold. Узел отбрасывает пакет ниже порога и журналирует событие с ограничением частоты. Это, среди прочего, снижает риск шторма ICMPv6-ошибок, когда обычные узлы доводят Hop Limit до нуля. Одновременно порог должен позволять достичь самого дальнего законного листа.

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

Ответ ping не рисует все ветви

RFC 9524 разрешает ping к Replication-SID листа или Bud. Echo Request через транзитный узел репликации может копироваться к другим листьям, где будет отброшен из-за контрольной суммы, не соответствующей их адресу. Обычный traceroute дерева также недоступен: на реплицированном пути не формируются ожидаемые ICMPv6 Time Exceeded.

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

Три квитанции перед статусом active

Квитанция графа содержит версии сервиса и policy, корень, ожидаемые листья, ограничения, рассчитанный ориентированный граф и результат проверки циклов именно этой версии. Каждое ребро разрешается во владеющий узел, нижележащий Replication-SID и объект достижимости.

Квитанция установки поступает со всех затронутых узлов: поколение, роль, локальный SID, список ветвей, признак локальной доставки и время вступления. При поэтапном обновлении сохраняют порядок, поскольку две безопасные конечные версии в смеси способны временно создать цикл или чёрную дыру.

Квитанция результата связывает входные пакеты, созданные копии, счётчики ветвей, отбрасывания TTL/Hop Limit и наблюдения каждого ожидаемого листа. Один активный лист не представляет множество. Рост копий на вход без новых ожидаемых получателей — самостоятельный сигнал.

Вместе квитанции позволяют сказать: эта версия policy рассчитала этот граф; эти узлы установили совпадающее состояние; в этот интервал на этих листьях наблюдались такие результаты. Ограниченность делает утверждение проверяемым и отменяемым.

Источники

Источники