Wednesday, August 27, 2014

linux - IPv6 routing with duplicated route entries

In my Linux system, it has three interfaces each of which got assigned an ipv6 address. The route table is:





fe80::/64 dev enx000ec6ac911b proto kernel metric 256 pref medium
fe80::/64 dev enx000ec6aca81e proto kernel metric 256 pref medium
fe80::/64 dev wlp59s0 proto kernel metric 600 pref medium


Now I have another device attached to enx000ec6ac9111b. I can ping it:




ping -6 fe80::224:28ff:fe00:b6e4

PING fe80::224:28ff:fe00:b6e4(fe80::224:28ff:fe00:b6e4) 56 data bytes
64 bytes from fe80::224:28ff:fe00:b6e4%enx000ec6ac911b: icmp_seq=1 ttl=64 time=0.585 ms
64 bytes from fe80::224:28ff:fe00:b6e4%enx000ec6ac911b: icmp_seq=2 ttl=64 time=0.522 ms


I can see, the target address of the ping command cannot be explicitly distinguished from route table (there are three fe80::/64 in the route table). My question is, how Linux can correctly send the packet to the correct interface and get the reply? I feel the way how the routing work in ipv6 case seems not same as IPv4.



Please someone give a little explanation. Thanks!



-

woody

No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...