DMYTRO SHYTYI

[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).

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!