[KD6-DANIR-v2] Lite Kernel DHCPv6 PD and NDP implementation
Hello,
In this post I am happy to introduce a second version of DHCPv6_PD+ND kernel module: [KD6-DANIR-v2].
The kernel module implementation follows the state machine for RR (Requesting Router), SR (ServeR) and CT (ClienT) is presented below:
KD6-DHCPv6-PD-DANIRv2
The kernel in the IoT Router (Requesting Router) issues a DHCPv6 PD request on its egress interface and obtains a /56 from DHCPv6 PD server. Further it splits multiple /64s out of it and sends RAs with /64 on the ingress interfaces. After clients receive the RA the default route is configured (link-local) address of IoT Requesting Router and /64 prefix is used to configure interface IP address.
GITHUB(v2), DEMO(v1) and IETF(v2) docs:
DANIR implementation at github: https://github.com/dmytroshytyi/KD6-DHCPv6-PD-DANIRv2
IETF document draft-shytyi-v6ops-danir-05.txt: https://tools.ietf.org/html/draft-shytyi-v6ops-danir-05
Demo of this v1 implementation: https://www.youtube.com/watch?v=DymVQY7bCUM
The DEMO recorded the virtual machines output on the IoT Router (Requesting Router), the Client device behind it, and the DHCPv6-PD server.
Have a nice day!