IPoE
The BNG Blaster is able to emulate IP over Ethernet (IPoE) subscribers with static and dynamic address assignment supporting 1:1 and N:1 VLAN mode.
Static Addresses
Static addresses means that the IP address and gateway is assigned statically as shown in the example below.
{
"interfaces": {
"access": [
{
"interface": "eth1",
"type": "ipoe",
"vlan-mode": "1:1",
"outer-vlan-min": 128,
"outer-vlan-max": 4000,
"address": "200.0.0.1",
"address-iter": "0.0.0.4",
"gateway": "200.0.0.2",
"gateway-iter": "0.0.0.4",
}
]
}
}
DHCPv4/v6
The most common case for IPoE is using DHCPv4/v6 as shown below.
{
"interfaces": {
"access": [
{
"interface": "eth1",
"type": "ipoe",
"outer-vlan": 7,
"vlan-mode": "N:1"
}
]
},
"dhcp": {
"enable": true,
},
"dhcpv6": {
"enable": 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}"
}
}
IPoE
{ "ipoe": {} }
Attribute |
Description |
Default |
---|---|---|
ipv4 |
Enable/disable IPv4 |
true (enabled) |
arp-timeout |
Initial ARP resolve timeout/retry interval in seconds |
1 |
arp-interval |
Periodic ARP interval in seconds (0 means disabled) |
300 |
ipv6 |
Enable/disable IPv6 |
true (enabled) |
DHCP
{ "dhcp": {} }
Attribute |
Description |
Default |
---|---|---|
enable |
This option allows to enable or disable DHCP |
false |
broadcast |
DHCP broadcast flag |
false |
timeout |
DHCP timeout in seconds |
5 |
retry |
DHCP retry |
10 |
release-interval |
DHCP release interval |
1 |
release-retry |
DHCP release retry |
3 |
tos |
IPv4 TOS for all DHCP control traffic |
0 |
vlan-priority |
VLAN PBIT for all DHCP control traffic |
0 |
DHCPv6
{ "dhcpv6": {} }
Attribute |
Description |
Default |
---|---|---|
enable |
This option allows to enable or disable DHCPv6 |
true |
rapid-commit |
DHCPv6 rapid commit (2 way handshake) |
true |
timeout |
DHCPv6 timeout in seconds |
5 |
retry |
DHCPv6 retry |
10 |
IPoE Commands
The command session-info session-id <id>
provides
detailed information for IPoE sessions.
$ sudo bngblaster-cli run.sock session-info session-id 1 | jq .
{
"status": "ok",
"code": 200,
"session-information": {
"type": "ipoe",
"session-id": 1,
"session-state": "Established",
"interface": "eth1",
"outer-vlan": 8,
"inner-vlan": 1,
"mac": "02:00:00:00:00:01",
"agent-circuit-id": "0.0.0.0/0.0.0.0 eth 0:1",
"agent-remote-id": "DEU.RTBRICK.1",
"ipv4-address": "1.1.1.3",
"ipv4-netmask": "255.255.255.255",
"ipv4-gateway": "1.1.1.1",
"ipv4-dns1": "10.0.0.3",
"ipv4-dns2": "10.0.0.4",
"ipv6-prefix": "fc66:1337:2222::3/128",
"ipv6-delegated-prefix": "fc66:1337:3333:2::/64",
"dhcp-state": "Bound",
"dhcp-server": "1.1.1.1",
"dhcp-lease-time": 300,
"dhcp-lease-expire": 299,
"dhcp-lease-expire-t1": 149,
"dhcp-lease-expire-t2": 261,
"dhcp-tx": 2,
"dhcp-rx": 2,
"dhcp-tx-discover": 1,
"dhcp-rx-offer": 1,
"dhcp-tx-request": 1,
"dhcp-rx-ack": 1,
"dhcp-rx-nak": 0,
"dhcp-tx-release": 0,
"dhcpv6-state": "Bound",
"dhcpv6-lease-time": 14400,
"dhcpv6-lease-expire": 14399,
"dhcpv6-lease-expire-t1": 899,
"dhcpv6-lease-expire-t2": 1439,
"dhcpv6-tx": 1,
"dhcpv6-rx": 1,
"dhcpv6-tx-solicit": 1,
"dhcpv6-rx-advertise": 0,
"dhcpv6-tx-request": 0,
"dhcpv6-rx-reply": 1,
"dhcpv6-tx-renew": 0,
"dhcpv6-tx-release": 0,
"dhcpv6-dns1": "fc66::3",
"dhcpv6-dns2": "fc66::4",
"tx-packets": 6,
"rx-packets": 6,
"rx-fragmented-packets": 0,
"session-traffic": {
"total-flows": 6,
"verified-flows": 0,
"first-seq-rx-access-ipv4": 0,
"first-seq-rx-access-ipv6": 0,
"first-seq-rx-access-ipv6pd": 0,
"first-seq-rx-network-ipv4": 0,
"first-seq-rx-network-ipv6": 0,
"first-seq-rx-network-ipv6pd": 0,
"access-tx-session-packets": 0,
"access-rx-session-packets": 0,
"access-rx-session-packets-loss": 0,
"network-tx-session-packets": 0,
"network-rx-session-packets": 0,
"network-rx-session-packets-loss": 0,
"access-tx-session-packets-ipv6": 0,
"access-rx-session-packets-ipv6": 0,
"access-rx-session-packets-ipv6-loss": 0,
"network-tx-session-packets-ipv6": 0,
"network-rx-session-packets-ipv6": 0,
"network-rx-session-packets-ipv6-loss": 0,
"access-tx-session-packets-ipv6pd": 0,
"access-rx-session-packets-ipv6pd": 0,
"access-rx-session-packets-ipv6pd-loss": 0,
"network-tx-session-packets-ipv6pd": 0,
"network-rx-session-packets-ipv6pd": 0,
"network-rx-session-packets-ipv6pd-loss": 0
}
}
}