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)