netdev
[Top] [All Lists]

2.6.8.1 IPv6 Routing Problem

To: netdev@xxxxxxxxxxx
Subject: 2.6.8.1 IPv6 Routing Problem
From: Harald Welte <laforge@xxxxxxxxxxxxx>
Date: Sat, 18 Sep 2004 01:08:03 +0200
Cc: usagi-users@xxxxxxxxxxxxxx
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.5.6+20040818i
Hi!

I'm experiencing some strange problems on a 2.6.8.1 vanilla kernel.  I
tried to reproduce it with a minimal system:


1) address configuration (just loopback, link-local and one global)

/proc/sys/net/ipv6/conf # ip -6 addr show
1: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qlen 1000
    inet6 3ffe:400:900:3001::2/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::20d:b9ff:fe00:a88/64 scope link 
       valid_lft forever preferred_lft forever
3: lo: <LOOPBACK,UP> mtu 16436 
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

2) routing table:

/proc/sys/net/ipv6/conf # ip -6 route show
3ffe:400:900:3001::/64 dev eth0  metric 256 
fe80::/64 dev eth0  metric 256 
ff00::/8 dev eth0  metric 256 
default dev eth0  metric 256 
unreachable default dev lo  metric -1  error -101

3) ping to localhost:

(intermixed with a 'ip6tables -A OUTPUT -j LOG' and '-A INPUT -j LOG'
rules for diagnostics).

/proc/sys/net/ipv6/conf # ping6 ::1
PING ::1 (::1): ou IN= OUT=lo 56 data bytes
SRC=0000:0000:0000:0000:0000:0000:0000:0001 
DST=0000:0000:0000:0000:0000:0000:0000:0001 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=0 
PROTO=ICMPv6 TYPE=128 CODE=0 ID=27911 SEQ=0 
in IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:86:dd 
SRC=0000:0000:0000:0000:0000:0000:0000:0001 
DST=0000:0000:0000:0000:0000:0000:0000:0001 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=0 
PROTO=ICMPv6 TYPE=128 CODE=0 ID=27911 SEQ=0 
ou IN= OUT=lo SRC=0000:0000:0000:0000:0000:0000:0000:0001 
DST=0000:0000:0000:0000:0000:0000:0000:0001 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=0 
PROTO=ICMPv6 TYPE=129 CODE=0 ID=27911 SEQ=0 
in IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:86:dd 
SRC=0000:0000:0000:0000:0000:0000:0000:0001 
DST=0000:0000:0000:0000:0000:0000:0000:0001 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=0 
PROTO=ICMPv6 TYPE=129 CODE=0 ID=27911 SEQ=0 
64 bytes from ::1: icmp6_seq=0 ttl=64 time=246.2 ms                


4) ping to global address

/proc/sys/net/ipv6/conf # ping6 3ffe:400:900:3001::2
PING 3ffe:400:90ou IN= OUT=eth0 0:3001::2 
(3ffe:SRC=3ffe:0400:0900:3001:0000:0000:0000:0002 
400:900:3001::2)DST=3ffe:0400:0900:3001:0000:0000:0000:0002 : 56 datLEN=104 
TC=0 HOPLIMIT=64 FLOWLBL=0 
                                   PROTO=ICMPv6 TYPE=128 CODE=0 ID=28167 SEQ=0 
ou IN= OUT=eth0 SRC=3ffe:0400:0900:3001:0000:0000:0000:0002 
DST=ff02:0000:0000:0000:0000:0001:ff00:0002 LEN=72 TC=0 HOPLIMIT=255 FLOWLBL=0 
PROTO=ICMPv6 TYPE=135 CODE=0 
ou IN= OUT=eth0 SRC=3ffe:0400:0900:3001:0000:0000:0000:0002 
DST=ff02:0000:0000:0000:0000:0001:ff00:0002 LEN=72 TC=0 HOPLIMIT=255 FLOWLBL=0 
PROTO=ICMPv6 TYPE=135 CODE=0 
ou IN= OUT=eth0 SRC=3ffe:0400:0900:3001:0000:0000:0000:0002 
DST=3ffe:0400:0900:3001:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=0 
PROTO=ICMPv6 TYPE=128 CODE=0 ID=28167 SEQ=256 
ou IN= OUT=eth0 SRC=3ffe:0400:0900:3001:0000:0000:0000:0002 
DST=ff02:0000:0000:0000:0000:0001:ff00:0002 LEN=72 TC=0 HOPLIMIT=255 FLOWLBL=0 
PROTO=ICMPv6 TYPE=135 CODE=0 
ou IN= OUT=eth0 SRC=3ffe:0400:0900:3001:0000:0000:0000:0002 
DST=3ffe:0400:0900:3001:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=0 
PROTO=ICMPv6 TYPE=128 CODE=0 ID=28167 SEQ=512 
ou IN= OUT=eth0 SRC=3ffe:0400:0900:3001:0000:0000:0000:0002 
DST=3ffe:0400:0900:3001:0000:0000:0000:0002 LEN=152 TC=0 HOPLIMIT=64 FLOWLBL=0 
PROTO=ICMPv6 TYPE=1 CODE=3 [SRC=3ffe:0400:0900:3001:0000:0000:0000:0002 
DST=3ffe:0400:0900:3001:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=0 
PROTO=ICMPv6 TYPE=128 CODE=0 ID=28167 SEQ=0 ] 
ou IN= OUT=eth0 SRC=3ffe:0400:0900:3001:0000:0000:0000:0002 
DST=ff02:0000:0000:0000:0000:0001:ff00:0002 LEN=72 TC=0 HOPLIMIT=255 FLOWLBL=0 
PROTO=ICMPv6 TYPE=135 CODE=0 
ou IN= OUT=eth0 SRC=3ffe:0400:0900:3001:0000:0000:0000:0002 
DST=3ffe:0400:0900:3001:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=0 
PROTO=ICMPv6 TYPE=128 CODE=0 ID=28167 SEQ=768 
                         
--- 3ffe:400:900:3001::2 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss

Apparently the node tries to do neighbour solicitation on itself, and
then even sends an ICMPv6 destination unreachable to itself, all over
the ethernet device ?!?

Can anybody please explain what's going on?

Thanks!

-- 
- Harald Welte <laforge@xxxxxxxxxxxxx>             http://www.netfilter.org/
============================================================================
  "Fragmentation is like classful addressing -- an interesting early
   architectural error that shows how much experimentation was going
   on while IP was being designed."                    -- Paul Vixie

Attachment: signature.asc
Description: Digital signature

<Prev in Thread] Current Thread [Next in Thread>