在CentOS 7中更改默认的IPv6路由

我在CentOS 7服务器上有几个IPv6地址,需要将一个特定的v6地址作为路由中使用的默认地址。 我已经能够通过修改路由表来做到这一点。

ip -6 route del default ip -6 route add default via 2001:470:xxxx:xx::1 src 2001:470:xxxx:xx::6 

问题是每当networking接口重新启动或服务器本身重新启动时,对默认IPv6路由的更改就会丢失。 我怎样才能使这种变化持久,以便永久保存?

当Red Hat的networking脚本在/etc/sysconfig/network-scripts/ifcfg-*设置了多个IPv6地址时,无论出于何种原因,都会以相反的顺序应用,以便IPV6ADDR_SECONDARIES列出的最后一个地址成为默认使用的地址传出连接。 颠倒IPv6地址列出的顺序通常足以解决问题。

要回答唯一相关的赏金问题:可以通过将IPv6静态路由添加到相应的/etc/sysconfig/network-scripts/route6-*来设置IPv6静态路由。 该文件的格式与ip route add命令相同,省略该位,例如:

 default via 2001:db8:dead:beef:: dev eno1 2001:db8:deca:fbad::/64 via 2001:db8:dead:beef::8bad:f00d dev eno1 

你可以把它放在/sbin/ifup-local文件中,这个文件在接口出现的时候运行。

 #!/bin/sh if [[ "$1" == "eth0" ]] then ip -6 route del default ip -6 route add default via 2001:470:xxxx:xx::1 src 2001:470:xxxx:xx::6 else #DO_NOTHING fi 

它在默认情况下不存在,因此您需要创build它并设置权限以使其可执行。