电子说
本文章内容过长,上篇请移步主页进行观看。
书接上文,我们继续来说说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。
若CPE 1、CPE 2的TTE信息中NAT类型为对端口限制锥型NAT、限制锥型NAT或对称NAT,则RR无法通过TTE信息中的Public IP访问CPE 1、CPE 2,所以RR无法按照当前获取的信息建立到达CPE 1、CPE 2的SDWAN隧道。需要按照如下步骤建立SDWAN隧道。
a. CPE 1、CPE 2设备通过CPE到RR的SDWAN隧道周期性地发送SDWAN控制报文。
b. RR将接收到的SDWAN控制报文的外层源IP地址作为Public IP地址,建立到达CPE 1、CPE 2的Public IP地址的SDWAN隧道。
(5) 完成SDWAN隧道建立后,CPE 1、CPE 2、Nat transfer和RR在设备上添加到达对端Systerm IP的UNR(User network route,用户网络路由)路由。路由的出接口为SDWAN隧道接口,下一跳为远端TTE ID。
(6) CPE 1、CPE 2、Nat transfer和RR之间基于Systerm IP建立IPv4 Tnl-Encap-Ext地址族下的BGP连接(控制通道)。
数据通道建立
(1) CPE 1、CPE 2、Nat transfer与RR建立BGP连接(控制通道)后,CPE 1、CPE 2、Nat transfer通过IPv4 Tnl-encap-ext路由向RR发送TTE信息,由RR将TTE信息反射到其他BGP邻居。
(2) CPE之间能否建立数据通道,除了比较路由域是否相同外,还会比较NAT类型,如下表所示。
a.若CPE之间可以直接建立数据通道,建立过程请参见步骤控制通道建立(4)。
b.若CPE之间无法直接建立数据通道,则需要通过在网络中部署Nat transfer设备来实现互通。CPE与Nat transfer之间建立数据通道,CPE之间的数据转发需要先通过数据通道转发到Nat transfer设备,再由Nat transfer设备通过数据通道转发到其他CPE,从而实现CPE之间的互通。CPE与Nat transfer之间建立数据通道的过程与CPE与RR之间建立SDWAN隧道的过程相同,具体参见步骤控制通道建立(4)。
SDWAN网络中的NAT类型组合表
CPE 1的NAT类型 | CPE 2的NAT类型 | CPE之间是否可以直接建立隧道 | 是否需要部署Nat transfer实现CPE互通 |
---|---|---|---|
无NAT | 完全锥型NAT | √ | × |
无NAT | 端口限制锥型NAT/限制锥型NAT | √ | × |
无NAT | 对称NAT | √ | × |
无NAT | 未知类型NAT | √ | × |
无NAT | 静态NAT | √ | × |
完全锥型NAT | 完全锥型NAT | √ | × |
完全锥型NAT | 端口限制锥型NAT/限制锥型NAT | √ | × |
完全锥型NAT | 对称NAT | √ | × |
完全锥型NAT | 未知类型NAT | √ | × |
完全锥型NAT | 静态NAT | √ | × |
端口限制锥型NAT/限制锥型NAT | 端口限制锥型NAT/限制锥型NAT | √ | × |
端口限制锥型NAT/限制锥型NAT | 对称NAT | × | √ |
端口限制锥型NAT/限制锥型NAT | 未知类型NAT | × | √ |
端口限制锥型NAT/限制锥型NAT | 静态NAT | √ | × |
对称NAT | 对称NAT | × | √ |
对称NAT | 未知类型NAT | × | √ |
对称NAT | 静态NAT | √ | × |
未知类型NAT | 未知类型NAT | × | √ |
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !