根据测试结果,Linux内核关于source IPip6和ip4的选择策略不一样。RFC3484定义了ip6地址的选择。
如果所有的条件都符合,加的IP地址是相同subnet网段的情况下,ip4的选取第一个添加成功的。而ip6选择最后一个添加成功。
[root@RH8-LCP ~]# ip addr add 200💯300::1/64 dev eth0
[root@RH8-LCP ~]# ip -6 route get 200💯300::4
200💯300::4 dev eth0 proto kernel src 200💯300::1 metric 256 pref medium
[root@RH8-LCP ~]# ip addr add 200💯300::12/64 dev eth0
[root@RH8-LCP ~]# ip -6 route get 200💯300::4
200💯300::4 dev eth0 proto kernel src 200💯300::12 metric 256 pref medium
[root@RH8-LCP ~]# ip addr add 10.0.32.3/24 dev eth0
[root@RH8-LCP ~]# ip route get 10.0.32.5
10.0.32.5 dev eth0 src 10.0.32.3 uid 0
cache
[root@RH8-LCP ~]# ip addr add 10.0.32.4/24 dev eth0
[root@RH8-LCP ~]# ip route get 10.0.32.5
10.0.32.5 dev eth0 src 10.0.32.3 uid 0
cache