如何排查无法访问ECS 辅助网卡 IP地址的问题

问题描述

ECS 挂载弹性网卡 IP 后访问不通,我该如何排查这个问题?

操作步骤

检查一:检查服务器网卡是否启动

[root@node ~]# ip a s eth1 
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 00:16:3e:34:ab:3f brd ff:ff:ff:ff:ff:ff

如上述信息 state 为 down,则表示网卡未启动,请检查下网卡配置文件是否正常

配置CentOS系统辅助网卡

1.远程连接云服务器并登录,具体操作请参考登录Linux实例

2.执行如下命令,打开网卡 eth1 的配置文件。

vi /etc/sysconfig/network-scripts/ifcfg-eth1

3.键盘输入i进入编辑状态,在网卡eth1配置文件中添加配置信息。 配置完成后在键盘按Esc,输入:wq后按回车键,保存编辑并退出。

DEVICE=eth1  # 新挂载的网卡接口。
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=no
IPV6INIT=no
PERSISTENT_DHCLIENT=yes
HWADDR=00:16:3e:63:19:**  # 请修改为实际配置网卡的MAC地址。
DEFROUTE=no  # 表示网卡接口不是默认路由。请不要把eth1设为默认路由,以避免在启动(ifup)辅助网卡时改变云服务器实例的默认路由。

4.执行如下命令,查看网卡 eth1 的配置文件,并确认修改。

cat /etc/sysconfig/network-scripts/ifcfg-eth1

5.执行如下命令,重启网络服务。

CentOS 6.9请执行:

service network restart

CentOS 7.6及以上版本请执行:

systemctl restart network

检查二:弹性网卡 eth1 与 eth0 网关地址一致,服务器开启 rp_filter 数据包源地址校验

1.远程连接云服务器并登录,具体操作请参考登录Linux实例

2.检查 eth1 rp_filter 是否开启和是否配置策略路由

检查是否开启了rp_filter, 为1 则表示开启严格的反向路径校验
sysctl -a | grep -w rp_filter

net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.eth1.rp_filter = 1

检查是否配置了策略路由,如果未打印弹性网卡对应路由表则未配置。

例如:from 192.168.1.97 lookup 1001  ip rule list未打印如下信息则未配置
[root@node ~]# ip rule list 
    0:        from all lookup local 
32766:        from all lookup main 
32767:        from all lookup default

如果开启的话会对数据包源地址进行校验,通过 eth1 进入的包会通过系统路由表 eth0 出去, 请求数据包的网卡和响应数据包的网卡不是同一个,系统会判断该反向路径不是最佳路径从而直接丢弃数据包。

参考文档

[1] https://www.volcengine.com/docs/6584/81418

如果您有其他问题,欢迎您联系火山引擎技术支持服务

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论