<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>