[Berlin-wireless] Fwd: Re: [DIY-ISP] ipv6: multiple prefixes+gateways

André Gaul gaul
Di Jul 15 17:27:31 CEST 2014


fyi!

btw: wir wollten ja morgen eigentlich ein treffen machen um das
netzkonzept zu diskutieren. leider kann ich nicht teilnehmen bzw.
vermutlich erst sehr spaet. wie sieht es bei den anderen aus? passt das
sonst allen oder wollen wir einen anderen termin erdoodlen?

ciao,
andré


-------- Original-Nachricht --------
Betreff: Re: [DIY-ISP] ipv6: multiple prefixes+gateways
Datum: Tue, 15 Jul 2014 23:43:30 +0900
Von: Baptiste Jonglez <bjonglez at illyse.org>
Antwort an: Baptiste Jonglez <bjonglez at illyse.org>
An: diy-isp at lists.ffdn.org

On Tue, Jul 15, 2014 at 04:00:55PM +0200, André Gaul wrote:
> In the meantime, Henning Rogge (OLSR) announced on the Freifunk Berlin
> list (in German, see [1]), that he will implement source specific
> routing in OLSRv2. As soon as it's available, I'll test it and I can
> share the results here if you like.

Good to hear :)

> Example:
>  * GW_A is one of our BGP routers and takes care of subnet A
>    (e.g., 2001:bf7:750::/44 for Berlin)
>  * GW_B is a gateway connected to DSL line and is assigned the subnet B
>    by the DSL provider (e.g. 2001:470:815::/48)
>  * Now a client sends an IP packet with a source address from subnet A
>    and some destination address outside the mesh to its default
>    gateway. The default gateway runs OLSR and sees 2 gateways (GW_A and
>    GW_B) for ::/0. Maybe GW_B is closer and the packet is therefore
>    routed through GW_B.

Just to make things clear, with this setup, you need to announce *two*
different default routes.  With a (dest-prefix, source-prefix) notation:

- announce (::/0, 2001:bf7:750::/44) from GW_A
- announce (::/0, 2001:470:815::/48) from GW_B

The gateway of the client will know about both routes (both being
installed in the kernel as source-specific).  Assume your client is
2001:bf7:750::42, then its gateway will forward the packets towards GW_A
using the first route, because the source address of the packets matches
the source-specific prefix of the route.


It depends on the implementation, but you will probably need *all* OLSR
routers to run the new source-specific version (or they should at least
form a connected graph between GW_A, GW_B and the client).

There are a number of other solutions, which might be easier to deploy:

1/ simply don't announce ::/0 from GW_B :)

2/ build tunnels between your border routers (either through the Internet,
   or through the wireless network itself), and perform source-specific
   routing only between border routers, statically.

   For instance, when GW_B receives a packet with a source address in
   2001:bf7:750::/44, it will forward it to GW_A through the tunnel.  This
   generalises to a greater number of border routers, but managing the
   static source-specific routes will become complicated.

3/ same as the above, but with dynamic source-specific routing between the
   border routers.  You could actually use source-specific Babel for this,
   as it also handles tunnels quite well :) You can even build tunnels
   *both* over the wireless network and over the Internet, and let the
   RTT-based metric decide which one is better.


> Anyway, I'm pleased to hear that it's already implemented in babel.
> Although it may be unstable right now in certain cases, it's definitely
> worth a shot to test it.
> 
> Let's keep us mutually updated on this topic! ;)

Definitely!







Mehr Informationen über die Mailingliste Berlin