Development issues regarding the cerowrt test router project
 help / color / mirror / Atom feed
* [Cerowrt-devel] Current state of ipv6 in openwrt barrier breaker
@ 2012-12-10  8:41 Dave Taht
  2012-12-10  9:15 ` Dave Taht
  0 siblings, 1 reply; 20+ messages in thread
From: Dave Taht @ 2012-12-10  8:41 UTC (permalink / raw)
  To: cerowrt-devel, Steven Barth

I just noticed this thread went over to cerowrt-users and
cerowrt-devel is the right place to discuss these issues.


---------- Forwarded message ----------
From: Steven Barth
Date: Mon, Dec 10, 2012 at 9:38 AM
Subject: Re: [Cerowrt-users] IPv6 router advertisements on custom interfaces
To: cerowrt-users <cerowrt-users@lists.bufferbloat.net>


Fyi I've commited a new ipv6-support version to OpenWrt yesterday.

This includes (partly untested) all features I want to see in there
for OpenWrt except the integration of dnsmasq-dhcpv6 (which will
follow later once the dynamic configuration features have been added
to it) and the WebUI which is still on the ToDo.


So far the current IPv6-featureset is:

* Support for native IPv6 with static configuration
* Support for native IPv6 with DHCPv6-Prefix Delegation
* Support for native IPv6 without PD via relaying or masquerading
* Support for 6in4, 6to4 and 6rd
* Prefixes are automatically split up and distributed over
downstream-interfaces OR by choice mapped to an ULA-address (NPT66).


Help, documentation and configuration examples for yesterdays version
can be found here (there were a few changes for the new NPT-support):

http://wiki.openwrt.org/doc/uci/network6


Especially the NPT / NAT-related stuff has seen very little testing
and of course only works with a Kernel >= 3.7 and ip6tables >= 1.4.17.


On 10.12.2012 08:56, Dave Taht wrote:
>
> Radvd is going away in the BB ("barrier breaker" - openwrt head)
> version of openwrt, fairly soon. It deserves to die...
>
> There is going to be a merger of the DHCPv6/SLAAC and naming
> functionalities in dnsmasq and the dynamicism of the new ipv6-support
> package, which also includes a spanking new dhcpv6-pd client..
>
> Also planned is to (once the 3.7 kernel lands) make npt66 the default
> (for most users). So in a couple weeks, all the underlying ipv6
> infrastructure in openwrt and cerowrt is going to change.
>
> As to whether the 6in4 case is fully handled as of now in that system,
> damned if I know. Same goes for 6to4... I put the ipv6-support package
> into cerowrt 3.6.9-5, all forms of ipv6 are blocked at the lincs lab,
> can't test it, right now.
>
> As for how to fix it in cerowrt 3.3.8, it was always problematic as
> hell, and I'm glad the work is being re-architected in BB by two of
> the most competent people I know, and I've signed cerowrt (and thus,
> y'all) up to test it when it comes out. It would be great to recruit
> more help, because *this time* we're going to get it right, come hell
> or high water.
>
> I'm very pleased, in particular, with dnsmasq's naming support for
> slaac. It "just works".
>
>
> On Mon, Dec 10, 2012 at 12:04 AM, Michael Richardson <mcr@sandelman.ca> wrote:
>>
>>
>> First question, why are there two radvd processes?
>>
>> 3343 root       964 S    /usr/sbin/radvd -C /var/etc/radvd.conf -m stderr_sys
>> 3345 root       964 S    /usr/sbin/radvd -C /var/etc/radvd.conf -m stderr_sys
>>
>> Is this just a thread issue?
>>
>> second question, none of my custom interfaces are in /var/etc/radvd.conf?
>>
>> Can I hack /etc/config/firewall directly rather than go through the UI?
>> I think so....?
>>
>> Could I attach blinking LEDs to VLANs?
>> (ps: whatever problems I had with ethernet mii between my cerowrt and
>> a cisco 200-26 switch in the summer, seems to have gone away)
>>
>> On an IPv6 interface which is not my uplink, I think that IPv6 gateway
>> should be blank.  That the router should advertise iself.
>>
>> I also think that the words "Send router soliciations" is wrong, that it
>> should say, "Send router advertisements".
>>
>> I had to put my custom interfaces into /etc/config/radvd.
>>
>> config interface
>>          option interface 'trusted'
>>          option AdvSendAdvert '1'
>>          option AdvRouterAddr '1'
>>          option AdvLinkMTU '1480'
>>          option ignore '0'
>>          option IgnoreIfMissing '1'
>>          option AdvSourceLLAddress '1'
>>          option AdvDefaultPreference 'medium'
>>          option AdvOtherConfigFlag '1'
>>
>> config prefix
>>          option interface 'trusted'
>>          list prefix ''
>>          option AdvOnLink '1'
>>          option AdvAutonomous '1'
>>          option AdvRouterAddr '0'
>>          option ignore '0'
>>
>> I don't see a place in the UI where this is edited, but I could be
>> missing it.
>>
>> --
>> ]       He who is tired of Weird Al is tired of life!           |  firewalls  [
>> ]   Michael Richardson, Sandelman Software Works, Ottawa, ON    |net architect[
>> ] mcr@sandelman.ottawa.on.ca http://www.sandelman.ottawa.on.ca/ |device driver[
>>     Kyoto Plus: watch the video <http://www.youtube.com/watch?v=kzx1ycLXQSE>
>>                         then sign the petition.
>>
>>
>>
>>
>>
>> _______________________________________________
>> Cerowrt-users mailing list
>> Cerowrt-users@lists.bufferbloat.net
>> https://lists.bufferbloat.net/listinfo/cerowrt-users
>
>
>
>

_______________________________________________
Cerowrt-users mailing list
Cerowrt-users@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cerowrt-users


-- 
Dave Täht

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

^ permalink raw reply	[flat|nested] 20+ messages in thread
* Re: [Cerowrt-devel] Current state of ipv6 in openwrt barrier breaker
@ 2012-12-11 19:56 Ole Trøan
  2012-12-11 20:25 ` Dave Taht
  2012-12-11 20:46 ` Steven Barth
  0 siblings, 2 replies; 20+ messages in thread
From: Ole Trøan @ 2012-12-11 19:56 UTC (permalink / raw)
  To: Steven Barth; +Cc: cerowrt-devel

Steve, et al,

coming at this with an IETF 6man/homenet/v6ops hat on.

>>> * Prefixes are automatically split up and distributed over
>>> downstream-interfaces OR by choice mapped to an ULA-address (NPT66).
>> 
>> Hmm. The homenet folk have a prefix assignment and router discovery
>> process defined in their PD over ospf (somewhat crazy)
>> implementation...
>> 
>> My expectation here is that ISPs are going to be parsimonious in
>> handing out anything bigger than a /64, certainly anything bigger than
>> a /56 is going to be scarce. So I'd hope that address assignment using
>> NPT66 would start with the bottom addresses and work up.
> 
> cerowrt would run into problems if the ISPs would only assign a single 
> /64. Even NPT would not help here as two distinct ULA /64 could not be 
> mapped to the same public /64 without the possibility of collisions. So 
> it might be necessary to relay between the downstream interfaces in this 
> case so that they share a /64 or did you have something else in mind?

or create state...
NPT should not be on by default though, and should definitely not translate between ULAs and globals.

> However I guess and from what I have seen most ISP will probably assign 
> a /56 or at least a /60. For OpenWrt a /64 would not so problematic as 
> there is - by default - only 1 (bridged) lan-interface so a single /64 
> is sufficient for most users.

agree.

> This is how the prefix distribution works either for the ULA or the 
> public prefixes. I've implemented this straight forward not looking at 
> any specification as the local prefix distribution should not be 
> mandated imo by any RFC.
> 
> * For ULA fd00::/48, the first /64 would be fd00::/64, the 2nd 
> fd00:0:0:1::/64 etc.

I think the the ULA prefix should be created as specified in RFC4193.
otherwise you'll get into trouble merging networks, or building a mesh with your neighbour.
(overlapping ULA space).

> * Padding (unused adress-space) is added if the alignment cannot be 
> satisfied (e.g. one interface wants a /64, the second a /62, then there 
> will be a padding or 1 /64 and 1 /63 in between).

shouldn't all interface have a /64?

> * If a downstream-interface goes down, its assigned prefix is preserved 
> in case it later comes up again.
> * Assignments for a public prefixes are forgotten once the prefix is 
> removed (e.g. wan goes down).

I'm uneasy about removing a delegated prefix just because the WAN link goes down.
one should really only remove the delegated prefix when:
- the lifetimes expire
- the CPE is connected to a different domain.

I know other people disagree with me, and would prefer that prefix lifetimes was 
tied to reachability.

> In the current implementation the NPT will map the public prefix to the 
> lower part of the ULA, meaning a public /56-prefix will be mapped onto
> fd00::/56 if the ULA is fd00::/48 and everything outside this /56 would 
> not be mapped so care has to be taken. This is a bit unpredictable - I 
> know - but in the end we cannot know what size the public prefix from 
> the ISP will be and I guess if there are only a few /64-downstream 
> interfaces it is unlikely to clash for a majority of users.

here it sounds like you translate ULA source addresses to global space?
please don't do that by default. there is some reasoning in RFC6204 and RFC4193.
but it boils down to the fact that we do not want to push NATs for IPv6.
ULAs are quite different in the IPv6 addressing architecture than RFC1918 addresses in IPv4.
in IPv6 it is expected that multiple addresses of different scope is assigned to an interface.
a ULA address, while having global scope, does not have global reachability.
actually it should not be expected to have global reachability.
doing ULA to global translation by default would break one of the ideas we have in the homenet WG,
about allowing devices on the network not being prepared to be on the global Internet use ULAs. that way
we can avoid firewalls on the network borders, and still protect the unprepared... ;-)

>> Somewhat related to that, is the concept of actually USING ipv6 for a
>> few things that it's good at. For example, a much greater randomized
>> port space can be gained if the dns server is the only daemon
>> listening on a dedicated ipv6 address (like a ::3)
> 
> I'm currently wondering if it would make sense to implement a 
> randomization strategy in case we have e.g. a /56 prefix and only want 
> to assign one or two /64 so that the /64 would not always be ...1::/64 
> and 2::/64 but it would be a bit complicated with the dynamic prefix 
> assignment of downstream-interfaces and especially when it comes to ULA 
> and us not knowing before-hand what length the public prefix will be.

re-using the subnet id part for both the ULA and the global prefix would certainly make sense.

cheers,
Ole

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2012-12-12 18:57 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-10  8:41 [Cerowrt-devel] Current state of ipv6 in openwrt barrier breaker Dave Taht
2012-12-10  9:15 ` Dave Taht
2012-12-10 11:27   ` Steven Barth
2012-12-10 11:40     ` Dave Taht
2012-12-10 11:53       ` Steven Barth
2012-12-11 19:56 Ole Trøan
2012-12-11 20:25 ` Dave Taht
2012-12-11 21:31   ` Ole Trøan
2012-12-12  8:19     ` Dave Taht
2012-12-12  9:08       ` Ole Trøan
2012-12-12  9:19         ` Steven Barth
2012-12-12  9:28           ` Ole Trøan
2012-12-12  9:47             ` Steven Barth
2012-12-12 10:11               ` Dave Taht
2012-12-12 18:56       ` Michael Richardson
2012-12-12  9:05     ` Török Edwin
2012-12-11 20:46 ` Steven Barth
2012-12-11 21:02   ` Ole Trøan
2012-12-12  8:23     ` Steven Barth
2012-12-12  8:43       ` Ole Trøan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox