本文章内容过长,上中篇请移步主页进行观看,本篇是文章的最终篇,感谢各位看官的支持
书接上文,我们继续来说说NAT在SDWAN中的技术实现。
穿越NAT建立SDWAN隧道
在SDWAN网络中,通常将CPE部署为STUN客户端,将RR部署为STUN服务器。客户端通过与服务器进行报文交互,能够发现网络中是否存在NAT设备,并确定经过NAT设备转换后的IP地址和端口号。STUN客户端探测到转换后的IP地址和端口号后,采用该IP地址与其他CPE建立SDWAN隧道;若CPE之间无法直接建立数据通道,则需要通过在公网中部署Nat transfer(NAT传输)设备来实现互通。
穿越NAT建立SDWAN隧道示意图
部署Nat transfer的SDWAN隧道示意图
部署Nat transfer的SDWAN组网如上图所示。下面以该组网为例,说明穿越NAT建立SDWAN隧道的过程。
控制通道建立
(1) STUN client与STUN server之间交互STUN协议报文,STUN client探测到本端NAT类型、Public IP地址(即访问STUN server时NAT转换后的Public IP)和端口号。
(2) SDWAN client与SDWAN server之间建立SSL连接,然后互相发送TTE信息(包含STUN探测到的NAT类型、Public IP等)。
(3) CPE 1、CPE 2和Nat transfer收到RR的TTE信息后,比较TTE信息中的路由域与本地是否相同。若路由域相同,则建立到达RR的SDWAN隧道,使用RR的TTE信息中Public IP作为隧道的目的IP;若路由域不同,则不建立SDWAN隧道。
(4) RR收到CPE 1、CPE 2和Nat transfer的TTE信息后,比较TTE信息中的路由域与本地是否相同。若路由域相同,则分别建立到达CPE 1、CPE 2和Nat transfer的SDWAN隧道。
由于NAT transfer部署在公网中,RR只需建立到达Public IP地址的SDWAN隧道。该Public IP地址为Nat transfer的TTE信息中的Public IP。
若CPE 1、CPE 2的TTE信息中NAT类型为完全锥型NAT,则RR建立到达Public IP地址的SDWAN隧道。该Public IP地址为CPE的TTE信息中的Public IP。