安装

Networking-bagpipe 安装

软件包的安装细节可能取决于您的环境。

如果可能,您应该依赖于您的 Linux 和/或 OpenStack 发行版提供的软件包。

如果您使用 pip,请按照以下步骤安装 networking-bagpipe

  • 确定与您的 Openstack 版本匹配的 networking-bagpipe 包的版本

    • Liberty: 最新的 3.0.x 版本

    • Mitaka: 最新的 4.0.x 版本

    • Newton: 最新的 5.0.x 版本

    • Ocata: 最新的 6.0.x 版本

    • Pike: 最新的 7.0.x 版本

    • Queens: 最新的 8.0.x 版本

    • (请参阅 https://releases.openstack.org/index.html)

  • 指示 pip (a) 安装此确切版本,以及 (b) 考虑依赖项的软件包版本 Openstack 上限约束 (Queens 的示例)

    $ pip install -c https://releases.openstack.org/constraints/upper/queens
    

BaGPipe for Neutron L2

在 devstack 测试/开发环境中的安装

  • 安装 devstack (无论是稳定版/x 还是 master)

  • 通过将以下内容添加到 local.conf 来启用 devstack 插件

    • 要使用分支 stable/x (例如 stable/queens)

      enable_plugin networking-bagpipe https://git.openstack.org/openstack/networking-bagpipe.git stable/X
      
    • 要使用开发分支

      enable_plugin networking-bagpipe https://git.openstack.org/openstack/networking-bagpipe.git master
      
  • 通过将以下内容添加到 local.conf 来启用 bagpipe ML2

    ENABLE_BAGPIPE_L2=True
    
  • 对于多节点设置,在每个计算节点上配置 BaGPipe-BGP,即您需要每个 BaGPipe-BGP 与 BGP 路由反射器对等

    • local.conf

      # IP of your route reflector or BGP router, or fakeRR:
      BAGPIPE_BGP_PEERS=1.2.3.4
      
    • 对于两个计算节点,您可以使用 BaGPipe-BGP 中提供的 FakeRR

    • 对于两个以上的计算节点,您可以使用 GoBGP (示例配置) 或商业 E-VPN 实现 (例如参与 EANTC E-VPN 互操作性测试 的供应商)

部署

在 Neutron 服务器上,需要执行以下操作,基于 ML2/openvswitch 配置 作为起点

  • 安装 networking-bagpipe python 包 (请参阅 Networking-bagpipe 安装)

  • 在 ML2 配置 (/etc/neutron/plugins/ml2.ini) 中

    • 添加 bagpipe 机制驱动程序 (除了仍然处理 flatvlan 网络的 openvswitch 驱动程序)

    • 在 Queens 发布之前 (即如果 networking-bagpipe < 8) 使用 route_target 类型驱动程序作为默认值

    • result

      [ml2]
      # tenant_network_types = route_target  # before queens only!
      mechanism_drivers = openvswitch,bagpipe
      

您需要部署一个 BGP 路由反射器,它将在计算节点和网络节点之间分发 BGP VPN 路由。此路由反射器需要支持 E-VPN,并且可以选择性地支持 RT 约束。一个选项,在众多选项中,是使用 GoBGP (示例配置)。

在计算节点 (如果有任何网络节点) 上,需要执行以下操作,基于 ML2/openvswitch 配置 作为起点

  • 安装 networking-bagpipe python 包 (请参阅 Networking-bagpipe 安装)

  • 配置 Neutron OpenvSwitch 代理以使用 bagpipe /etc/neutron/plugins/ml2.ini

    • 启用 bagpipe 代理扩展

    • 在 Queens 发布之前 (即如果 networking-bagpipe < 8),禁用 VXLAN

    • 配置用于为租户网络分配 BGP 路由目标的 AS 号和范围

    • result

      [agent]
      extensions = bagpipe
      
      [vxlan]
      # for a release strictly before OpenStack Queens (networking-bagpipe < 8)
      # enable_vxlan = False
      
      [ml2_bagpipe_extension]
      as_number = 64512
      
  • 配置 BaGPipe-BGP

    • local_address 设置为计算节点地址 (或其接口之一的名称,例如 ‘eth0’)

    • 将路由反射器 IP 添加到 peers

    • 选择与您的代理对应的 EVPN 数据平面驱动程序 (/etc/bagpipe-bgp/bgp.conf)

      • ovs 用于 openvswitch 代理

      [DATAPLANE_DRIVER_EVPN]
      dataplane_driver = ovs
      

BaGPipe for BGPVPN

有关如何使用 bagpipe 驱动程序用于 networking-bgpvpn 的信息,请参阅 BGPVPN bagpipe 驱动程序文档

BaGPipe for networking-sfc

要启用 networking-sfc 的 networking-bagpipe 驱动程序的使用,需要执行以下操作

  • /etc/neutron/neutron.conf 中启用 bagpipe 驱动程序,并配置其参数 (请参阅 SFC)

    [sfc]
    drivers = bagpipe
    
  • BaGPipe-BGP 轻量级 BGP VPN 实现,配置为将 ovs 作为 IPVPN 的数据平面驱动程序,并将 linux 作为 EVPN 的数据平面驱动程序 (/etc/bagpipe-bgp/bgp.conf)

    [DATAPLANE_DRIVER_IPVPN]
    dataplane_driver = ovs
    
    [DATAPLANE_DRIVER_EVPN]
    dataplane_driver = linux
    

在 devstack 中

要试验 devstack 中的 sfc 驱动程序,可以将以下内容添加到您的 local.conf 中 (将 stable/X 替换为 stable/queens,例如 Openstack Queens 发布)

enable_plugin networking-sfc https://git.openstack.org/openstack/networking-bagpipe.git
# enable_plugin networking-sfc https://git.openstack.org/openstack/networking-bagpipe.git stable/X
enable_plugin networking-bagpipe https://git.openstack.org/openstack/networking-bagpipe.git
# enable_plugin networking-bagpipe https://git.openstack.org/openstack/networking-bagpipe.git stable/X

BAGPIPE_DATAPLANE_DRIVER_EVPN=linux
BAGPIPE_DATAPLANE_DRIVER_IPVPN=ovs

[[post-config|$NEUTRON_CONF]]

[sfc]
drivers = bagpipe


[[post-config|/$NEUTRON_CORE_PLUGIN_CONF]]

[agent]
extensions = bagpipe_sfc