CloudLinux 8 服务器缺少 IPv6 默认网关

CloudLinux 8 服务器缺少 IPv6 默认网关

我使用 cPanel 运行 CloudLinux 8,并按照以下指南操作:https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-get-started-with-ipv6/#add-a-single-ipv6-address-to-your-server并将以下内容添加到 /etc/sysconfig/network-scripts/ifcfg-eth0 中:

IPV6INIT=yes
IPV6ADDR=2602:fe90:200:55::2/128
IPV6_DEFAULTGW=2602:fe90:200:55::1

然后我运行,service network restart但是 IPv6 IP 不响应外部 ping 请求(它确实从服务器本身响应)。

我注意到没有显示默认网关,我不明白为什么会出现这种情况。

ip -6 ro
unreachable ::/96 dev lo metric 1024 pref medium
unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 pref medium
unreachable 2002:a00::/24 dev lo metric 1024 pref medium
unreachable 2002:7f00::/24 dev lo metric 1024 pref medium
unreachable 2002:a9fe::/32 dev lo metric 1024 pref medium
unreachable 2002:ac10::/28 dev lo metric 1024 pref medium
unreachable 2002:c0a8::/32 dev lo metric 1024 pref medium
unreachable 2002:e000::/19 dev lo metric 1024 pref medium
2602:fe90:200:55::2 dev eth0 proto kernel metric 256 pref medium
unreachable 3ffe:ffff::/32 dev lo metric 1024 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium

请注意,出于隐私原因,上述输出已进行调整,并不代表分配给该服务器的实际 IPv6 空间。

答案1

博客和教程并不总是完全准确。

由于地址上使用了 aa /128 网络掩码,因此内核无法自动添加任何本来可以提供到网关的路由的 LAN 路由。因此不存在到 2602:fe90:200:55::1 的路由。添加依赖于无法访问的 2602:fe90:200:55::1 的路由失败,如下所示:

# ip address add 2602:fe90:200:55::2/128 dev eth0
# ip route add default via 2602:fe90:200:55::1 dev eth0
RTNETLINK answers: No route to host

至少有三种方法可以使其发挥作用。我首先手动描述内容,稍后将展示可以使用 RHEL 的 ifcfg 样式配置进行配置的内容。

  1. 首先显式路由到网关

    # ip address add 2602:fe90:200:55::2/128 dev eth0
    # ip route add 2602:fe90:200:55::1/128 dev eth0
    # ip route add default via 2602:fe90:200:55::1 dev eth0
    
  2. 否则,点对点/对等地址

    因此内核向“对等体”添加了一条路由,该对等体将成为网关

    # ip address add 2602:fe90:200:55::2 peer 2602:fe90:200:55::1/128 dev eth0
    # ip route add default via 2602:fe90:200:55::1 dev eth0
    
  3. 否则,链接路线

    这表明可以创建路由而无需通过预先存在的路由进行验证。

    # ip address add 2602:fe90:200:55::2/128 dev eth0
    # ip route add default via 2602:fe90:200:55::1 dev eth0 onlink
    

    添加的单个路由也可以正确到达网关本身。


CloudLinux 基于 CentOS,而 CentOS 又基于(或者是其上游……)RHEL。我无法访问任何 CloudLinux,也没有找到任何有关 ifcfg 式网络配置的特定 CloudLinux 文档。此配置在 RHEL 8 中也已弃用,建议使用 NetworkManager 代替,但它仍然可用并且 OP 仍然使用它。

在 ifcfg 式网络配置中,方法 2. 似乎不切实际。方法 1. 或 3. 可以通过附加的方法来实现配置文件/etc/sysconfig/network-scripts/route6-eth0。对于 IPv6,仅支持 ip 路由样式语法:它将反映ip route上面的命令。

IPV6_DEFAULTGW在这两种情况下,请删除中的参数ifcfg-eth0:它将由 处理route6-eth0

  1. 首先显式路由到网关

    route6-eth0

    2602:fe90:200:55::1/128 dev eth0
    default via 2602:fe90:200:55::1 dev eth0
    
  2. 跳过

  3. 或者其他链接路由

    route6-eth0

    default via 2602:fe90:200:55::1 dev eth0 onlink
    

在不带 NetworkManager 的 CentOS7 和带或不带 NetworkManager 的 CentOS8 上进行了测试。 NM 可能会使用需要更改的其他设置(例如删​​除自动路由的使用)。

应该选择设置 1. 以获得最大兼容性。如果NM存在,一旦重新加载其配置,它将根据需要自动转换配置。

相关内容