link-local needed w/static IP and gateway?
Charles Sprickman
spork at bway.net
Thu Jun 16 07:12:15 UTC 2011
Hiroki Sato wrote:
> Charles Sprickman <spork at bway.net> wrote
> in <4DF9970D.5000505 at bway.net>:
>
> sp> -Edit rc.conf to include your IPv6 IP(s) and default route, specify
> sp> which interfaces will run IPv6, and enable IPv6:
> sp>
> sp> ipv6_enable="YES"
> sp> ipv6_network_interfaces="lo0 bce1"
> sp> ipv6_defaultrouter="2001:xxx:xxxx::1"
> sp> ipv6_ifconfig_bce1="2001:xxx:xxxx:1::23/48"
> sp>
> sp> -Use sysctl to enable link-local addresses:
> sp>
> sp> # sysctl -w net.inet6.ip6.auto_linklocal=1
>
> This is not needed when ipv6_enable="YES".
Correct, unless you have not rebooted. It would be nice to have a hook
to enabling that in the ipv6 rc.d script though.
> sp> -Bounce the interface, which seems to kick something that triggers the
> sp> kernel to setup link-local addresses:
> sp>
> sp> # ifconfig bce1 down up
> sp> (that's literal - you don't need to down/up it in two commands)
>
> Ditto.
Correct. Unless you haven't rebooted...
> sp> -Run the ipv6 rc.d script:
> sp>
> sp> # /etc/rc.d/network_ipv6 start
>
> I do not recommend to use the rc.d/network_ipv6 script for manual
> configuration because it often ends up an incomplete configuration as
> you experienced. Rebooting the system would be better. The
> rc.d/netif script on 9.X works well for that purpose without a
> reboot, though.
OK. I think there are a fair number of environments (ie: server) where
rebooting for an IP change wouldn't be acceptable. So I would like to
make sure that my manual method is close enough that I can share info
without leading others down the wrong path. Good to hear this will be
easier in 9.x.
> sp> I'm still fuzzy on the explanation, but the default route does not seem
> sp> to stick to the external interface until the link-local address comes
> sp> up, even though the host has learned the L2 address of the default gateway.
>
> On IPv6 router, MLD works only when at least one LLA is configured on
> all of the interfaces. In short, ND will completely be broken on a
> router with a GUA and no LLA.
>
> LLA is a MUST for every IPv6-speaking interface, not for automatic
> router discovery only. This is because ICMPv6 heavily depends on it.
> Without LLA some unexpected and/or inconsistent behaviors can happen,
> especially on a router as you experienced.
I'm puzzled by why hosts with static IPv6 IPs could communicate with
each other. I noticed in some of my netstat output that even though the
ff02 multicast network was in the table, it was only bound to the
loopback. However I still logged multicast to/from the box. One of the
RFCs also noted that multicast is limited in scope to the link-local
address, so in theory, not even the host to host ND should have worked.
I guess that's what threw me.
> I would not recommend you to try to understand what will happen
> without LLA because it is quite complex and just ends up various kind
> of inconsistent behaviors. For why LLA is needed, the primary
> documents are RFC 3810, 4007, 4291, 4861, and 4884.
I knew I'd eventually have to read RFCs. :)
I totally agree with you, and what I've been reading elsewhere suggests
that ND really shouldn't work without a link-local interface enabled. I
have to assume that the multicast traffic somehow still making its way
onto the wire. Not sure if that's a bug or a feature or a quirk of how
what's a L3 protocol (icmp6 multicast) gets mapped to L2.
Thanks,
Charles
> -- Hiroki
More information about the freebsd-net
mailing list