浅谈SD-WAN EVPN网络的核心原理
对于很多
网络工程师
来说,第一次阅读
SD
-WAN EVPN相关资料时,经常会看到这样一串关键词:NETCONF、DTLS、STUN、TNP、BGP SD-WAN、EVPN Type5……
单独看,每个概念似乎都不复杂,但当它们同时出现在一张架构图里时,事情就变得没那么简单了。尤其是很多人都会产生一个疑问:既然EVPN已经能够发布业务路由,为什么还要额外设计一套BGP SD-WAN路由?
要理解这个问题,不妨暂时放下协议细节,从一条真实的业务流量开始:假设北京分支的一名员工,需要访问部署在上海数据
中心
的一台服务器。那么,在第一条业务流量真正发出之前,整个SD-WAN EVPN网络究竟做了哪些准备工作?

01让设备知道自己该找谁
任何一张SD-WAN网络,都不会从路由协议开始。在设备上线后,
控制器
会首先通过NETCONF完成基础纳管。控制器会告诉RR与CPE:你是谁? 属于哪个站点? 应该连接哪个RR?这一步并不负责业务转发,也不参与路由计算,它只是为后续网络建立做好准备。
而真正精彩的部分,从这里才刚刚开始。
让RR知道你是谁
当CPE获得RR的信息后,会主动向RR发起DTLS注册。很多资料会把DTLS描述为一条安全管理通道,而在这里更像是一次“站点登记”:CPE会向RR上报自己的TNP信息。

现实中的企业分支,大量部署在运营商NAT之后。设备看到的是私网地址,但远端站点真正需要知道的却是公网映射后的地址和
端口
。因此,在注册过程中,设备还会借助STUN机制探测自身的公网映射信息以及NAT类型。
随后,CPE通过DTLS管理通道将这些信息发送给RR,与此同时,RR也会把自己的TNP信息返回给CPE。

最终,RR学习到的并不仅仅是一个设备地址,而是这个站点在整个互联网中的真实可达信息。
03控制通道在先,业务通道往后
完成注册后,RR与CPE会建立一条SD-WAN Tunnel,很多人第一次看到这里时,会下意识认为业务已经可以开始传输了。
实际上并不是,这条Tunnel更像是一条控制专线。它的主要作用,是为后续的BGP控制报文提供一个安全可靠的传输通道。真正承载用户业务的数据通道,此时还没有建立。换句话说,此时网络解决的仍然是:如何交流,而不是:如何传输业务。

不过新的问题马上出现了,此时RR已经知道了这个站点,但网络中的其他站点还不知道,如果未来有几百个、几千个站点接入网络,总不能依靠DTLS一个一个交换信息。于是,SD-WAN EVPN最精彩的设计开始登场。
04巧妙设计:两类路由,各司其职
当RR与CPE之间的BGP SD-WAN控制通道建立完成后,CPE会生成一种特殊的路由:BGP SD-WAN路由。很多人第一次接触这里时都会产生疑问:既然后面还要通过EVPN发布业务路由,为什么不把这些信息直接放进EVPN?
答案其实隐藏在一个更本质的问题里。网络中实际上存在两类完全不同的信息。第一类信息是:如何找到一个站点。第二类信息是:哪些业务属于这个站点。
例如,一个站点可能拥有几十条甚至上百条业务路由。但这些业务共用的公网地址、NAT信息、建隧参数却只有一份。如果把这些内容全部塞进业务路由,那么同样的信息就会被重复传播很多次,控制面的规模会迅速膨胀。于是,SD-WAN EVPN选择将两类信息拆开传播:BGP SD-WAN负责传播站点信息,EVPN负责传播业务信息。

很多人会以为,后续站点间的信息交换一直依赖DTLS,实际上并不是:DTLS更像第一次见面时交换名片。当BGP SD-WAN控制通道建立之后,站点信息的同步主要依赖BGP SD-WAN路由完成。即使未来公网地址发生变化、建隧参数发生变化,也可以通过BGP路由更新快速同步到全网。
05 EVPN出现,最后一块拼图终于补齐
到这里,网络已经知道了彼此的位置。但仍然无法转发业务。因为它还不知道:哪些业务属于哪个站点。
假设上海站点拥有业务网段: Type5路由,并通过RR反射给其他站点。当北京站点收到这条路由时,它获得了一条新的信息: SD-WAN路由(上海在哪里);另一块来自EVPN Type5路由(上海有哪些业务)。

当这两类信息被关联起来后,网络终于具备了建立端到端业务路径的全部条件。于是,真正用于承载业务流量的SD-WAN数据通道开始建立,业务路由迭代到数据通道之上,最终形成完整的转发路径。
06为什么这种设计反而更快?
第一次接触SD-WAN EVPN时,很多人都会觉得:控制器、DTLS、STUN、BGP SD-WAN、EVPN……似乎每个组件都在增加新的复杂度。但如果顺着一条业务流量重新回顾整个过程,就会发现:

看似复杂的设计,本质上是在把准备工作提前完成。在业务流量出现之前:

当业务流量真正到来时,设备只需要把已经准备好的信息关联起来,便能快速建立转发路径。这也是SD-WAN EVPN能够在大规模组网场景下依然保持快速收敛的重要原因。
07一个有趣的彩蛋
文章写到这里,其实已经能够解释SD-WAN EVPN的大部分核心原理,不过还有一个有趣的小细节:当多个VPN业务共享同一条SD-WAN数据通道时,设备如何区分这些业务属于哪个VPN?
答案是VNID,在实际转发过程中,设备会将VPN对应的VNID携带在GRE封装中,对端收到报文后,再根据VNID映射到对应VPN实例,从而实现业务隔离。
08写在最后
回到文章开头的问题:为什么已经有EVPN了,还要设计BGP SD-WAN路由?
因为它们解决的是两个不同层面的问题:EVPN负责告诉网络:业务在哪里;BGP SD-WAN负责告诉网络:应该如何到达那里。前者描述业务,后者描述网络。
从结果上看,用户感受到的只是一次流畅的视频会议、一次稳定的远程办公访问,或者一次快速的跨地域业务连接。但在这些体验背后,SD-WAN EVPN已经提前完成了大量复杂而精妙的准备工作。
而这,或许正是它最值得称道的地方。
服务器
服务器
+关注
关注
14
文章
10533
浏览量
92104
网络
网络
+关注
关注
14
文章
8423
浏览量
96015
SD-WAN
SD-WAN
+关注
关注
0
文章
352
浏览量
16153
原文标题:漫谈SD-WAN:一条流量,是如何穿越SD-WAN EVPN网络的?
文章出处:【微信号:huaweidoc,微信公众号:华为产品资料】欢迎添加关注!文章转载请注明出处。
