1. 描述

不管是虚拟机还是物理机也好,这个排查思路希望都能给大家在网络问题排查上提供帮助,这也只代表我个人的解决问题的思路,网络问题错综复杂,希望这个解决思路能让大家举一反三,解决工作上的一些问题。不足之处请大家指正。

1.1 步骤一:检查主机网络配置

  • 首先,我们需要检查虚拟机的网络配置是否正确。确保虚拟机的IP地址、子网掩码、网关等信息都设置正确。可以通过以下命令查看虚拟机的网络配置信息:
[root@node-1 ~]# ip add
1: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:74:a2:d2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.31.250/24 brd 192.168.31.255 scope global noprefixroute dynamic ens33
       valid_lft 152435sec preferred_lft 152435sec
    inet6 fe80::20c:29ff:fe74:a2d2/64 scope link 
       valid_lft forever preferred_lft forever
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

1.2 步骤二:检查主机路由配置

  • 单网卡情况下,我们要检查一下网关正不正确
  • 多网卡情况下,我们要检查网关、默认路由或者静态路由的配置正不正确
[root@node-1 ~]# ip route
default via 192.168.31.1 dev ens33 proto dhcp metric 100 
192.168.31.0/24 dev ens33 proto kernel scope link src 192.168.31.250 metric 100
  • 1.
  • 2.
  • 3.

1.3 步骤三:检查主机防火墙及iptables规则

centos防火墙默认是开启的,我们可以对防火墙进行关闭systemctl stop firewalld;systemctl disabled firewalld

如果主机内的iptables配置限制规则,也需要做放通配置。如保存规则后进行清空,iptables-save > iptables-rule.txt;iptables -F

# 查看状态
$ systemctl status firewalld
# 查看规则定义
$ iptables -L -n -v
  • 1.
  • 2.
  • 3.
  • 4.

1.4 步骤四:检查云平台安全组规则

如果是openstack云主机,我们需要检查OpenStack的安全组规则是否有限制虚拟机与网关之间的通信,如icmp或者ssh及rdp是否被规则限制。

如果是open stack虚拟机要检查平台安全组的规则,可以通过以下命令查看安全组规则;也可以在云平台管理界面查看虚拟机所属安全组规则。

openstack security group rule list $security-group-id
  • 1.

1.5 步骤五:检查云平台服务

如果是openstack云主机,我们需要检查OpenStack的neutron-agent服务是否正常运行;检查openvswitch服务是否正常运行;如果虚拟机还用了浮动IP,还需要进一步排查虚拟机到网络节点的数据包路径,这里不再细说浮动IP场景。

  • 检查neutron-agent服务:该服务异常最好解决办法是到所在计算节点的neutron-agent 日志进行分析,这里就不在扩展了。
  • 检查openvswitch服务:要查看该服务是否正常运行,检查openvswitch相应的流表,这里也不在扩展,通常这块也很少出现问题。

1.6 步骤六 检查云平台内部网络流量路径

如果是openstack云主机,我们要检查一下虚拟机数据包流入或者流出的数据包是否已经正常流入或者流出物理计算节点,通过tcpdump抓包检查数据包是否都已经流出或流入计算节点了。

# 网络设备可以是物理接口和Linux网桥
$ tcpdump -i ens33 -nne icmp and host 192.168.31.143

listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
16:01:03.338546 a4:83:e7:81:0c:1d > 00:0c:29:74:a2:d2, ethertype IPv4 (0x0800), length 98: 192.168.31.143 > 192.168.31.250: ICMP echo request, id 28678, seq 0, length 64
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

1.7 步骤七 以上没问题要协调网络工程师一起查看

  • 与网工确认接入交换机有没有配置变更或者升级
  • 与网工确认接入接入交换机端口vlan配置情况,看是否有漏配vlan的情况

对于一个运维的老司机来讲,遇到问题首先是要自己“看日志!”有过一定运维经验的同学都明白一个道理:“同样的故障现象,原因可能是五花八门的”。老司机不会妄下断论,他们会考虑故障发生之前环境的变动情况,如做了什么变更操作没有,操作前执行了什么动作,做了什么修改等,然后再去获取日志去分析和解决问题