OpenStack Neutron 提供了一大堆 CLI 命令,基本上可以把「网络 → 子网 → 端口 → 路由器 → 安全组」这条链路全都查清楚。
openstack network list --long # 列出所有网络(包含是否 external/shared 等属性)
openstack network show <network-id> # 查看某个网络的详细信息
openstack subnet list --long # 列出所有子网,含网关、CIDR、DNS 等
openstack subnet show <subnet-id> # 查看子网详细配置(CIDR, gateway_ip, allocation_pools)
openstack port list --long # 列出所有端口,含所属网络、绑定设备、状态
openstack port show <port-id> # 查看某个端口的详细信息(MAC, IP, security groups)
特别适合查虚拟机网卡 / router 接口 / DHCP 口。
openstack router list # 查看所有路由器
openstack router show <router-id> # 查看路由器详细信息(接口、外网网关)
openstack router port list <router-id> # 查看路由器上的端口(对应 qg-/qr-)
openstack security group list # 查看安全组
openstack security group rule list <sg-id> # 查看规则(入站/出站)
openstack floating ip list # 查看所有 floating IP(分配情况)
openstack floating ip show <fip-id> # 详细信息(绑定端口、VM、外网 IP)
openstack network agent list # 查看 neutron-agent 运行情况(DHCP, L3, OVS agent)
openstack port list --device-owner network:dhcp # 查找 DHCP 端口
openstack ip availability list # 查看每个网络的 IP 使用情况
openstack ip availability show <net-id> # 查看指定网络的已用/剩余 IP
你可以这样排查一个 VM 的外网问题:
openstack server show <vm-id>
→ 找到它的 port-id。openstack port show <port-id>
→ 确认它的网络、子网。openstack subnet show <subnet-id>
→ 看网关、DNS。openstack router port list <router-id>
→ 看 router 有没有连上这个子网。openstack router show <router-id>
→ 确认外网网关。