Alibaba Cloud Linux 2系统的ECS实例无法查询和配置路由信息,如何处理?

本文为您介绍Alibaba Cloud Linux 2系统的ECS实例无法查询和配置路由信息的原因及解决方案。

问题描述

符合如下条件的ECS实例无法查询和配置路由信息:

  • 镜像:aliyun-2.1903-x64-20G-alibase-20190507.vhd及之前所有的版本。

  • 内核:kernel-4.19.34-11.al7及之前所有的内核版本。

具体的问题现象如下:

  • 无法查询创建的路由表信息。操作示例如下:

    说明

    此处的示例信息仅供参考,现场以实际情况为准。

    1. 执行以下命令,创建路由表。

      ip -4 route add default via 192.168.0.253 dev eth1 table 1001
    2. 执行以下命令,查看创建的路由表信息。系统未返回创建的路由表信息。

      ip route list table 1001
    3. 再次执行以下命令,尝试创建路由表。

      ip -4 route add default via 192.168.0.253 dev eth1 table 1001

      系统返回File exists的错误信息。

      RTNETLINK answers: File exists
  • 无法配置策略路由。执行以下命令,配置策略路由,系统返回Operation not supported的错误信息。

    ip -4 rule add from 192.168.0.68 loopup 1001

问题原因

策略路由依赖CONFIG_IP_MULTIPLE_TABLES模块,在kernel-4.19.34-11.al7及之前所有的内核版本中,未开启CONFIG_IP_MULTIPLE_TABLES模块。

解决方案

kernel-4.19.36-12.al7.x86_64及之后的内核版本中,配置已启用策略路由所依赖的相关选项,可以解决上述问题。

CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_IPV6_SUBTREES=y
CONFIG_FIB_RULES=y
# CONFIG_NET_VRF is not set

因此,请您升级ECS实例的内核至kernel-4.19.36-12.al7.x86_64或之后的版本。