问题描述
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
如果您有其他问题,欢迎您联系火山引擎技术支持服务