From: "Kolbjørn Barmen" <linux@kolla.no>
To: Brian Haley <brian.haley@hp.com>
Cc: "Kolbjørn Barmen" <linux@kolla.no>,
"Vlad Yasevich" <vladislav.yasevich@hp.com>,
davem@davemloft.net, yoshfuji@linux-ipv6.org,
netdev@vger.kernel.org
Subject: Re: IPv6 autoconf/accept_ra default values - revisited
Date: Tue, 16 Feb 2010 22:58:13 +0100 (CET) [thread overview]
Message-ID: <alpine.LNX.2.01.1002162206090.2396@halbrend.uninett.no> (raw)
In-Reply-To: <4B57359D.8090205@hp.com>
On Wed, 20 Jan 2010, Brian Haley wrote:
> Hi Kolbjorn,
Hello, thanks for answering, and I'm sorry that I havent replied earlier.
> Kolbjørn Barmen wrote:
> > Cheers, remember me? :)
> >
> > Regarding the autoconf parameter for the ipv6 module, was it not the
> > intention that it should cover accept_ra as well?
>
> It wasn't my intention, but I see how there's a bit of a mess here.
>
> > I ask since I have used this paramater in the belief that it also did
> > cover accept_ra, however on a couple of systems that are using bridge
> > interface, I noticed that they "fall off" ipv6-wise, unless I
> > explisitly ping them.
> >
> > So I finally got around to find out what was going on, and to my
> > surprise I see that they both have autoconfigured routes on eth0
> > (using link local) that they want to use instead of what I have
> > statically configured for br0.
>
> So I re-read RFCs 4861 and 4862 to see what the recommendation was here,
> and found this paragraph which I think explains what the Linux kernel is
> doing:
>
> [RFC 4861, Section 6.3.4]
>
> Note: Implementations can choose to process the on-link aspects of
> the prefixes separately from the stateless address
> autoconfiguration aspects of the prefixes by, e.g., passing a copy
> of each valid Router Advertisement message to both an "on-link"
> and an "addrconf" function. Each function can then operate
> independently on the prefixes that have the appropriate flag set.
>
> I'm guessing whoever wrote this code followed this suggestion for a
> reason.
>
> For a test, can you turno-off accept_ra/accept_ra_defrtr/accept_ra_pinfo
What are they, documented anywhere?
> and see if you can get the behavior you want?
I must admit that I havent tried using those yet, but still
I somehow managed to get what I want like this:
~ # cat /etc/modprobe.d/ipv6.conf
options ipv6 disable_ipv6=1 autoconf=0
~ # cat /etc/sysctl.d/ipv6.conf
net.ipv6.conf.default.autoconf=0
net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.all.autoconf=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.lo.disable_ipv6=0
I'm still not convinced it really works, but it looks good so far.
> > So, could "autoconf" also please turn off accept_ra?
> > Or, if you like, add another parameter for it :P
>
> There are other things in the RA that are useful, like MTU, turning-off
> accept_ra would miss that
So what is one supposed to do when one wants fully statically configured
IPv6 addresses and routes? Or is that not supposed to be possible?
> I think maybe ignoring the prefix info options when autoconf=0 might be
> what you want. I guess we could do another module parameter if we had
> to.
Yes - all I want is ignore prefix and router announcements, they are not
to be trusted.
> > I tried using disable_ipv6 in all kinds of tricky ways to get what I want,
> > but it's close to impossble, with interfaces coming and going in the
> > bridge I always end up with autoconfigured addresses where I dont want
> > them, strange routing issues etc. I cannot just add entries in sysctl.conf
> > for bridge interfaces, since the bridge interfaces (and others for that
> > matter) are not there when sysctl is run on bootup.
>
> If you set "default.disable_ipv6=1" that should be inherited when a new
> interface is configured.
Right.
> > And the entire "all" vs. "default" still confuses me.
> >
> > * "default" is supposed to cover _all future_ interfaces?
> > * "all" is supposed to cover _all existing_ interfaces, and change them?
> > If not, then what is its function?
>
> Yes, "default" covers future interfaces, but "all" behavior depends on
> the option - "all->forwarding" and "all->disable_ipv6" will reset
> interfaces and "all->proxy_ndp" affects all interfaces. Other than
> that, the "all" variables seem not to be used. Making it more like the
> IPv4 code sooner than later might be a good thing, maybe others have
> thoughts on that?
I'd say yes, and the sooner the better.
(I've noticed the Debian has "Full IPv6 support" in their feature list for
next release this summer, it would be nice to have something ready for that.)
> > And lastly - all this would be a non-issue if the defaults values were so
> > that all autoconf/accept_ra were 0 - it's _so_ easy to turn on, but
> > incredibly complicated to turn off. The harder it is to make sense out of
> > things like this, the harder it is to have people start with IPv6.
>
> I don't think that default is going to change since it would effectively
> disable IPv6 for 99.9% of users, my grandmother would wonder why nothing works
> any more and not know how to fix it :) In other words, people not doing
> autoconfiguration are in the minority, and might need to change all these
> default settings, but we should make it easier to use.
Right, here it comes, the "most users" argument.
Sorry, but I just want to rant a little over this ;)
Your grandmother will be pretty fed up anyways since some random wifi
stumbler with 6to4 accidently turned on, jumps on her weakly configured
access point, announcing routes so that her computer now routes all
traffic through the stumblers laptop, which works fine till the stumbler
vanishes, leaving your grandmother's computer with lots of stalled TCP
sessions and a broken default gateway. Not to mention all the timeouts she
will have to wait for as her computer attempts to contact all the ipv6
addresses it resolves before finally, maybe, trying ipv4 instead.
I have worked with ipv6 in "production" long enough to know that the
overly optimistic view on how things are supposed to work is one of the
big obstacles for deployment of IPv6, it's just too fragile...
6to4 accidently activated on a machine on the LAN? Boom!
Loop between LANs as resault of accident plugging on switch? Boom!
Multihomed machine accidently forwards between interfaces? Boom!
And what do you do when suddenly you have heaploads of machiens with
nonworking IPv6 configurations? DHCPv6 to the rescue? Or not? :)
Not to mention all the IPv6 related bugs that exist in network gear
like controllers and gateways/bridges (wifi, VPN, whatever).
Ooops, I guess I just did. :)
Cheers!
-- kolla
next prev parent reply other threads:[~2010-02-16 21:59 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-25 1:49 [PATCH] IPv6: Add 'autoconf' and 'disable_ipv6' module parameters Brian Haley
2009-03-25 2:12 ` Vlad Yasevich
2009-03-25 4:28 ` Kolbjørn Barmen
2009-03-25 11:51 ` Vlad Yasevich
2009-03-25 15:28 ` Brian Haley
2010-01-19 23:45 ` IPv6 autoconf/accept_ra default values - revisited Kolbjørn Barmen
2010-01-20 16:55 ` Brian Haley
2010-02-16 21:58 ` Kolbjørn Barmen [this message]
2010-02-17 16:54 ` Brian Haley
2009-03-25 12:36 ` [PATCH] IPv6: Add 'autoconf' and 'disable_ipv6' module parameters Vlad Yasevich
2009-03-25 15:54 ` Brian Haley
2009-03-25 15:22 ` Brian Haley
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.LNX.2.01.1002162206090.2396@halbrend.uninett.no \
--to=linux@kolla.no \
--cc=brian.haley@hp.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=vladislav.yasevich@hp.com \
--cc=yoshfuji@linux-ipv6.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).