[Babel-users] same/identical /64 prefix IPV6 subnets

andrew goh gohandrew at yahoo.com
Wed Nov 29 16:32:06 GMT 2023


hi, all

I'm a new user, totally novice to routing and babel.

I've a routing problem that I'm hoping to solve with babel. I'd try to 
sketch my network layout as follows:


                                      + Wifi Hotspot router A
Internet  ---- Gateway (main router) + Wifi Hotspot router B
                                      + Wifi Hotspot router C

I'd like to run Wifi Hotspot A, B, C in their own IP subnets.

For IPv4, I solved this by running NAT on the gateway (a Linux box). 
Hence, each of the hotspots A, B, C have their own IP subnets and 
distribute addresses via DHCP.

For IPv6 a trouble is my ISP only provides a /64 prefix address / 
network. Commonly, most mobile phones and end clients uses SLAAC 
(https://www.networkacademy.io/ccna/ipv6/stateless-address-autoconfiguration-slaac, 
https://datatracker.ietf.org/doc/html/rfc4862) to assign their own IP 
addresses. However, as the end devices assigns their own addresses in 
the lowest 64 bits. 
(https://community.cisco.com/t5/networking-knowledge-base/understanding-ipv6-eui-64-bit-address/ta-p/3116953, 
https://www.networkacademy.io/ccna/ipv6/stateless-address-autoconfiguration-slaac), 
it is not possible to further sub-net the lower /64 bit address.

I'm left with the option of working with same /64 ipv6 subnets !

Out going packets is easy, they just go by the default route.

I've evaluated bridging, but I don't like bridging, as that there are 
less facilities and tools in that layer (e.g. firewalls etc).

I'm thinking in terms that I'm left with routing /128 host addresses 
between the 'identical' /64 ipv6 subnets. i.e. patch individual (/128) 
routes on each of the routers main gateway and the hotspot routers. But 
that if I hack that up with scripts etc, I'm practically writing a 
routing daemon.

Now the questions:

1) how do I get babel to maintain routing tables for individual host 
/128 routes to the end devices?

2) promiscuous listening for hosts ip not in babel's routing tables,  
ipv6 bridging

A trouble is babel 'don't know' the end host/device ipv6 addresses. Is 
there a solution? e.g. that babel listens for packets having the defined 
/64 prefix in the source (note that this may have to be based on 
'upstream', e.g. the router's own upstream /64 prefix, and when it isn't 
found in babel's routing table, to update that /128 route automatically? 
this is practically 'bridging' at ipv6 levels. can this be done? how to 
go about doing so?

3) possible solution: hostapd - interaction with babel:

As above, a trouble is babel 'don't know' the end host/device ipv6 
addresses, but that *hostapd* which runs the wifi hotspots knows the 
device ethernet mac address. It can then get the end host/device ip 
addresses using NDP 
(https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol). If I 
customize hostapd to patch a static route say on one of the hotspot 
router, would babel pick that up and distribute the routing 
tables/entries accordingly. i.e. individual /128 routes? Otherwise is 
there a better way or what is the means of getting this end host/device 
address into babel's routing tables? And would such a scheme work?

4) roaming hosts / devices

The end hosts are mobile i.e. phones ! hence, they can roam between the 
different wifi hotspots A, B, C. There could literally be situations a 
mobile phone left hotspot A and logs in to hotspot B. A trouble is the 
same host / device may not have logged out from hotspot A, i.e. it has 
'moved on' to hotspot B. The trouble is packets sent to the original 
hotspot A will no longer reach the host / device. How to handle these 
cases of roaming hosts / devices? Can there be updates based on ping 
checks etc? (e.g. that when a host/device roam to B, there is a 
'duplicate' route, the routers then need to update reachability, e.g. 
for each of the hotspots to 'ping' the host/device and update 
reachability metrics.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/babel-users/attachments/20231130/ce412106/attachment.htm>


More information about the Babel-users mailing list