Neutron 对象关系图 + 常用命令,查一台虚拟机的网络问题时就能顺着这条链路走。
Neutron 网络对象关系(排查流程)
[VM 实例]
│
└──> Port (tapXXXX) # VM 的虚拟网卡
│
└──> Subnet (CIDR, GW, DNS)
│
└──> Network (tenant/private)
│
└──> Router (qr-XXX)
│
└──> External Network (br-ex/veth/物理网卡)
命令对照表
1. 找到 VM 的网口
openstack server show <vm-id> -c addresses -c id -c name -c status
输出里能看到 VM 的 IP 和网络名。
再查网卡端口:
openstack port list --server <vm-id>
2. 查看端口信息
openstack port show <port-id>
这里能看到:
- 绑定的网络 ID / 子网 ID
- MAC 地址
- 安全组
- device_owner(通常是 compute\:XXX)
3. 查看子网
openstack subnet show <subnet-id>
重点看:
cidr
(网段范围)gateway_ip
(虚拟机的默认网关)dns_nameservers
4. 查看网络
openstack network show <network-id>
能看到:
- 网络类型(vxlan/vlan/flat)
- 是否 external/shared
5. 查看路由器
先查所有 router:
openstack router list
找到对应的 router,确认它挂了哪个子网:
openstack router port list <router-id>
你会看到 qr-xxx
接口连 tenant 子网,qg-xxx
接口连外部网络。
再确认 router 的外网设置:
openstack router show <router-id>
看 external_gateway_info
有没有配好。
6. 外部网络
openstack network list --external
openstack subnet list --network <外网网络ID>
确认外网子网的 CIDR 和 gateway_ip
(比如 10.0.19.254)。
7. 浮动 IP(如果用到)
openstack floating ip list
确认 FIP 绑定到了正确的端口。
8. 安全组
openstack security group list
openstack security group rule list <sg-id>
确认安全组规则允许 ICMP、TCP 出口。
推荐检查顺序(速查版)
openstack port list --server <vm-id>
→ 确认 VM 绑定端口。openstack subnet show <subnet-id>
→ 确认子网网关。openstack router port list <router-id>
→ 确认路由器接上子网。openstack router show <router-id>
→ 确认外网网关。openstack network list --external
→ 确认外部网络。openstack floating ip list
→ 确认 FIP 绑定正确(如需要)。