* 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 [not found] ` <20090217095232.5da06b9f@werewolf.home> @ 2009-02-17 17:01 ` Andrey Borzenkov 2009-02-17 18:17 ` Andrey Borzenkov ` (2 more replies) 0 siblings, 3 replies; 31+ messages in thread From: Andrey Borzenkov @ 2009-02-17 17:01 UTC (permalink / raw) To: Rafael J. Wysocki, netdev, bonding-devel Cc: J.A. Magallón, Linux Kernel Mailing List [-- Attachment #1: Type: text/plain, Size: 864 bytes --] Forward to bonding and netdev On 17 of February 2009 11:52:32 J.A. Magallón wrote: > Hi all... > > Don't know if this is specific for -rc5, I have jumped from 28.4 to > 29-rc5. In this latest kernel, I can not install 'bonding' module if > 'ipv6' is disabled to load via modprobe.conf: > > install ipv6 /bin/true > > Trying bonding gives this dmesg: > > bonding: Unknown symbol ndisc_build_skb > bonding: Unknown symbol in6_dev_finish_destroy > bonding: Unknown symbol ndisc_send_skb > bonding: Unknown symbol unregister_inet6addr_notifier > bonding: Unknown symbol register_inet6addr_notifier > > Commenting the line in modprobe.conf makes things smooth again. > We can not disable ipv6 anymore ? > If IPv6 is disable in kernel config bonding loads. But I think it is regression, it should be possible to disable IPv6 if not required. [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 17:01 ` 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 Andrey Borzenkov @ 2009-02-17 18:17 ` Andrey Borzenkov 2009-02-17 20:08 ` [Bonding-devel] " Jay Vosburgh 2009-02-17 20:10 ` Brian Haley 2009-02-17 22:29 ` David Miller 2009-02-19 18:15 ` Randy Dunlap 2 siblings, 2 replies; 31+ messages in thread From: Andrey Borzenkov @ 2009-02-17 18:17 UTC (permalink / raw) To: Rafael J. Wysocki, brian.haley Cc: netdev, bonding-devel, J.A. Magallón, Linux Kernel Mailing List [-- Attachment #1: Type: text/plain, Size: 1224 bytes --] On 17 of February 2009 20:01:38 Andrey Borzenkov wrote: > Forward to bonding and netdev > > On 17 of February 2009 11:52:32 J.A. Magallón wrote: > > Hi all... > > > > Don't know if this is specific for -rc5, I have jumped from 28.4 to > > 29-rc5. In this latest kernel, I can not install 'bonding' module > > if 'ipv6' is disabled to load via modprobe.conf: > > > > install ipv6 /bin/true > > > > Trying bonding gives this dmesg: > > > > bonding: Unknown symbol ndisc_build_skb > > bonding: Unknown symbol in6_dev_finish_destroy > > bonding: Unknown symbol ndisc_send_skb > > bonding: Unknown symbol unregister_inet6addr_notifier > > bonding: Unknown symbol register_inet6addr_notifier > > > > Commenting the line in modprobe.conf makes things smooth again. > > We can not disable ipv6 anymore ? > > If IPv6 is disable in kernel config bonding loads. But I think it is > regression, it should be possible to disable IPv6 if not required. This hard dependency was apparently introduced by this commit: commit 305d552accae6afb859c493ebc7d98ca3371dae2 Author: Brian Haley <brian.haley@hp.com> Date: Tue Nov 4 17:51:14 2008 -0800 bonding: send IPv6 neighbor advertisement on failover [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Bonding-devel] 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 18:17 ` Andrey Borzenkov @ 2009-02-17 20:08 ` Jay Vosburgh 2009-02-17 22:49 ` David Miller 2009-02-17 20:10 ` Brian Haley 1 sibling, 1 reply; 31+ messages in thread From: Jay Vosburgh @ 2009-02-17 20:08 UTC (permalink / raw) To: Andrey Borzenkov Cc: Rafael J. Wysocki, brian.haley, netdev, J.A. Magallón, bonding-devel, Linux Kernel Mailing List Andrey Borzenkov <arvidjaar@mail.ru> wrote: >> If IPv6 is disable in kernel config bonding loads. But I think it is >> regression, it should be possible to disable IPv6 if not required. > >This hard dependency was apparently introduced by this commit: > >commit 305d552accae6afb859c493ebc7d98ca3371dae2 >Author: Brian Haley <brian.haley@hp.com> >Date: Tue Nov 4 17:51:14 2008 -0800 > > bonding: send IPv6 neighbor advertisement on failover I'm not really sure how to work around this. If bonding is compiled with CONFIG_IPV6, then the IPv6 support is compiled in, and bonding will need the ipv6 module loaded to resolve its symbols. The simple answer (don't turn on CONFIG_IPV6) isn't really useful for the common case of distro kernels, which will generally have CONFIG_IPV6 enabled. -J --- -Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Bonding-devel] 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 20:08 ` [Bonding-devel] " Jay Vosburgh @ 2009-02-17 22:49 ` David Miller 0 siblings, 0 replies; 31+ messages in thread From: David Miller @ 2009-02-17 22:49 UTC (permalink / raw) To: fubar Cc: arvidjaar, rjw, brian.haley, netdev, jamagallon, bonding-devel, linux-kernel From: Jay Vosburgh <fubar@us.ibm.com> Date: Tue, 17 Feb 2009 12:08:03 -0800 > The simple answer (don't turn on CONFIG_IPV6) isn't really > useful for the common case of distro kernels, which will generally have > CONFIG_IPV6 enabled. This whole "disable ipv6 module load in /etc/modules.conf" was bound to eventually cause problems like this. There are so many chicken-and-egg issues wrt. this it isn't even funny, for example: 1) If we provide a sysctl which is a bitmask of protocols to disallow registering, we have the same problem we have now since ipv6 won't be able to load when the sock_register() fails. 2) If we add some ipv6 sysctl that says "don't do ipv6" so the module can load yet not automatically add link local ipv6 addresses to interfaces and solicit for routers on the network, the sysctl can't be set until the module is loaded. And this bonding stuff in particular wants to get into the neighbour discovery state of the ipv6 module. Therefore it's not like we can split out a few functions into some kind of "ipv6_helpers.ko" kernel module to eliminate the problem either. ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 18:17 ` Andrey Borzenkov 2009-02-17 20:08 ` [Bonding-devel] " Jay Vosburgh @ 2009-02-17 20:10 ` Brian Haley 2009-02-17 20:56 ` Thomas Backlund ` (2 more replies) 1 sibling, 3 replies; 31+ messages in thread From: Brian Haley @ 2009-02-17 20:10 UTC (permalink / raw) To: Andrey Borzenkov Cc: Rafael J. Wysocki, netdev, bonding-devel, "J.A. Magallón", Linux Kernel Mailing List Andrey Borzenkov wrote: > On 17 of February 2009 20:01:38 Andrey Borzenkov wrote: >> Forward to bonding and netdev >> >> On 17 of February 2009 11:52:32 J.A. Magallón wrote: >>> Hi all... >>> >>> Don't know if this is specific for -rc5, I have jumped from 28.4 to >>> 29-rc5. In this latest kernel, I can not install 'bonding' module >>> if 'ipv6' is disabled to load via modprobe.conf: >>> >>> install ipv6 /bin/true >>> >>> Trying bonding gives this dmesg: >>> >>> bonding: Unknown symbol ndisc_build_skb >>> bonding: Unknown symbol in6_dev_finish_destroy >>> bonding: Unknown symbol ndisc_send_skb >>> bonding: Unknown symbol unregister_inet6addr_notifier >>> bonding: Unknown symbol register_inet6addr_notifier >>> >>> Commenting the line in modprobe.conf makes things smooth again. >>> We can not disable ipv6 anymore ? >> If IPv6 is disable in kernel config bonding loads. But I think it is >> regression, it should be possible to disable IPv6 if not required. > > This hard dependency was apparently introduced by this commit: > > commit 305d552accae6afb859c493ebc7d98ca3371dae2 > Author: Brian Haley <brian.haley@hp.com> > Date: Tue Nov 4 17:51:14 2008 -0800 > > bonding: send IPv6 neighbor advertisement on failover I initially had bonding IPv6 support as a Kconfig option, but it was decided it would be cleaner if it just got built-in whenever CONFIG_IPV6 was set like SCTP, with the assumption you might want it. Is it a common configuration to not allow a module to load like you're doing in modprobe.conf? I don't know how hard it would be to rip this out into it's own bonding_ipv6.ko module, simply turning-off CONFIG_IPV6 seems better. -Brian ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 20:10 ` Brian Haley @ 2009-02-17 20:56 ` Thomas Backlund 2009-02-17 21:06 ` [Bonding-devel] " Jay Vosburgh 2009-02-17 22:51 ` David Miller 2 siblings, 0 replies; 31+ messages in thread From: Thomas Backlund @ 2009-02-17 20:56 UTC (permalink / raw) To: Brian Haley Cc: Andrey Borzenkov, Rafael J. Wysocki, netdev, bonding-devel, "J.A. Magallón", Linux Kernel Mailing List Brian Haley skrev: > Andrey Borzenkov wrote: >> On 17 of February 2009 20:01:38 Andrey Borzenkov wrote: >>> Forward to bonding and netdev >>> >>> On 17 of February 2009 11:52:32 J.A. Magallón wrote: >>>> Hi all... >>>> >>>> Don't know if this is specific for -rc5, I have jumped from 28.4 to >>>> 29-rc5. In this latest kernel, I can not install 'bonding' module >>>> if 'ipv6' is disabled to load via modprobe.conf: >>>> >>>> install ipv6 /bin/true >>>> >>>> Trying bonding gives this dmesg: >>>> >>>> bonding: Unknown symbol ndisc_build_skb >>>> bonding: Unknown symbol in6_dev_finish_destroy >>>> bonding: Unknown symbol ndisc_send_skb >>>> bonding: Unknown symbol unregister_inet6addr_notifier >>>> bonding: Unknown symbol register_inet6addr_notifier >>>> >>>> Commenting the line in modprobe.conf makes things smooth again. >>>> We can not disable ipv6 anymore ? >>> If IPv6 is disable in kernel config bonding loads. But I think it is >>> regression, it should be possible to disable IPv6 if not required. >> >> This hard dependency was apparently introduced by this commit: >> >> commit 305d552accae6afb859c493ebc7d98ca3371dae2 >> Author: Brian Haley <brian.haley@hp.com> >> Date: Tue Nov 4 17:51:14 2008 -0800 >> >> bonding: send IPv6 neighbor advertisement on failover > > I initially had bonding IPv6 support as a Kconfig option, but it was > decided it would be cleaner if it just got built-in whenever CONFIG_IPV6 > was set like SCTP, with the assumption you might want it. > > Is it a common configuration to not allow a module to load like you're > doing in modprobe.conf? I don't know how hard it would be to rip this Yep. > out into it's own bonding_ipv6.ko module, simply turning-off CONFIG_IPV6 > seems better. That's not an option for distro kernels ... -- Thomas ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Bonding-devel] 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 20:10 ` Brian Haley 2009-02-17 20:56 ` Thomas Backlund @ 2009-02-17 21:06 ` Jay Vosburgh 2009-02-17 21:49 ` Brian Haley ` (2 more replies) 2009-02-17 22:51 ` David Miller 2 siblings, 3 replies; 31+ messages in thread From: Jay Vosburgh @ 2009-02-17 21:06 UTC (permalink / raw) To: Brian Haley Cc: Andrey Borzenkov, =?ISO-8859-1?Q?=22J=2EA=2E_Magall?=, ón", netdev, Linux Kernel Mailing List, Rafael J. Wysocki, bonding-devel Brian Haley <brian.haley@hp.com> wrote: >Andrey Borzenkov wrote: [...] >> This hard dependency was apparently introduced by this commit: >> >> commit 305d552accae6afb859c493ebc7d98ca3371dae2 >> Author: Brian Haley <brian.haley@hp.com> >> Date: Tue Nov 4 17:51:14 2008 -0800 >> >> bonding: send IPv6 neighbor advertisement on failover > >I initially had bonding IPv6 support as a Kconfig option, but it was >decided it would be cleaner if it just got built-in whenever CONFIG_IPV6 >was set like SCTP, with the assumption you might want it. > >Is it a common configuration to not allow a module to load like you're >doing in modprobe.conf? I don't know how hard it would be to rip this >out into it's own bonding_ipv6.ko module, simply turning-off CONFIG_IPV6 >seems better. I'm not sure either of those really helps. Distro kernels are built with CONFIG_IPV6 (and would have the CONFIG_BONDING_IPV6_DINGUS enabled as well), so the common case users would have it enabled, too. Putting the ipv6 bits into a different module might not help, either, because the "core" bonding code would still have the call to the ipv6 functions. Unless there's some magic way to somehow know at runtime whether or not the ipv6 module is loaded, and only try to resolve those symbols if ipv6 is loaded. That seems complicated. To answer your question, I have come across this (aliasing ipv6 to nothing in modprobe.conf to disable IPv6) from time to time, but didn't think of it when the NA code was added to bonding. -J --- -Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Bonding-devel] 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 21:06 ` [Bonding-devel] " Jay Vosburgh @ 2009-02-17 21:49 ` Brian Haley 2009-02-17 22:24 ` Jay Vosburgh 2009-02-17 22:30 ` Nicolas de Pesloüan 2009-02-17 22:54 ` David Miller 2 siblings, 1 reply; 31+ messages in thread From: Brian Haley @ 2009-02-17 21:49 UTC (permalink / raw) To: Jay Vosburgh Cc: Andrey Borzenkov, "J.A. Magall", ón, netdev, Linux Kernel Mailing List, Rafael J. Wysocki, bonding-devel Jay Vosburgh wrote: > Brian Haley <brian.haley@hp.com> wrote: > >> Andrey Borzenkov wrote: > [...] >>> This hard dependency was apparently introduced by this commit: >>> >>> commit 305d552accae6afb859c493ebc7d98ca3371dae2 >>> Author: Brian Haley <brian.haley@hp.com> >>> Date: Tue Nov 4 17:51:14 2008 -0800 >>> >>> bonding: send IPv6 neighbor advertisement on failover >> I initially had bonding IPv6 support as a Kconfig option, but it was >> decided it would be cleaner if it just got built-in whenever CONFIG_IPV6 >> was set like SCTP, with the assumption you might want it. >> >> Is it a common configuration to not allow a module to load like you're >> doing in modprobe.conf? I don't know how hard it would be to rip this >> out into it's own bonding_ipv6.ko module, simply turning-off CONFIG_IPV6 >> seems better. > > I'm not sure either of those really helps. Distro kernels are > built with CONFIG_IPV6 (and would have the CONFIG_BONDING_IPV6_DINGUS > enabled as well), so the common case users would have it enabled, too. I think that was one of the reasons too. > Putting the ipv6 bits into a different module might not help, > either, because the "core" bonding code would still have the call to the > ipv6 functions. Unless there's some magic way to somehow know at > runtime whether or not the ipv6 module is loaded, and only try to > resolve those symbols if ipv6 is loaded. That seems complicated. This separate bonding_ipv6 module would have to register itself with the "core" one with a new proto_ops of some sort. Calls are made for the appropriate method, for example bond_ops->send_gratuitous(bond). We'd change the IPv4 code too. It's just a theory, does make things more complicated. > To answer your question, I have come across this (aliasing ipv6 > to nothing in modprobe.conf to disable IPv6) from time to time, but > didn't think of it when the NA code was added to bonding. So I guess I'll start hacking the above, unless someone has a better suggestion. -Brian ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Bonding-devel] 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 21:49 ` Brian Haley @ 2009-02-17 22:24 ` Jay Vosburgh 2009-03-04 11:46 ` Jan Engelhardt 0 siblings, 1 reply; 31+ messages in thread From: Jay Vosburgh @ 2009-02-17 22:24 UTC (permalink / raw) To: Brian Haley Cc: Andrey Borzenkov, "J.A. Magall", ón, netdev, Linux Kernel Mailing List, Rafael J. Wysocki, bonding-devel Brian Haley <brian.haley@hp.com> wrote: >Jay Vosburgh wrote: [...] >> Putting the ipv6 bits into a different module might not help, >> either, because the "core" bonding code would still have the call to the >> ipv6 functions. Unless there's some magic way to somehow know at >> runtime whether or not the ipv6 module is loaded, and only try to >> resolve those symbols if ipv6 is loaded. That seems complicated. > >This separate bonding_ipv6 module would have to register itself with the >"core" one with a new proto_ops of some sort. Calls are made for the >appropriate method, for example bond_ops->send_gratuitous(bond). We'd >change the IPv4 code too. It's just a theory, does make things more >complicated. I don't see any reason to change the IPv4 bits; there won't ever be a case of ipv4 not being loaded, and this would just add the complexity of a registration gizmo with no real benefit. A "bonding ipv6 ops" would be strictly a hack to deal with ipv6 module dependencies for cases when the kernel is built with CONFIG_IPV6 but the ipv6 module itself is prevented from loading. A registration gizmo doesn't need to be especially complicated; there's only three functions in bond_ipv6.c that are called from the bonding core: bond_send_unsolicited_na, and the ipv6 notifier register / unregister. The bonding_ipv6 module can simply be bond_ipv6.c, which calls some exported "hey, bond_send_unsol_na is here" thing in the bonding core during init and another "hey, send_unsol_na is gone" during unload. The bonding_ipv6 module can do its own notifier registration handing. >> To answer your question, I have come across this (aliasing ipv6 >> to nothing in modprobe.conf to disable IPv6) from time to time, but >> didn't think of it when the NA code was added to bonding. > >So I guess I'll start hacking the above, unless someone has a better >suggestion. Well, I think this is pretty heinous, but I don't have a better idea at the moment. -J --- -Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Bonding-devel] 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 22:24 ` Jay Vosburgh @ 2009-03-04 11:46 ` Jan Engelhardt 0 siblings, 0 replies; 31+ messages in thread From: Jan Engelhardt @ 2009-03-04 11:46 UTC (permalink / raw) To: Jay Vosburgh Cc: Brian Haley, Andrey Borzenkov, "J.A. Magall", ón, netdev, Linux Kernel Mailing List, Rafael J. Wysocki, bonding-devel On Tuesday 2009-02-17 23:24, Jay Vosburgh wrote: >Brian Haley <brian.haley@hp.com> wrote: > > I don't see any reason to change the IPv4 bits; > >there won't ever be a case of ipv4 not being loaded, I would not be so sure of that. >>> To answer your question, I have come across this (aliasing ipv6 >>> to nothing in modprobe.conf to disable IPv6) from time to time, but >>> didn't think of it when the NA code was added to bonding. >> >>So I guess I'll start hacking the above, unless someone has a better >>suggestion. > > Well, I think this is pretty heinous, but I don't have a better >idea at the moment. IMO, a better solution could be to add a dummy ipv6 module that returns -EOPNOTSOPP or appropriate for most calls. ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Bonding-devel] 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 21:06 ` [Bonding-devel] " Jay Vosburgh 2009-02-17 21:49 ` Brian Haley @ 2009-02-17 22:30 ` Nicolas de Pesloüan 2009-02-17 22:54 ` David Miller 2 siblings, 0 replies; 31+ messages in thread From: Nicolas de Pesloüan @ 2009-02-17 22:30 UTC (permalink / raw) To: Jay Vosburgh Cc: Brian Haley, J.A. Magallon, Linux Kernel Mailing List, Rafael J. Wysocki, netdev, Andrey Borzenkov, bonding-devel Jay Vosburgh wrote: > I'm not sure either of those really helps. Distro kernels are > built with CONFIG_IPV6 (and would have the CONFIG_BONDING_IPV6_DINGUS > enabled as well), so the common case users would have it enabled, too. > > Putting the ipv6 bits into a different module might not help, > either, because the "core" bonding code would still have the call to the > ipv6 functions. Unless there's some magic way to somehow know at > runtime whether or not the ipv6 module is loaded, and only try to > resolve those symbols if ipv6 is loaded. That seems complicated. What about aliasing ipv6 to a dummy module "dummy-ipv6-for-bonding" that only provide the required symbols and do (close to) nothing ? Just my two cents. Nicolas. ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Bonding-devel] 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 21:06 ` [Bonding-devel] " Jay Vosburgh 2009-02-17 21:49 ` Brian Haley 2009-02-17 22:30 ` Nicolas de Pesloüan @ 2009-02-17 22:54 ` David Miller 2 siblings, 0 replies; 31+ messages in thread From: David Miller @ 2009-02-17 22:54 UTC (permalink / raw) To: fubar Cc: brian.haley, arvidjaar, jamagallon, netdev, linux-kernel, rjw, bonding-devel From: Jay Vosburgh <fubar@us.ibm.com> Date: Tue, 17 Feb 2009 13:06:28 -0800 > Putting the ipv6 bits into a different module might not help, > either, because the "core" bonding code would still have the call to the > ipv6 functions. Unless there's some magic way to somehow know at > runtime whether or not the ipv6 module is loaded, and only try to > resolve those symbols if ipv6 is loaded. That seems complicated. This is a non-starter, as I described in one of my other replies. ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 20:10 ` Brian Haley 2009-02-17 20:56 ` Thomas Backlund 2009-02-17 21:06 ` [Bonding-devel] " Jay Vosburgh @ 2009-02-17 22:51 ` David Miller 2 siblings, 0 replies; 31+ messages in thread From: David Miller @ 2009-02-17 22:51 UTC (permalink / raw) To: brian.haley Cc: arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel From: Brian Haley <brian.haley@hp.com> Date: Tue, 17 Feb 2009 15:10:23 -0500 > Is it a common configuration to not allow a module to load like > you're doing in modprobe.conf? I don't know how hard it would be to > rip this out into it's own bonding_ipv6.ko module, simply > turning-off CONFIG_IPV6 seems better. It's unfortunately how users get told to turn off ipv6. There were some back-compat issues with how GLIBC emitted DNS requests a few months ago that required turning off ipv6 completely otherwise DNS requests would timeout. Sticking an ipv6.ko module load disable into /etc/modprobe.conf was the only tenable workaround. ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 17:01 ` 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 Andrey Borzenkov 2009-02-17 18:17 ` Andrey Borzenkov @ 2009-02-17 22:29 ` David Miller 2009-02-18 4:41 ` Valdis.Kletnieks 2009-02-19 18:15 ` Randy Dunlap 2 siblings, 1 reply; 31+ messages in thread From: David Miller @ 2009-02-17 22:29 UTC (permalink / raw) To: arvidjaar; +Cc: rjw, netdev, bonding-devel, jamagallon, linux-kernel From: Andrey Borzenkov <arvidjaar@mail.ru> Date: Tue, 17 Feb 2009 20:01:38 +0300 > Forward to bonding and netdev ... > If IPv6 is disable in kernel config bonding loads. But I think it is > regression, it should be possible to disable IPv6 if not required. Don't configure ipv6 into your kernel, really. There is no other way to handle this. If we want to support IPV6 layer things in the bonding driver, it is going to call helper functions in the ipv6 module and therefore must be able to load it and use functions in it. ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 22:29 ` David Miller @ 2009-02-18 4:41 ` Valdis.Kletnieks 2009-02-18 5:29 ` David Miller 2009-02-18 6:55 ` Frank Blaschka 0 siblings, 2 replies; 31+ messages in thread From: Valdis.Kletnieks @ 2009-02-18 4:41 UTC (permalink / raw) To: David Miller Cc: arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel [-- Attachment #1: Type: text/plain, Size: 1325 bytes --] On Tue, 17 Feb 2009 14:29:46 PST, David Miller said: > Don't configure ipv6 into your kernel, really. > > There is no other way to handle this. If we want to support > IPV6 layer things in the bonding driver, it is going to > call helper functions in the ipv6 module and therefore must > be able to load it and use functions in it. What does a poor corporate user do if they're running a distro kernel that was built with CONFIG_IPV6, but local security policy says "Disable IPv6 because we don't do it yet, or because it breaks mission-critical software package XYZ?" There's a *lot* of people who implement that by the "block the ipv6 module from loading" trick. And building a kernel that doesn't include IPv6 may not be feasible due to vendor certification issues... Heck, *I*'m almost in that boat - probably need to use bonded ethernet on some servers because we can't get 10GigE, but the software used in the project the servers were bought for blows chunks if it gets a whiff of an IPv6 address. Ended up spending 3 weeks doing a massive kludgery of one sort in DNS for the rest of the world, and equally massive lying in /etc/hosts for the hosts... (Don't ask - it was long and ugly, and just disabling the module would have saved me about 2.95 weeks of work, so I know where those people are coming from...) [-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --] ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-18 4:41 ` Valdis.Kletnieks @ 2009-02-18 5:29 ` David Miller 2009-02-18 5:55 ` Roland Dreier 2009-02-18 13:55 ` Theodore Tso 2009-02-18 6:55 ` Frank Blaschka 1 sibling, 2 replies; 31+ messages in thread From: David Miller @ 2009-02-18 5:29 UTC (permalink / raw) To: Valdis.Kletnieks Cc: arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel From: Valdis.Kletnieks@vt.edu Date: Tue, 17 Feb 2009 23:41:16 -0500 > What does a poor corporate user do if they're running a distro kernel that > was built with CONFIG_IPV6, but local security policy says "Disable IPv6 > because we don't do it yet, or because it breaks mission-critical software > package XYZ?" There's a *lot* of people who implement that by the "block > the ipv6 module from loading" trick. And building a kernel that doesn't > include IPv6 may not be feasible due to vendor certification issues... > > Heck, *I*'m almost in that boat - probably need to use bonded ethernet on some > servers because we can't get 10GigE, but the software used in the project the > servers were bought for blows chunks if it gets a whiff of an IPv6 address. > Ended up spending 3 weeks doing a massive kludgery of one sort in DNS for the > rest of the world, and equally massive lying in /etc/hosts for the hosts... > (Don't ask - it was long and ugly, and just disabling the module would have > saved me about 2.95 weeks of work, so I know where those people are coming > from...) Well, first of all, if you keep trying to push the box into the round hole you get what you ask for :-) Next, if it's just an issue of IPV6 traffic, install a packet scheduler rule that rejects all packets with ethernet proto ETH_P_IPV6 If openning up ipv6 sockets is problematic, that can be blocked using the security layer, which your super-duper distro kernel is guarenteed to have enabled. :-) I'm sure there is someone who has legacy problems with ipv4 and that can't be disabled, and somehow people cope. Amazing. ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-18 5:29 ` David Miller @ 2009-02-18 5:55 ` Roland Dreier 2009-02-18 13:55 ` Theodore Tso 1 sibling, 0 replies; 31+ messages in thread From: Roland Dreier @ 2009-02-18 5:55 UTC (permalink / raw) To: David Miller Cc: Valdis.Kletnieks, arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel > Next, if it's just an issue of IPV6 traffic, install a packet > scheduler rule that rejects all packets with ethernet proto > ETH_P_IPV6 > > If openning up ipv6 sockets is problematic, that can be blocked > using the security layer, which your super-duper distro kernel > is guarenteed to have enabled. :-) This reminds me of a related issue that some users have run into with IP-over-InfiniBand -- the IPoIB module also depends on ipv6 symbols if ipv6 is enabled, so when ipoib is loaded then ipv6 gets loaded. And this causes a problem from some people in the IB case because assigning an ipv6 address to the ipoib interface actually consumes some network resources (the number of multicast groups that the network supports may be limited and having a solicited node multicast group for each node may use them all up). Anyway, this leads to the folowing question: is there a way to prevent a link-local ipv6 address from being configured automatically for the ipoib interface? Thanks, Roland ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-18 5:29 ` David Miller 2009-02-18 5:55 ` Roland Dreier @ 2009-02-18 13:55 ` Theodore Tso 2009-02-18 16:24 ` Chuck Lever 2009-02-19 13:29 ` Herbert Xu 1 sibling, 2 replies; 31+ messages in thread From: Theodore Tso @ 2009-02-18 13:55 UTC (permalink / raw) To: David Miller Cc: Valdis.Kletnieks, arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel On Tue, Feb 17, 2009 at 09:29:19PM -0800, David Miller wrote: > Next, if it's just an issue of IPV6 traffic, install a packet > scheduler rule that rejects all packets with ethernet proto > ETH_P_IPV6 > > If openning up ipv6 sockets is problematic, that can be blocked > using the security layer, which your super-duper distro kernel > is guarenteed to have enabled. :-) > > I'm sure there is someone who has legacy problems with ipv4 > and that can't be disabled, and somehow people cope. Amazing. The reality is that there are far more people who have legacy problems with ipv6 than ipv4 (which has been around and in active use for about 3 decades, after all), whereas ipv6 has been around and largely ignored for about a decade. :-/ I'll admit that I ran into some wierd sh*t problems with some open source software or another failing mysteriously when IPv6 was enabled, and I dealt with it by simply disabling IPv6 (yeah, I blocked the module). I was in a hurry, and it just didn't work, and I had better thing to do than to spend time trying to debug why the presense of an IPv6 enabled interface caused programs to misbehave in random ways. I think I can pretty much guarantee that distro users will be clamoring for a quick and easy way to block ipv6, and it's in our interest to document the recomended way to block it that doesn't cause weird problems with bonding, etc. - Ted ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-18 13:55 ` Theodore Tso @ 2009-02-18 16:24 ` Chuck Lever 2009-02-18 18:33 ` Vlad Yasevich 2009-02-19 13:29 ` Herbert Xu 1 sibling, 1 reply; 31+ messages in thread From: Chuck Lever @ 2009-02-18 16:24 UTC (permalink / raw) To: Theodore Tso Cc: David Miller, Valdis.Kletnieks, arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel On Feb 18, 2009, at Feb 18, 2009, 8:55 AM, Theodore Tso wrote: > On Tue, Feb 17, 2009 at 09:29:19PM -0800, David Miller wrote: >> Next, if it's just an issue of IPV6 traffic, install a packet >> scheduler rule that rejects all packets with ethernet proto >> ETH_P_IPV6 >> >> If openning up ipv6 sockets is problematic, that can be blocked >> using the security layer, which your super-duper distro kernel >> is guarenteed to have enabled. :-) >> >> I'm sure there is someone who has legacy problems with ipv4 >> and that can't be disabled, and somehow people cope. Amazing. Here's another "me too". Kernel RPC support also has this problem. We hit it just a couple of weeks ago now that we have IPv6 enabled NFS in prototype. If PF_INET6 listener creation fails (eg. because ipv6.ko is blacklisted), our workaround right now is to retry the listener socket creation with PF_INET. There are plenty of somewhat rare corner cases that make this less than ideal. > The reality is that there are far more people who have legacy problems > with ipv6 than ipv4 (which has been around and in active use for about > 3 decades, after all), whereas ipv6 has been around and largely > ignored for about a decade. :-/ > > I'll admit that I ran into some wierd sh*t problems with some open > source software or another failing mysteriously when IPv6 was enabled, > and I dealt with it by simply disabling IPv6 (yeah, I blocked the > module). I was in a hurry, and it just didn't work, and I had better > thing to do than to spend time trying to debug why the presense of an > IPv6 enabled interface caused programs to misbehave in random ways. > > I think I can pretty much guarantee that distro users will be > clamoring for a quick and easy way to block ipv6, and it's in our > interest to document the recomended way to block it that doesn't cause > weird problems with bonding, etc. A better solution would be to design kernel and user space networking to handle this use case, instead of providing a workaround. From the variety of comments I've heard, this use case is pretty common. Considering the government mandates requiring IPv6 support (and the advertisements by Linux vendors claiming IPv6 support), IPv6 needs to become a first-class citizen in Linux in fairly short order. It still feels a little piecemeal to me to be called "production ready." -- Chuck Lever chuck[dot]lever[at]oracle[dot]com ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-18 16:24 ` Chuck Lever @ 2009-02-18 18:33 ` Vlad Yasevich 2009-02-18 19:57 ` Brian Haley 2009-02-18 22:14 ` David Miller 0 siblings, 2 replies; 31+ messages in thread From: Vlad Yasevich @ 2009-02-18 18:33 UTC (permalink / raw) To: Chuck Lever Cc: Theodore Tso, David Miller, Valdis.Kletnieks, arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel Chuck Lever wrote: > On Feb 18, 2009, at Feb 18, 2009, 8:55 AM, Theodore Tso wrote: >> On Tue, Feb 17, 2009 at 09:29:19PM -0800, David Miller wrote: >>> Next, if it's just an issue of IPV6 traffic, install a packet >>> scheduler rule that rejects all packets with ethernet proto >>> ETH_P_IPV6 >>> >>> If openning up ipv6 sockets is problematic, that can be blocked >>> using the security layer, which your super-duper distro kernel >>> is guarenteed to have enabled. :-) >>> >>> I'm sure there is someone who has legacy problems with ipv4 >>> and that can't be disabled, and somehow people cope. Amazing. > > Here's another "me too". And another "me too" for SCTP. When IPv6 is turned on in the kernel config file, we include the necessary pieces into the SCTP module and sctp.ko will not load if ipv6.ko is blacklisted. Having worked in other environments where ipv6 has to be explicitly enabled per interface, I've thought that this level of control was always missing from linux. Being able to configure only the interface that users want seems like a good thing to have. Would a module parameter that disables ipv6 or at least addrconf be enough of a solution? -vlad > > Kernel RPC support also has this problem. We hit it just a couple of > weeks ago now that we have IPv6 enabled NFS in prototype. If PF_INET6 > listener creation fails (eg. because ipv6.ko is blacklisted), our > workaround right now is to retry the listener socket creation with > PF_INET. There are plenty of somewhat rare corner cases that make this > less than ideal. > >> The reality is that there are far more people who have legacy problems >> with ipv6 than ipv4 (which has been around and in active use for about >> 3 decades, after all), whereas ipv6 has been around and largely >> ignored for about a decade. :-/ >> >> I'll admit that I ran into some wierd sh*t problems with some open >> source software or another failing mysteriously when IPv6 was enabled, >> and I dealt with it by simply disabling IPv6 (yeah, I blocked the >> module). I was in a hurry, and it just didn't work, and I had better >> thing to do than to spend time trying to debug why the presense of an >> IPv6 enabled interface caused programs to misbehave in random ways. >> >> I think I can pretty much guarantee that distro users will be >> clamoring for a quick and easy way to block ipv6, and it's in our >> interest to document the recomended way to block it that doesn't cause >> weird problems with bonding, etc. > > A better solution would be to design kernel and user space networking to > handle this use case, instead of providing a workaround. From the > variety of comments I've heard, this use case is pretty common. > > Considering the government mandates requiring IPv6 support (and the > advertisements by Linux vendors claiming IPv6 support), IPv6 needs to > become a first-class citizen in Linux in fairly short order. It still > feels a little piecemeal to me to be called "production ready." > > -- > Chuck Lever > chuck[dot]lever[at]oracle[dot]com > -- > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-18 18:33 ` Vlad Yasevich @ 2009-02-18 19:57 ` Brian Haley 2009-02-18 21:21 ` John Dykstra 2009-02-19 13:32 ` Herbert Xu 2009-02-18 22:14 ` David Miller 1 sibling, 2 replies; 31+ messages in thread From: Brian Haley @ 2009-02-18 19:57 UTC (permalink / raw) To: David Miller, YOSHIFUJI Hideaki Cc: Vlad Yasevich, Chuck Lever, Theodore Tso, Valdis.Kletnieks, arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel [-- Attachment #1: Type: text/plain, Size: 1289 bytes --] Vlad Yasevich wrote: > Having worked in other environments where ipv6 has to be explicitly > enabled per interface, I've thought that this level of control was > always missing from linux. Being able to configure only the interface > that users want seems like a good thing to have. > Would a module parameter that disables ipv6 or at least addrconf be > enough of a solution? There does seem to be a sysctl for it, just doesn't seem to work. Possible patch below. This actually brings up the issue that the "all" ipv6 sysctl, for example net.ipv6.conf.all.disable_ipv6, doesn't actually do anything (at least it didn't seem to for me). Maybe it's time to fix that too to be like IPv4, things like IN_DEV_RPFILTER() and friends aren't looking so bad... I tested this patch on lo and a few Ethernet devices and saw no IPv6 addresses. Don't know if EPERM is the right errno since we don't know if the user set this or DAD failed. The disable_ipv6 knob was meant to be used for the kernel to disable IPv6 on an interface when DAD failed for the link-local address based on the MAC, but we should also be able to administratively disable it on an interface, or the entire system. This patch fixes the per-interface problem. Signed-off-by: Brian Haley <brian.haley@hp.com> [-- Attachment #2: noipv6.patch --] [-- Type: text/x-diff, Size: 421 bytes --] diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 03e2a1a..9bc761f 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -603,6 +603,11 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, int pfxlen, goto out2; } + if (idev->cnf.disable_ipv6) { + err = -EPERM; + goto out2; + } + write_lock(&addrconf_hash_lock); /* Ignore adding duplicate addresses on an interface */ ^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-18 19:57 ` Brian Haley @ 2009-02-18 21:21 ` John Dykstra 2009-02-18 21:29 ` [Bonding-devel] " Stephen Hemminger 2009-02-19 13:32 ` Herbert Xu 1 sibling, 1 reply; 31+ messages in thread From: John Dykstra @ 2009-02-18 21:21 UTC (permalink / raw) To: Brian Haley Cc: David Miller, YOSHIFUJI Hideaki, Vlad Yasevich, Chuck Lever, Theodore Tso, Valdis.Kletnieks, arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel On Wed, 2009-02-18 at 14:57 -0500, Brian Haley wrote: > Vlad Yasevich wrote: > > Having worked in other environments where ipv6 has to be explicitly > > enabled per interface, I've thought that this level of control was > > always missing from linux. > > There does seem to be a sysctl for it, just doesn't seem to work. While this sysctl is definitely useful, I don't think it meets the needs of those users and distributions that are currently blacklisting the ipv6 module. Even if you disable IPv6 on all interfaces, apps will still be able to create AF_INET6 sockets, and thus some apps will break or do inappropriate things because there isn't real IPv6 connectivity. I've tried to put together an RFC patch that turned off all externally-visible IPv6 behavior that could break something, but I keep running into distasteful choices. The current default behavior must be preserved--if you drop this patch into an existing distribution, the IPv6 stack must come up the way it always has. Thus the knob (let's call it ip6_disable) must default false. It seems desirable to make this a per-net-namespace knob. But that means each new net will be initialized before the distribution has a chance to disable the IPv6 part. This will lead to neighbor solicits going out for link-local addresses, which some people can't accept. The only alternative I can think of is to make it a module parameter, which would leverage people's current habit to disable IPv6 via the module configuration files, but doesn't fit well into a virtualized world. Exactly what to disable is unclear too. Turning off neighbor and router solicits, responding to same, etc.--almost certainly. Refusing to create AF_INET6 sockets--definitely. Erroring on ioctl() and netlink API calls related to IPv6--probably. Hiding /proc entries for IPv6--I don't know. Ideally, once ip6_disable was set true, every API, /proc and /sys entries, etc. would look just like the ipv6 module was not loaded. But to do this, while still initializing most of the IPv6 code (so that those hooks from other modules won't do unexpected things) is very invasive. So it seems to me that the only practical solution is to live with blacklisting module ipv6 until the apps are fixed and sending IPv6 packets isn't considered a crime. -- John ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Bonding-devel] 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-18 21:21 ` John Dykstra @ 2009-02-18 21:29 ` Stephen Hemminger 0 siblings, 0 replies; 31+ messages in thread From: Stephen Hemminger @ 2009-02-18 21:29 UTC (permalink / raw) To: John Dykstra Cc: Brian Haley, jamagallon, Valdis.Kletnieks, YOSHIFUJI Hideaki, netdev, linux-kernel, bonding-devel, rjw, Vlad Yasevich, Chuck Lever, Theodore Tso, arvidjaar, David Miller On Wed, 18 Feb 2009 21:21:07 +0000 John Dykstra <john.dykstra1@gmail.com> wrote: > On Wed, 2009-02-18 at 14:57 -0500, Brian Haley wrote: > > Vlad Yasevich wrote: > > > Having worked in other environments where ipv6 has to be explicitly > > > enabled per interface, I've thought that this level of control was > > > always missing from linux. > > > > There does seem to be a sysctl for it, just doesn't seem to work. > > While this sysctl is definitely useful, I don't think it meets the needs > of those users and distributions that are currently blacklisting the > ipv6 module. Even if you disable IPv6 on all interfaces, apps will > still be able to create AF_INET6 sockets, and thus some apps will break > or do inappropriate things because there isn't real IPv6 connectivity. > > I've tried to put together an RFC patch that turned off all > externally-visible IPv6 behavior that could break something, but I keep > running into distasteful choices. > > The current default behavior must be preserved--if you drop this patch > into an existing distribution, the IPv6 stack must come up the way it > always has. Thus the knob (let's call it ip6_disable) must default > false. > > It seems desirable to make this a per-net-namespace knob. But that > means each new net will be initialized before the distribution has a > chance to disable the IPv6 part. This will lead to neighbor solicits > going out for link-local addresses, which some people can't accept. > > The only alternative I can think of is to make it a module parameter, > which would leverage people's current habit to disable IPv6 via the > module configuration files, but doesn't fit well into a virtualized > world. > > Exactly what to disable is unclear too. Turning off neighbor and router > solicits, responding to same, etc.--almost certainly. Refusing to > create AF_INET6 sockets--definitely. Erroring on ioctl() and netlink > API calls related to IPv6--probably. Hiding /proc entries for IPv6--I > don't know. > > Ideally, once ip6_disable was set true, every API, /proc and /sys > entries, etc. would look just like the ipv6 module was not loaded. But > to do this, while still initializing most of the IPv6 code (so that > those hooks from other modules won't do unexpected things) is very > invasive. > > So it seems to me that the only practical solution is to live with > blacklisting module ipv6 until the apps are fixed and sending IPv6 > packets isn't considered a crime. > > -- John There are also ipv6 purists who would like to see the same mechanism exist to force ipv6 only (no ipv4). So any long term solution should support both. ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-18 19:57 ` Brian Haley 2009-02-18 21:21 ` John Dykstra @ 2009-02-19 13:32 ` Herbert Xu 1 sibling, 0 replies; 31+ messages in thread From: Herbert Xu @ 2009-02-19 13:32 UTC (permalink / raw) To: Brian Haley Cc: davem, yoshfuji, vladislav.yasevich, chuck.lever, tytso, Valdis.Kletnieks, arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel Brian Haley <brian.haley@hp.com> wrote: > > There does seem to be a sysctl for it, just doesn't seem to work. OK we should definitely fix that. Thanks, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-18 18:33 ` Vlad Yasevich 2009-02-18 19:57 ` Brian Haley @ 2009-02-18 22:14 ` David Miller 2009-02-19 1:11 ` Vlad Yasevich 1 sibling, 1 reply; 31+ messages in thread From: David Miller @ 2009-02-18 22:14 UTC (permalink / raw) To: vladislav.yasevich Cc: chuck.lever, tytso, Valdis.Kletnieks, arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel From: Vlad Yasevich <vladislav.yasevich@hp.com> Date: Wed, 18 Feb 2009 13:33:42 -0500 > Would a module parameter that disables ipv6 or at least addrconf be > enough of a solution? We have it, it's just that (as others have stated) it doesn't prevent IPV6 sockets from being openned by applications. ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-18 22:14 ` David Miller @ 2009-02-19 1:11 ` Vlad Yasevich 0 siblings, 0 replies; 31+ messages in thread From: Vlad Yasevich @ 2009-02-19 1:11 UTC (permalink / raw) To: David Miller Cc: chuck.lever, tytso, Valdis.Kletnieks, arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel David Miller wrote: > From: Vlad Yasevich <vladislav.yasevich@hp.com> > Date: Wed, 18 Feb 2009 13:33:42 -0500 > >> Would a module parameter that disables ipv6 or at least addrconf be >> enough of a solution? > > We have it, it's just that (as others have stated) it doesn't > prevent IPV6 sockets from being openned by applications. > Is that what people really want to block? Or do they want to prevent the use of IPv6 in environments where IPv6 is not supported? If it's this case, then simply not configuring any IPv6 addresses on the system interfaces will make it seem as if IPv6 is not there. Without IPv6 addresses, AF_INET6 sockets are the same as AF_INET. I really see no reason to block them. Any legacy apps that people might worry about don't use this type socket any way. One doesn't even need to worry about processing IPv6 traffic, since the system would never join any IPv6 multicast groups and thus would never see 99% of the traffic. -vlad ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-18 13:55 ` Theodore Tso 2009-02-18 16:24 ` Chuck Lever @ 2009-02-19 13:29 ` Herbert Xu 1 sibling, 0 replies; 31+ messages in thread From: Herbert Xu @ 2009-02-19 13:29 UTC (permalink / raw) To: Theodore Tso Cc: davem, Valdis.Kletnieks, arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel Theodore Tso <tytso@mit.edu> wrote: > > I think I can pretty much guarantee that distro users will be > clamoring for a quick and easy way to block ipv6, and it's in our > interest to document the recomended way to block it that doesn't cause > weird problems with bonding, etc. We already have a way: echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6 Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-18 4:41 ` Valdis.Kletnieks 2009-02-18 5:29 ` David Miller @ 2009-02-18 6:55 ` Frank Blaschka 1 sibling, 0 replies; 31+ messages in thread From: Frank Blaschka @ 2009-02-18 6:55 UTC (permalink / raw) To: Valdis.Kletnieks Cc: David Miller, arvidjaar, rjw, netdev, bonding-devel, jamagallon, linux-kernel We have the same issue with the qeth_l3 driver (it requires IPv6 symbols). Distributors compile with IPv6 but some customes want to disable IPv6 without building a custom kernel. If there would be a generic solution to address this kind of runtime IPv6 dependencies this would be creat. Valdis.Kletnieks@vt.edu schrieb: > On Tue, 17 Feb 2009 14:29:46 PST, David Miller said: >> Don't configure ipv6 into your kernel, really. >> >> There is no other way to handle this. If we want to support >> IPV6 layer things in the bonding driver, it is going to >> call helper functions in the ipv6 module and therefore must >> be able to load it and use functions in it. > > What does a poor corporate user do if they're running a distro kernel that > was built with CONFIG_IPV6, but local security policy says "Disable IPv6 > because we don't do it yet, or because it breaks mission-critical software > package XYZ?" There's a *lot* of people who implement that by the "block > the ipv6 module from loading" trick. And building a kernel that doesn't > include IPv6 may not be feasible due to vendor certification issues... > > Heck, *I*'m almost in that boat - probably need to use bonded ethernet on some > servers because we can't get 10GigE, but the software used in the project the > servers were bought for blows chunks if it gets a whiff of an IPv6 address. > Ended up spending 3 weeks doing a massive kludgery of one sort in DNS for the > rest of the world, and equally massive lying in /etc/hosts for the hosts... > (Don't ask - it was long and ugly, and just disabling the module would have > saved me about 2.95 weeks of work, so I know where those people are coming > from...) > ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-17 17:01 ` 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 Andrey Borzenkov 2009-02-17 18:17 ` Andrey Borzenkov 2009-02-17 22:29 ` David Miller @ 2009-02-19 18:15 ` Randy Dunlap 2009-02-19 18:19 ` Andrey Borzenkov 2009-02-19 18:20 ` Jay Vosburgh 2 siblings, 2 replies; 31+ messages in thread From: Randy Dunlap @ 2009-02-19 18:15 UTC (permalink / raw) To: Andrey Borzenkov Cc: Rafael J. Wysocki, netdev, bonding-devel, "J.A. Magallón", Linux Kernel Mailing List Andrey Borzenkov wrote: > Forward to bonding and netdev > > On 17 of February 2009 11:52:32 J.A. Magallón wrote: >> Hi all... >> >> Don't know if this is specific for -rc5, I have jumped from 28.4 to >> 29-rc5. In this latest kernel, I can not install 'bonding' module if >> 'ipv6' is disabled to load via modprobe.conf: >> >> install ipv6 /bin/true >> >> Trying bonding gives this dmesg: >> >> bonding: Unknown symbol ndisc_build_skb >> bonding: Unknown symbol in6_dev_finish_destroy >> bonding: Unknown symbol ndisc_send_skb >> bonding: Unknown symbol unregister_inet6addr_notifier >> bonding: Unknown symbol register_inet6addr_notifier >> >> Commenting the line in modprobe.conf makes things smooth again. >> We can not disable ipv6 anymore ? >> > > If IPv6 is disable in kernel config bonding loads. But I think it is > regression, it should be possible to disable IPv6 if not required. Just for clarification, is this a run-time (module load-time) error but not a build error? -- ~Randy ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-19 18:15 ` Randy Dunlap @ 2009-02-19 18:19 ` Andrey Borzenkov 2009-02-19 18:20 ` Jay Vosburgh 1 sibling, 0 replies; 31+ messages in thread From: Andrey Borzenkov @ 2009-02-19 18:19 UTC (permalink / raw) To: Randy Dunlap Cc: Rafael J. Wysocki, netdev, bonding-devel, J.A. Magallón, Linux Kernel Mailing List [-- Attachment #1: Type: text/plain, Size: 1283 bytes --] On 19 of February 2009 21:15:07 Randy Dunlap wrote: > Andrey Borzenkov wrote: > > Forward to bonding and netdev > > > > On 17 of February 2009 11:52:32 J.A. Magallón wrote: > >> Hi all... > >> > >> Don't know if this is specific for -rc5, I have jumped from 28.4 > >> to 29-rc5. In this latest kernel, I can not install 'bonding' > >> module if 'ipv6' is disabled to load via modprobe.conf: > >> > >> install ipv6 /bin/true > >> > >> Trying bonding gives this dmesg: > >> > >> bonding: Unknown symbol ndisc_build_skb > >> bonding: Unknown symbol in6_dev_finish_destroy > >> bonding: Unknown symbol ndisc_send_skb > >> bonding: Unknown symbol unregister_inet6addr_notifier > >> bonding: Unknown symbol register_inet6addr_notifier > >> > >> Commenting the line in modprobe.conf makes things smooth again. > >> We can not disable ipv6 anymore ? > > > > If IPv6 is disable in kernel config bonding loads. But I think it > > is regression, it should be possible to disable IPv6 if not > > required. > > Just for clarification, is this a run-time (module load-time) error > but not a build error? Yes, this is run-time error. If IPV6 is disabled during kernel build, everything works; but the error was seen on distribution kernel which includes IPV6. [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 2009-02-19 18:15 ` Randy Dunlap 2009-02-19 18:19 ` Andrey Borzenkov @ 2009-02-19 18:20 ` Jay Vosburgh 1 sibling, 0 replies; 31+ messages in thread From: Jay Vosburgh @ 2009-02-19 18:20 UTC (permalink / raw) To: Randy Dunlap Cc: Andrey Borzenkov, Rafael J. Wysocki, netdev, bonding-devel, =?ISO-8859-1?Q?=22J=2EA=2E_Magall?= =?ISO-8859-1?Q?=F3n=22?=, Linux Kernel Mailing List Randy Dunlap <randy.dunlap@oracle.com> wrote: >Andrey Borzenkov wrote: >> Forward to bonding and netdev >> >> On 17 of February 2009 11:52:32 J.A. Magallón wrote: >>> Hi all... >>> >>> Don't know if this is specific for -rc5, I have jumped from 28.4 to >>> 29-rc5. In this latest kernel, I can not install 'bonding' module if >>> 'ipv6' is disabled to load via modprobe.conf: >>> >>> install ipv6 /bin/true >>> >>> Trying bonding gives this dmesg: >>> >>> bonding: Unknown symbol ndisc_build_skb >>> bonding: Unknown symbol in6_dev_finish_destroy >>> bonding: Unknown symbol ndisc_send_skb >>> bonding: Unknown symbol unregister_inet6addr_notifier >>> bonding: Unknown symbol register_inet6addr_notifier >>> >>> Commenting the line in modprobe.conf makes things smooth again. >>> We can not disable ipv6 anymore ? >>> >> >> If IPv6 is disable in kernel config bonding loads. But I think it is >> regression, it should be possible to disable IPv6 if not required. > >Just for clarification, is this a run-time (module load-time) error >but not a build error? Yes, module load error, but not a build error. The build with CONFIG_IPV6 is fine, and bonding loads fine as long as ipv6 is loaded. The issue arises when the ipv6 module is prevented from loading; in that case, bonding cannot load because it now requires functionality from ipv6. -J --- -Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com ^ permalink raw reply [flat|nested] 31+ messages in thread
end of thread, other threads:[~2009-03-04 11:46 UTC | newest]
Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <alpine.LFD.2.00.0902131413120.3179@localhost.localdomain>
[not found] ` <20090217095232.5da06b9f@werewolf.home>
2009-02-17 17:01 ` 2.6.29 regression? Bonding tied to IPV6 in 29-rc5 Andrey Borzenkov
2009-02-17 18:17 ` Andrey Borzenkov
2009-02-17 20:08 ` [Bonding-devel] " Jay Vosburgh
2009-02-17 22:49 ` David Miller
2009-02-17 20:10 ` Brian Haley
2009-02-17 20:56 ` Thomas Backlund
2009-02-17 21:06 ` [Bonding-devel] " Jay Vosburgh
2009-02-17 21:49 ` Brian Haley
2009-02-17 22:24 ` Jay Vosburgh
2009-03-04 11:46 ` Jan Engelhardt
2009-02-17 22:30 ` Nicolas de Pesloüan
2009-02-17 22:54 ` David Miller
2009-02-17 22:51 ` David Miller
2009-02-17 22:29 ` David Miller
2009-02-18 4:41 ` Valdis.Kletnieks
2009-02-18 5:29 ` David Miller
2009-02-18 5:55 ` Roland Dreier
2009-02-18 13:55 ` Theodore Tso
2009-02-18 16:24 ` Chuck Lever
2009-02-18 18:33 ` Vlad Yasevich
2009-02-18 19:57 ` Brian Haley
2009-02-18 21:21 ` John Dykstra
2009-02-18 21:29 ` [Bonding-devel] " Stephen Hemminger
2009-02-19 13:32 ` Herbert Xu
2009-02-18 22:14 ` David Miller
2009-02-19 1:11 ` Vlad Yasevich
2009-02-19 13:29 ` Herbert Xu
2009-02-18 6:55 ` Frank Blaschka
2009-02-19 18:15 ` Randy Dunlap
2009-02-19 18:19 ` Andrey Borzenkov
2009-02-19 18:20 ` Jay Vosburgh
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).