Neutron OVS-DVR

一、DVR概述

       为了提高neutron网络服务的鲁棒性与性能,OpenStack从Juno版开始正式加入的DVR(Distributed Virtual Router)服务,它将原本集中在网络节点的部分服务分散到了计算节点上。

       在该模式下,同租户的跨网段路由在计算节点之间直接完成,无需网络节点的参与,SNAT服务仍由网络节点集中化的处理,Floating服务则可以选择在计算节点分布式地处理,也可以选择在网络节点集中式地处理。

二、有DVR与没有DVR的区别

        1. 如图,没有DVR时,东西向流量和南北向流量都集中到了网络节点,导致网络节点负载过大,成为瓶颈。

        2. 如图,有DVR时,对于东西向流量,流量会直接在计算节点之间传递;对于南北向流量,如果有FIP,流量会直接走计算节点;如果没有FIP,则会通过网络节点连接外部网络。

 

三、典型场景

      涉及到L3路由服务的网络访问至少是需要跨网段之间的访问,这又分为是否是同一节点、是否涉及到外网,即东西向与南北向之间的流量。

  1. 东西向流量

    (1)同一计算节点

             路由器直接在br-int上转发,不经过br-ex。

    (2)不同节点

             如图,租户T1的两个不同子网下的两台虚机VM1和VM4分别落在Compute1与Compute2上。VM1要访问VM4,过程如下:

             ①首先通过br-int->IR1->ARP得到默认网关的mac,并将Dest MAC修改为默认网关的mac地址;

             ②通过IR1得到目的地址以及目的网关的mac地址,并修改SRC MAC(目的网关mac)与DEST MAC(目的mac);

             ③通过br-int->br-tun得到与Compute2绑定的全局唯一的MAC地址,并修改SRC MAC为此mac地址;

             ④通过br-tun到达Compute2的br-int得到目的网关的mac地址,并修改SRC MAC为此mac地址,最终到达VM4

  2. 南北向流量

    (1)有FIP

             如图所示, Compute1上租户T1的VM2和Compute2上租户T1的VM4,都绑定了FIP,那么它们都可以通过所在的计算节点访问外部网络。VM2访问外网的过程 如下:

             ①首先通过br-int->IR2->ARP得到默认网关的mac,并将Dest MAC修改为默认网关的mac地址;

             ②通过IR2中的rfp-XXX发送给FIP namespace的fpr-XXX,rfp-XXX与fpr-XXX是一对veth pair;

             ③通过FIP namespace查询路由,即通往外部网络的默认路由;

             ④最终通过fg-XXX发送到br-ex。

       计算节点需要额外启用 l3-agent(dvr 模式),以及 metadata-agent。其实跟传统情况下的网络节点十分类似,不同的是单独有一个qfloat-XXX 路由器(如图中 的Floating IP,也在一个独立命名空间中)来负责处理带有 floating IP 的南北向流量,每个路由器有自己的命名空间,进行跨子网的转发。

    (2)没有FIP

             如图,租户T2想要通过外部网络来访问内部子网的VM1时,需要通过默认的SNAT网关来访问内部子网的虚机,即网络节点上的T2-SNAT。

            相反,若租户T2内部子网的虚机VM1想要访问外部网络,则仍需经过网络节点上的T2-SNAT路由器。

四、总结

        1. 所有节点的L3层通信,在流量出节点之前都会把源MAC替换成各节点都全局唯一的DVR host MAC。

        2. 从实质上讲,neutron的DVR模式并没有使用任何颠覆性的技术手段,可以说也就是把原有的VRouter给Distribute了。

        3. 网络节点只是在L3层服务配置了dvr_snat模式以及在命名空间上多了一个snat-XXX的专门处理来自计算节点的无FIP的南北向流量。

参考资料:https://docs.google.com/presentation/d/1ktCLAdglpKdsC--fQ2F_c2d3X1u-lyRGGUzRu9ITuWo/edit#slide=id.g2b6a14e30_036

posted @ 2019-03-19 09:19  Viviane未完  阅读(1646)  评论(0编辑  收藏  举报