Re: [homenet] Source-specific routes in Linux [was: atomic updates...]

2013-05-20 Thread Tim Chown
On 8 May 2013, at 10:45, Dave Taht dave.t...@gmail.com wrote:

 On Wed, May 8, 2013 at 2:29 AM, Tim Chown t...@ecs.soton.ac.uk wrote:
 On 7 May 2013, at 12:08, Markus Stenberg markus.stenb...@iki.fi wrote:
 
  Yet another implementation of interest might be:
 
  https://github.com/edderick/quagga_zOSPF/
 
  [1]/[2] versions do not interoperate with it (but they interoperate with
  Arkko one); latest [3] version interoperates with it, but not Arkko..)
 
 Hi,
 
 So the github zOSPF iplementation above was done this year by an 
 undergraduate project student of mine, Ed Seabrook.  He has tested his code 
 against both Ben's and Markus' implementations, using a netkit test 
 environment, with pretty successful results overall.  Ed has given some 
 feedback to the draft authors based on his experience.
 
 It would be helpful if those comments were more public.  

Markus and Edward have discussed the issues arising from Edward's project work. 
 There is a small number of open questions/ambiguities resulting. I agree these 
should be summarised and posted here for comment to help improve the relevant 
draft(s).

 
 Ed chose to build on Quagga because he knew the bird implementations existed, 
 and wanted to show interoperability with a different platform.  
 
 CeroWrt uses quagga-RE (for BGPpgp and babel support), and if it is possible 
 to merge these patches into that branch, and the results useful, I'd be 
 delighted to do so...

It would be useful to get some code review... I'll email you off-list.

Tim___
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet


Re: [homenet] Source-specific routes in Linux [was: atomic updates...]

2013-05-08 Thread Ole Troan
Juliusz,

there is also a draft: http://tools.ietf.org/html/draft-troan-homenet-sadr-00

an implementation using Linux table support will require duplication of route 
entries into multiple tables.

cheers,
Ole


On May 7, 2013, at 14:03 , Juliusz Chroboczek j...@pps.univ-paris-diderot.fr 
wrote:

 If you're actually doing source-specific routing, please show me how
 you speak to the kernel.
 
 Most of that code is in Lua, and while I could have included
 C extension module that did similar things as ip -6 does, I didn't
 bother.
 
 We're doing pretty the same in our prototype code (saying
 system(ip...) rather than speaking the netlink dialect of the day).
 Could you point us at the relevant code, please?
 
 So I'm just using ip -6 {route,rule} to set up source-specific rules
 that map to destination tables.
 
 Ah, okay.  So you're using rules, just as we found out (the hard way)
 that we need to do.
 
  http://www.spinics.net/lists/netdev/msg235316.html
  http://www.spinics.net/lists/netdev/msg235346.html
 
 One (destination-based) routing table is maintained by routing
 protocol, and the rest by Lua code which figures external defaults
 based on routes within routing protocol implementation.
 
 Nice hack.
 
 -- Juliusz
 ___
 homenet mailing list
 homenet@ietf.org
 https://www.ietf.org/mailman/listinfo/homenet

___
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet


Re: [homenet] Source-specific routes in Linux [was: atomic updates...]

2013-05-08 Thread Dave Taht
On Tue, May 7, 2013 at 5:03 AM, Juliusz Chroboczek 
j...@pps.univ-paris-diderot.fr wrote:

   If you're actually doing source-specific routing, please show me how
   you speak to the kernel.

  Most of that code is in Lua, and while I could have included
  C extension module that did similar things as ip -6 does, I didn't
  bother.

 We're doing pretty the same in our prototype code (saying
 system(ip...) rather than speaking the netlink dialect of the day).
 Could you point us at the relevant code, please?

  So I'm just using ip -6 {route,rule} to set up source-specific rules
  that map to destination tables.

 Ah, okay.  So you're using rules, just as we found out (the hard way)
 that we need to do.

   http://www.spinics.net/lists/netdev/msg235316.html
   http://www.spinics.net/lists/netdev/msg235346.html


One thing that bugs me about hacks and workarounds like this is that Linux
(as well as openwrt) are intensely mutable systems, and it's totally
possible to improve linux rather than limp around in userspace.

I have long disliked the ip rule system in its primary use prior to now
(vpns), as buggy, arbitrary, and subject to race conditions, so if a better
api and methods for injecting/managing source address dependent routing
information could be designed I'm pretty sure there would be much
enthusiasm across the vpn, mptcp/sctp, and routing worlds for getting it
into linux itself.




  One (destination-based) routing table is maintained by routing
  protocol, and the rest by Lua code which figures external defaults
  based on routes within routing protocol implementation.

 Nice hack.


Except that probably it interacts badly with existing vpn manipulation of
these tables.



 -- Juliusz
 ___
 homenet mailing list
 homenet@ietf.org
 https://www.ietf.org/mailman/listinfo/homenet




-- 
Dave Täht

Fixing bufferbloat with cerowrt:
http://www.teklibre.com/cerowrt/subscribe.html
___
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet


Re: [homenet] Source-specific routes in Linux [was: atomic updates...]

2013-05-08 Thread Steven Barth

On 08.05.2013 10:51, Dave Taht wrote:

One thing that bugs me about hacks and workarounds like this is that
Linux (as well as openwrt) are intensely mutable systems, and it's
totally possible to improve linux rather than limp around in userspace.

I have long disliked the ip rule system in its primary use prior to now
(vpns), as buggy, arbitrary, and subject to race conditions, so if a
better api and methods for injecting/managing source address dependent
routing information could be designed I'm pretty sure there would be
much enthusiasm across the vpn, mptcp/sctp, and routing worlds for
getting it into linux itself.


Hmm I must admit I'm wondering about this for the OpenWrt stack as well.

We have switched to RA-Handling in userspace for similar reasons already 
so I guess it's only the next logical step to create separate routing 
tables for each upstream interface to do source-based routing and filter 
out ULA-traffic on this layer instead of through iptables.


Having one central userspace management daemon for routing and address / 
prefix delegation in general might not be the best or cleanest solution 
in the end but I guess there is no better way right now.

___
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet


Re: [homenet] Source-specific routes in Linux [was: atomic updates...]

2013-05-08 Thread Ole Troan
[...]

 We have switched to RA-Handling in userspace for similar reasons already so I 
 guess it's only the next logical step to create separate routing tables for 
 each upstream interface to do source-based routing and filter out ULA-traffic 
 on this layer instead of through iptables.

don't do it per upstream interface, that wouldn't work. per next-hop might. the 
draft suggests a single table with source constrained routers and backtracking.

 Having one central userspace management daemon for routing and address / 
 prefix delegation in general might not be the best or cleanest solution in 
 the end but I guess there is no better way right now.

cheers,
Ole

___
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet


Re: [homenet] Source-specific routes in Linux [was: atomic updates...]

2013-05-08 Thread Ole Troan
[...]

 We have switched to RA-Handling in userspace for similar reasons already so I 
 guess it's only the next logical step to create separate routing tables for 
 each upstream interface to do source-based routing and filter out ULA-traffic 
 on this layer instead of through iptables.

don't do it per upstream interface, that wouldn't work. per next-hop might. the 
draft suggests a single table with source constrained routers and backtracking.

 Having one central userspace management daemon for routing and address / 
 prefix delegation in general might not be the best or cleanest solution in 
 the end but I guess there is no better way right now.

cheers,
Ole

___
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet
___
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet


Re: [homenet] Source-specific routes in Linux [was: atomic updates...]

2013-05-08 Thread Lorenzo Colitti
On Wed, May 8, 2013 at 7:51 PM, Steven Barth cy...@openwrt.org wrote:

 if there would be multiple routers which I guess is unlikely in that
 situation. One could maybe attribute the prefix to the source address of
 the DHCPv6 server but that sounds problematic to me aswell.


So you're talking about the case where you have ISP1 and ISP2 plugged into
a switch together with your router?

In that case I can't see any better way than attempting to match the
link-local IPv6 address that you got the RA from to the link-local address
of the DHCPv6 server you got the PD from.

I can't think of a situation why these would be different, but perhaps
there is. Can the DHCPv6 server be a global address?
___
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet


Re: [homenet] Source-specific routes in Linux [was: atomic updates...]

2013-05-07 Thread Markus Stenberg


Dave Taht dave.taht at gmail.com writes:
 I don't know where the ietf 86 bird work on multihoming went. (?)
 Patterson's original work on ospf is here:

 https://github.com/paterben/bird-homenet

 and the ietf drafts are here

 http://tools.ietf.org/wg/homenet/

Patterson's work is mostly of historic interest. 

[1] https://github.com/fingon/hnet has 'super-repository' which
has custom NetKit version, OpenWRT AA github link and everything
else to get it running on a Linux desktop for playing with
(with OpenWRT UML images running in a NetKit lab).

[2] https://github.com/fingon/hnet-openwrt-feed contains just
OWRT package feed for the stuff.

[3] https://github.com/fingon/hnet-core contains most of the new code.

I know it for a fact that people have gotten it running using any
of those approaches ([1] contains [2] and [3], and [2] refers to
[3]). Still, just for playing, [1] is probably the easiest
choice (given correct Linux distro, just following the README
should be enough).

Yet another implementation of interest might be:

https://github.com/edderick/quagga_zOSPF/

[1]/[2] versions do not interoperate with it (but they interoperate with
Arkko one); latest [3] version interoperates with it, but not Arkko..)

Cheers,

-Markus

P.S. [1] and [2] contain 'most recent tested' version, which as
of now, is the post-IETF86-bugfixes one; bleeding edge
development happens in [3] and it's sub-branch(es), but [1] and
[2] refer just to stable points of [3].

___
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet


Re: [homenet] Source-specific routes in Linux [was: atomic updates...]

2013-05-07 Thread Juliusz Chroboczek
 [1] https://github.com/fingon/hnet has 'super-repository' which
 has custom NetKit version, OpenWRT AA github link and everything
 else to get it running on a Linux desktop for playing with
 (with OpenWRT UML images running in a NetKit lab).
 
 [2] https://github.com/fingon/hnet-openwrt-feed contains just
 OWRT package feed for the stuff.
 
 [3] https://github.com/fingon/hnet-core contains most of the new code.

Just to clarify -- this does OSPF-based autoconf and prefix
assignment, but not source-specific routing, right?

If you're actually doing source-specific routing, please show me how
you speak to the kernel.

-- Juliusz
___
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet


Re: [homenet] Source-specific routes in Linux [was: atomic updates...]

2013-05-07 Thread Markus Stenberg
On 7.5.2013, at 14.46, Juliusz Chroboczek j...@pps.univ-paris-diderot.fr 
wrote:
 [1] https://github.com/fingon/hnet has 'super-repository' which
 has custom NetKit version, OpenWRT AA github link and everything
 else to get it running on a Linux desktop for playing with
 (with OpenWRT UML images running in a NetKit lab).
 
 [2] https://github.com/fingon/hnet-openwrt-feed contains just
 OWRT package feed for the stuff.
 
 [3] https://github.com/fingon/hnet-core contains most of the new code.
 
 Just to clarify -- this does OSPF-based autoconf and prefix
 assignment, but not source-specific routing, right?
 
 If you're actually doing source-specific routing, please show me how
 you speak to the kernel.


Most of that code is in Lua, and while I could have included C extension module 
that did similar things as ip -6 does, I didn't bother. So I'm just using ip -6 
{route,rule} to set up source-specific rules that map to destination tables. 
One (destination-based) routing table is maintained by routing protocol, and 
the rest by Lua code which figures external defaults based on routes within 
routing protocol implementation. Not pretty, but it _does_ work.

Cheers,

-Markus
___
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet


Re: [homenet] Source-specific routes in Linux [was: atomic updates...]

2013-05-07 Thread Juliusz Chroboczek
  If you're actually doing source-specific routing, please show me how
  you speak to the kernel.

 Most of that code is in Lua, and while I could have included
 C extension module that did similar things as ip -6 does, I didn't
 bother.

We're doing pretty the same in our prototype code (saying
system(ip...) rather than speaking the netlink dialect of the day).
Could you point us at the relevant code, please?

 So I'm just using ip -6 {route,rule} to set up source-specific rules
 that map to destination tables.

Ah, okay.  So you're using rules, just as we found out (the hard way)
that we need to do.

  http://www.spinics.net/lists/netdev/msg235316.html
  http://www.spinics.net/lists/netdev/msg235346.html

 One (destination-based) routing table is maintained by routing
 protocol, and the rest by Lua code which figures external defaults
 based on routes within routing protocol implementation.

Nice hack.

-- Juliusz
___
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet


Re: [homenet] Source-specific routes in Linux [was: atomic updates...]

2013-05-05 Thread Dave Taht
On Sun, May 5, 2013 at 2:38 PM, Dave Taht dave.t...@gmail.com wrote:
 On Sun, May 5, 2013 at 1:05 PM, Juliusz Chroboczek
 j...@pps.univ-paris-diderot.fr wrote:
 It's not ECMP for ipv6 I'm looking to see solved for multiple routing
 protocols, but the multiple ipv6 prefixes/multiple exits source
 routing problem.

 As you well know, Dave, we've been working on that for the last
 fortnight or so.

 We've run into a limitation of the kernel:

   http://www.spinics.net/lists/netdev/msg235316.html

 Hmm. Given that this code path has only barely been exercised before
 and so many changes to the routing paths have happened in the last 2+
 years, I'm not surprised its broken.


 Unfortunately, I've had no reply to my question:

   http://www.spinics.net/lists/netdev/msg235346.html

 So it looks like we're going to have to dynamically generate rule
 table entries... sigh.

 Well, given the work going into mptcp in particular,

This was a very good overview of where that work stands.

http://lwn.net/Articles/544399/



 a better API for
 src specific routing for ipv6 than the ip rule system seems like a
 good idea.

  Widening the distribution a little bit...

 The homenet folk demonstrated this form of ipv6 multihoming working
 (using a version of OSPF and BIRD, I believe) at the last ietf.

 That is interesting.  Would you happen to know how they're interfacing
 with the kernel?  Or perhaps have a link to their code?

 I don't know where the ietf 86 bird work on multihoming went. (?)
 Patterson's original work on ospf is here:

 https://github.com/paterben/bird-homenet

 and the ietf drafts are here

 http://tools.ietf.org/wg/homenet/


 -- Juliusz



 --
 Dave Täht

 Fixing bufferbloat with cerowrt: 
 http://www.teklibre.com/cerowrt/subscribe.html



-- 
Dave Täht

Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html
___
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet