BNG Blaster — инструмент для тестирования, с его помощью можно создать тысячи виртуальных PPPoE и IPoE клиентов, чтобы например протестировать производительность серверов доступа, он также поддерживает IGMP, QinQ, IPv6 и т.д.
Для примера выполню установку BNG Blaster в Ubuntu Server.
Скачаем необходимые компоненты:
sudo apt install -y libssl1.1 libncurses5 libjansson4
Скопируем ссылку на пакет Debian https://github.com/rtbrick/bngblaster/releases
Скачаем и установим его, например:
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
На этом установка завершена, но вы также можете установить из исходного кода, ниже приведу пример.
Установим необходимые компоненты:
sudo apt install -y cmake libcunit1-dev libncurses5-dev libssl-dev libjansson-dev
Соберем и установим BNG Blaster:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make all
sudo make install
Либо отладочную версию:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make all
sudo make install
Пример запуска:
bngblaster --config ixnfo.com.cfg
Пример конфигурации c официальной страницы 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
}
}
Смотрите также мою статью:
Подавление DHCP серверов (dhcdrop)