虚拟机网络不通,如何系统性排查?
2026-08-11 09:19:15
# 云服务
实例运行正常,但无法访问外部网络或对外提供服务。这是 Neutron 网络排障的高频场景,回答应体现清晰的系统性思路。
排查四步法
1. 确认安全组规则
1 | openstack security group rule list <sg-id> |
检查是否因安全组(Security Group)过于严格,禁止了所需端口/协议(如只放行 22 却要对外提供 80/443)。安全组是有状态的,方向(ingress/egress)要配对。
2. 检查 OVS 流表
登录计算节点,检查 Open vSwitch 流表是否正常——这是内部网络转发的关键:
1 | ovs-ofctl dump-flows br-int |
流表缺失/错配会导致流量在 br-int / br-tun 被丢弃。
3. 检查 L3 Agent
确认 Neutron L3 Agent(路由器)健康,并检查路由表和网络命名空间(Network Namespace):
1 | ip netns |
4. 检查 DHCP 服务
确认虚拟机是否正确获取了 IP:
1 | openstack port list --server <vm-id> |
DHCP Agent 异常会导致实例拿不到 IP,进而无法通信。
小结
网络不通按 安全组 → OVS 流表 → L3 Agent/路由 → DHCP 四步推进,从控制面规则到数据面转发逐层验证,基本能覆盖绝大多数场景。