Testes funcionais do Stingray BNG utilizando um gerador de tráfego da Ixia

June 23, 2026
BNG/BRAS
5 fora de 5
Testes funcionais do Stingray BNG utilizando um gerador de tráfego da Ixia
Em projetos relacionados a BNG, não só o desempenho, mas também o comportamento previsível do sistema em diferentes condições é fundamental. Antes de passar para os testes de carga, é importante verificar se o dispositivo implementa corretamente tanto as funções básicas quanto as avançadas, de acordo com os requisitos da RFC. Este artigo explica como foram organizados os testes funcionais de um BNG utilizando um ambiente de teste construído de acordo com os requisitos de uma operadora de telecomunicações de âmbito nacional.

A especificação técnica do cliente incluía mais de 380 requisitos funcionais, abrangendo terminação de assinantes, roteamento, QoS, NAT, mecanismos de alta disponibilidade, monitoramento e proteção do Control Plane.

O principal objetivo dos testes era verificar o funcionamento de uma ampla gama de funções de rede dentro de uma única plataforma e de uma arquitetura unificada. Para isso, foram desenvolvidos cenários de teste que reproduziam de perto as condições reais de implantação em uma rede de provedor de serviços.

Plataforma de testes

O ambiente de testes foi montado utilizando um gerador de tráfego Ixia XGS.

O Ixia XGS é uma plataforma modular de testes de rede projetada para validação de L2–L7. Ela oferece suporte a interfaces de 10G, 40G e 100G e permite criar ambientes de teste de alta densidade.

A arquitetura da plataforma é baseada em uma matriz de comutação interna de alta velocidade, que permite processar grandes volumes de tráfego e compartilhar recursos entre os módulos. Os módulos podem ser substituídos sem interromper os testes em andamento, simplificando a manutenção e a operação.

As suítes de software IxNetwork, IxLoad e IxExplorer foram utilizadas para configuração e controle. Essas ferramentas permitem que os engenheiros definam padrões de tráfego, configurações de protocolos e parâmetros de teste. O gerador de tráfego foi utilizado para estabelecer sessões de assinantes e emular condições típicas de rede durante os testes do BNG.

Um dos principais objetivos do projeto era verificar se todo o conjunto de funções poderia operar simultaneamente em uma única plataforma, sem distribuir as funções entre várias soluções especializadas.

Plataforma de testes Ixia

Configuração do ambiente de testes

Os testes foram realizados em um servidor equipado com 128 núcleos de CPU.

Especificações do servidor:

AMD EPYC 9754 (128 núcleos)
Dissipador de calor 2U
12 × 32 GB DDR5 RDIMM 5600 MHz
2 × SSD SATA de 960 GB (baias frontais, PM893)
2 × adaptadores PCIe 4.0 de porta dupla 100GbE QSFP28
1 × SSD NVMe de 1 TB (990 PRO)
2 × interfaces RJ45 integradas de 1Gb
Interface RJ45 dedicada de gerenciamento de 1Gb
2 × fontes de alimentação CA de 1300 W
Kit de montagem em rack
Garantia padrão 8x5xNBD+5, 3 anos

Foram utilizadas duas configurações de teste.

A primeira configuração utilizou interfaces de 100G: 2 × 100G de entrada e 2 × 100G de saída. Essa configuração foi utilizada para validar cenários de tráfego de alto desempenho e a operação do BNG com links de 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
}

A segunda configuração utilizou 16 interfaces de entrada de 10G e 2 interfaces de saída de 100G. Essa configuração é destinada a implantações de BNG em que os lados LAN e WAN utilizam diferentes tipos de interface.

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
}

O ambiente de testes utilizou cenários dual-stack com suporte simultâneo a IPv4 e IPv6, isolamento VRF, DHCPv4/v6, PPPoE, QinQ e roteamento dinâmico usando BGP e OSPF.

Foi dada atenção especial aos cenários com tabelas de roteamento de grande porte, incluindo:

  • até 5 milhões de rotas IPv4;
  • até 800.000 rotas IPv6;
  • suporte a BGP e OSPF;
  • cenários com tabela de roteamento BGP completa (full view).

Cenários de teste

Os cenários de teste foram definidos diretamente a partir dos requisitos técnicos do cliente e abrangem as principais funções utilizadas por um BNG em uma rede de produção.

A primeira etapa concentra-se na terminação de sessões de assinantes, incluindo PPPoE e IPoE em diferentes modelos de implantação: VLANs individuais, intervalos de VLAN e QinQ, incluindo cenários com restrições de admissão de sessões.

Para IPoE, também foram validados cenários de grande escala, incluindo até 128.000 sessões de assinantes na configuração atual.

A etapa seguinte concentra-se no gerenciamento de sessões. Os testes verificam o tratamento de timeouts, a aplicação de atributos RADIUS, o controle dinâmico de sessões por meio de CoA e a atribuição de serviços e políticas de acesso.

Sessões PPPoE na CLI-1

Sessões PPPoE na CLI-2

Em seguida, é validada a funcionalidade de endereçamento IP, incluindo DHCP, DHCPv6, pools de endereços locais e cenários dual-stack.

Também foram testados endereçamento com múltiplos pools e implantações multisserviço utilizando um servidor DHCP local. A funcionalidade foi verificada com sucesso em diferentes variantes de configuração.

Endereçamento IP-1

Endereçamento IP-2

A próxima área de validação é o roteamento, incluindo tabelas de rotas, escalabilidade de rotas, atualizações de rotas e a operação básica dos protocolos OSPF e BGP.

Testes adicionais abrangeram tabelas de roteamento de grande porte e configurações BGP em larga escala.

Roteamento-1

Roteamento-2

Os mecanismos de gerenciamento de tráfego também foram testados, incluindo limitação de taxa, perfis de QoS e marcação de tráfego.

Gerenciamento de tráfego

A validação adicional abrange as funções básicas de rede e de resiliência, incluindo mecanismos de camada 2, agregação de links, ECMP, proteção do Control Plane, tratamento de tráfego malformado, NAT e funções de filtragem.

Como parte da validação de ECMP, foram testados com sucesso grupos com até 32 next hops, demonstrando distribuição adequada do tráfego e failover sem perda de pacotes.

Funções básicas de rede e resiliência-1

Funções básicas de rede e resiliência-2

O bloco final de validação concentra-se nas ferramentas operacionais, incluindo acesso de gerenciamento, monitoramento e coleta de estatísticas, com cenários específicos para SNMPv3 e comunicação criptografada.

Verificação das ferramentas operacionais

O funcionamento correto de jumbo frames também foi verificado com sucesso.

Jumbo frames-1

Jumbo frames-2

Foi dada atenção especial à escalabilidade. Durante os testes, foram validadas configurações com grande número de assinantes, tabelas de roteamento extensas e alta densidade de conexões.

Escalabilidade

Resultados

Como parte do projeto, foi preparado e validado um ambiente de testes capaz de reproduzir cenários operacionais típicos de uma rede de provedor de serviços com cobertura nacional.

Essa abordagem de testes não fornece apenas uma coleção de verificações isoladas, mas uma compreensão abrangente de como o sistema se comporta em condições operacionais reais. Para projetos de grande escala, isso significa que a solução passa por um ciclo completo de validação antes da implantação e que seu comportamento em cenários críticos é conhecido antecipadamente. Um conjunto unificado de casos de teste e uma metodologia de validação consistente são utilizados em todo o processo.

Os mesmos cenários de teste utilizados em grandes implantações também são aplicados a projetos menores. Como resultado, operadores de qualquer porte recebem uma solução submetida ao mesmo nível de verificação.

No próximo artigo, passaremos aos testes de desempenho e analisaremos métricas reais de throughput. Também demonstraremos como o BNG se comporta sob carga quando testado com um gerador de tráfego e apresentaremos os resultados obtidos em diferentes cenários de implantação.