Link-local problems in Linux 2.6.15
Fredrik Tolf <[email protected]> Tue, 04 Apr 2006 02:54:12 +0200
| Newsgroups | gmane.network.ipv6.general |
|---|---|
| Message-ID | <[email protected]> |
Dear List,
I've just replaced a multi-homed Fedora Linux system with Gentoo, and
upgraded the kernel to 2.6.15 in the process. I am now encountering
weird link-local problems, and am turning to you in hopes of solving it.
This system has three NICs, one of which is connected to my IPv4-only
ISP and running a 6to4 tunnel. The other two have statically assigned
6to4 subnets: 2002:52b6:8514:100::/64 and 2002:52b6:8514:200::/64. I'm
running radvd in order to route properly between all subnets. Ever since
I upgraded, link-local IPv6 packets are only being sent to the
2002:52b6:8514:100:: subnet, and none at all to the 2002:52b6:8514:200::
one. When I say none, I really mean none, including neighbor
solicitations, neighbor advertisements and router advertisements from
radvd. This makes that subnet completely disconnected from IPv6. It
seems that the kernel simply refuses link-local packets on any interface
but the one serving 2002:52b6:8514:100:: (there doesn't appear to be a
hardware error or anything), but I have no idea why.
FYI, the names of the interfaces are "wan" (IPv4-only ISP),
"srv" (2002:52b6:8514:100::/64) and "int" (2002:52b6:8514:200::/64). I'm
using ifrename to get consistent names instead of ethX.
For example, when I strace'd radvd, I got this when it tries to send a
RA over the "int" interface:
sendmsg(4, {msg_name(28)={sa_family=AF_INET6, sin6_port=htons(58),
inet_pton(AF_INET6, "ff02::1", &sin6_addr), sin6_flowinfo=0,
sin6_scope_id=if_nametoindex("int")}, msg_iov(1)=[{"\206\0\0\0@\0\7\10\0
\0\0\0\0\0\0\0\3\4@\300\0\'\215\0\0"..., 56}], msg_controllen=32,
{cmsg_len=32, cmsg_level=SOL_IPV6, cmsg_type=, ...}, msg_flags=MSG_OOB|
MSG_PEEK|MSG_PROXY|MSG_TRUNC|MSG_ERRQUEUE|MSG_DONTWAIT|MSG_FIN|
MSG_RST|MSG_NOSIGNAL|0x2f760000}, 0) = -1 EINVAL (Invalid argument)
In contrast, when it attempts to send over the "srv" interface:
sendmsg(4, {msg_name(28)={sa_family=AF_INET6, sin6_port=htons(58),
inet_pton(AF_INET6, "ff02::1", &sin6_addr), sin6_flowinfo=0,
sin6_scope_id=if_nametoindex("srv")}, msg_iov(1)=[{"\206\0\0\0@\0\7\10\0
\0\0\0\0\0\0\0\3\4@\300\0\'\215\0\0"..., 56}], msg_controllen=32,
{cmsg_len=32, cmsg_level=SOL_IPV6, cmsg_type=, ...}, msg_flags=0},
0) = 56
I don't know why msg_flags differs between the two, but I doubt that to
be the cause of the problems, since the kernel refuses to transmit its
own internally generated neighbor solicitations and such as well.
Also, this happens when I try to ping6 link-local addresses:
pc17 ~ # ping6 -I srv fe80::dead:cafe
PING fe80::dead:cafe(fe80::dead:cafe) from fe80::2a0:c9ff:fed1:7099 srv:
56 data bytes
--- fe80::dead:cafe ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1012ms
pc17 ~ # ping6 -I int fe80::dead:cafe
connect: Cannot assign requested address
pc17 ~ # ping6 -I wan fe80::dead:cafe
connect: Cannot assign requested address
I'm not sure what information would be useful to solve this, so I'll
just send along the standard interface information below.
Thank you for your time!
Fredrik Tolf
---
pc17 ~ # ip link
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
3: wan: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:c0:26:c0:33:05 brd ff:ff:ff:ff:ff:ff
4: srv: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:a0:c9:d1:70:99 brd ff:ff:ff:ff:ff:ff
5: int: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:02:44:15:f9:8b brd ff:ff:ff:ff:ff:ff
6: 6tun@NONE: <NOARP,UP> mtu 1480 qdisc noqueue
link/sit 82.182.133.20 brd 0.0.0.0
pc17 ~ # ip -6 addr
1: lo: <LOOPBACK,UP> mtu 16436
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: wan: <BROADCAST,MULTICAST,UP> mtu 1500 qlen 1000
inet6 fe80::2c0:26ff:fec0:3305/64 scope link tentative
valid_lft forever preferred_lft forever
4: srv: <BROADCAST,MULTICAST,UP> mtu 1500 qlen 1000
inet6 fe80::2a0:c9ff:fed1:7099/64 scope link
valid_lft forever preferred_lft forever
inet6 2002:52b6:8514:100::1/64 scope global
valid_lft forever preferred_lft forever
5: int: <BROADCAST,MULTICAST,UP> mtu 1500 qlen 1000
inet6 2002:52b6:8514:200::1/64 scope global tentative
valid_lft forever preferred_lft forever
inet6 fe80::202:44ff:fe15:f98b/64 scope link tentative
valid_lft forever preferred_lft forever
6: 6tun@NONE: <NOARP,UP> mtu 1480
inet6 2002:52b6:8514::1/16 scope global
valid_lft forever preferred_lft forever
inet6 ::82.182.133.20/128 scope global
valid_lft forever preferred_lft forever
pc17 ~ # ip -6 route
::/96 via :: dev 6tun metric 256 expires 21331099sec mtu 1480 advmss
1420 metric 10 4294967295
2002:52b6:8514:100::/64 dev srv metric 256 expires 21331168sec mtu
1500 advmss 1440 metric 10 4294967295
2002:52b6:8514:200::/64 dev int metric 256 expires 21331102sec mtu
1500 advmss 1440 metric 10 4294967295
2002::/16 dev 6tun metric 256 expires 21331099sec mtu 1480 advmss 1420
metric 10 4294967295
2000::/3 via ::192.88.99.1 dev 6tun metric 1024 expires 21331099sec
mtu 1480 advmss 1420 metric 10 4294967295
fe80::/64 dev 6tun metric 256 expires 21331099sec mtu 1480 advmss 1420
metric 10 4294967295
fe80::/64 dev int metric 256 expires 21331102sec mtu 1500 advmss 1440
metric 10 4294967295
fe80::/64 dev wan metric 256 expires 21331107sec mtu 1500 advmss 1440
metric 10 4294967295
fe80::/64 dev srv metric 256 expires 21331168sec mtu 1500 advmss 1440
metric 10 4294967295
ff00::/8 dev 6tun metric 256 expires 21331099sec mtu 1480 advmss 1420
metric 10 4294967295
ff00::/8 dev int metric 256 expires 21331102sec mtu 1500 advmss 1440
metric 10 4294967295
ff00::/8 dev wan metric 256 expires 21331107sec mtu 1500 advmss 1440
metric 10 4294967295
ff00::/8 dev srv metric 256 expires 21331168sec mtu 1500 advmss 1440
metric 10 4294967295
unreachable default dev lo proto none metric -1 error -101 metric 10
255
pc17 ~ # ip -6 maddr
1: lo
inet6 ff02::1
3: wan
inet6 ff02::1:ff00:0
inet6 ff02::2
inet6 ff02::1:ffc0:3305
inet6 ff02::1
4: srv
inet6 ff02::1:ff00:0 users 2
inet6 ff02::2 users 2
inet6 ff02::1:ffd1:7099
inet6 ff02::1:ff00:1
inet6 ff02::1
5: int
inet6 ff02::1:ff00:0 users 2
inet6 ff02::2 users 2
inet6 ff02::1:ff00:1
inet6 ff02::1:ff15:f98b
inet6 ff02::1
6: 6tun
inet6 ff02::1
---------------------------------------------------------------------
The IPv6 Users Mailing List
Unsubscribe by sending "unsubscribe users" to [email protected]