Using BNG Blaster

BNG Blaster is a testing tool, it can create thousands of virtual PPPoE and IPoE clients to test the performance of access servers, it also supports IGMP, QinQ, IPv6, etc.

For example, I will install BNG Blaster on Ubuntu Server.
Download the necessary components:

sudo apt install -y libssl1.1 libncurses5 libjansson4

Copy the link to the Debian package
https://github.com/rtbrick/bngblaster/releases
Download and install it, for example:

wget https://github.com/rtbrick/bngblaster/releases/download/0.4.7/bngblaster-0.4.7-ubuntu-18.04_amd64.deb
sudo dpkg -i bngblaster-0.4.7-ubuntu-18.04_amd64.deb

This completes the installation, but you can also install from source, I will give an example below.
Install the necessary components:

sudo apt install -y cmake libcunit1-dev libncurses5-dev libssl-dev libjansson-dev

Let’s build and install BNG Blaster:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make all
sudo make install

Or a debug version:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make all
sudo make install

Launch example:

bngblaster --config ixnfo.com.cfg

Configuration example from the official page
https://rtbrick.github.io/bngblaster/config:

{
    "interfaces": {
        "network": {
            "interface": "eth2",
            "address": "10.0.0.1",
            "gateway": "10.0.0.2",
            "address-ipv6": "fc66:1337:7331::1",
            "gateway-ipv6": "fc66:1337:7331::2"
        },
        "access": [
            {
                "interface": "eth1",
                "outer-vlan-min": 1000,
                "outer-vlan-max": 1999,
                "inner-vlan-min": 1,
                "inner-vlan-max": 4049,
                "authentication-protocol": "PAP"
            },
            {
                "interface": "eth1",
                "outer-vlan-min": 2000,
                "outer-vlan-max": 2999,
                "inner-vlan-min": 1,
                "inner-vlan-max": 4049,
                "authentication-protocol": "CHAP"
            }
        ]
    },
    "sessions": {
        "count": 1000,
        "session-time": 0,
        "max-outstanding": 800,
        "start-rate": 400,
        "stop-rate": 400
    },
    "pppoe": {
        "reconnect": true,
        "discovery-timeout": 3,
        "discovery-retry": 10
    },
    "ppp": {
        "mru": 1492,
        "authentication": {
            "username": "user{session-global}@rtbrick.com",
            "password": "test",
            "timeout": 5,
            "retry": 30
        },
        "lcp": {
            "conf-request-timeout": 1,
            "conf-request-retry": 10,
            "keepalive-interval": 30,
            "keepalive-retry": 3
        },
        "ipcp": {
            "enable": true,
            "request-ip": true,
            "request-dns1": true,
            "request-dns2": true,
            "conf-request-timeout": 1,
            "conf-request-retry": 10
        },
        "ip6cp": {
            "enable": true,
            "conf-request-timeout": 1,
            "conf-request-retry": 10
        }
    },
    "dhcpv6": {
        "enable": true,
        "rapid-commit": true
    },
    "access-line": {
        "agent-remote-id": "DEU.RTBRICK.{session-global}",
        "agent-circuit-id": "0.0.0.0/0.0.0.0 eth 0:{session-global}",
        "rate-up": 1024,
        "rate-down": 16384
    },
    "session-traffic": {
        "ipv4-pps": 1,
        "ipv6-pps": 1,
        "ipv6pd-pps": 1
    }
}

See also my article:
Suppression of DHCP servers (dhcdrop)

Leave a comment

Leave a Reply