You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VM中Open vSwitch网桥端口无法发送流量问题排查

排查容器化Open vSwitch(搭配Kolla Pike)网桥配置问题

Hey there! Let's dig into this OVS bridge issue you're hitting with Kolla Pike in your VM. I've run into similar quirks when setting up containerized OVS for OpenStack, so here are some key areas to check:

1. 警惕主机与容器OVS的冲突

你提到虚拟机本地也安装了openvswitch-switch服务,但容器化的OVS会和本地服务抢占socket、网络资源,这是最容易踩的坑!

  • 先停止并禁用虚拟机主机上的OVS服务:
    sudo systemctl stop openvswitch-switch
    sudo systemctl disable openvswitch-switch
    
  • 重启容器化的OVS服务确保它能独占资源:
    docker restart openvswitch_db openvswitch_vswitchd
    

2. 确认容器的网络特权与挂载

Kolla默认会给OVS容器配置足够的权限,但还是要验证下,避免权限不足导致端口无法绑定:

  • 检查容器的特权状态和挂载路径:
    docker inspect openvswitch_vswitchd | grep -A 6 "Privileged"
    docker inspect openvswitch_vswitchd | grep -A 15 "Mounts"
    
    正常情况下应该看到Privileged: true,并且挂载了/run/openvswitch、/sys/class/net这些关键路径。

3. 用容器内命令验证网桥状态

别直接在虚拟机主机上执行ovs-vsctl!容器化OVS有独立的运行环境,必须进入容器或者用docker exec操作:

  • 查看完整的OVS拓扑:
    docker exec -it openvswitch_vswitchd ovs-vsctl show
    
  • 重点确认br-ex网桥存在,ens3端口已添加且状态为up。如果端口是down,手动启用:
    docker exec -it openvswitch_vswitchd ovs-vsctl set Interface ens3 options:admin_state=up
    

4. 补全网桥的IP与路由配置

你清空了ens3的IP,但别忘了给br-ex配置IP(如果需要虚拟机通过这个网桥联网):

  • 在主机网络命名空间下给br-ex加IP并启动接口:
    sudo ip addr add <你的IP/子网掩码> dev br-ex
    sudo ip link set br-ex up
    
  • 检查路由表,确保默认路由指向br-ex而非旧的ens3:
    ip route
    

5. 对齐Kolla的自动化配置

手动配置网桥很容易和Kolla的自动化流程冲突,建议通过Kolla的配置文件来管理:

  • 编辑/etc/kolla/globals.yml,添加或修改以下配置:
    neutron_external_interface: "ens3"
    neutron_plugin_agent: "openvswitch"
    
  • 重新部署neutron相关服务,让Kolla自动配置网桥:
    kolla-ansible reconfigure -i inventory/all-in-one --tags neutron
    
总结

最可能的问题是虚拟机本地OVS服务与容器化OVS冲突,或者手动配置未同步到Kolla的自动化流程中。先停掉本地OVS服务,再用Kolla的配置来管理网桥,能避免大部分配置不一致的问题。

内容的提问来源于stack exchange,提问作者RandyMartini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:04:48