云数据中心网络与SDN:1.9.3 控制与转发过程分析

举报
华章计算机 发表于 2019/06/03 02:35:26 2019/06/03
【摘要】 本书摘自《云数据中心网络与SDN: 技术架构与实现》——书中第1章,第1.9.3节,作者是张晨。

1.9.3 控制与转发过程分析

QFabric的技术架构实际上采用的还是Juniper一贯的路数——BGP/MPLS VPN,Node可以看作PE,Interconnect可以看作P,Director可以看作RR。在控制面上,QFabric为BGP扩展了MAC的地址族,并且还可以传32位的主机IP路由,QFabric的这种设计即为IETF EVPN控制平面的技术原型。在数据面上,QFabric在L2 Header前面封装了私有的Fabric Header。根据公开的资料无法得知Fabric Header具体的封装格式,不过可以确定的是Fabric Header是一个类似于MPLS Stack的结构。Ingress Node至少要向Fabric Header中压两个Label:外层Label为Egress Node的PFE-ID(类似于BGP/MPLS VPN中的transport label);内层Label为Egress Node上的出端口的Port ID(类似于BGP/MPLS VPN中的service label)。另外,用于标识BUM转发树的Multicast Core Key也会包含在Fabric Header中。

1.控制机制

通过VCCPD获得设备清单,通过VCCPDf获得Underlay拓扑,Director计算出Node转发表推送给Node和Interconnect。

每当Node在本地发现一个新的VLAN/VRF时,就会通过FCP告诉给Director,以订阅该VLAN/VRF的转发信息。Director中会记录订阅了某个VLAN/VRF的所有Node。

Director会将VLAN的订阅信息通过FCP推送给Interconnect和相关的Node,Interconnect/Node会结合Node转发表中的信息,解析出相应的转发端口,形成BUM转发表,用于L2 BUM流量的处理。

Host向其他host发送ARP时,Ingress Node完成MAC地址的学习并通过FCP告知给Director。Host向默认网关发送ARP时(证明它很可能会发L3的数据包),Ingress Node回复默认网关的MAC地址,并完成/32 IP地址的学习并通过FCP告知给Director。Director会通过FCP将这些MAC路由和/32 IP路由反射给订阅了相关VLAN/VRF的Node,以打通QFabric内部的L2/L3。

Director与外界的路由器运行OSPF或者BGP等路由协议,学习外界的路由表。

Director会将FCP学习到的MAC路由/IP路由,与通过路由协议学习到的外界路由,实现重分布,以打通QFabric与外界网络。

2.转发机制

L2的已知单播包。Ingress Node收到数据包后查找MAC转发表,得到目的地所在的Egress Node的PFE-ID,以及其接入Egress Node的端口Port-ID,并据此封装Fabric Header,然后根据PFE-ID迭代查找Node转发表,选择一个端口送到Interconnect上;Interconnect会根据Fabric Header中外层的PFE-ID Label,查找Node转发表送给Egress Node,并剥掉PFE-ID Label(类似于倒数第二跳弹栈);Egress Node收到数据包后剥掉Port-ID Label,得到本地的出端口并进行转发(具体的实现机制目前不得而知,可能是类似于Untag,即根据Port-ID直接转发,也可能是类似于Aggregate,即需要迭代查MAC转发表)。

L2的BUM流量。Ingress Node收到数据包后,根据VLAN得到BUM转发树的Multicast Core Key,并通过Multicast Core Key迭代查找BUM转发表获得相关的端口,对于本地端口就直接发送,对于FTE端口则将Multicast Core Key的信息封装进Fabric Header,然后送到Interconnect上;Interconnect会根据Fabric Header中的Multicast Core Key信息,查找BUM转发表,并送给相关的Node;Egress Node收到数据包后,查找BUM转发表,并从本地相关的端口发送出去。

L3的已知单播包。Node上有相关VLAN的默认网关,可实现分布式路由。Ingress Node收到数据包后查找IP转发表,得到目的地所在的Egress Node的PFE-ID以及其接入Egress Node的端口Port-ID,TTL减1并封装Fabric Header,然后根据PFE-ID迭代查找Node转发表,选择一个端口送到Interconnect上;Interconnect会根据Fabric Header中外层的PFE-ID Label,查找Node转发表送给Egress Node,并剥掉PFE-ID Label(类似于倒数第二跳弹栈);Egress Node收到数据包后剥掉Port-ID Label,得到本地的出端口进行转发(具体的实现机制目前不得而知,可能是类似于MPLS VPN中的Untag,即根据Port-ID直接转发,也可能是类似于MPLS VPN中的Aggregate,即需要迭代查IP转发表),并完成MAC地址的改写。

L3的未知单播包。假设L3数据包的源host属于VLAN 1,目的host属于VLAN 2,而目的host之前是静默的,因此Node A上的IP转发表中没有目的host的信息。此时,Node A需要主动去解析目的host的ARP,不过Node A没有订阅VLAN 2,也就没有VLAN 2的BUM转发表,因此Node A自身无法完成后续的处理。于是,Node A会封装Fabric Header将该数据包单播给NWNG中的Node C,Node C再通过Out-of-Band的CPE网络上报给Director中的NWNG-VM。NWNG-VM收到该数据包后,发现处理该数据包需要解析目的host的ARP,NWNG-VM上有所有VLAN的订阅信息,于是NWNG-VM在本地生成相应的ARP Request,并通过CPE网络向所有订阅了VLAN 2的Node泛洪这个ARP Request。目的host收到后回复ARP Reply,目的host所在的Node B看到这个ARP Reply后,会通过FCP将目的host的/32 IP路由同步给Node A。之后,源host和目的host间的通信就变成了L3的已知单播,处理流程同上。

L3的组播没有看到公开的资料。

上述就是对QFabric技术架构的介绍。在2011年的时间点来看,QFabric的技术在当时确实有其独到之处,特别是Director所实现的中央式控制,而且QFabric在分布式与集中式间也做了很好的平衡,保证了良好的可扩展性。看起来最亮眼的“1-Tier”,实际上就是一种基于Tag转发的思路,FabricPath中也采用了类似的思路。另外,QFabric中所使用的控制协议,构成了EVPN的雏形,为EVPN后来的发展奠定了直接的基础。关于EVPN的详细介绍,请参见1.14节。



【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。