Having tried all possible methods, I could not find a job for this problem. I have a machine with two interfaces eth0 and eth2. I want all ff38: 40: 2001: dead: beef: cafe :: / 96 packages to continue eth2. I tried all of the following, but when I do ping6 ff38: 40: 2001: dead: beef: cafe :: 1 packages always go eth0. That I tried and did not work (i.e. the package still goes to eth0).
$> route add --inet6 ff38:40:2001:dead:beef:cafe::/96 gw 2003::100 dev eth2
$> route add --inet6 ff38:40:2001:dead:beef:cafe::/96 dev eth2
$> route add --inet6 ff38:40:2001:dead:beef:cafe::/96 metric 1 gw 2003::100 dev eth2
My routing table
[root@dev ~]# route --inet6 |grep eth0
fe80::/64 * U 256 0 0 eth0
ff00::/8 * U 256 0 0 eth0
[root@dev ~]# route --inet6 |grep eth2
2003::/64 * U 256 68 0 eth2
fe80::/64 * U 256 0 0 eth2
ff38:40:2001:dead:beef:cafe::/96 2003::100 UG 1 0 0 eth2
*/0 fe80::c671:feff:fe14:e482 UGDA 1024 0 0 eth2
ff00::/8 * U 256 0 0 eth2
However, ping6 ff38: 40: 2001: dead: beef: cafe :: 1 -I eth2 works just fine. Moreover, I see this problem only on Linux machines (MAC is ok).
[root@dev ~]
PING ff38:40:2001:dead:beef:cafe::1(ff38:40:2001:dead:beef:cafe:0:1) from cal eth2: 56 data bytes
64 bytes from 2012::1: icmp_seq=0 ttl=253 time=19.1 ms
64 bytes from 2012::1: icmp_seq=1 ttl=253 time=2.16 ms
64 bytes from 2012::1: icmp_seq=2 ttl=253 time=2.14 ms
64 bytes from 2012::1: icmp_seq=3 ttl=253 time=2.26 ms
64 bytes from 2012::1: icmp_seq=4 ttl=253 time=2.08 ms
64 bytes from 2012::1: icmp_seq=5 ttl=253 time=2.15 ms
root@dev ~]
Linux 2.6.18-194.el5
Perhaps the problem is that for eth0 there is ff00 :: / 8. How do I cancel this route. I also cannot delete the route ff00 :: / 8.