1. Introduction
Simulated IPv6 test environment setup for IPv6 connectivity.
2. IPv6 environment flow diagram
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6IkFraGlsIFAiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYXN0TW9kaWZpZXJOYW1lIjoiQWtoaWwgUCIsImxhbmd1YWdlIjoiZW4iLCJ1aUNvbmZpZyI6Int9IiwiZGlhZ3JhbURpc3BsYXlOYW1lIjoiIiwic0ZpbGVJZCI6IiIsImF0dElkIjoiMzU1NzY3MTUxIiwiZGlhZ3JhbU5hbWUiOiJJUHY2IGVudmlyb25tZW50IiwiYXNwZWN0IjoiIiwibGlua3MiOiJhdXRvIiwiY2VvTmFtZSI6IklQdjYgVGVzdCBFbnZpcm9ubWVudCIsInRic3R5bGUiOiJ0b3AiLCJjYW5Db21tZW50IjpmYWxzZSwiZGlhZ3JhbVVybCI6IiIsImNzdkZpbGVVcmwiOiIiLCJib3JkZXIiOnRydWUsIm1heFNjYWxlIjoiMSIsIm93bmluZ1BhZ2VJZCI6MzU1NzY2ODM4LCJlZGl0YWJsZSI6ZmFsc2UsImNlb0lkIjozNTU3NjY4MzgsInBhZ2VJZCI6IiIsImxib3giOnRydWUsInNlcnZlckNvbmZpZyI6eyJlbWFpbHByZXZpZXciOiIxIn0sIm9kcml2ZUlkIjoiIiwicmV2aXNpb24iOjMsIm1hY3JvSWQiOiI5Mzk5NWJmYi1jOTNhLTQyZmQtYmMyOS02NDk4YmM3NGM5MWIiLCJwcmV2aWV3TmFtZSI6IklQdjYgZW52aXJvbm1lbnQucG5nIiwibGljZW5zZVN0YXR1cyI6Ik9LIiwic2VydmljZSI6IiIsImlzVGVtcGxhdGUiOiIiLCJ3aWR0aCI6IjkyNyIsInNpbXBsZVZpZXdlciI6ZmFsc2UsImxhc3RNb2RpZmllZCI6MTczMDgxMjYzMjAwMCwiZXhjZWVkUGFnZVdpZHRoIjpmYWxzZSwib0NsaWVudElkIjoiIn0=
3. Dibbler-Server setup in IPv6 Simulator
Step 1: Install dibbler server on host device ( sudo apt install dibbler-server )
Step 2: Configure server.conf file, replace iface name with your device usb-ethernet iface name.
/etc/dibbler/server.conf |
---|
iface "enp0s31f6" { class { pool 2001:db8:1111::/64 } pd-class { pd-pool 2601:9c0:d00:1170::/60 pd-length 60 } option dns-server 2001:4860:4860::8888,2000::ff,2000::fe } |
Step 3: Connect host machine to any available mobile hotspot, check your WiFi interface is getting IPv6 addr and able to do ping6.
Step 4: Add nat rule and IPv6 addr for usb to ethernet interface
sudo /sbin/ip6tables -t nat -A POSTROUTING -o wlp2s0 -j MASQUERADE |
---|
sudo ip addr add 2001:db8:1111:0:d786:cc43:fe52:26e1/64 dev <interface name of usb-to-ethernet> |

Step 5: Run dibbler-server on host machine, if success, able to see accepting connections.

4. Dibbler client and server conf in CPE
4.1. Dibbler client conf
script "/lib/rdk/client-notify.sh" log-level 7 log-mode full duid-type duid-ll iface erouter0 { option domain option dns-server ia option 0017 hex 0x0000118b0001000200260002000E45524F555445520002001845524F555445523A45445641 option 0016 hex 0x0000118b000a65526f75746572312e30 pd { prefix ::/64 } }skip-confirm downlink-prefix-ifaces "brlan0" |
---|
4.2. Dibbler server conf
log-level 4 inactive-mode drop-unicast reconfigure-enabled 1 iface brlan0 { preference 255 class { pool \00:0:0:0001 - \00:0:0:fffe T1 1800 T2 2880 prefered-lifetime 3600 valid-lifetime 7200 } } |
---|
5. Connected Clients
5.1. Lan Clients
Connected clients got IPv6 addr and able to perform ping6. Test ipv6 (https://test-ipv6.com) from browser passed.



6. Considerations
- Currently SLAAC won't work
- In RDKB GW, Dibbler-client should get IPv6 global address from upstream Dibbler-server
- Subsequently client-notify.sh notifies PandM component to invoke Dibbler-server for brlan0
7. References