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