华为SD-WAN方案之通道建立流程

背景

随着科技与文明的发展,很多公司和企业也得到极大的发展。企业的事业蒸蒸日上后,会在全国甚至全球各地创建公司分部,而分部与总部经常会有网络通信的需求。为了解决通信需求,网络界诞生了很多种方案。这些方案大致可以归结为两大类,第一类就是专线,另一类就是Internet + VPN(Virtual Private Network),即虚拟专用网络。专线主要指的是传输专线和MPLS VPN专线两类,而传输专线包含的业务主要是SDH、MSTP、裸纤等。在专线这类方案中,它运用的是运营商的线路资源实现互联。其方案的特点是性能优异,但是价格昂贵。而VPN方案相比其而言则价格便宜,但是性能方面会逊于传输专线。

Internet + VPN这类方案则是在物理线路和设备上构建虚拟的专线,一条线路可以虚拟为多条线路来使用,所以其价格便宜。Internet + VPN其原理是利用Internet线路接入,然后在之上建立VPN。其特点是价格低廉,备受企业的喜爱。在该类方案中IPsec(IP Security)和GRE(Generic Routing Encapsulation) Over IPsec这两种VPN使用得最为广泛。源自于IPsec VPN能实现加密功能,而GRE可以封装组播数据并在GRE隧道中传输。

SD-WAN方案的优点

在传统网络中,采用IPsec VPN或者GRE Over IPsec方案是很受欢迎的,但是随着企业规模的扩大,网络规模增大,还有SDN(Software Defined Network)概念的出现,SD-WAN方案将替代传统的VPN方案。接下来我们来分享下SD-WAN方案相比传统自建VPN方案有些什么优点,为什么能替代传统的VPN方案。其优点有如下几个方面。

智能选路:传统网络VPN方案业务流量感知能力比较差,无法有效保障关键业务,而SD-WAN方案基于不同的应用类型,动态调整流量的路径,实现灵活便捷的调度方式。

智能运维:在站点过多的场景下,传统网络VPN方案容易导致网络排错困难,且运维成本高,而SD-WAN方案提供自动化、全网状态可视化、智能化运维能力,网络故障后易于排障,所以其运维成本低。

部署效率高:传统网络VPN方案中,所有软硬件调试安装都需要人力完成,导致新业务开通周期较长,而SD-WAN方案通过零配置开局等方式,可以实现分支的快速部署和上线,提高部署效率。

转控分离:传统网络VPN方案中,其采用分布式路径决策,网络设备独立自主计算流量路径;而SD-WAN方案可以实现集中管控、转控分离,网络结构得到极大简化,调整网络行为时,只调整控制器策略即可。

SD-WAN方案的工作原理

既然SD-WAN相对于传统自建VPN方案有那么多优点,接下来开始分享下SD-WAN方案是如何实现企业分支之间的互联的。接下来的分享以华为SD-WAN的方案为例给大家分享其工作原理。

事实上,华为SD-WAN方案底层也是采用GRE或者GRE Over IPsec实现分支之间的互联的,但是其相比于传统企业自建VPN而言,不需要人力亲力亲为,许多配置都由控制器下发或者自主完成配置,可以节省很多人力成本或者运维成本。其基本工作原理可以分为三大步,第一步:管理通道建立;第二步:控制通道建立;第三步数据通道建立并实现数据转发。通过以上三个步骤就可以实现分部之间建立网络连接,最终实现数据访问。接下来详细分析下每一个步骤。

l 管理通道建立

在了解管理通道建立过程前,我们先说下管理通道是什么以及其作用。Edge或RR会与控制器(iMaster NCE)建立NETCONF通道,而这个NETCONF通道则称之为管理通道。这里涉及到几个名词,解释如下。

Edge:本质上是SD-WAN网络的边界点,相当于分支站点出口路由器设备。

RR:Route Reflector中文译为路由反射器,用于反射Edge设备之间的底层传输的网络信息和路由信息。

NETCONF:Network Configuration Protocol,网络配置协议,其提供一套管理网络设备的机制。用户可以使用这套机制增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。

要实现SD-WAN方案,网络中需要两种网络设备,一种是Edge,另一种是RR。Edge设备为分支站点的出口设备,最终Edge设备之间需要建立VPN隧道传输数据。但在这之前需要和RR建立BGP EVPN邻居关系,用于传递网络信息和路由信息。RR和Edge之间的关系类似于MPLS VPN网络中RR和PE设备之间的关系,当然RR设备和Edge也可以是同一台物理设备。设备之间是否建立BGP EVPN邻居关系是由控制器来控制的,所以就需要Edge或RR与控制器建立NETCONF通道,而这个NETCONF通道就称之为管理通道。

这个NETCONF通道是如何建立起来的呢?首先需要管理员登录控制器,在控制器上配置Edge和RR的参数【参数主要包含站点信息、ESN(Equipment Serial Number,设备序列号)、设备型号等】。然后管理员通过HCP或URL链接等方式让Edge和RR设备获取控制器的IP、端口信息。最后Edge和RR向控制器发起注册,注册成功后即表示管理通道建立完成。管理通道在建立的时候使用NETCONF协议,而该过程中为了保证信息的安全性,NETCONF协议运行于SSH安全协议之上。

华为SD-WAN方案之通道建立流程

图1 设备与控制器的逻辑关系图

图1表述了Edge、RR、控制器之间的逻辑关系。那么这个控制器部署在什么位置呢?可以在公有云上,也可以在企业自建数据中心里,也可以部署在运营商网络中,总之只要Edge和RR设备可以通过网络能连接即可。

管理通道建立完成后,控制器会下发一些配置信息给RR和Edge。

给RR下发的配置主要包含全局唯一的管理IP(同时也是Router ID)、IPsec SA、TNP信息、DTLS信息、静态路由等。管理IP的作用是控制器可以通过该管理IP对RR进行标识和管理;IPsec SA 是之后建立控制通道使用;TNP(Transport Network Port,传输网络端口)信息包括Site ID、Transport Network-ID、Public IP、Private IP和Tunnel Encapsulation等,其代表含义如图2所示;DTLS信息用于使能DTLS服务器和开启侦听端口;静态路由是指RR到Edge的静态路由,使RR与CPE之间路由可达。

华为SD-WAN方案之通道建立流程

图2 TNP信息介绍

而给Edge下发的信息主要包含设备管理IP、RR的注册地址和端口号、TNP信息、IPsec SA信息、Edge到RR的静态路由,其作用跟控制器下发给RR的类似。管理通道下发这些信息的目的是为接下来建立控制通道做准备。

l 控制通道建立

Edge设备在获取到RR的地址和端口后,会主动向RR发起DTLS(Datagram Transport Layer Security,数据包传输层安全性协议)连接,DTLS连接成功后,CPE将自身的TNP和IPsec SA等信息通知RR,RR将自身的TNP信息和IPsec SA信息反向通知Edge设备。之后,RR与Edge之间将完成建立BGP EVPN隧道,该隧道也称之为控制通道。

在上述过程中,RR作为DTLS服务器,Edge作为DTLS客户端。DTLS的连接是由客户端主动发起的,所以RR侧必须有固定的公网IP地址。如果是动态的IP地址,则RR每次获得不同的地址后,Edge就不知道向哪个地址发起连接。

建立DTLS的目的是为了加密传输RR和Edge设备之间的TNP和IPsec SA等信息。而获取对方的TNP和IPsec SA信息是为了接下来建立BGP EVNP邻居时知道向哪个地址发起连接以及该连接是被加密保护的。TNP和IPsec SA信息是在Internet上发送的,为了防止泄露,所以采用DTLS加密。RR和Edge设备之间的TNP和IPsec SA等信息携带在应用层数据中,DTLS对该应用层数据加密后,封装DTLS头部,然后再封装到TCP/IP报文中传输给对方设备。

通过DTLS通道可以获取对方的TNP和IPsec SA信息,接下来RR与Edge之间可以开始建立BGP EVPN隧道,即建立BGP EVPN对等体邻居。在建立过程中,发送的BGP报文是被IPsec加密后再发送出去的,这也是为什么DTLS连接建立后为什么要传递IPsec SA的原因,所以最终控制通道建立过程中报文的封装是BGP EVPN over GRE over IPsec。

BGP EVPN隧道建立完成,Edge和RR之间的路由信息和网络信息则可以得到传递,路由信息是指最终数据通信的业务路由,而网络信息指TNP和SA信息。路由信息和网络信息都是携带在BGP的update报文中,通过BGP EVPN隧道传输给对方。在建立BGP EVPN隧道之前RR和Edge之间不是已经相互发送过TNP和SA信息了么,为什么此时还需要发送网络信息?源自于在多分支互联的场景下,分支1的Edge传递业务路由给RR,RR收到该路由后会反射给分支2的Edge,最终数据传输时会在两个Edge之间直接传输,所以分支2不仅需要分支1的业务路由信息,还需要知道对方的TNP和SA信息,其目的是为接下来建立数据隧道做准备。

l 数据通道建立

分支之间有了对方的TNP和SA信息,则可以开始建立数据通道,数据通道建立的目的是保证最终业务数据安全传输。当然并不是意味着拥有对方的TNP和SA信息就一定会向对方建立数据通道,这跟流量策略有关。如果分支之间互访采用Full-Mesh拓扑,则分支之间会两两建立数据通道;如果采用Hub-Spoke拓扑,则所有Spoke站点只需要跟Hub站点建立数据通道即可。

在建立数据通道的时候,Edge之间会建立一条或者多条隧道,这跟TNP信息有关。如图3,分支A与B通过两个不同的TN (Transport Network,传输网络)连接,且属于不同的RD(Routing Domain,路由域),则此时会建立两条隧道,最终数据报文可以选择负载或者主备模式在两条隧道中传输。如果不同的TN但属于相同的RD,则会建立四条隧道,如图4。

华为SD-WAN方案之通道建立流程

图3 不同RD隧道组网模型

华为SD-WAN方案之通道建立流程

图4 相同RD隧道组网模型

TN和RD的信息是由管理员在控制器上手工配置,然后再下发给Edge和RR设备的。如果是图4场景,Internet1和Internet2物理连接上属于相同路由域,但是在控制器上配置时,逻辑上给其配置不同的路由域,则其也只能建立两条隧道。当然,两个分支之间只有一条线路连接到同一个TN下,则最终只能建立一条隧道。

下面以图5来讲解分支之间的最终互访过程。分支A的Edge设备传递路由给RR,RR再反射给分支B的Edge设备,反之分支B的业务路由也能传递给分支A,同时携带网络信息。Edge设备学习到路由后会生成路由表,同时建立去往对方的数据通道。当后期分支A访问分支B时,则数据包内层源目IP分别为10.1.1.0网段和10.2.1.0网段IP,而数据包外层源目IP分别为1.1.1.1和2.2.2.2。而内层IP和外层IP包头之间会采用GRE或者GRE over IPsec封装,采用GRE还是GRE over IPsec封装取决于在配置策略时管理员有没有选择“IPsec加密”。

华为SD-WAN方案之通道建立流程

图5 数据转发原理

在实际网络中,分支之间可能有多种业务流量需要互访,为了区分这些业务且不建立多条数据隧道,需要在隧道中为不同业务VPN的数据报文增加一个标识。由于隧道采用GRE或者GRE over IPsec封装,所以在华为SD-WAN解决方案中通过GRE私有扩展Key的方式进行不同业务流量的标识。传统的GRE报文格式如图6,Key为关键字字段,隧道接收端用于对收到的报文进行验证。关键字的作用是标志隧道中的流量,属于同一流量的报文使用相同的关键字。在报文解封装时,GRE将基于关键字来识别属于相同流量的数据报文。只有两端设置的识别关键字完全一致时才能通过验证,否则将报文丢弃。

华为SD-WAN方案之通道建立流程

图6 GRE报文格式

在SD-WAN EVPN场景下,Key的取值为VNID。报文封装的时候,通过VPN找到VNID,封装在扩展的GRE头中,带到对端,对端再根据VNID映射到本地的VPN,进行路由隔离。这样即区分这些业务流量,且不用建立多条数据隧道。


友情提醒: 请添加客服微信进行免费领取流量卡!
QQ交流群:226333560 站长微信:qgzmt2

原创文章,作者:sunyaqun,如若转载,请注明出处:https://www.dallk.cn/1607.html

(0)
sunyaqunsunyaqun
上一篇 2023年9月23日
下一篇 2023年9月23日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注