虚拟机网络不通,安全组规则或 OVS 流表异常如何排查?
2026-08-11 09:19:15 # 云服务

实例运行正常但无法对外通信或访问外部网络。这是 Neutron 网络排障的高频题。

排查步骤

1. 检查安全组规则

1
openstack security group rule list <sg-id>

确认是否禁用了必要端口(如对外 80/443,或出方向被限)。

2. 检查 OVS 流表

登录计算节点:

1
2
ovs-ofctl dump-flows br-int
ovs-ofctl dump-flows br-tun

流表缺失会导致流量在 OVS 被丢弃。

3. 确认 L3 / DHCP Agent

1
2
3
openstack network agent list
ip netns exec qrouter-<id> ip route
ip netns exec qdhcp-<id> ping <vm-ip>

L3 Agent 故障 → 路由不通;DHCP Agent 故障 → 实例拿不到 IP。

4. 代码示例(Python SDK)

用 Python OpenStack SDK 检查安全组配置:

1
2
3
4
from openstack import connection
conn = connection.Connection(cloud='mycloud')
for sg in conn.network.security_groups():
print(sg.name, sg.id)

小结

网络不通 = 安全组(规则)→ OVS 流表(转发)→ L3/DHCP Agent(网络服务)。SDK 可做自动化巡检。