IPv6 addresses and unwanted routing entries

Richard Achmatowicz rachmato at redhat.com
Wed May 13 16:34:36 UTC 2009


Hello

I'm using Fedora 8 but I have the same problem on RHEL 5. Before I 
submit this issue as a bug, I wanted to check if my understanding is not 
flawed in some way.

For some reason, when I create an IPv6 address (global or link-local) on 
interface eth0, three related routs are added:

3ffe:ffff:100:f101::/64                     
*                                       U     256    0        0 eth0
3ffe:ffff:100:f101::/128                    
*                                       U     0      0        1 lo
3ffe:ffff:100:f101::1/128                   
*                                       U     0      0        1 lo

The latter of these, the most specific, drives all datagrams onto lo 
instead of eth0.
I'm trying to find out why. I didn't ask for a route to lo to be 
created, so why is it being created?

This behavior is causing Sun JDK 6 to behave badly when working with 
IPv6 addresses in certain contexts (Sun bug 6800096).

Any ideas appreciated...A full example of what is happening is listed below.

Richard








# OS
[root at localhost nrla]# uname -a
Linux localhost.localdomain 2.6.26.8-57.fc8 #1 SMP Thu Dec 18 19:19:45 
EST 2008 i686 i686 i386 GNU/Linux
 
$ IPv6 routing table  
[nrla at localhost ~]$ /sbin/route -A inet6
Kernel IPv6 routing table
Destination                                 Next 
Hop                                Flags Metric Ref    Use Iface
fe80::/64                                   
*                                       U     256    0        0 eth0
localhost6.localdomain6/128                 
*                                       U     0      1        1 lo
fe80::/128                                  
*                                       U     0      0        1 lo
lenovo6/128                                 
*                                       U     0      0        1 lo
ff00::/8                                    
*                                       U     256    0        0 eth0 

# Add a IPv6 global address to eth0  
[root at localhost nrla]# ip -6 addr add 3ffe:ffff:0100:f101::1/64 dev eth0
 
# All traffic is routed via lo - why?  
[root at localhost nrla]# route -A inet6
Kernel IPv6 routing table
Destination                                 Next 
Hop                                Flags Metric Ref    Use Iface
3ffe:ffff:100:f101::/64                     
*                                       U     256    0        0 eth0
fe80::/64                                   
*                                       U     256    0        0 eth0
localhost6.localdomain6/128                 
*                                       U     0      1        1 lo
3ffe:ffff:100:f101::/128                    
*                                       U     0      0        1 lo
3ffe:ffff:100:f101::1/128                   
*                                       U     0      0        1 lo
fe80::/128                                  
*                                       U     0      0        1 lo
lenovo6/128                                 
*                                       U     0      0        1 lo
ff00::/8                                    
*                                       U     256    0        0 eth0






More information about the kernel mailing list