problem with 2 host direct connect ipv6 routing
Kevin McMahon <[email protected]> Mon, 8 May 2006 14:34:19 -0500 (CDT)
| Newsgroups | gmane.network.ipv6.general |
|---|---|
| Message-ID | <[email protected]> |
Hi,
I am attempting to have an application use default routing to
automatically select the eth1 device (GiGE, MTU 9000) for use
rather than the eth0 device (GiGE, MTU 1500)
Two host system, two GiGE ethernet adapters in each machine.
The first device, eth0, connects to a switch. The second device,
eth1, directly connects point-to-point to another host eth1 adapter.
SuSE SLES 9 Linux 2.6 kernel.
For reference, I've included the details of what I am
attempting below.
I'm attempting to set up the following config
[-------------] [-------------]
[ ] [ ]
[ Host A ] [ Host B ]
[ ] [ ]
[ ] [ ]
[ ] [ ]
[ ] [ ]
[ (eth0) ]---->[switch]---->[ (eth0) ]
[ ( ) ]<----[ ]<----[ ( ) ]
[ ] [ ]
[ (eth1) ]----------------->[ (eth1) ]
[ ( ) ]<-----------------[ ( ) ]
[ ] [ ]
[ ] [ ]
[-------------] [-------------]
two hosts,
each with two GigE ethernet boards
eth0 - main corp network, MTU 1500, with switch
eth1 - private point-to-point network, MTU 9000, direct connect, no switch
For example,
# WORKS! ...
ping6 -I eth1 <ipv6_addr>
works fine. But, my attempt to add a default route with the
ip command did not allow the following to work...
# FAILS! ...
ping6 <ipv6_addr>
Another twist...eth0 is the normal company network, while my
eth1 is a direct connection (no switch) over GigE w/ MTU 9000
between two Linux ia64 boxes.
I have the systems now, in case you want more info or to have
me try anything...
Also, I want to be sure that I'm only using ipv6 over the eth1
device at the higher speeds and that I am not running ipv6-over-ipv4
on either eth0 or eth1. I suppose the client server benchmark
results should make this obvious...
Thanks!
Kevin
==============================
Kevin McMahon
==============================
---------------------------------
Here is my session for baseline
---------------------------------
- simple ping6 of other side using the ping6 "-I eth1" argument
and no default route
- add default route, ping6 fails without the "-I eth1" argument
vortix 122% uname -a
Linux vortix 2.6.5-7.244-sn2 #1 SMP Mon Dec 12 18:32:25 UTC 2005
ia64 ia64 ia64 GNU/Linux
vortix 123% cat /etc/*elease
LSB_VERSION="core-2.0-noarch:core-3.0-noarch:core-2.0-ia64:core-3.0-ia64"
SGI ProPack 4SP3 for Linux, Build 403r1-0512182217
SUSE LINUX Enterprise Server 9 (ia64)
VERSION = 9
PATCHLEVEL = 3
vortix 125% rpm -qf `which ping6`
iputils-ss021109-147.1
-----------------------------------------------------------------
# Baseline - simply ping6 the other host over eth1 - ping6 works
-----------------------------------------------------------------
------------
# Host 1
------------
vortix 112% ifconfig -a eth0
eth0 Link encap:Ethernet HWaddr 08:00:69:13:DF:F5
inet addr:192.102.99.141 Bcast:192.102.99.255 Mask:255.255.255.0
inet6 addr: fe80::a00:69ff:fe13:dff5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:359619 errors:0 dropped:0 overruns:0 frame:0
TX packets:73360 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:28105748 (26.8 Mb) TX bytes:68866550 (65.6 Mb)
Interrupt:62
vortix 113% ifconfig -a eth1
eth1 Link encap:Ethernet HWaddr 08:00:69:12:69:92
inet addr:192.168.101.1 Bcast:192.168.101.255 Mask:255.255.255.0
inet6 addr: fe80::a00:69ff:fe12:6992/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:612 (612.0 b)
Interrupt:69
vortix 114% ip -f inet6 route
fe80::/64 dev eth0 metric 256 mtu 1500 advmss 1440 fragtimeout 64
fe80::/64 dev eth1 metric 256 mtu 9000 advmss 8940 fragtimeout 64
fe80::/64 dev eth2 metric 256 mtu 1500 advmss 1440 fragtimeout 64
ff00::/8 dev eth0 metric 256 mtu 1500 advmss 1440 fragtimeout 1
ff00::/8 dev eth1 metric 256 mtu 9000 advmss 8940 fragtimeout 1
ff00::/8 dev eth2 metric 256 mtu 1500 advmss 1440 fragtimeout 1
unreachable default dev lo proto none metric -1 error -101 fragtimeout 255
vortix 115% ping6 -I eth1 -c 5 fe80::a00:69ff:fe12:6a02
PING fe80::a00:69ff:fe12:6a02(fe80::a00:69ff:fe12:6a02) from fe80::a00:69ff:fe12:6992 eth1: 56 data bytes
64 bytes from fe80::a00:69ff:fe12:6a02: icmp_seq=1 ttl=64 time=0.675 ms
64 bytes from fe80::a00:69ff:fe12:6a02: icmp_seq=2 ttl=64 time=0.097 ms
64 bytes from fe80::a00:69ff:fe12:6a02: icmp_seq=3 ttl=64 time=0.094 ms
64 bytes from fe80::a00:69ff:fe12:6a02: icmp_seq=4 ttl=64 time=0.095 ms
64 bytes from fe80::a00:69ff:fe12:6a02: icmp_seq=5 ttl=64 time=0.094 ms
--- fe80::a00:69ff:fe12:6a02 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4002ms
rtt min/avg/max/mdev = 0.094/0.211/0.675/0.232 ms
-----------------------------------------------------------------------
------------
# Host 2
------------
vortix2 102% ifconfig -a eth0
eth0 Link encap:Ethernet HWaddr 08:00:69:13:DD:A4
inet addr:192.102.99.66 Bcast:192.102.99.255 Mask:255.255.255.0
inet6 addr: fe80::a00:69ff:fe13:dda4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:27780 errors:0 dropped:0 overruns:0 frame:0
TX packets:826 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2099739 (2.0 Mb) TX bytes:77249 (75.4 Kb)
Interrupt:62
vortix2 103% ifconfig -a eth1
eth1 Link encap:Ethernet HWaddr 08:00:69:12:6A:02
inet addr:192.168.101.2 Bcast:192.168.101.255 Mask:255.255.255.0
inet6 addr: fe80::a00:69ff:fe12:6a02/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:612 (612.0 b)
Interrupt:71
vortix2 104% ip -f inet6 route
fe80::/64 dev eth0 metric 256 mtu 1500 advmss 1440 fragtimeout 64
fe80::/64 dev eth1 metric 256 mtu 9000 advmss 8940 fragtimeout 64
ff00::/8 dev eth0 metric 256 mtu 1500 advmss 1440 fragtimeout 1
ff00::/8 dev eth1 metric 256 mtu 9000 advmss 8940 fragtimeout 1
unreachable default dev lo proto none metric -1 error -101 fragtimeout 255
vortix2 105% ping6 -I eth1 -c 5 fe80::a00:69ff:fe12:6992
PING fe80::a00:69ff:fe12:6992(fe80::a00:69ff:fe12:6992) from fe80::a00:69ff:fe12:6a02 eth1: 56 data bytes
64 bytes from fe80::a00:69ff:fe12:6992: icmp_seq=1 ttl=64 time=0.146 ms
64 bytes from fe80::a00:69ff:fe12:6992: icmp_seq=2 ttl=64 time=0.105 ms
64 bytes from fe80::a00:69ff:fe12:6992: icmp_seq=3 ttl=64 time=0.102 ms
64 bytes from fe80::a00:69ff:fe12:6992: icmp_seq=4 ttl=64 time=0.103 ms
64 bytes from fe80::a00:69ff:fe12:6992: icmp_seq=5 ttl=64 time=0.103 ms
--- fe80::a00:69ff:fe12:6992 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4003ms
rtt min/avg/max/mdev = 0.102/0.111/0.146/0.021 ms
-----------------------------------------------------------------
# Next, try setting default route to eth1 on each side
- ping6 fails w/o the "-I eth1" argument
-----------------------------------------------------------------
------------
# Host 1
------------
n6965@vortix:/root> route -A inet6 add ::/0 gw fe80::a00:69ff:fe12 dev eth1
n6965@vortix:/root> ip -f inet6 route
fe80::/64 dev eth0 metric 256 mtu 1500 advmss 1440 fragtimeout 64
fe80::/64 dev eth1 metric 256 mtu 9000 advmss 8940 fragtimeout 64
fe80::/64 dev eth2 metric 256 mtu 1500 advmss 1440 fragtimeout 64
ff00::/8 dev eth0 metric 256 mtu 1500 advmss 1440 fragtimeout 1
ff00::/8 dev eth1 metric 256 mtu 9000 advmss 8940 fragtimeout 1
ff00::/8 dev eth2 metric 256 mtu 1500 advmss 1440 fragtimeout 1
default via fe80::a00:69ff:fe12 dev eth1 metric 1 mtu 9000 advmss 8940 fragtimeout 64
n6965@vortix:/root> exit
exit
vortix 120% ping6 -I eth1 -c 5 fe80::a00:69ff:fe12:6a02
PING fe80::a00:69ff:fe12:6a02(fe80::a00:69ff:fe12:6a02) from fe80::a00:69ff:fe12:6992 eth1: 56 data bytes
64 bytes from fe80::a00:69ff:fe12:6a02: icmp_seq=1 ttl=64 time=0.606 ms
64 bytes from fe80::a00:69ff:fe12:6a02: icmp_seq=2 ttl=64 time=0.105 ms
64 bytes from fe80::a00:69ff:fe12:6a02: icmp_seq=3 ttl=64 time=0.096 ms
64 bytes from fe80::a00:69ff:fe12:6a02: icmp_seq=4 ttl=64 time=0.094 ms
64 bytes from fe80::a00:69ff:fe12:6a02: icmp_seq=5 ttl=64 time=0.095 ms
--- fe80::a00:69ff:fe12:6a02 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4001ms
rtt min/avg/max/mdev = 0.094/0.199/0.606/0.203 ms
vortix 121% ping6 -c 5 fe80::a00:69ff:fe12:6a02
connect: Invalid argument
------------------------------------------------------------------
------------
# Host 2
------------
n6965@vortix2:/store/n6965> route -A inet6 add ::/0 gw fe80::a00:69ff:fe12 dev eth1
n6965@vortix2:/store/n6965> ip -f inet6 route
fe80::/64 dev eth0 metric 256 mtu 1500 advmss 1440 fragtimeout 64
fe80::/64 dev eth1 metric 256 mtu 9000 advmss 8940 fragtimeout 64
ff00::/8 dev eth0 metric 256 mtu 1500 advmss 1440 fragtimeout 1
ff00::/8 dev eth1 metric 256 mtu 9000 advmss 8940 fragtimeout 1
default via fe80::a00:69ff:fe12 dev eth1 metric 1 mtu 9000 advmss 8940 fragtimeout 64
vortix2 107% ping6 -I eth1 -c 5 fe80::a00:69ff:fe12:6992
PING fe80::a00:69ff:fe12:6992(fe80::a00:69ff:fe12:6992) from fe80::a00:69ff:fe12:6a02 eth1: 56 data bytes
64 bytes from fe80::a00:69ff:fe12:6992: icmp_seq=1 ttl=64 time=0.888 ms
64 bytes from fe80::a00:69ff:fe12:6992: icmp_seq=2 ttl=64 time=0.111 ms
64 bytes from fe80::a00:69ff:fe12:6992: icmp_seq=3 ttl=64 time=0.100 ms
64 bytes from fe80::a00:69ff:fe12:6992: icmp_seq=4 ttl=64 time=0.097 ms
64 bytes from fe80::a00:69ff:fe12:6992: icmp_seq=5 ttl=64 time=0.100 ms
--- fe80::a00:69ff:fe12:6992 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 0.097/0.259/0.888/0.314 ms
vortix2 108% ping6 -c 5 fe80::a00:69ff:fe12:6992
connect: Invalid argument
-----------------------------------------------------------------
# Hmmmm. looks like a missing socketopt() call when contrasting
the strace output from a working (has "-I eth1") and failing
(does not have "-I eth1") case ...
... or perhaps a bogus route table entry for my default route attempt
...
< bad >
31680 munmap(0x2000000000044000, 65536) = 0
31680 socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 4
31680 connect(4, {sa_family=AF_INET6, sin6_port=htons(1025), inet_pton(AF_INET6, "fe80::a00:69ff:fe12:6a02", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINVAL (Invalid argument)
< good >
31683 socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 4
31683 setsockopt(4, SOL_SOCKET, SO_BINDTODEVICE, "eth1\0", 5) = 0
31683 connect(4, {sa_family=AF_INET6, sin6_port=htons(1025), inet_pton(AF_INET6, "fe80::a00:69ff:fe12:6a02", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
31683 getsockname(4, {sa_family=AF_INET6, sin6_port=htons(32776), inet_pton(AF_INET6, "fe80::a00:69ff:fe12:6992", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=if_nametoindex("eth1")}, [28]) = 0
31683 close(4) = 0
-----------------------------------------------------------------
---------------------------------------------------------------------
The IPv6 Users Mailing List
Unsubscribe by sending "unsubscribe users" to [email protected]