<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>hi, all</p>
<p>I'm a new user, totally novice to routing and babel.</p>
<p>I've a routing problem that I'm hoping to solve with babel. I'd
try to sketch my network layout as follows:</p>
<p><tt><br>
</tt></p>
<p><font size="+1"><tt> + Wifi
Hotspot router A</tt><tt><br>
</tt><tt>Internet ---- Gateway (main router) + Wifi Hotspot
router B</tt><tt><br>
</tt><tt> + Wifi Hotspot
router C</tt></font></p>
<p>I'd like to run Wifi Hotspot A, B, C in their own IP subnets.<br>
</p>
<p>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.<br>
</p>
<p>For IPv6 a trouble is my ISP only provides a /64 prefix address /
network. Commonly, most mobile phones and end clients uses SLAAC
(<a class="moz-txt-link-freetext"
href="https://www.networkacademy.io/ccna/ipv6/stateless-address-autoconfiguration-slaac"
moz-do-not-send="true">https://www.networkacademy.io/ccna/ipv6/stateless-address-autoconfiguration-slaac</a>,
<a class="moz-txt-link-freetext"
href="https://datatracker.ietf.org/doc/html/rfc4862"
moz-do-not-send="true">https://datatracker.ietf.org/doc/html/rfc4862</a>)
to assign their own IP addresses. However, as the end devices
assigns their own addresses in the lowest 64 bits.
(<a class="moz-txt-link-freetext"
href="https://community.cisco.com/t5/networking-knowledge-base/understanding-ipv6-eui-64-bit-address/ta-p/3116953"
moz-do-not-send="true">https://community.cisco.com/t5/networking-knowledge-base/understanding-ipv6-eui-64-bit-address/ta-p/3116953</a>,
<a class="moz-txt-link-freetext"
href="https://www.networkacademy.io/ccna/ipv6/stateless-address-autoconfiguration-slaac"
moz-do-not-send="true">https://www.networkacademy.io/ccna/ipv6/stateless-address-autoconfiguration-slaac</a>),
it is not possible to further sub-net the lower /64 bit address.</p>
<p>I'm left with the option of working with same /64 ipv6 subnets !
<br>
</p>
<p>Out going packets is easy, they just go by the default route.<br>
</p>
<p>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).</p>
<p>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.</p>
<p>Now the questions:</p>
<p>1) how do I get babel to maintain routing tables for individual
host /128 routes to the end devices?</p>
<p>2) promiscuous listening for hosts ip not in babel's routing
tables, ipv6 bridging<br>
<br>
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?<br>
</p>
<p>3) possible solution: hostapd - interaction with babel:<br>
</p>
<p>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 (<a
class="moz-txt-link-freetext"
href="https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol"
moz-do-not-send="true">https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol</a>).
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?</p>
<p>4) roaming hosts / devices<br>
</p>
<p>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.</p>
<p><br>
</p>
<br>
</body>
</html>