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及之前的内核版本。您可以通过uname -r命令查看内核版本。

以辅助弹性网卡为例,您需要根据实际情况替换命令中的IP地址等信息:

  • 无法查询创建的路由表信息。

    1. 执行以下命令,查看eth1网关地址。

      ip a
    2. 执行以下命令,创建路由表。

      sudo ip -4 route add default via <eth1的网关地址> dev eth1 table 1001
    3. 执行以下命令,查看创建的路由表信息。系统未返回创建的路由表信息。

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

      sudo ip -4 route add default via <eth1的网关地址> dev eth1 table 1001

      系统返回错误信息如下图所示。

      image

  • 无法配置策略路由。

    执行以下命令,配置策略路由。

    sudo ip -4 rule add from <源数据包IP地址> lookup 1001

    系统返回错误信息如下图所示。

    image

问题原因

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

解决方案

警告
  • 升级内核可能会出现兼容性和稳定性问题,建议您查看Alibaba Cloud Linux 2镜像发布记录了解具体内核功能后谨慎进行操作。

  • 重启实例将导致您的实例暂停运行,这可能引发业务中断和数据丢失。因此,建议您在执行此操作之前备份关键数据,并选择在非业务高峰期进行。

  1. 执行以下命令,升级内核到最新版本。

    sudo yum update kernel
  2. 执行以下命令,重启实例使配置生效。

    sudo reboot