IPv6 streams not being received #189
-
Hi all, We have been using bngblaster for various BNG tests and so far everything has worked as expected. Other than some initial questions regarding syntax there has been no issues. On a new router we have the same bngblaster config and setup as before, however for some reason we are not getting the IPv6 streams received. From the DUT router itself we can ping the subscriber assigned v6 address, which is the same address we can see in the streams packet capture. Also from the DUT router we can ping the network address on bngblaster. Any thoughts or hints welcome :) Have drawn out our scenario with some screenshots annotated, please see attached 'Whiteboard.png'. Have also attached a pcap from bngblaster and a debug log from '-l debug -L debug_log.txt': Manual Test We have done a normal manual test where we are pinging from the network side (network interface in a netns during this test) to the subscriber, outside of bngblaster. This is working so seems the v6 forwarding on the DUT is ok.
bngblaster json Here is our json used for this test. To note again, we are getting the v4 streams received/verified no problem, but not the v6. {
"interfaces": {
"capture-include-streams": true,
"network": {
"interface": "enp130s0f4d1",
"address": "100.127.1.2/24",
"gateway": "100.127.1.1",
"address-ipv6": "2001:db8:1::2/64",
"gateway-ipv6": "2001:db8:1::1",
"vlan": 100
},
"access": {
"interface": "enp130s0f4",
"vlan-mode": "N:1",
"outer-vlan": 702,
"type": "pppoe",
"stream-group-id": 1
}
},
"streams": [
{
"name": "general4",
"stream-group-id": 1,
"type": "ipv4",
"direction": "downstream",
"bps": 1736000,
"length": 1024,
"network-interface": "enp130s0f4d1:100"
},
{
"name": "general6",
"stream-group-id": 1,
"type": "ipv6",
"direction": "downstream",
"bps": 1736000,
"length": 1024,
"network-interface": "enp130s0f4d1:100"
}
],
"sessions": {
"start-rate": 30,
"stop-rate": 30
},
"pppoe": {
"reconnect": true
},
"ppp": {
"mru": 1492,
"authentication": {
"username": "[email protected]",
"password": "testing",
"timeout": 3,
"retry": 5,
"protocol": "PAP"
},
"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,
"retry": 2
}
} |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
I have some idea. To improve performance, IPv6 stream traffic is send with UDP checksum zero, which is permitted for IPv4 but not permitted for IPv6. Typically network devices would not check but you are using a virtual BNG, maybe with UDP checksum offloading enabled, so this could cause such drops. You can try to disable checksum offloading. You can also open an issue to add a new configuration option to enable IPv6 UDP checksums. |
Beta Was this translation helpful? Give feedback.
-
Hi Christiaan, seems this was the issue. thanks for the spot! |
Beta Was this translation helpful? Give feedback.
I have some idea. To improve performance, IPv6 stream traffic is send with UDP checksum zero, which is permitted for IPv4 but not permitted for IPv6. Typically network devices would not check but you are using a virtual BNG, maybe with UDP checksum offloading enabled, so this could cause such drops. You can try to disable checksum offloading.
You can also open an issue to add a new configuration option to enable IPv6 UDP checksums.