1. Introduction
Simulated IPv6 test environment setup for IPv6 connectivity.
2. IPv6 environment flow diagram
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6IlVua25vd24gVXNlciAoYWtoaWwucDEpIiwib3V0cHV0VHlwZSI6ImJsb2NrIiwibGFzdE1vZGlmaWVyTmFtZSI6IlVua25vd24gVXNlciAoYWtoaWwucDEpIiwibGFuZ3VhZ2UiOiJlbiIsInVpQ29uZmlnIjoie30iLCJkaWFncmFtRGlzcGxheU5hbWUiOiIiLCJzRmlsZUlkIjoiIiwiYXR0SWQiOiIzNTU3NjcxNTEiLCJkaWFncmFtTmFtZSI6IklQdjYgZW52aXJvbm1lbnQiLCJhc3BlY3QiOiIiLCJsaW5rcyI6ImF1dG8iLCJjZW9OYW1lIjoiSVB2NiBUZXN0IEVudmlyb25tZW50IiwidGJzdHlsZSI6InRvcCIsImNhbkNvbW1lbnQiOmZhbHNlLCJkaWFncmFtVXJsIjoiIiwiY3N2RmlsZVVybCI6IiIsImJvcmRlciI6dHJ1ZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjozNTU3NjY4MzgsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjM1NTc2NjgzOCwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImVtYWlscHJldmlldyI6IjEifSwib2RyaXZlSWQiOiIiLCJyZXZpc2lvbiI6MywibWFjcm9JZCI6IjkzOTk1YmZiLWM5M2EtNDJmZC1iYzI5LTY0OThiYzc0YzkxYiIsInByZXZpZXdOYW1lIjoiSVB2NiBlbnZpcm9ubWVudC5wbmciLCJsaWNlbnNlU3RhdHVzIjoiT0siLCJzZXJ2aWNlIjoiIiwiaXNUZW1wbGF0ZSI6IiIsIndpZHRoIjoiOTI3Iiwic2ltcGxlVmlld2VyIjpmYWxzZSwibGFzdE1vZGlmaWVkIjoxNzMwODEyNjMyMDAwLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
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