When operating a border router, we have to rely on requesting a prefix for the 6LoWPAN network via DHCPv6 IA_PD.
This is not always possible, it requires cooperation of both the upstream router (feature needs to be implemented) and the administrator (must be willing to enable the feature).
As an alternative, we can implement a neighbor discovery proxy.
In this mode, we would operate like a bridge, all IPv6 packets received on one interface are sent out verbatim on all other interfaces (with proxy enabled), but with a new L2 header.
Some ICMPv6 messages need to be rewritten to exchange the L2 addresses contained within them.
This affects:
neighbor solicitation
neighbor advertiseent
router advertisement
redirects - could be omitted, we don't implement those
Thanks for engaging here. This will also help enhance the https://github.com/RIOT-OS/RIOT/pull/16840 story, because so far that relies on the OpenWRT router to actually have something to delegate.
Description
When operating a border router, we have to rely on requesting a prefix for the 6LoWPAN network via DHCPv6 IA_PD.
This is not always possible, it requires cooperation of both the upstream router (feature needs to be implemented) and the administrator (must be willing to enable the feature).
As an alternative, we can implement a neighbor discovery proxy. In this mode, we would operate like a bridge, all IPv6 packets received on one interface are sent out verbatim on all other interfaces (with proxy enabled), but with a new L2 header.
Some ICMPv6 messages need to be rewritten to exchange the L2 addresses contained within them. This affects:
Useful links
https://datatracker.ietf.org/doc/html/rfc4389
https://github.com/contiki-os/contiki/wiki/6LP-GW
https://people.kth.se/~maguire/DEGREE-PROJECT-REPORTS/111221-Luis_Maqueda-with-cover.pdf