Стендовые испытания СКАТ BRAS генератором трафика Ixia

19 июня 2026
BRAS
Стендовые испытания СКАТ BRAS генератором трафика Ixia
В проектах, связанных с BRAS, ключевую роль играет не только производительность, но и предсказуемость поведения системы в различных условиях. До перехода к нагрузочным тестам важно убедиться, что устройство корректно обрабатывает базовые и расширенные функции согласно RFC.В этой статье разберем, как организовано функциональное тестирование BRAS на примере стенда, собранного по требованиям оператора федерального уровня.

Техническое задание заказчика включало более 380 требований к функциональности — от терминации абонентов и маршрутизации до QoS, NAT, механизмов отказоустойчивости, мониторинга и защиты Control Plane.

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

Тестовая платформа

Тестовый стенд был построен на базе генератора трафика Ixia XGS.

Это модульная система для тестирования сетевого оборудования на уровнях L2–L7. Платформа поддерживает интерфейсы 10G, 40G и 100G и позволяет собирать стенды с высокой плотностью портов.

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

Для управления используются программное обеспечение IxNetwork, IxLoad и IxExplorer. Они позволяют задавать параметры трафика, конфигурации протоколов и параметры тестирования. Генератор применялся для формирования абонентских сессий и воспроизведения типовых сетевых условий при тестировании BRAS.

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

Тестовая платформа ixia

Конфигурация стенда

Тестирование проводилось на сервере с 128 CPU ядрами.

Спецификация сервера:

AMD EPYC 9754 (128 cores)
2U Heatsink
12 х 32GB DDR5 RDIMM 5600MHz
2 x 960GB SSD SATA (front slots, PM893)
2 х Dual ports 100Gb Eth QSFP28 PCIe 4.0
1 x 1TB SSD NVMe (990 PRO)
2 x 1Gb RJ45 (встроенные)
Выделенный интерфейс управления 1Gb RJ45
2 х PSU AC 1300W
Rack Mount Kit
Стандартная гарантия «8x5xNext Business Day+5», 3 года

Использовались две конфигурации стенда.

Перваяс 100G-интерфейсами: 2×100G in и 2×100G out. Такая схема использовалась для проверки сценариев с высокой нагрузкой по трафику и работы BRAS в конфигурации со 100G линками.

dpdk_device=10:pci:41:00.0
dpdk_device=11:pci:41:00.1
dpdk_device=20:pci:01:00.0
dpdk_device=21:pci:01:00.1
in_dev=10:20
out_dev=11:21
lag {
name=IN
device=10
device=20
lacp=2
system_id=6c:b3:11:79:81:5e
priority=32768
short_timeout=on
balance_algo=0
}
lag {
name=OUT
device=11
device=21
lacp=2
system_id=6c:b3:11:79:81:5f
priority=32768
short_timeout=on
balance_algo=0
}
dpdk_engine=6
dpdk_rss=10
num_threads=98
dpdk_tx_queue_size=8160
rx_dispatcher=2
support_service_18=1
syslog_level=7
scale_factor=10
mem_slices_ip=32
dpdk_mempool_size=8000000
mem_tracking_flow=130000000
mem_tracking_ip=100000000
mem_ipv6_tracking_flow=40000000
mem_ipv6_tracking_ip=30000000
mem_ssl_parsers=18000000
mem_http_parsers=512000
mem_ip_billdata_recs=500000
mem_preset=1
cloud=0
ctrl_port=29000
ctrl_dev=lo
federal_black_list=0
black_list_redirect=
netflow=12
enable_acct=1
enable_auth=1
auth_servers=127.0.0.1%lo:29002
bras_enable=1
bras_arp_ip=10.1.0.62
bras_arp_mac=6c:b3:11:79:81:5d
bras_ip_filtering=0x0001
bras_terminate_l2=1
bras_dhcp_mode=2
bras_dhcp_ratelimit=17
bras_dhcp_disconnect=0x000B
bras_dhcp_ratelimit_ban=5
bras_dhcp_timeout=17
bras_vlan_terminate=3
bras_qinq_type=0x8100
bras_arp_proxy=0x003
bras_subs_id=qinq+mac,vlan+mac,mac
bras_ip4db_bucket_count=1048576
ipv6=1
bras_ipv6=1
bras_dhcp6_mode=1
bras_ipv6_address=2A0F:1900:2000::31
bras_icmp6_send_rtradv=1
bras_icmp6_min_rtradv_interval=60
bras_icmp6_max_rtradv_interval=80
bras_pppoe_enable=1
bras_pppoe_session=150000
bras_ppp_auth_list=1,2,3
bras_pppoe_restore_on_startup=0
bras_ppp_idle_timeout=30
bras_ppp_restart_timeout=3
bras_ppp_ping_timeout=5
bras_ppp_max_failure=3
netflow_dev=lo
netflow_timeout=10
netflow_full_collector_type=1
netflow_full_collector=127.0.0.1:1500
netflow_passive_timeout=20
netflow_active_timeout=60
ipfix_mtu_limit=1400
ipfix_dev=bond0
ipfix_udp_collectors=10.169.29.173:1602
router=1
router_netns=router
router_kernel_table=101
router_subs_announce=0x100007
router_default_vrf=vrf-grt
bras_vrf_isolation=1
router_max_ip4_route_count=5000000
router_max_ip6_route_count=800000

router_device {
vrf=vrf-grt
device=11
tap=bng
peer=rib
subnet=224.0.0.5/32
subnet=224.0.0.6/32
subnet=10.1.0.1/32
subnet=10.2.0.1/32
subnet=10.3.0.1/32
subnet=10.4.0.1/32
subnet6=2a0f:1900:2000::30/128
subnet6=2a0f:1900:2002::30/128
subnet6=fe80::2898:7ff:fe59:880e/128
subnet6=ff02::5/128
subnet6=ff02::6/128
}

router_vrf {
id=vrf-grt
netns=router
kernel_table=100
neighbor_cache=shared
}

Вторая — с набором 10G-портов: 16×10G интерфейсов и 2×100G out. Эта конфигурация используется для подключения BRAS в случае разных типов интерфейсов на стороне LAN и WAN.

dpdk_device=10:pci:0000:41:00.0
dpdk_device=20:pci:0000:01:00.0
dpdk_device=30:pci:0000:c2:00.0
dpdk_device=31:pci:0000:c2:00.1
dpdk_device=32:pci:0000:c2:00.2
dpdk_device=33:pci:0000:c2:00.3
dpdk_device=34:pci:0000:c2:00.4
dpdk_device=35:pci:0000:c2:00.5
dpdk_device=36:pci:0000:c2:00.6
dpdk_device=37:pci:0000:c2:00.7
dpdk_device=40:pci:0000:02:00.0
dpdk_device=41:pci:0000:02:00.1
dpdk_device=42:pci:0000:02:00.2
dpdk_device=43:pci:0000:02:00.3
dpdk_device=50:pci:0000:89:00.0
dpdk_device=51:pci:0000:89:00.1
dpdk_device=52:pci:0000:89:00.2
dpdk_device=53:pci:0000:89:00.3
in_dev=30:31:32:33:34:35:36:37:40:41:42:43:50:51:52:53
out_dev=10:10:10:10:10:10:10:10:10:20:20:20:20:20:20:20:20
lag {
name=IN
device=30
device=31
device=32
device=33
device=34
device=35
device=36
device=37
device=40
device=41
device=42
device=43
device=50
device=51
device=52
device=53
lacp=2
system_id=6c:b3:11:79:81:5e
priority=32768
short_timeout=on
balance_algo=0
}
lag {
name=OUT
device=10
device=20
lacp=2
system_id=6c:b3:11:79:81:5f
priority=32768
short_timeout=on
balance_algo=0
}
dpdk_engine=7
dpdk_dispatch=30,31;mempool=main10G
dpdk_dispatch=32,33;mempool=main10G
dpdk_dispatch=34,35;mempool=main10G
dpdk_dispatch=36,37;mempool=main10G
dpdk_dispatch=40,41;mempool=main10G
dpdk_dispatch=42,43;mempool=main10G
dpdk_dispatch=50,51;mempool=main10G
dpdk_dispatch=52,53;mempool=main10G
dpdk_dispatch=10,20;rss=16;mempool=main100G
dpdk_mempool=name=main10G;size=1600000
dpdk_mempool=name=main100G;size=8000000

num_threads=98
dpdk_tx_queue_size=8160
rx_dispatcher=2
support_service_18=1
syslog_level=7
scale_factor=10
mem_slices_ip=32
mem_tracking_flow=130000000
mem_tracking_ip=100000000
mem_ipv6_tracking_flow=40000000
mem_ipv6_tracking_ip=30000000
mem_ssl_parsers=18000000
mem_http_parsers=512000
mem_ip_billdata_recs=500000
mem_preset=1
cloud=0
ctrl_port=29000
ctrl_dev=lo
federal_black_list=0
black_list_redirect=
netflow=12
enable_acct=1
enable_auth=1
auth_servers=127.0.0.1%lo:29002
bras_enable=1
bras_arp_ip=10.1.0.62
bras_arp_mac=6c:b3:11:79:81:5d
bras_ip_filtering=0x0001
bras_terminate_l2=1
bras_dhcp_mode=2
bras_dhcp_ratelimit=17
bras_dhcp_disconnect=0x000B
bras_dhcp_ratelimit_ban=5
bras_dhcp_timeout=17
bras_vlan_terminate=3
bras_qinq_type=0x8100
bras_arp_proxy=0x003
bras_subs_id=qinq+mac,vlan+mac,mac
bras_ip4db_bucket_count=1048576
ipv6=1
bras_ipv6=1
bras_dhcp6_mode=1
bras_ipv6_address=2A0F:1900:2000::31
bras_icmp6_send_rtradv=1
bras_icmp6_min_rtradv_interval=60
bras_icmp6_max_rtradv_interval=80
bras_pppoe_enable=1
bras_pppoe_session=150000
bras_ppp_auth_list=1,2,3
bras_pppoe_restore_on_startup=0
bras_ppp_idle_timeout=30
bras_ppp_restart_timeout=3
bras_ppp_ping_timeout=5
bras_ppp_max_failure=3
netflow_dev=lo
netflow_timeout=10
netflow_full_collector_type=1
netflow_full_collector=127.0.0.1:1500
netflow_passive_timeout=20
netflow_active_timeout=60
ipfix_mtu_limit=1400
ipfix_dev=bond0
ipfix_udp_collectors=10.169.29.173:1602
router=1
router_netns=router
router_kernel_table=101
router_subs_announce=0x100007
router_default_vrf=vrf-grt
bras_vrf_isolation=1
router_max_ip4_route_count=5000000
router_max_ip6_route_count=800000

router_device {
vrf=vrf-grt
device=10
tap=bng
peer=rib
subnet=224.0.0.5/32
subnet=224.0.0.6/32
subnet=10.1.0.1/32
subnet=10.2.0.1/32
subnet=10.3.0.1/32
subnet=10.4.0.1/32
subnet6=2a0f:1900:2000::30/128
subnet6=2a0f:1900:2002::30/128
subnet6=fe80::2898:7ff:fe59:880e/128
subnet6=ff02::5/128
subnet6=ff02::6/128
}

router_vrf {
id=vrf-grt
netns=router
kernel_table=100
neighbor_cache=shared
}

В конфигурации стенда использовались dual-stack сценарии с одновременной поддержкой IPv4 и IPv6, VRF-изоляция, DHCPv4/v6, PPPoE, QinQ и динамическая маршрутизация BGP, OSPF.

Отдельно были предусмотрены параметры для работы с крупными таблицами маршрутов:

  • до 5 миллионов IPv4-маршрутов;
  • до 800 тысяч IPv6-маршрутов;
  • поддержка BGP и OSPF;
  • сценарии с full-view BGP таблицами.

Тестовые сценарии

Сценарии были сформированы на основе ТЗ заказчика и охватывают ключевые функции, с которыми BRAS работает в реальной сети.

В первую очередь проверяется терминация абонентских сессий — PPPoE и IPoE в различных вариантах: через отдельные VLAN, диапазоны VLAN и QinQ, включая сценарии с ограничениями на прием сессий.

Для IPoE отдельно проверялись сценарии с большим количеством подключений — до 128 тысяч абонентских сессий для текущей конфигурации.

Сценарии ixia

Следующий этап — управление сессиями. Проверяются таймауты, применение RADIUS-атрибутов, возможность динамического управления сессиями (CoA), а также назначение сервисов и политик доступа.

cli_ppoe-sessions_1

cli_ppoe-sessions_2

Далее тестируется IP-адресация: DHCP и DHCPv6, работа с локальными пулами и dual-stack сценарии.

Отдельно проверялась работа нескольких пулов адресации и multi-service сценариев с локальным DHCP-сервером. Функциональность была успешно подтверждена в различных вариантах конфигурации.

IP-адресация_1

IP-адресация_2

После этого проверяется маршрутизация — таблицы маршрутов, их масштаб и обновление, а также базовые сценарии работы протоколов, включая OSPF и BGP.

В ходе испытаний дополнительно проверялись сценарии работы с крупными таблицами маршрутизации и BGP-конфигурациями большого объема.

Маршрутизация_1

Маршрутизация_2

Также тестируются механизмы управления трафиком — ограничения скорости, профили QoS и маркировка.

Механизмы управления трафиком

Дополнительно проверяются функции сетевой базы и устойчивости: L2-механизмы, агрегация каналов, ECMP, защита Control Plane, обработка некорректного трафика, а также функции NAT и фильтрации.

В рамках ECMP были успешно проверены группы до 32 next-hop с распределением трафика и отсутствием потерь при переключениях.

Функции сетевой базы и устойчивости_1

Функции сетевой базы и устойчивости_2

Завершающий блок включает проверку инструментов эксплуатации — доступ, мониторинг и сбор статистики, включая сценарии со SNMPv3 и шифрованием.

Проверка инструментов эксплуатации

Также отдельно была подтверждена корректная работа jumbo frames.

jumbo frames

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

Итоги

В рамках проекта был подготовлен и протестирован стенд, воспроизводящий сценарии эксплуатации BRAS в сети оператора федерального масштаба.

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

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

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