Теоретические основы и архитектура
Методика приёмо-сдаточных испытаний (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 потерь |
| T02 | MTU | ping 1500 с DF в VRF A, B и EVI 300; 1600 по линкам | пакеты проходят без фрагментации | 100% |
| T03 | Отказ линка PE1-P1 | физическое отключение при потоке 10 000 pps | TI-LFA переключает на P2, затем IGP сходится | не более 500 потерянных пакетов (50 мс) |
| T04 | Отказ узла P1 | отключение питания P1 | трафик идёт через плоскость 2; сессии с RR1 падают (RR1 за P1), с RR2 остаются | схождение не более 1 с; сервисы живы |
| T05 | Отказ RR1 | остановка BGP или перезагрузка RR1 | RR2 держит сессии, маршруты не отзываются | 0 потерь по существующим потокам |
| T06 | Изоляция клиентов | пробы A -> B, A -> SUBS, C -> A | в VRF и EVI нет чужих префиксов | 100% блокировка, 0 пакетов |
| T07 | Inter-AS клиент B | сброс eBGP ASBR1, превышение maximum-prefix | маршруты B возвращаются, чужие RT отбрасываются | не более 120 с до восстановления |
| T08 | EVPN-MPLS клиента C | перенос MAC с PE2 на PE3 | Type 2 с новым sequence number, трафик идёт на PE3 | не более 3 с |
| T09 | QoS под нагрузкой | 148 Мбит/с в канал 100 Мбит/с (голос 8, видео 30, данные 50, bulk 60) | голос не теряется | 0% потерь голоса, вариация задержки не более 10 мс |
| T10 | SR policy color 100 | трассировка и отключение P2 | трафик идёт по segment list через P2; при отказе перестраивается | путь совпадает с планом, потери не более 50 мс |
| T11 | BNG под нагрузкой | 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: они проверяют именно путь по меткам, а не только маршрутизацию.