Open vSwitch 创建网桥

                                                   Open vSwitch 创建网桥





步骤 1:安装 Open vSwitch

编译 Open vSwitch ,并安装
  1. 安装依赖

    • MinGW
      • 下载 MinGW, 安装到 C:\MinGW
      • 安装 autoconfautomake(版本 2.68):
        mingw-get install autoconf automake
      • 添加 PATH:
        $env:Path += ";C:\MinGW\bin;C:\MinGW\msys\1.0\bin"
        
    • OpenSSL
      • 下载 OpenSSL Win64,安装到 C:\OpenSSL-Win64.
      • 添加 PATH:
        $env:Path += ";C:\OpenSSL-Win64\bin"
        
    • PThreads4W
      • 下载 PThreads4W, 解压到 C:\pthread.
      • 添加 PATH:
        $env:Path += ";C:\pthread\bin"
        
    • Visual Studio:安装 Visual Studio Community(含 C++ 工具)。
  2. 下载 OVS 源码

  3. 配置和编译

    • 打开 MinGW Bash(C:\MinGW\msys\1.0\msys.bat)。
    • 进入源码目录:
      cd /c/ovs/openvswitch-3.2.0
    • 运行配置:
      ./boot.sh
      ./configure --prefix="C:/openvswitch/usr" --localstatedir="C:/openvswitch/var" --sysconfdir="C:/openvswitch/etc" --with-pthread="C:/pthread"
    • 编译:
      make
      make install
  4. 验证

    • 同方法 1,检查 ovs-vsctl --version
注意
  • 如 果使用 Hyper-V 扩展(MSI 默认包含),需启用测试签名:
    bcdedit /set LOADOPTIONS DISABLE_INTEGRITY_CHECKS
    bcdedit /set TESTSIGNING ON
    • 重启生效。
  • 非 Hyper-V 场景可忽略。


步骤 2:创建虚拟网卡

使用virnet软件创建虚拟网卡。(文章链接)

Converted Image

图中:broadcom2 ,intel[lan-1] ,intel[WAN] ,这三个网卡就是物理网卡;
            woovir4 ,woovir5 ,woovir6 ,这三个网卡就是用virnet创建的虚拟网卡。


步 骤 3:创建 3 个 OVS 桥(虚拟交换机)

每个 OVS 桥作为一个虚拟交换机,连接 1 个虚拟网卡和 1 个物理网卡。

  1. 创建桥

    • 使用 ovs-vsctl 创建 3 个桥:
      ovs-vsctl add-br br1
      ovs-vsctl add-br br2
      ovs-vsctl add-br br3
  2. 添加端口

    • 将虚拟网卡和物理网卡添加到对应 桥:
      ovs-vsctl add-port br1 "broadcom2"
      ovs-vsctl add-port br1 "woovir4"
      ovs-vsctl add-port br2 "intel[lan-1]"
      ovs-vsctl add-port br2 "woovir5"
      ovs-vsctl add-port br3 "intel[WAN]"
      ovs-vsctl add-port br3 "woovir6"
  3. 验证桥

    ovs-vsctl show
    • 应显示:
      Bridge "br3"
      Port "br3"
      Interface "br3"
      type: internal
      Port "woovir6"
      Interface "woovir6"
      Port "intel[WAN]"
      Interface "intel[WAN]"
      Bridge "br2"
      Port "br2"
      Interface "br2"
      type: internal
      Port "intel[lan-1]"
      Interface "intel[lan-1]"
      Port "woovir5"
      Interface "woovir5"
      Bridge "br1"
      Port "broadcom2"
      Interface "broadcom2"
      Port "br1"
      Interface "br1"
      type: internal
      Port "woovir4"
      Interface "woovir4"

注意

  • 桥接后,物理网卡的 IP 配置可能失效(移到桥上),需重新配置。
  • 如果报错(例如“端口已占用”), 确认物理网卡未被网桥绑定。

步 骤 4:配置网络(桥接效果)

OVS 桥接会将虚拟网卡和物理网卡置于同一二层网络,类似 Windows 网桥,但不受单网桥限制。为确保通信,配置 IP 和路由。

  1. 配置 IP

    命令行:ncpa.cpl   打开网络配置手动填写。
  2. 启用桥接

    • OVS 桥接自动生效,无需额外 Windows 网桥。
    • 确认 OVS 服务运行:
      Get-Service ovsdb-server, ovs-vswitchd
  3. 验证连接

    • 测试每对网卡通信:
      ping 192.168.1.10 -S 192.168.1.100
      ping 192.168.2.10 -S 192.168.2.100
      ping 192.168.3.10 -S 192.168.3.100
    • 测试外部网络(如果物理网卡连接路 由器):
      Test-NetConnection -ComputerName 8.8.8.8 -SourceAddress 192.168.1.100

注意

  • 如 果物理网卡无 IP(桥接后常见),将 IP 配置移到桥:
    ovs-vsctl set Bridge br1 other-config:hwaddr=<MAC of intel[lan-145]>
    netsh interface ip set address name="br1" static 192.168.1.10 255.255.255.0 192.168.1.1
    • 替换 <MAC of intel[lan-145]>(通过 < /span>Get-NetAdapter 获 取)。

步 骤 5:优化和测试

  1. 隔离网络

    • 默认情况下,3 个桥(br1br2br3)相互隔离。
    • 如需严格隔离,添加 VLAN(可选):
      ovs-vsctl set port VirtualNIC1 tag=10
      ovs-vsctl set port VirtualNIC2 tag=20
      ovs-vsctl set port VirtualNIC3 tag=30
  2. 性能监控

    Get-Counter -Counter "\Network Interface(*)\Bytes Total/sec"
    
  3. 故障排查

    • 如 果桥接失败:
      • 检查 OVS 服务:
        Get-Service ovsdb-server, ovs-vswitchd
      • 检查端口绑定:
        ovs-vsctl list port
    • 如果物理网卡不可用,确认未被其他 桥占用。







Converted Image