[CentOS] Re: sshd ipv6 logging in CentOS4 -- IPv6 at the kernel parameter level

Bryan J. Smith b.j.smith at ieee.org
Sun Sep 4 15:51:24 UTC 2005

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:  

Bryan J. Smith     b.j.smith at ieee.org     http://thebs413.blogspot.com
The best things in life are NOT free - which is why life is easiest if
you save all the bills until you can share them with the perfect woman

More information about the CentOS mailing list