IPv6 in the bcmrpi kernel patches (and Debian/Arch distros)


33 posts   Page 1 of 2   1, 2
by Dagger » Thu Mar 22, 2012 3:27 pm
I extracted the kernel config from the kernels in the Debian and Arch OS images. I'm somewhat concerned that IPv6 seems to be outright disabled (as in, not compiled into the kernel or even as a module) in both of them. This seems a bit… shortsighted; the Raspberry Pi is exactly the sort of device that should have IPv6, which is perfectly suited to at least some of its use cases (and this includes, for example, the "kid that wants to make a network game" case.)

The root cause is in the Raspberry Pi kernel patches; arch/arm/configs/bcmrpi_cutdown_defconfig has "# CONFIG_IPV6 is not set", and neither the Debian or Arch kernel configs have turned it on. (The Fedora kernel does though — thanks to Chris Tyler for doing that.)

Can we get this fixed?
Posts: 6
Joined: Sun Nov 13, 2011 1:26 pm
by jamesh » Thu Mar 22, 2012 4:09 pm
I've never come across a IPv6 network. Is it really that shortsighted?

I'm not sure it has ever been tested, so there may be an issue there, but otherwise, it's a simple switch.
Unemployed software engineer currently specialising in camera drivers and frameworks, but can put mind to most embedded tasks. Got a job in N.Cambridge or surroundings? I'm interested!
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11686
Joined: Sat Jul 30, 2011 7:41 pm
by RaTTuS » Thu Mar 22, 2012 4:19 pm
as the world has run out of IPV4 and should of moved completely to IPV6 years ago yes ...
1QC43qbL5FySu2Pi51vGqKqxy3UiJgukSX - Prosliver FTW
"That's not right, the badgers have moved the goalposts."
User avatar
Posts: 5018
Joined: Tue Nov 29, 2011 11:12 am
Location: North West UK
by davidgoodenough » Thu Mar 22, 2012 4:44 pm
JamesH said:


I've never come across a IPv6 network. Is it really that shortsighted?

I'm not sure it has ever been tested, so there may be an issue there, but otherwise, it's a simple switch.


That is probably because you are in the UK (I think).  UK ISPs are very slow in adopting IPV6, but others are moving more quickly.  It is entirely benign to enable the config option, and really should be a standard option these days.  The necessary utilities are also well tried and tested.  It should be noted that the stock Debian kernals have had this enabled for longer than I can remember.
Posts: 74
Joined: Wed Sep 21, 2011 11:55 am
by pepedog » Thu Mar 22, 2012 4:53 pm
I will add to archlinuxarm next build. There was a time you had to disable it for things to be sweet.
Posts: 966
Joined: Fri Oct 07, 2011 9:55 am
by Dagger » Thu Mar 22, 2012 6:51 pm
JamesH said:


Is it really that shortsighted?


I think so. We're planning for the RPi to be around for a while, definitely for longer than it'll take for v4 exhaustion to happen. (Heck, my ISP has only ever given me a single address, for what is now going on 10-20 machines -- I've been out of IP addresses for the past 10 years.)

I can understand if it's not well tested, or needs manual setup, but it would be very helpful if it's at least in the kernel. That way we can handle any OS config ourselves, without going through a kernel recompile.

pepedog: Yay, thanks. That just leaves the Debian image/default config.
Posts: 6
Joined: Sun Nov 13, 2011 1:26 pm
by RaTTuS » Fri Mar 23, 2012 8:48 am
IPv6 works fine [mostly - YMMV]

depending on ISP.

there are issues with IPv6 and security but nothing that most people should be worried about.
1QC43qbL5FySu2Pi51vGqKqxy3UiJgukSX - Prosliver FTW
"That's not right, the badgers have moved the goalposts."
User avatar
Posts: 5018
Joined: Tue Nov 29, 2011 11:12 am
Location: North West UK
by jamesh » Fri Mar 23, 2012 9:18 am
Had a quick chat with some people who know - one reason its not in the default Debian is kernel size and performance. The premise is we try and remove anything not completely essential (whicih IPv6 isn't, esp. since most will be on internal lans). People can then add as they see fit.

That said, I reckon all the distro people will be using their own configs fairly quickly anyway.
Unemployed software engineer currently specialising in camera drivers and frameworks, but can put mind to most embedded tasks. Got a job in N.Cambridge or surroundings? I'm interested!
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11686
Joined: Sat Jul 30, 2011 7:41 pm
by error404 » Fri Mar 23, 2012 6:17 pm
At least compile the module. This is critical functionality IMO. The box is not so tiny that a couple 100KB of code is really going to make a difference, especially if it's not even loaded by default.
Posts: 351
Joined: Wed Dec 21, 2011 11:49 pm
by jamesh » Fri Mar 23, 2012 6:43 pm
Well, I'd argue that it isn't critical - critical implies you cannot use the product without it, which is patently not the case (I don't have it enabled, I use the device without problems)

I'm not sure whether the module is compiled or not. The base Debian distro is just that, a base install to get the board going - no frills, bells or whistles.
Unemployed software engineer currently specialising in camera drivers and frameworks, but can put mind to most embedded tasks. Got a job in N.Cambridge or surroundings? I'm interested!
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11686
Joined: Sat Jul 30, 2011 7:41 pm
by abishur » Fri Mar 23, 2012 7:26 pm
I've long felt that with how difficult IPv6 addresses were to memorize/work with that odds were good that ISPs would use IPv6 up to the router and then use special routing to let people use IPv4 internally on home networks as they are far easier to work with by far.
Dear forum: Play nice ;-)
User avatar
Forum Moderator
Forum Moderator
Posts: 4263
Joined: Thu Jul 28, 2011 4:10 am
Location: USA
by davidgoodenough » Fri Mar 23, 2012 7:55 pm
Abishur said:


I've long felt that with how difficult IPv6 addresses were to memorize/work with that odds were good that ISPs would use IPv6 up to the router and then use special routing to let people use IPv4 internally on home networks as they are far easier to work with by far.


Well that will give you a problem when trying to access servers which only have IPV6 addresses, and there are already some.  There are also some mobile companies that are rolling out IPV6 addresses (only - they have run out of V4 addresses) to phones and tablets.
Posts: 74
Joined: Wed Sep 21, 2011 11:55 am
by abishur » Fri Mar 23, 2012 9:21 pm
davidgoodenough said:


Abishur said:


I've long felt that with how difficult IPv6 addresses were to memorize/work with that odds were good that ISPs would use IPv6 up to the router and then use special routing to let people use IPv4 internally on home networks as they are far easier to work with by far.


Well that will give you a problem when trying to access servers which only have IPV6 addresses, and there are already some.  There are also some mobile companies that are rolling out IPV6 addresses (only - they have run out of V4 addresses) to phones and tablets.


Actually that's the whole point of the special routing I was referring to.  The theory isn't too difficult, we already do NAT to allow many IPs to use one IP address, all this would do would be to take it one step further and have many IPv4 addresses using a single IPv6 address.
Dear forum: Play nice ;-)
User avatar
Forum Moderator
Forum Moderator
Posts: 4263
Joined: Thu Jul 28, 2011 4:10 am
Location: USA
by Dagger » Fri Mar 23, 2012 10:33 pm
I can confirm that it's not available as a module either. I suppose this is at least consistent with the lack of Bluetooth, audio and wireless support in the Debian distro... but I'd definitely compile this stuff as modules. Expecting everybody to compile a custom kernel for their use-case is a bit much, I feel, compared to asking them to load the appropriate modules.

They're not that difficult to remember. Something like 2001:db8:2a56::1 isn't too horrible, and is actually fewer bits to remember than the current external+internal pair in v4 (~50 vs 64 bits). Of course if you pick an awkward subnet and use SLAAC your addresses might end up looking like 2001:db8:2a56:92bf:250:56ff:fe29:7e81, but if remembering IPs is important to you then you should probably choose ones more like the former than the latter.

Or, y'know, use DNS. I can't even remember my v4 IPs these days.

Also, note that you're not supposed to be removing the v4 addresses from your local network anyway; you'll have both v4 and v6 addresses on it (and all of your machines). No need to complicate things with extra cross-protocol NAT.
Posts: 6
Joined: Sun Nov 13, 2011 1:26 pm
by pepedog » Sat Mar 24, 2012 12:12 am
Darn, just did new arch rootfs and forgot ipv6, will have to redo.
Otoh, I just compiled Quake3 native on pi with just 2 Gb card. 50 minutes compile time, 5 minutes till I got bored of being killed.
Posts: 966
Joined: Fri Oct 07, 2011 9:55 am
by error404 » Sat Mar 24, 2012 1:34 am
JamesH said:


Well, I'd argue that it isn't critical - critical implies you cannot use the product without it, which is patently not the case (I don't have it enabled, I use the device without problems)


Perhaps not, but it won't be too long before there will be such users. We're long past the point where every consumer device on the market should have IPv6 enabled by default. Anything else just holds up the transition that we've needed for years now. We're now at a point where the underlying issue is a critical one and new applications are forced onto IPv6 - see LTE for example. Not including it when the cost amounts to 'CONFIG_IPV6=m' in .config is even worse than ISPs that are dragging their heels to get support out the door.

Abishur said:


Actually that's the whole point of the special routing I was referring to.  The theory isn't too difficult, we already do NAT to allow many IPs to use one IP address, all this would do would be to take it one step further and have many IPv4 addresses using a single IPv6 address.


How exactly does this solve the problem of an IPv4-only host connecting to an IPv6-only host? It doesn't. You either dual-stack or run IPv4 on IPv6, not the other way around; there isn't a way to cram 128b of address into a 32b field.
Posts: 351
Joined: Wed Dec 21, 2011 11:49 pm
by abishur » Sat Mar 24, 2012 3:48 am
error404 said:


Abishur said:


Actually that's the whole point of the special routing I was referring to.  The theory isn't too difficult, we already do NAT to allow many IPs to use one IP address, all this would do would be to take it one step further and have many IPv4 addresses using a single IPv6 address.


How exactly does this solve the problem of an IPv4-only host connecting to an IPv6-only host? It doesn't. You either dual-stack or run IPv4 on IPv6, not the other way around; there isn't a way to cram 128b of address into a 32b field.



Well the concept I'm trying to describe is pretty much NAT-PT (though it has been depreciated) or NAPT-PT (which was also depreciated), I know the barriers surrounding the issue, but people tend to be a clever lot when it comes to things like this and there's no doubt that a IPv6 address is just a nuisance.  So my money is on there being a successor to NAPT-PT.  Maybe NAT64, but then I think ISPs would get an IPv6 address and hand out an nigh infinite amount of IPv4 addresses to the customers and we'd use all the existing routers and switches as is.
Dear forum: Play nice ;-)
User avatar
Forum Moderator
Forum Moderator
Posts: 4263
Joined: Thu Jul 28, 2011 4:10 am
Location: USA
by Dagger » Sat Mar 24, 2012 2:57 pm
I don't think IPv6 addresses are a nuisance. For instance, I bet you can't even tell me the IPv4 address of http://www.raspberrypi.org without looking it up. (Or maybe you can because you admin the server, in which case I'll ask about elinux.org, Wikipedia or whatever.) If you don't remember the v4 address, why would the extra length of the v6 address be a problem?

And as I said, your own network will be dual-stacked, so even if you're on your local LAN and DNS is broken and you were silly and picked long addresses that you couldn't remember, you still have your v4 local addresses available too and can use those to get DNS working again.

There's just no advantage in jumping through hoops to remove IPv6 from your LAN, and a big pile of disadvantages (many of which are mentioned in the RFC that depreciated NA(P)T-PT.)
Posts: 6
Joined: Sun Nov 13, 2011 1:26 pm
by abishur » Sat Mar 24, 2012 3:48 pm
I consider it to be a nuisance because I have to do *so* much work on networks where I have to manually assign an IP address.  I know most people get to use DHCP, but not me :-( ... still by my own logic I suppose that it is a little pointless to do so much work to get IPv4 on the inside of the network when the vast majority of people do get to use DHCP and *never* worry about any sort of IP address.  Stupid logic.
Dear forum: Play nice ;-)
User avatar
Forum Moderator
Forum Moderator
Posts: 4263
Joined: Thu Jul 28, 2011 4:10 am
Location: USA
by error404 » Sat Mar 24, 2012 10:48 pm
Abishur said:


Well the concept I'm trying to describe is pretty much NAT-PT (though it has been depreciated) or NAPT-PT (which was also depreciated), I know the barriers surrounding the issue, but people tend to be a clever lot when it comes to things like this and there's no doubt that a IPv6 address is just a nuisance.  So my money is on there being a successor to NAPT-PT.  Maybe NAT64, but then I think ISPs would get an IPv6 address and hand out an nigh infinite amount of IPv4 addresses to the customers and we'd use all the existing routers and switches as is.


None of these mechanisms solve the problem. At best they're a stopgap, but in practice they are worse than carrier NAT IMO. The fact is that if you are on an IPv4 only network, there is no way to address an IPv6 host without ugly mapping 'magic', and even with the magic, it will always be limited in scope due to the IPv6 address space being so much larger than IPv4 allows for. Doing NAT from IPv6 hosts to IPv4 isn't really a big deal, going from IPv4 to IPv6 is much, much harder and there's not really a good solution.

Advocating ugly messes like NAT64 when we have a perfectly fine protocol to use with virtually unlimited globally-routable addresses, and wide support for it just strikes me as incredibly backward. Let's keep all the problems associated with IPv4 and its current deployment just so people have addresses that are a couple of digits shorter.

It even has some nice advantages for setting up LANs with minimal infrastructure and automatically-configured static addresses.

Anyway, the point is that IPv6 is an inevitability, and I think adoption is going to accelerate pretty quickly over the next year or two. Right now it's a bit of a niche thing, but I'm seeing support pop up all over the place and I don't think it will stay that way for long. Even Windows has it bundled and enabled by default...
Posts: 351
Joined: Wed Dec 21, 2011 11:49 pm
by johny » Tue Apr 24, 2012 11:09 am
Got my Raspi unexpectedly today (I was sure I'd missed out on the first batch due to no correspondence from Element14)!

Now impatiently waiting for the github.com:raspberrypi/linux.git repo to clone so I can build a kernel with IPv6 and VLAN support. I never imagined I'd come across a current distribution which didn't have IPv6 enabled - a.k.a. /signed for having IPv6 available by default, at least as modules.

As for various forms of NAT, just please, NO; haven't we suffered enough already? :)

Personally I can't wait to ditch my last IPv4 address!
Posts: 44
Joined: Tue Apr 24, 2012 10:00 am
by pepedog » Tue Apr 24, 2012 1:03 pm
I forgot to include it in arch, sorry
Posts: 966
Joined: Fri Oct 07, 2011 9:55 am
by lb » Tue May 01, 2012 6:48 pm
IPv6 is in a major deployment phase *right now* (end-user ISPs are adopting it), and I also think it's pretty shortsighted to disable it by default. Moreover, the recently published RFC 6540 mandates that all IP-capable nodes must have IPv6 support. "IP" is now officially synonymous with "IPv6".

It's only a simple switch and won't take much memory, why not enable it for the next release of the Debian image?
Posts: 193
Joined: Sat Jan 28, 2012 8:07 pm
by pepedog » Tue May 01, 2012 7:08 pm
New kernel in areclinuxarm now has it, backup the txt files in /boot first as they will disappear.
New img waiting announce. Should be last needed for a while.
Posts: 966
Joined: Fri Oct 07, 2011 9:55 am
by tez » Mon May 07, 2012 12:19 am
I spoke to Eben yesterday in person after his talk at Spec @ 30 - he agreed that there was no technical reason why the kernel could not be built with IPv6 support as a module.

He has assured me that he will pass that message up to the folks responsible for the kernel builds/patches.

I have just noticed that http://www.raspberrypi.org/ is reachable over IPv6 and perhaps the webserver logs, run through a suitable analysis tool, would give the Foundation a good idea as to how prevalent IPv6 is amongst their userbase ?
Posts: 4
Joined: Mon Mar 26, 2012 12:14 pm