radvd-project / radvd

radvd | Official repository: https://github.com/radvd-project/radvd
https://radvd.litech.org/
Other
203 stars 107 forks source link

'impossible' bridging on ipv6 /64 subnets #133

Closed ag88 closed 3 years ago

ag88 commented 3 years ago

i'd like to share a (un)related but interesting project

ndppd radvd does its job well router advertisements for prefix-discovery

what is interesting is 'slaac' stateless ip address auto config gives you a /64 ipv6 address, which is enormously bigger than the whole of ipv4 internet. so it isn't surprising that people try to 'bridge' /64 subnets on different interfaces. the trouble is based on rfc4861 Neighbor Discovery for IP version 6 (IPv6) clients/hosts send a flurry of 'who has' (this address) solicitation and determine that the neighbors aren't there. well it is a /64 subnet !

ndprbrd see below and ndppd made it possible to 'bridge' different 'sub nets' by proxying the neighbor solicitations. what seemed missing is a 'ipv6 route daemon' that maintains the static routes between the 'same' /64 subnets on different interfaces, effectively 'bridging' at the ip level. it could have been done by a conventional bridge but the tools around for messing with ip seem much more available than at the lower levels

and oh well, a little more googling turns up ndprbrd, the internet invents its own means ;)

robbat2 commented 3 years ago

Thanks for mentioning it, while I don't feel the functionality belongs in RADVD directly, I do feel like it would be a valuable addition to the documentation, and would happily accept PRs for that.

I'll leave this open for now, and close after 2021/04/08

ag88 commented 3 years ago

hi robbat, I reviewed the codes and wikis and it seemed that isn't quite a good place to place this as this is partially 'off-topic' just that it is somewhat related. we'd let this issue be the 'documentation' so that perhaps someone did a search in one of the search engines or that they review the issue logs they'd find this. hence, I've closed this issue here