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

Sun Sep 4 16:22:25 UTC 2005
Sean O'Connell <oconnell at soe.ucsd.edu>

On Sun, 2005-09-04 at 10:51 -0500, Bryan J. Smith wrote:
> 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  
> 

Well, suffice to say, setting NETWORKING_IPV6=no doesn't work. I gave it
a whirl last night on both CentOS 4.1 and FC3. I also tried adding
IPV6INIT=no to ifcfg-eth0. Alas, neither seems to do the trick. It looks
like one has to resort to one of the other methods.

-- 
Sean