Re: 2.6.6: IPv6 initialisation bug

From: Russell King (rmk+lkml_at_arm.linux.org.uk)
Date: 06/28/04

  • Next message: Andreas Dilger: "Re: [PATCH] Breaking ext2 file size limit of 2TB"
    Date:	Mon, 28 Jun 2004 18:47:58 +0100
    To: "YOSHIFUJI Hideaki / ?$B5HF#1QL@?(B" <yoshfuji@linux-ipv6.org>
    
    

    On Tue, Jun 29, 2004 at 02:06:27AM +0900, YOSHIFUJI Hideaki / ?$B5HF#1QL@?(B wrote:
    > In article <20040628010200.A15067@flint.arm.linux.org.uk> (at Mon, 28 Jun 2004 01:02:01 +0100), Russell King <rmk+lkml@arm.linux.org.uk> says:
    >
    > > Ok, I've just tried 2.6.7 out on my root-NFS'd firewall with IPv6 built
    > > in, and it doesn't work because of the problem I described below.
    > :
    > > What's the solution?
    >
    > Bring lo up before bring others up.
    > What does prevent you from doing this?
    > (Do we need some bits to do this automatically?)

    When you use root-NFS, the kernel itself brings up the interfaces,
    and IPv6 immediately comes in and tries to configure itself to them,
    trying to create the routes.

    Unfortunately, the kernel doesn't bring up lo first because it
    doesn't know to do that.

    > > Is there a good reason why IPv6 uses the loopback device for local
    > > routes?
    >
    > IPv6 creates kernel routes for local addresses on lo to receive
    > packets for local address.
    >
    > Well, someone probably wants to have
    > static local routes on ethX + temprary (cache) local routes on lo
    > (as IPv4 does; correct me if I'm wrong.)

    This would be preferable I think - it certainly would stop systems
    exploding when you take lo down for whatever reason, even temporarily.
    Currently, if you do that, all your IPv6 local routes die off and
    you're left trying to forward your own local address out various
    itnerfaces.

    > But this won't work because IPv6 does DAD when we make some interface up.
    > We need lo anyway.

    Sorry, I don't understand how this has a bearing on which device the
    local routes are attached to.

    How come IPv4 can be happy having local routes attached to the
    individual interface, yet IPv6 can't be?

    -- 
    Russell King
     Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
     maintainer of:  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
                     2.6 Serial core
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    

  • Next message: Andreas Dilger: "Re: [PATCH] Breaking ext2 file size limit of 2TB"

    Relevant Pages

    • Re: 2.6.6: IPv6 initialisation bug
      ... static local routes on ethX + temprary local routes on lo ... But this won't work because IPv6 does DAD when we make some interface up. ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • PROBLEM: IPv6 Dependencies Incorrect (2.6.8-rc4)
      ... One line summary of the problem: IPv6 Dependencies Incorrect ... I found that hard-compiling CONFIG_IPV6 into the kernel while ... used to compile 2.6.8-rc4. ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • constructing IPv6 in6_addr structure from ipv6
      ... Is there a recommended way to construct a struct sockaddr_in6 in kernel ... which is the format the connect function on a socket requires for ipv6 ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: [-mm patch] seccomp: dont say it was more or less mandatory
      ... > You don't need this feature unless you know you need it. ... unsure while they configure the kernel I certainly prefer that they set ... but even the IPv6 help text still suggests to say N ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: dmesg gives me request_module fail 2.6.1
      ... net-pf-10 is IPv6, if you don't have that in your kernel, add the ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)