我在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它并设置权限以使其可执行。