On Sat, 2005-09-03 at 19:06 -0700, Sean O'Connell wrote:
This got me curious. Looking at /etc/sysconfig/network-scripts/ifup- ipv6, you can control ipv6 from /etc/sysconfig/network.
# Uses following information from "/etc/sysconfig/network": # NETWORKING_IPV6=yes|no: controls IPv6 initialization (global setting) # IPV6_DEFAULTDEV=<device>: controls default route (optional) # IPV6_DEFAULTGW=<address>: controls default route (optional)
But that's the Red Hat configuration script approach at boot/init. What is _actually_ enabling/disabling it?
On Sun, 2005-09-04 at 13:24 +0200, Maciej Żenczykowski wrote:
That's what I was thinking of... I haven't tested this in a while (and don't feel like rebooting to test it now), but last time I set NETWORKING_IPV6=no resulted in IPV6 initialization not being performed, _BUT_ enough IPV6 initialization was done (possibly due to module autoloading?) to result in the ipv6 module loading (and that's enough for later programs to do pointless (in a non-IPV6 environment) IPv6 queries/connects/sockets etc.)
Again, still Red Hat approach at boot/init. What is the "common denominator"?
I did a trace from the scripts ...
/etc/sysconfig/network is used by /etc/init.d/network, which calls /etc/sysconfig/network-scripts/init.ipv6-global, which sources /etc/sysconfig/network-scripts/network-functions-ipv6
The init.ipv6.global script basically tests for IPv6 support in the kernel by looking for the existance of /proc/net/if_inet6.
And then it starts looking at the interfaces by running "sysctl -a" and searching for the prefix "net.ipv6.conf." and -- bam! -- there it is, net.ipv6.conf.eth0, etc... There is even a set of IPv6 defaults for interfaces in net.ipv6.conf.default (or even .all for all interfaces). You can use "sysctl -w" to write a value, or "echo >" into the /proc filesystem (/proc/sys/net...).
Now that helps you on startup. You set the defaults on interfaces to not configure autoconf (LINKLOCAL fe80::/64 subnet) address IIRC.
But still, the easiest way to remove IPv6 directly is to use ifconfig. E.g., the LINKLOCAL (fe80::/64 subnet) on my interfaces is: ifconfig eth0 del fe80::201:6cff:fead:f11b/64
And sure enough, the interface doesn't even show up in sysctl anymore. Which makes me wonder if there is a way to disable all IPv6 setup.
Otherwise, here is the homepage for the initscripts-ipv6 scripts: http://www.deepspace6.net/projects/initscripts-ipv6.html