bngblaster

rtbrickBSD-3-Clause活跃维护

开源网络测试仪,模拟 BGP、ISIS、L2TP、IPoE 等路由与宽带接入协议,用于验证 BNG 和运营商网络的协议行为与性能。

The Routing Protocol and BNG Blaster is an open-source network tester for routing and access protocols.

1.1.0发布于 2026-11-05 21:41 UTC302star51fork同步于 2026-11-10 12:02 UTC

怎么上手

README 里没有找到可直接复制的安装命令

README 里没有找到可直接复制的安装命令,请到 README 或官方文档查看安装方式。

硬件要求

README 没有说明硬件要求。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

最近发版

5 个版本1.1.0
  1. 1.1.0最新正式版2026-11-05 · 2026-11-05 21:41 UTC

    BNG Blaster 1.1.0

    This release adds BGP L2VPN (RFC 6624), EVPN E-LAN, targeted LDP, LAG member flapping and LACP passive mode. It also makes BGP and TCP more robust at scale, adds a containerlab example, and fixes many bugs found by a code review of the whole code base, including LSPGEN.

    New features

    Routing

    • BGP L2VPN (RFC 6624): BGP sessions with the family l2vpn learn the label blocks of remote CEs, which the new command bgp-l2vpn-routes shows. Traffic streams with bgp-l2vpn-rd, bgp-l2vpn-ce-id and bgp-l2vpn-local-ce-id send Ethernet over MPLS frames over the pseudowire to the remote CE.
    • EVPN E-LAN: traffic streams with bgp-evpn-elan send to the label of the MAC/IP route of the destination (known unicast). If the MAC isn't learned, they fall back to the ingress replication label of the IMET route (unknown unicast). The new stream option tx-control-word adds the PW control word to EVPN VPWS and E-LAN traffic. A new EVPN test guide is part of the documentation.
    • Targeted LDP (RFC 5036 extended discovery) for IPv4 and IPv6, configured with the new LDP options targeted-neighbors, targeted-hold-time and targeted-hello-accept.
    • LDP label withdraw: LDP now handles label withdraw messages and the loss of a session. Streams stop sending until the label is advertised again, and ldp-database shows whether each entry is active.
    • BGP TCP-AO: the new BGP option tcp-ao-exclude-options keeps TCP options other than TCP-AO out of the MAC (RFC 5925). This is required for TCP-AO sessions with Junos unless tcp-ao-option is enabled there.
    • Routing teardown order: BGP and LDP sessions are now closed before IS-IS and OSPF withdraw their routes, so that sessions between loopbacks close cleanly. The new IS-IS and OSPF option teardown-delay delays the withdraw further.

    Access

    • PPPoE lcp-restart command: sends a new LCP Configure-Request on established sessions without PADT, to test LCP renegotiation on the BNG (#360).
    • L2TP proxy authentication on the LNS: if the ICCN carries Proxy Authen AVPs, the LNS answers PAP or CHAP at once instead of waiting for a retransmission (#154). The new l2tp-server option proxy-auth (default true) turns this off.
    • L2TP tunnel session counts: l2tp-tunnels now shows sessions and sessions-established for every tunnel.
    • PPPoE MRU limit: the LCP MRU is now limited to the PPP-Max-Payload (RFC 4638). Larger MRUs are answered with Configure-Nak and counted as lcp-mru-invalid.

    Interfaces and I/O

    • LAG monkey: with the new LAG option monkey, one random member interface is disabled or enabled every 30 seconds. It is controlled with monkey-start and monkey-stop, like the session monkey.
    • LACP passive mode: the new LAG option lacp-passive (default false) clears the LACP activity flag. The first LACPDU is now sent as soon as a member is added. Before, it went out only after the first periodic interval, which delayed the LAG by 30 seconds with the long timeout.
    • Gratuitous ARP and unsolicited NA: the new network interface options gratuitous-arp and unsolicited-na announce all interface addresses at the start and, with announce-interval, periodically. The new command network-announce restarts the announcements. They are counted as tx-garp and tx-unsolicited-na.
    • AF_XDP copy-rx mode: the new af-xdp-mode value copy-rx binds the RX queues in copy mode and the TX queues in zero-copy mode. This is for NICs like the i40e with an IOMMU in translation mode, where zero-copy RX fails while zero-copy TX works.
    • Stream capture: with capture-include-streams, the capture now includes stream packets sent and received by the TX and RX threads. The outer VLAN that the kernel stripped is restored for these packets.
    • Logging: the log now includes the process ID at the start, and the thread ID and CPU of every I/O thread.

    **Container and contain

  2. 1.0.22026-10-21 · 2026-10-21 19:16 UTC
    查看更新说明

    BNG Blaster 1.0.2

    This release improves the AF_XDP performance and robustness, allows to run many BNG Blaster instances in parallel on one host, and fixes the LACP negotiation.

    New Features

    • Startup status in test-info: The control socket is now opened before the configuration is loaded, and test-info reports the status (starting, running, stopping), the current task (e.g. wait-startup-lock, init-interfaces, running, teardown, cleanup) and the pid. This allows a controller to follow the startup and shutdown of an instance.
    • New threads command: Shows the main thread and all I/O threads with the CPU they are pinned to, whether the CPU was selected automatically or is shared with another thread, and the Linux thread ID.
    • Abort the startup: The startup can be aborted with test-stop, terminate or the signals SIGINT, SIGTERM and SIGHUP, also while waiting for other instances. The interface configuration is restored and BNG Blaster exits with status 3.
    • AF_XDP mode: The new link option af-xdp-mode (auto, zero-copy, copy, generic) selects the AF_XDP socket mode explicitly. Copy mode helps if the zero-copy mode of a driver performs badly, e.g. the Intel ice driver with an IOMMU in translation mode.
    • L2TP connect speeds: The new l2tp-client (LAC) options tx-connect-speed and rx-connect-speed set the TX (AVP 24) and RX (AVP 38) Connect Speed sent in ICCN (#407).

    Improvements

    • RX and TX performance: RX and TX threads prefetch packets and stream state, so that the cache misses of multiple packets overlap. With AF_XDP on an Intel X710 (PPPoE QinQ), a single RX thread now receives 10G line rate (9.7 Mpps) with up to 1M flows instead of 4.2 to 6.6 Mpps, and a single TX thread sends 8.0 Mpps with 1M flows instead of 6.5 Mpps.
    • Automatic CPU placement: The automatic CPU placement (rx-auto-cpuset, tx-auto-cpuset) now avoids CPUs handling the interrupts of the used NICs, uses only CPUs allowed for the process (taskset, systemd AllowedCPUs, container cpusets) and pins the main thread to a free CPU as well. A warning is logged for manually pinned threads running on CPUs handling NIC interrupts.
    • Parallel instances: Instances running in parallel (e.g. one per SR-IOV virtual function) no longer select the same CPUs. Each instance locks its CPUs with /run/lock/bngblaster_cpu<N>.<PID>.lock, and CPUs are shared evenly if no CPU is free. Instances started at the same time are initialized one after another (/run/lock/bngblaster_startup.lock), which is logged while waiting.
    • Lock files: Interface and CPU lock files use kernel locks (flock), which are released if an instance is killed or crashes. Stale lock files no longer block further tests.
    • AF_XDP NIC configuration: Channels, RSS indirection table, NIC RX ring and RX VLAN offload are restored on exit, also if the startup fails. The NIC RX ring is increased to 4096 descriptors (a larger ring is kept), and the RX frames (io-slots-rx) are sized automatically to at least twice the NIC RX ring, unless configured explicitly. Based on the work of Andreas Zimber in #408.
    • AF_XDP diagnostics: An interface MTU larger than the AF_XDP frame size is now accepted with a warning. A warning is logged if an XDP program is already attached. If the driver supports AF_XDP on fewer queues than required by the threads (e.g. i40e only on as many queues as CPUs), this is reported clearly.
    • LACP: The LACP negotiation follows IEEE 802.1AX. A member collects once the partner is in sync and distributes once the partner collects as well, and changes of the own state are sent immediately. Standby members (lacp-max-active-links) are not in sync, so that the partner does not use them either. Two BNG Blaster instances can now be connected back to back with LACP.

    Bug Fixes

    • AF_XDP: Fixed RX stalling forever if the NIC RX ring ran empty, which happened e.g.
  3. 1.0.12026-10-16 · 2026-10-16 15:31 UTC
    查看更新说明

    BNG Blaster 1.0.1

    This is a maintenance release with fixes for BGP and OSPF, new LCP echo statistics, and an official container image.

    New Features

    • Container image on GitHub Container Registry: The BNG Blaster image (amd64) is now published to ghcr.io/rtbrick/bngblaster. It includes the BNG Blaster, the tools bngblaster-cli, lspgen, bgpupdate and ldpupdate, and the BNG Blaster controller with its REST API and web UI.

      • latest and <version>: release builds
      • dev: builds from the dev branch

      docker run -d --network host --cap-add NET_ADMIN --cap-add NET_RAW -v $PWD/instances:/var/bngblaster ghcr.io/rtbrick/bngblaster:latest

      See the installation guide for details.

    • LCP echo expired counter: A new lcp-echo-expired counter on each access interface counts sessions that were terminated because none of their LCP echo requests got a response. The existing counter for each unanswered echo request is still there.

    • New access-protocol-stats command: Shows the protocol packet and timeout statistics for each access interface (the same data as the final report) while the test is still running.

    Bug Fixes

    • BGP: Fixed sessions that stayed established after the peer closed the connection. A TCP FIN from the peer was ignored, so the session stayed up on a half-closed connection and new connections from the peer were rejected. This could delay the reconnect by up to one keepalive interval. A pending active connect is now also aborted once the session is established, which avoids the connection collision that caused this.
    • OSPF: Fixed re-origination of self-originated LSAs when a neighbor holds a newer instance, for example from a previous run with the same router-id. Before, only the router LSA was re-originated, so other LSAs such as the router information LSA could show an old hostname until they reached MaxAge. All affected LSAs are now re-originated with a higher sequence number (RFC 2328 section 13.4).
    • Reports: icmpv6-rs-timeout in the JSON report showed the DHCPv6 timeout counter instead of the ICMPv6 RS timeouts.
    • Reports / interactive UI: The session summary is back to its pre-1.0.0 layout. The PPPoL2TP session count is only shown if PPPoL2TP sessions are configured.

    Full Changelog: https://github.com/rtbrick/bngblaster/compare/1.0.0...1.0.1

  4. 1.0.02026-10-14 · 2026-10-14 22:43 UTC
    查看更新说明

    BNG Blaster 1.0.0

    This is the first major release of BNG Blaster. It adds BGP EVPN and authentication, L2TP LAC emulation, IS-IS Flex-Algo, AF_XDP and loopback I/O, and large performance improvements. It also ships a container image and a Nix flake.

    Highlights

    Routing protocols

    • BGP authentication: TCP-AO (RFC 5925/5926) with hmac-sha-1-96, hmac-sha-256-128 or aes-128-cmac-96, and the legacy TCP MD5 signature (RFC 2385).
    • BGP EVPN:
      • Learns EVPN routes (address family evpn, Adj-RIB-In per session); the new bgp-evpn-routes command shows them.
      • EVPN streams resolve their labels from MAC/IP advertisement routes (type 2) and IP prefix routes (type 5).
      • EVPN VPWS (E-LINE) verification.
      • bgpupdate can generate EVPN updates.
    • IS-IS Segment Routing and Flex-Algo (#278):
      • Multiple prefix SIDs per algorithm (sr-node-sids).
      • The SR-Algorithm sub-TLV.
      • Flexible Algorithm Definitions (flex-algo).
      • Node MSD (node-msd).
      • Per-link application-specific TE metric, delay and admin group (ASLA).
    • lspgen:
      • SR algorithms (-A), Flex-Algo (-F) with FAD and FAPM.
      • Link delay (-D), TE metric (-E), Node MSD (-B) and the ELC flag (-O).
      • New JSON keys for all of them.
    • IS-IS and OSPF overload: the IS-IS overload bit and OSPF max-metric (RFC 6987) are now implemented.
    • OSPF: fixes to the DR/BDR election.

    Access protocols

    • L2TP LAC: the new access type PPPoL2TP lets BNG Blaster act as an L2TPv2 LAC, tunneling PPP sessions to an LNS (incl. LCP/IPCP/IPv6CP, DHCPv6 and session traffic). Special thanks to Olivier Matz, the original author of this feature.
    • LNS:
      • LCP keepalive.
      • CHAP authentication.
      • The optional LCP Conf-Request lcp-conf-request, for LACs without proxy LCP.
      • A StopCCN reply with a result code.
    • DHCPv6 IA_NA for PPPoE (#272): the new access interface option dhcpv6-ia-na.
    • Fixes:
      • IPoE sessions stuck in DHCP init after a release.
      • Decoding of data after the DHCP END option.
      • The LCP CHAP option encoding.

    I/O and performance

    • AF_XDP I/O mode, including the RSS hash and batched TX descriptors. It also sends fewer TX kicks in zero-copy mode.
    • Loopback I/O mode: connects two links of the same instance back to back through in-memory rings. It needs no NIC or privileges, which makes it useful for measuring BNG Blaster's own I/O performance.
    • DPDK:
      • Locked memory pages and port stats.
      • Sequence fixes for flows dropped on TX.
    • General performance:
      • Higher throughput and IPC, fewer cache misses and less stream memory.
      • Cache-line-aligned TXQ.
      • The quadratic stream group lookup at startup is fixed.
    • I/O and control threads are named, and BNG Blaster warns when I/O threads exceed the available CPUs or the AF_XDP NIC RX ring is too small.
    • Stream rates:
      • Average rates are computed from the elapsed time, so late rate jobs and partial samples no longer skew them.
      • Rates are shown with two decimals (#303).
    • Stream fixes:
      • Stream RX in RX threads on LAG member interfaces.
      • The rx-polled interface stats.

    Controller, container and packaging

    • Web UI: the BNG Blaster controller now provides a web UI and file upload. See the controller documentation.
    • Container image (docker/Dockerfile): BNG Blaster and the latest BNG Blaster controller on Debian trixie. The instance directory /var/bngblaster can be mounted.
      docker build -f docker/Dockerfile -t bngblaster .
      docker run -d -p 8001:8001 -v $PWD/instances:/var/bngblaster bngblaster
      
    • Nix flake: fixed and updated, with a dev shell and apps for bngblaster and lspgen.
    • Debian package:
      • A post-install script.
      • Bash completion.
      • The JSON configuration schema is installed.
    • bngblaster-cli commands output now includes the type a
  5. 0.9.392026-09-03 · 2026-09-03 13:21 UTC
    查看更新说明

    RtBrick BNG Blaster Version 0.9.39

    Fixes
    • fix DHCPv6 T2 timer
    Full Changelog

    https://github.com/rtbrick/bngblaster/compare/0.9.38..0.9.39

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    RtBrick - Routing Protocol and BNG Blaster

    Build Linux License Documentation Chat

    The open network tester for the IP networking community.

    The Routing Protocol and BNG Blaster is an open-source network tester for routing and access protocols.

    Originally developed as an access protocol tester, the BNG Blaster has undergone a significant evolution, transforming into a comprehensive network testing tool that now encompasses both access and routing functionalities. Its scope has expanded beyond the assessment of access protocols and now encompasses a broader spectrum, involving the evaluation of network functionalities at large. Contrary to its nomenclature, the BNG Blaster isn't restricted only to BNG (Broadband Network Gateway) testing.

    It simulates a massive number of PPPoE and IPoE (DHCP) subscribers, encompassing IPTV and L2TP (LAC and LNS). Additionally, it supports all common routing protocols such as IS-IS, OSPF, LDP and BGP, including BGP EVPN and TCP authentication (TCP-AO and MD5). This allows for comprehensive testing of both BNG and non-BNG routers, enabling end-to-end evaluations.

    The included traffic generator serves various functions. It can be used to verify forwarding, conduct QoS tests, and measure convergence times. With the capacity to handle millions of separate tracked flows, it allows for thorough verification of every forwarding state within a complete internet routing table. Furthermore, it enables the transmission of traffic to each specific QoS queue present in service edge routers with detailed per-flow statistics like receive rate, loss or latency. EVPN VPWS services can be verified with Ethernet over MPLS traffic streams. For high-rate tests, the BNG Blaster supports DPDK and AF_XDP.

    The BNG Blaster is used by leading network operators like Deutsche Telekom AG with their famous Access 4.0 project, network hard- and software vendors like RtBrick and many more.

    A short introduction from DENOG15 can be found on YouTube.

    Please check out the documentation for details.

    BNG Blaster UI/Terminal

    This project will be actively maintained and further evolved by RtBrick. We are fully committed to building a project for the community and take issue and enhancement requests seriously. We are looking forward to any kind of contributions, new features, bug fixes, or tools. Even contributions to the documentation are more than welcome.

    Our mission is to build better networks with open test suites.

    License

    BNG Blaster is licensed under the BSD 3-Clause License, which means that you are free to get and use it for commercial and non-commercial purposes as long as you fulfill its conditions.

    See the LICENSE file for more details.

    Copyright

    Copyright (C) 2020-2026, RtBrick, Inc.

    Contact