Bug 237642
Summary: | anaconda disables IPv6 globally. | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | David Woodhouse <dwmw2> |
Component: | anaconda | Assignee: | David Cantrell <dcantrell> |
Status: | CLOSED RAWHIDE | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | notting |
Target Milestone: | --- | Keywords: | Reopened |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2007-04-26 12:45:52 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 150226 |
Description
David Woodhouse
2007-04-24 12:48:35 UTC
If you want the ipv6.ko module not to be loaded unless some interface is configured to use IPv6, then file an initscripts RFE. Doing it in anaconda is very wrong. (In reply to comment #0) > When I rebooted, I found that the IPv6 module wasn't loaded, and 'modprobe ipv6' > didn't work. After a while I found that anaconda had written 'install ipv6 > /bin/true' to a file in /etc/modprobe.d. This is thew new canonical and right way to do it; initscripts no longer has the NETWORKING_IPV6 stuff. The rest certainly doesn't sound correct, though. (In reply to comment #2) > This is thew new canonical and right way to do it; initscripts no longer has the > NETWORKING_IPV6 stuff. Hm. Still, it's rare that you should actually need to turn off IPv6 -- it should need explicit action on the part of the user. Thinking back, I may have lied -- this install on my PS3 may have been from DVD rather than a network install. So it might not have ignored my currently-running network configuration at the time of the install; it might just have been that the default setup it offered me for the eth0 interface had IPv6 disabled, and I didn't notice. If the blacklist is the new way to do it, then system-config-network needs to learn about that -- or preferably the initscripts should learn to create or remove the blacklisting according to whether any of the ifcfg-$INTERFACE files have IPv6 enabled. Better still, we could just disable the 'net-pf-10' autoloading which is triggered by any application calling socket(AF_INET6,...), but still let initscripts load 'ipv6' if it's found to be required by the configuration. No need for the blacklisting of 'ipv6' at all. I've patched anaconda so we only write out one disable-ipv6 file. Stupid me on the previous incarnation. Leaving this in anaconda for now and closing rawhide. Bill, if you want to work on changing how IPv6 is or is not disabled at boot time in initscripts, let me know so I can keep anaconda in sync. Is anaconda now fixed so that it writes out _no_ disable-ipv6 files unless the user takes explicit action to ask it to do so? Yes. It's only written out if you disable IPv6 during installation. I most certainly wouldn't have disabled IPv6 during the installation. I might have neglected to _enable_ it though, if anaconda didn't have it enabled by default. It should default to being enabled -- does it? It's generally harmless even if you're on a network which has only Legacy IP. It is enabled by default in anaconda and has been ever since support for IPv6 during installation was added to rawhide. Hm, so you're telling me I actually went in and _unchecked_ a box asking about IPv6 support, and then forgot about having done so? I find that surprising, but have to admit that it's not altogether impossible. I'll keep an eye out for this in future installs. Yes, seriously, it's been enabled by default now for a _long time_. Fair enough. I know that's true when doing network installs. This was actually the first install I've done from DVD for a very long time. I'll do it again and make sure. You lie. I did a clean install of f7-test4-f7-test4-20070420.0 on my PS3, from DVD. When asked about network configuration I saw nothing about IPv6. I clicked on the 'Edit' button to look at eth0 configuration, and saw that IPv6 was enabled. I clicked 'cancel' to close that dialog box without changing anything. I now see that ifcfg-eth0 doesn't have IPV6INIT=yes in it, and the /etc/modprobe.d/disable-ipv6 hack has been added again. This global disabling of IPv6 is unnecessary -- and initscripts/system-config-network aren't set up to handle it properly yet; in particular nothing will _remove_ the blacklist file when IPv6 _is_ configured. If the user sets IPv6 off for the interfaces visible at install time, that doesn't necessarily mean that IPv6 should be globally disabled. I'd suggest removing this blacklisting entirely, at least until the rest of the system can cope with removing the thing for itself when appropriate. There's no _need_ for the blacklisting anyway, in the common case. Someone pointed out that 'You lie' might be misinterpreted. If so, I apologise -- it's meant in the same context as "oops, I lie!", and not as an implication that you were deliberately misleading. But presumably I didn't need to explain that, and I hope you're not now offended by that fact that I _did_ explain it.... :) Anyway... it looks like there was some miscommunication about the initscripts change. It seems that the initscripts change was made on the basis that disabling IPv6 globally like that is a strange thing to do, which you'd only ever need if you have a broken network environment -- perhaps a nameserver which doesn't respond to AAAA lookups. Thus, it's not worth being a standard part of network configuration in /etc/sysconfig/network any more. It's an esoteric thing which users _can_ do manually if they need to. Anaconda itself should have no need to add this blacklisting. If there is no native IPv6 configured on the local interfaces (remember, anaconda doesn't even have support for adding tunnels and setting up 6to4), that's no reason for anaconda to globally blacklist IPv6. It's not clear why anaconda was setting NETWORKING_IPV6=no before, but in practice that setting was having no effect -- which was, overall, the correct behaviour. We removed NETWORKING_IPV6 from initscripts because it wasn't working, and nobody should be using it. I think the correct response on the anaconda side is to just stop setting it. Not to start blacklisting the IPv6 module instead. The correct holistically-considered response to the question "what should anaconda do instead of setting NETWORKING_IPV6=n?", is "nothing". I appreciate you may have received a different response before, but then you might have phrased the question differently too :) Removed the /etc/modprobe.d/disable-ipv6 stuff from anaconda. The whole reason I put the NETWORKING_IPV6 stuff in there and then later the disable-ipv6 stuff is because users still have (had) it in their mind that being able to completely disable one network stack is (a) possible and (b) something they should care about. Originally, after adding IPv6 support to anaconda (which is continuing to evolve, btw, it's been very difficult to get support in there when we have, say, no engineering requirements other than "Add IPv6 support to anaconda"), I had nothing in there for NETWORKING_IPV6. Users pointed out that if they chose disable IPv6 during install, the ipv6 module was still loaded after rebooting and it confused them. They thought, "but I said to turn off IPv6." At that point I went hunting for a way to prevent that module from loading. I found the NETWORKING_IPV6 variable for the ifcfg files, which seemed flimsy but might be enough to satisfy the users. So I added that. At any rate, there's the backstory from my side. I removed the disable-ipv6 line. Disabling IPv6 going forward means your ifcfg scripts lacks any IPv6 configuration settings, which is fine by me. Closing as rawhide (finally! :) Thanks for the background... and the fix. If you ever need anything IPv6-related, please don't hesitate to ask. Is your test network connected to our internal site-local IPv6 network? Users would be right to believe that disabling IPv6 is possible. But wrong, in general, to believe that it's something that they should care about. And if they _do_ find that disabling IPv6 globally fixes some problem then a bug report should be filed -- either against Fedora or a ticket with their network provider. |