在 CentOS 7 中持久更改默认 IPv6 路由

在 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

问题是每次重新启动网络接口或服务器本身时,对默认 IPv6 路由的更改都会丢失。我如何才能使此更改持久化,从而永久保留?

答案1

当 Red Hat 的网络脚本设置了 中配置的多个 IPv6 地址时/etc/sysconfig/network-scripts/ifcfg-*,无论出于何种原因,它们都会以相反的顺序应用,以便最后的列出的地址IPV6ADDR_SECONDARIES将成为传出连接的默认地址。反转列出的 IPv6 地址的顺序通常足以修复此问题。

回答唯一模糊相关的赏金问题:可以通过将 IPv6 静态路由添加到相应的 来设置。此文件的格式与省略该位的命令/etc/sysconfig/network-scripts/route6-*相同,例如: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

答案2

您可以将其放置在/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

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

相关内容