[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