Теоретические основы и архитектура

Методика приёмо-сдаточных испытаний (Acceptance Test Plan, ATP) - этап перед вводом сети в коммерческую эксплуатацию: воспроизводимая серия тестов T01-T12 с заранее записанными ожиданиями и числовыми порогами; результат фиксируется как Pass или Fail вместе с evidence (выводы команд, файлы генератора, syslog). Ядро проекта - IS-IS + SR-MPLS + TI-LFA, RSVP FRR не используется. Основные испытания: 1. Отказ линка PE1-P1 (T03): при потоке 10 000 pps потеряно не более 500 пакетов (50 мс) благодаря TI-LFA; способ отказа указывают явно (потеря несущей, а не административный shutdown), а обнаружение через BFD оформляют отдельным пунктом с порогом около 350 мс. 2. Отказ узла P1 (T04): трафик идёт через вторую плоскость, схождение не более 1 с; сессии с RR1 (за P1) падают, с RR2 остаются. 3. Отказ RR1 (T05): RR2 держит сессии, существующие потоки не теряются. 4. BNG (T11): 5000 PPPoE-логинов за 60 с, не менее 99,9% успешных, ответ AAA менее 1 с. 5. MTU (T02): ping 1500 с DF в VRF A, B и EVI 300, ping 1600 по линкам. 6. Изоляция (T06): пробы A -> B, A -> SUBS и C -> A не находят чужих префиксов. Утечка между клиентами (T06) и непроверенный откат (T12) блокируют приёмку независимо от остальных результатов.

Что такое приёмка и чем она отличается от «всё пингуется»

Приёмка (ATP) - это воспроизводимая серия испытаний с заранее записанными ожидаемыми результатами и числовыми порогами. Она доказывает, что сеть выполняет требования из sp-design, а не что она «работает сейчас». Условия входа: построены все фазы sp-build-plan, гейты пройдены, часы синхронизированы по NTP, сохранены эталонные вывод и конфигурации. Каждый тест имеет ID (T01-T12), метод воздействия, ожидаемый результат и KPI; результат записывается как Pass или Fail вместе с evidence (выводы команд, графики генератора, отметки времени syslog).

Матрица испытаний

IDИспытаниеМетод воздействияОжидаемый результатKPI
T01Базовая связность и меткиping и ping mpls между всеми loopbackметка к каждому SID = 16000 + индекс на всех узлах56 пар, 0 расхождений, 0 потерь
T02MTUping 1500 с DF в VRF A, B и EVI 300; 1600 по линкампакеты проходят без фрагментации100%
T03Отказ линка PE1-P1физическое отключение при потоке 10 000 ppsTI-LFA переключает на P2, затем IGP сходитсяне более 500 потерянных пакетов (50 мс)
T04Отказ узла P1отключение питания P1трафик идёт через плоскость 2; сессии с RR1 падают (RR1 за P1), с RR2 остаютсясхождение не более 1 с; сервисы живы
T05Отказ RR1остановка BGP или перезагрузка RR1RR2 держит сессии, маршруты не отзываются0 потерь по существующим потокам
T06Изоляция клиентовпробы A -> B, A -> SUBS, C -> Aв VRF и EVI нет чужих префиксов100% блокировка, 0 пакетов
T07Inter-AS клиент Bсброс eBGP ASBR1, превышение maximum-prefixмаршруты B возвращаются, чужие RT отбрасываютсяне более 120 с до восстановления
T08EVPN-MPLS клиента Cперенос MAC с PE2 на PE3Type 2 с новым sequence number, трафик идёт на PE3не более 3 с
T09QoS под нагрузкой148 Мбит/с в канал 100 Мбит/с (голос 8, видео 30, данные 50, bulk 60)голос не теряется0% потерь голоса, вариация задержки не более 10 мс
T10SR policy color 100трассировка и отключение P2трафик идёт по segment list через P2; при отказе перестраиваетсяпуть совпадает с планом, потери не более 50 мс
T11BNG под нагрузкой5000 PPPoE-логинов за 60 с (около 83 в секунду)абоненты получают адрес и профиль из RADIUSне менее 99,9% успешных, ответ AAA менее 1 с
T12Откат и автоматизацияcommit confirmed / configure replace, Ansible --checkконфигурация возвращается, расхождений нетне более 5 минут, diff пуст

Как измерять время схождения

Потеря измеряется генератором трафика, а не командой ping: ICMP раз в секунду не видит событие в 50 мс. Поток 10 000 pps даёт разрешение 0,1 мс; длительность простоя = число потерянных пакетов, делённое на частоту (500 пакетов при 10 000 pps = 50 мс). Измерение повторяется не менее трёх раз, в отчёт идёт худший результат, а не среднее. Оба конца потока синхронизируются по NTP, а отметки событий берутся из syslog с миллисекундами.

Важно различать обнаружение и ремонт. TI-LFA выполняет переключение локально, как только узел увидел отказ. При потере несущей (физический обрыв, LOS) это происходит за единицы миллисекунд, и общий простой укладывается в 50 мс. Если отказ не виден физически (промежуточное L2-оборудование), его обнаруживает BFD с таймерами 100 мс x 3: простой тогда около 300-350 мс. Поэтому в T03 способ отказа указывается явно: административный shutdown одной стороны не равнозначен обрыву волокна, а проверка BFD оформляется как отдельный пункт T03b с порогом 350 мс. После переключения идёт обычная IGP-сходимость; при включённой защите от микропетель повторных потерь быть не должно, и это тоже проверяется.

Согласованность меток

В T01 проверяется основное свойство SR: для каждого из восьми SID на каждом узле исходящая метка равна базе SRGB следующего узла плюс индекс. При едином SRGB 16000-23999 это просто 16000 + индекс, например 16002 для PE2 на всех узлах. Таких пар 8 x 7 = 56; любое расхождение означает неверный SRGB, дубль индекса или не обновившийся LFIB. Для сквозной проверки используется ping mpls и traceroute mpls до loopback каждого PE: они проверяют именно путь по меткам, а не только маршрутизацию.