OpenStack 网络问题排查

检查项

命令/方法

物理网络类型

cat /etc/neutron/plugins/ml2/ml2_conf.ini

VLAN/VXLAN 接口

ip link show

ip -d link show type vxlan

OVS 状态

ovs-vsctl show

ovs-ofctl dump-flows br-int

LinuxBridge 状态

brctl show

ip link show

Neutron 命名空间

ip netns list

ip netns exec qdhcp-<ID> bash

底层连通性

ping

tcpdump -i eth0 udp port 4789

一、基本排查步骤

(一) 检查网络服务状态

# 检查Neutron服务状态
openstack network agent list

# 检查Nova服务状态
openstack compute service list

(二) 检查网络拓扑

# 列出所有网络
openstack network list

# 列出所有子网
openstack subnet list

# 列出所有端口
openstack port list

# 查看特定网络详情
openstack network show <network-id>

# 查看特定子网详情
openstack subnet show <subnet-id>

(三) 检查实例网络配置

# 列出所有实例
openstack server list

# 查看实例详情
openstack server show <instance-id>

# 查看实例控制台日志
openstack console log show <instance-id>

二、实例无法获取ip地址

(一) 检查DHCP服务

# 检查DHCP代理状态
openstack network agent list | grep dhcp
#如状态异常可能为neutron-dhcp-agent未正常运行  

# 检查DHCP命名空间
ip netns list | grep dhcp

(二) 检查端口状态

# 查找实例关联的端口
openstack port list --server <instance-id>

# 查看端口详情
openstack port show <port-id>

端口绑定失败:
检查物理网络(如 VLAN/VXLAN)配置或底层插件(OVS/LinuxBridge)状态。

(三) 检查实例内部

# 通过控制台或VNC检查实例内的网络配置
# 确认是否发送了DHCP请求

(四) 检查物理网络(VLAN/VXLAN)

确认物理网络类型

OpenStack 网络类型通常在 ml2_conf.ini 中定义,查看配置:

# 查看 Neutron ML2 插件配置
cat /etc/neutron/plugins/ml2/ml2_conf.ini | grep -E "type_drivers|tenant_network_types"


#输出示例
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan

如果使用 VLAN,需确保物理交换机已正确配置 VLAN Trunk。

如果使用 VXLAN,需检查 VTEP(VXLAN Tunnel Endpoint)的连通性。

检查 VLAN/VXLAN 接口

# VLAN 检查
# 查看主机上的 VLAN 接口
ip link show | grep '\.'
输出示例(如 eth0.100 表示 VLAN ID 100):

# VXLAN 检查
# 查看 VXLAN 隧道接口
ip -d link show type vxlan

#示例
10: vxlan-42: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 ...
    vxlan id 42 remote 10.0.0.2 dev eth0 ...
确认 remote IP(对端 VTEP)是否可达(如通过 ping)。

(五) 检查底层插件状态

1. Open vSwitch (OVS)
#查看ovs服务状态
systemctl status openvswitch-switch


#查看 OVS 网桥和端口

# 列出所有网桥
ovs-vsctl show

# 查看网桥详情(如 br-int)
ovs-vsctl list-br
ovs-ofctl show br-int
ovs-ofctl dump-flows br-int

br-int:集成网桥,连接虚拟机端口。
br-tun(VXLAN 场景):处理隧道流量。
确保虚拟机端口(如 tap12345678)已绑定到网桥。
2. LinuxBridge
#查看 LinuxBridge 服务状态
systemctl status neutron-linuxbridge-agent

查看网桥和端口
# 列出所有网桥
brctl show

# 查看具体网桥(如 brqXXXXXX)
ip link show brqXXXXXX

VLAN 场景下检查 VLAN 子接口:
ip link show | grep '\.'

三、检查 Neutron 网络命名空间

(一) 列出所有命名空间

ip netns list

(二) 进入命名空间检查

正常情况应看到 dnsmasq 进程监听 UDP 67 端口。

# 进入 DHCP 命名空间
ip netns exec qdhcp-<网络ID> bash

# 检查 IP 和端口
ip addr show
iptables -L  # 查看防火墙规则

# 测试 DHCP 服务是否监听
netstat -anpu | grep dnsmasq

四、验证底层网络连通性

(一) 检查节点间 VXLAN/VLAN 通信

  • 在节点间 ping 对端 VTEP IP(VXLAN)或 VLAN 接口 IP。
  • 使用 tcpdump 抓包:
tcpdump -i eth0 udp port 4789 -nn  # VXLAN 流量(UDP 4789)
tcpdump -i eth0.100 -nn           # VLAN 100 流量

(二) 检查物理网络设备

物理交换机:确认 VLAN Trunk 端口允许相关 VLAN ID。

防火墙:确保放行 VXLAN(UDP 4789)和 VLAN 流量。

五、常见问题排查

(一) 虚拟机无法获取 IP(DHCP 失败)

检查 neutron-dhcp-agent 是否运行:

进入 qdhcp-<网络ID> 命名空间,确认 dnsmasq 进程存在。

systemctl status neutron-dhcp-agent

(二) 虚拟机网络不通

检查 OVS/LinuxBridge 是否绑定虚拟机端口:

ovs-vsctl show | grep tap
brctl show | grep tap

检查安全组是否放行流量:

openstack port show <端口ID> | grep security_group
### 部署 OpenStack 的常见问题及解决方案 #### 环境准备问题 在部署 OpenStack 之前,环境准备工作至关重要。如果环境中缺少必要的依赖项或配置不正确,则可能导致后续安装失败。确保操作系统是最新的,并且已安装所有必需的开发工具和库[^1]。 ```bash sudo yum update -y sudo yum groupinstall "Development Tools" -y ``` #### 使用过时文档引起的问题 有时开发者会依据旧版官方文档来执行某些命令,这可能会引发兼容性问题并最终造成安装失败。因此,在进行任何操作前确认所使用的指南是否适用于当前版本非常重要。记录下每次安装的具体组件及其对应的版本号有助于他人更快地帮助排查潜在错误根源[^3]。 #### 缺乏卸载功能的支持 目前并没有提供专门用来清理先前设置好的 OpenStack 实例的一键式脚本。对于希望重新开始或者切换到不同分支测试的同学来说,可能需要手动移除相关服务与数据库条目。有兴趣者可以在 GitHub 上贡献自己的力量以完善这一部分缺失的功能[^4]。 #### 构建高可用性和负载均衡架构的选择 构建具备冗余特性的多节点集群能够有效提升系统的稳定性和性能表现。推荐采用三控制器节点的设计思路实现 HAProxy 和 Keepalived 组件之间的协作完成流量分发任务;同时通过 Pacemaker 来管理资源状态转移逻辑从而达到自动故障恢复的效果。 #### Fuel Master 节点特定挑战 当借助 Fuel 工具链来进行大规模生产级别云平台搭建工作时,计算机节点以及控制平面之间通信异常成为了一大难题所在之处。网络参数设定不当或是硬件驱动程序冲突都可能是背后隐藏的因素之一。仔细检查网卡绑定关系、VLAN ID 设置等方面往往能发现端倪所在[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

滚刀肉`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值