1.1 SDN网络架构 SDN是对传统网络的一次演变,从原来分布式控制的网络架构演变为集中控制的网络架构。SDN(Software Defined Network),App定义网络,其网络架构的核心是在网络中引入一个SDN控制器,是面向应用的网络自动化部署。 1.1.1 SDN网络架构的三层模型SDN网络架构一般分为三层:应用层、控制层、转发层。 l 应用层:体现用户具体应用对网络的抽象,基于应用或者服务的维度呈现网络模型。可以是第三方提供的APP,也可以是控制器自主提供的GUI页面。 l 控制层:负责网络业务自动化部署。控制层可以对协同应用层开放服务API接口,以满足多应用直接使用编排网络。同时控制器还需要与传统网络或者其他控制器建立连接关系共同完成业务部署。 l 转发层:转发层是软硬件转发设备,主要完成数据报文的实际转发。基于现有基础网络上构建overlay网络转发。 1.1.1 SDN网络的优势SDN实现了集中控制,从而为更集中化,精细化控制奠定了基础。SDN相对于传统网络具有以下特点: l SDN构建在传统网络基础上,快速、自动化的构建Overlay业务,满足用户快速业务开通诉求。 l SDN利用现有成熟协议集中布放overlay网络,减少overlay网络使用复杂协议的情况,也减少用户学习相关协议的成本。 l 集中化的业务发放有利于从更宏观的角度调配传输带宽和网络资源,提高网络资源利用率。 l SDN集中管理、精细化运维简化了运维管理的工作量,大幅节约运维费用。 1.1 OverLay网络技术Overlay 网络定义将一个业务网络构建在另一个网络之上。Overlay技术是一种封装技术,在传统underlay网络基础上构建一层业务网络,用户可以不管底层underlay网络使用什么协议,如何构造,只要求underlay网络路由可达即可。用户可见的只是Overlay网络,快速基于Overlay网络部署业务。这样做的好处,用户可以在现有网络基础上演进,无需重新构建另外一套网络而导致巨大的成本开销。本解决方案中使用的Overlay技术是Vxlan。 Overlay网络价值点: l 与物理网络(underlay网络)解耦,将网络虚拟化构建出面向应用的自适应逻辑网络。 l OverLay按需部署网络业务时,业务网络频繁变更,underlay网络不需要变动。 l 便于underlay网络弹性扩展。 l 便于控制器集中管理,快速实现业务发放。 HUAWEI通过Vxlan技术来构建Overlay网络,简化网络配置,通过在Underlay网络基础上配置基于Vxlan的Overlay网络来部署自动化业务,逐步从传统网络平滑到SDN方案。 1.2 VXLAN技术先容1.1.1 VXLAN技术背景VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)技术是为了解决云计算时代虚拟化中的一系列问题而产生的一项技术。随着BOYD及IOT网络场景的驱动,传统的园区网络主要面临以下挑战: l 接入终端规模受网络设备表项规格的限制 对于同网段终端设备的通信而言,报文通过查询MAC表进行二层转发。用户终端设备的数量发生了数量级的增长,伴随而来的便是MAC地址数量的空前增加,超出了接入侧设备的表项规格。 l 传统网络的隔离能力有限 VLAN作为当前主流的网络隔离技术,在标准定义中只有12比特,也就是说可用的VLAN数量只有4000个左右。对于中大型园区场景,VLAN的隔离能力显然已经力不从心。 l 二层域的范围受限 在中大型园区下,存在部分业务要求特殊终端必须部署在一个二层域中,而传统园区网络要求全路径设备必须放通Vlan以实现二层域,考虑风暴风险等问题,这就决定在传统园区二层域的范围受限,严重影响业务的部署。 VXLAN是基于IP网络、采用“MAC in UDP”封装形式的二层VPN技术。VXLAN可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。VXLAN主要应用于多隔离,大二层网络,有如下特点: l 支撑大量的隔离域:使用24位的标识符,最多可支撑2的24次方(16777216)个VXLAN,使支撑的隔离域数目大规模增加,解决了传统二层网络VLAN资源不足的问题。 l 易于维护:基于IP网络组建大二层网络,使得网络部署和维护更加容易,并且可以充分地利用现有的IP网络技术,例如利用等价路由进行负载分担等;只有IP核心网络的边缘设备需要进行VXLAN处理,网络中间设备只需根据IP头转发报文,降低了网络部署的难度和费用。 得益于VXLAN技术,园区网络面临的问题也迎刃而解: 对于“接入终端规模受网络设备表项规格的限制”这个问题,可能有人认为换成规格大一些的接入交换机,但是这会提高网络建设的成本。VXLAN技术可以将大量终端的MAC地址“隐形”。 VTEP会将终端发出的原始报文封装成一个新的UDP报文,并使用物理网络的IP和MAC地址作为外层头,对网络中的其他设备只表现为封装后的参数。也就是说,网络中的其他设备看不到用户终端发送的原始报文。这样,核心设备就不需要学习终端的MAC地址了,它只需要根据外层封装的报文头负责基本的三层转发就可以了。因此,终端规模就不会受网络设备表项规格的限制了。 对于“传统网络的隔离能力有限”这个问题,VXLAN采用了“扩容”的解决方法,引入了类似VLAN ID的用户标示,也就是VNI。一个VNI代表了一个隔离域,属于不同VNI的终端之间不能直接进行二层通信。VTEP在对报文进行VXLAN封装时,给VNI分配了24比特的空间,这就意味着VXLAN网络理论上支撑多达16M(即:224-1)的隔离域。相比VLAN,VNI的隔离能力得到了巨大的提升,有效得解决了大中型园区中海量隔离网络的问题。 对于“无线场景终端可移动范围受限”这个问题,VXLAN将原始终端的报文封装在三层的UDP报文中进行转发,就好像在三层网络之上构建出了一个虚拟的二层网络,从而解决无线场景终端可移动范围受限的问题。 1.2.1 VXLAN技术原理VXLAN网络模型 图1-1 VXLAN网络模型 上图为VXLAN的网络模型,主要包括VTEP、VNI、VXLAN隧道: l VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端点) VXLAN网络的边缘设备,是VXLAN隧道的起点和终点,VXLAN报文的相关处理均在这上面进行。它是VXLAN网络中绝对的主角。VTEP可以是独立的网络设备(比如HUAWEI的S系列交换机)。 l VNI(VXLAN Network Identifier,VXLAN 网络标识符) 以太网数据帧中VLAN只占了12比特的空间,这使得VLAN的隔离能力在大中型园区网络中力不从心。而VNI的出现,就是专门解决这个问题的。VNI是一种类似于VLAN ID的用户标示,一个VNI代表了一个二层隔离域,属于不同VNI的终端之间不能直接进行二层通信。VXLAN报文封装时,给VNI分配了足够的空间使其可以支撑海量网络隔离域,应对IOT等场景下海量终端种类问题。 l VXLAN隧道 “隧道”是一个逻辑上的概念,它并不新鲜,比如大家熟悉的GRE,说白了就是将原始报文加以“包装”,好让它可以在承载网络(比如IP网络)上传输。从终端的角度看,就好像原始报文的起点和终点之间,有一条直通的链路一样。而这个看起来直通的链路,就是“隧道”。顾名思义,“VXLAN隧道”便是用来传输经过VXLAN封装的报文的,它是建立在两个VTEP之间的一条虚拟通道。 VXLAN报文格式 图1-2 VXLAN报文格式 l VXLAN Header 增加VXLAN头(8字节),其中包含24比特的VNI字段,用来定义VXLAN网络中不同的租户。此外,还包含VXLAN Flags(8比特,取值为00001000)和两个保留字段(分别为24比特和8比特)。 l UDP Header VXLAN头和原始以太帧一起作为UDP的数据。UDP头中,目的端口号(VXLAN Port)固定为4789,源端口号(UDP Src. Port)是原始以太帧通过哈希算法计算后的值。 l Outer IP Header 封装外层IP头。其中,源IP地址(Outer Src. IP)为源终端所属VTEP的IP地址,目的IP地址(Outer Dst. IP)为目的终端所属VTEP的IP地址。 l Outer MAC Header 封装外层以太头。其中,源MAC地址(Src. MAC Addr.)为源终端所属VTEP的MAC地址,目的MAC地址(Dst. MAC Addr.)为到达目的VTEP的路径上下一跳设备的MAC地址。 VXLAN转发原理 图1-3 二层VXLAN网络 1. VXLAN二层网关从传统VLAN网络收到以太报文,根据报文接入的Port和VLAN信息获取对应的二层广播域;查MAC表找到出接口和封装信息,进行封装与转发;缺省需要剥掉原二层头的VLAN TAG;然后新加VXLAN封装,包含VXLAN头VNI、VXLAN UDP头、VXLAN隧道头(DIP\SIP)以及外层二层头;完成VXLAN报文封装后,根据VXLAN隧道头目的IP查路由表发送报文。 2. VXLAN二层网关从VXLAN网络收到VXLAN报文,首先根据VXLAN隧道表检查VXLAN UDP D_PORT、VXLAN隧道DIP\SIP、VXLAN VNI的合法有效性;然后根据VXLAN VNI获取对应的二层广播域; 再解VXLAN封装,获取内层二层报文,根据二层报文目的MAC地址查MAC表发送报文。 图1-4 VXLAN三层网关 1. VXLAN三层网关收到VXLAN报文后解封装获取内层二层报文,判断二层报文目的MAC为本机MAC,入三层转发流程。根据内层报文的目的IP地址查路由表,进行三层转发。 2. 根据路由表获取下一跳IP地址,根据IP地址查ARP表,得到MAC地址,再查流表,如果出接口为VXLAN隧道,则按照ARP表中的VXLAN隧道封装信息进行VXLAN封装,然后将报文发送出去。 1.3 VXLAN方案及其实现原理先容Vxlan网络根据业务网关部署的位置可分为:1. 集中式VXLAN方案;2. 分布式VXLAN方案。 集中式VXLAN方案将用户网络的网关集中设置在核心节点,这种方案的特点: l 子网间的流量都需要经过核心设备:fabric内的东西向流程转发路径存在绕行,且对核心设备的带宽要求过高。考虑到园区业务特点主要为南北向流量,集中式VXLAN东西向流量必须绕行核心的问题影响很小。 l 集中式三层网关需要学习全量的ARP、MAC表项,通过三层网关转发的终端的ARP、MAC表项都需要在三层网关上生成,因此部署时需要考虑核心设备的表项规格。 l 网关集中运维较简单:网关的集中部署有利于问题定位,子网间控制策略只需要在一台设备配置即可,日常运维更简单。 分布式VXLAN方案将用户网络网关就近设置在挂载的汇聚节点,同汇聚下的子网间流量可以在汇聚节点卸载,无需绕行至核心节点,这种方案具有如下特点: l 东西向转发路径更优:如果在同一个汇聚节点下,跨子网的流量无需到核心节点绕行,如下图,PC1和PC2不在同一个网段,但是都下挂在同一汇聚节点下。PC1和PC2通信时,流量只需要在汇聚节点进行转发,不再需要经过核心节点。只有挂载不同汇聚设备下的终端才需要绕行至核心节点转发。 l 横向扩展更容易:同一个汇聚节点既可以做VXLAN二层网关,也可以做VXLAN三层网关,随着园区规模不多增加,可以横向扩展汇聚节点增加网络容量。 l 表项瓶颈问题可规避:汇节点只需要学习和自身下挂终端在同一网段的ARP、MAC表项,而不必像集中三层网关一样,需要学习所有终端的ARP、MAC表项,解决了集中式三层网关带来的ARP、MAC表项瓶颈问题,网络规模扩展能力强。 上面的两种组网场景,当前iMaster NCE-Campus均已实现,实际项目中基于项目规模、业务特点、后面扩容的规模等等选择不同的组网场景。 1.1.1 分布式VXLAN方案实现原理集中式VXLAN方案实现原理较为简单,二三层转发与传统VLAN思路一致,只是NVE节点之间通过VXLAN报文传递,VXLAN隧道的建立原理与分布式VXLAN一致,分布式VXLAN原理会统一先容,因此不做单独先容。 在分布式网关组网场景下,Overlay网络需要使用BGP EVPN来传递路由,使各分布式网关(汇聚)设备实现互通。首先先容一下 EVPN 协议及其在分布式VXLAN网络中的作用。 1. EVPN协议 EVPN(Ethernet Virtual Private Network)是一种用于二层网络互联的VPN技术。EVPN技术采用类似于BGP/MPLS IP VPN的机制,在BGP协议的基础上定义了一种新的NLRI(Network Layer Reachability Information,网络层可达信息)即EVPN NLRI,EVPN NLRI定义了几种新的BGP EVPN路由类型,用于处在二层网络的不同站点之间的MAC地址学习和发布。 原有的VXLAN实现方案没有控制平面,是通过数据平面的流量泛洪进行VTEP发现和主机信息(包括IP地址、MAC地址、VNI、网关VTEP IP地址)学习的,这种方式导致网络存在很多泛洪流量。为了解决这一问题,VXLAN引入了EVPN作为控制平面,通过在VTEP之间交换BGP EVPN路由实现VTEP的自动发现、主机信息相互通告等特性,从而避免了不必要的数据流量泛洪。 2. 分布式VXLAN的实现 建议在Fabric内的核心节点部署BGP RR反射器,与所有的汇聚(VxLAN网关)建立BGP EVPN邻居,接收和反射BGP EVPN路由,在分布式VXLAN方案中主要使用以下几类BGP EVPN路由: − NVE上配置VTEP,生成EVPN inclusive路由,由RR反射器将路由反射到DC内的其他NVE节点,动态创建VxLAN隧道。 − NVE上配置subnet网关,生成EVPN ip-prefix路由,送给RR反射器,由RR反射器将路由反射到其他NVE节点,形成路由表。 − NVE上通过ARP报文学习生成HOST表,生成EVPN IRB路由,由RR反射器将路由反射到其他NVE节点,形成主机路由表和ARP广播抑制表。 − NVE上通过MAC学习生成MAC表,生成EVPN MAC/IP路由,由RR反射器将路由反射到其他NVE节点,形成MAC转发表。
|