设计概述

支撑 Bagpipe 架构的常见设计选择是

  1. 在 Neutron 服务器上,分配并关联 BGP VPN 结构,以实现 Neutron API 抽象:网络、路由器、服务链、BGP VPN 互连等。

  2. 通过 Openstack Neutron 消息总线(通常但不一定为 RabbitMQ)将这些 BGP VPN 结构的信息传递给计算节点代理

  3. 在计算节点上,Bagpipe 扩展的 Neutron 代理 (OVS) 将信息传递给 BGP VPN 扩展的本地实现 (BaGPipe-BGP),该实现将通告和接收 BGP VPN 路由,并相应地填充数据平面

  4. 根据用例,BGP VPN 路由在计算节点之间、计算节点与 DC 网关 IP/MPLS 路由器之间,或两者之间进行交换;扩展此控制平面的策略将取决于部署环境,但通常涉及 BGP 路由反射器和 RT Constraints pub/sub 机制 (RFC4684)

  5. 流量使用覆盖封装进行交换,其中 VXLAN 通常是 vswitch-to-vswitch 的选择,而 MPLS-over-GRE 或 MPLS-over-UDP(未来)是 vswitch-to-DC-gateway 流量的目标

../_images/overview_blockdiag.png