文档首页/ 弹性云服务器 ECS/ 故障排除/ 网络配置/ 同一子网的两块网卡均绑定弹性公网IP
更新时间:2023-03-03 GMT+08:00

同一子网的两块网卡均绑定弹性公网IP

问题描述

云服务器上两块相同子网的网卡,均绑定了弹性公网IP。其中,主网卡绑定的弹性公网IP可以正常访问,但是扩展网卡的弹性公网IP无法访问。

可能原因

CentOS操作系统的弹性云服务器默认开启了反向过滤技术(rpfilter),云服务器的默认路由是指向eth0的,而扩展网卡弹性公网IP的流量从eth1进入。系统此时判断,这个报文在发送时应该从eth0口送出,而报文实际是从eth1进入,即从错误的网卡收到报文,故判定非法而被系统丢弃。

处理方法

通过策略路由让访问扩展网卡的流量从扩展网卡发出,方法如下:

  1. 执行以下命令,编辑文件rt_tables。

    vi /etc/iproute2/rt_tables

    添加一个route table的别名,如test。

  2. 保存后退出。
  3. 执行以下命令,在test表中添加路由。

    ip route add default via 扩展网卡网关 dev eth1 table 步骤1中添加的表名

    例如:

    ip route add default via 192.168.166.1 dev eth1 table test

  4. 执行以下命令,添加策略路由。

    ip rule add from 扩展网卡IP地址 lookup 步骤1中添加的表名 prio 低于32766,优先级高于main表

    例如:

    ip rule add from 192.168.166.22 lookup test prio 32000

    至此,两块网卡上的公网IP应该都可以访问了。如果要持久化这个规则,可以将上述语句添加到开机脚本“/etc/rc.local”中。