01-SDWAN配置
本章節下載: 01-SDWAN配置 (882.22 KB)
目 錄
1.5.1 BGP IPv4 Tnl-Encap-Ext地址族
2.7 配置BGP發布IPv4 Tnl-encap-ext路由
2.7.2 開啟BGP發布IPv4 Tnl-encap-ext路由能力
2.7.3 配置BGP IPv4 Tnl-encap-ext路由
2.8.3 通過Priority-Color屬性實現流量逃生以及負載分擔
2.8.4 配置IP前綴路由僅通過Priority-Color擴展團體屬性迭代下一跳
SDWAN(Software Defined Wide Area Network,軟件定義廣域網)是將SDN技術應用到廣域網的一種VPN技術。控製平麵通過SSL/MP-BGP通告TTE(Transport Tunnel Endpoint,傳輸隧道端點)信息,實現不同站點間SDWAN隧道的建立,並通過MP-BGP在不同站點間發布私網路由;數據平麵采用UDP封裝轉發數據報文,通過IPsec等安全機製來確保數據的安全傳輸,為分散在廣闊地理範圍內的企業網絡、數據中心等提供安全可靠的互聯服務。
本特性的支持情況與設備型號有關,請以設備的實際情況為準。
型號 |
說明 |
MSR610 |
不支持 |
MSR810、MSR810-W、MSR810-W-DB、MSR810-LM、MSR810-W-LM、MSR810-10-PoE、MSR810-LM-HK、MSR810-W-LM-HK、MSR810-LM-CNDE-SJK、MSR810-CNDE-SJK、MSR810-EI、MSR810-LM-EA、MSR810-LM-EI |
支持 |
MSR810-LMS、MSR810-LUS |
不支持 |
MSR810-SI、MSR810-LM-SI |
不支持 |
MSR810-LMS-EA、MSR810-LME |
支持 |
MSR1004S-5G、MSR1004S-5G-CN |
支持 |
MSR1104S-W、MSR1104S-W-CAT6、MSR1104S-5G-CN、MSR1104S-W-5G-CN、MSR1104S-W-5GGL |
支持 |
MSR2600-6-X1、MSR2600-15-X1、MSR2600-15-X1-T |
支持 |
MSR2600-10-X1 |
不支持 |
MSR2630-G-X1 |
支持 |
MSR 2630 |
不支持 |
MSR3600-28、MSR3600-51 |
不支持 |
MSR3600-28-SI、MSR3600-51-SI |
不支持 |
MSR3600-28-X1、MSR3600-28-X1-DP、MSR3600-51-X1、MSR3600-51-X1-DP |
支持 |
MSR3600-28-G-DP、MSR3600-51-G-DP |
支持 |
MSR3600-28-G-X1-DP、MSR3600-51-G-X1-DP |
支持 |
MSR3610-I-DP、MSR3610-IE-DP、MSR3610-IE-ES、MSR3610-IE-EAD、MSR-EAD-AK770、MSR3610-I-IG、MSR3610-IE-IG |
支持 |
MSR-iMC |
支持 |
MSR3610-X1、MSR3610-X1-DP、MSR3610-X1-DC、MSR3610-X1-DP-DC、MSR3620-X1、MSR3640-X1 |
支持 |
MSR 3610、MSR 3620、MSR 3620-DP、MSR 3640、MSR 3660 |
· MSR 3610、MSR 3620、MSR 3620-DP:支持 · MSR 3640、MSR 3660:不支持 |
MSR3610-G、MSR3620-G |
支持 |
MSR3640-G |
支持 |
MSR3640-X1-HI |
支持 |
型號 |
描述 |
MSR810-W-WiNet、MSR810-LM-WiNet |
支持 |
MSR830-4LM-WiNet |
支持 |
MSR830-5BEI-WiNet、MSR830-6EI-WiNet、MSR830-10BEI-WiNet |
支持 |
MSR830-6BHI-WiNet、MSR830-10BHI-WiNet |
支持 |
MSR2600-6-WiNet |
支持 |
MSR2600-10-X1-WiNet |
支持 |
MSR2630-WiNet |
支持 |
MSR3600-28-WiNet |
支持 |
MSR3610-X1-WiNet |
支持 |
MSR3620-X1-WiNet |
支持 |
MSR3610-WiNet、MSR3620-10-WiNet、MSR3620-DP-WiNet、MSR3620-WiNet、MSR3660-WiNet |
支持 |
型號 |
說明 |
MSR860-6EI-XS |
支持 |
MSR860-6HI-XS |
支持 |
MSR2630-XS |
支持 |
MSR3600-28-XS |
支持 |
MSR3610-XS |
支持 |
MSR3620-XS |
支持 |
MSR3610-I-XS |
支持 |
MSR3610-IE-XS |
支持 |
MSR3620-X1-XS |
支持 |
MSR3640-XS |
支持 |
MSR3660-XS |
支持 |
型號 |
說明 |
MSR810-LM-GL |
支持 |
MSR810-W-LM-GL |
支持 |
MSR830-6EI-GL |
支持 |
MSR830-10EI-GL |
支持 |
MSR830-6HI-GL |
支持 |
MSR830-10HI-GL |
支持 |
MSR1004S-5G-GL |
支持 |
MSR2600-6-X1-GL |
支持 |
MSR3600-28-SI-GL |
不支持 |
圖1-1 SDWAN網絡模型示意圖
如圖1-1所示,SDWAN的典型網絡模型包含如下部分:
· CPE(Customer Provided Edge,用戶提供的網絡邊緣):用戶網絡的邊緣設備。
· RR(Route Reflector,路由反射器):用於在CPE之間反射TTE信息和私網路由等。
· TN(Transport Network,傳輸網絡):由運營商提供的廣域接入網絡,用於連接不同的分支站點。TN主要包括運營商專線網絡和Internet公用網絡等,它是構建SDWAN Overlay網絡的基礎。傳輸網絡可以通過TN ID或傳輸網絡的名稱來標識。
· RD(Routing Domain,路由域):由彼此之間路由可達的不同傳輸網絡構成的區域。隻能在位於同一個路由域內的CPE之間或CPE與RR之間建立SDWAN隧道。
· 組ID:用於在相同路由域內更細化和靈活地控製SDWAN隧道的建立。在同一個路由域內,隻有具有相同組ID和傳輸網絡的CPE之間或CPE與RR之間才可以建立SDWAN隧道。
· Site ID:站點ID,用來唯一標識SDWAN網絡中的分支站點,通常以一串數字形式呈現。Site ID由網絡控製器統一自動分配。
· Device ID:設備ID,是支持SDWAN功能的設備(SDWAN設備)在站點內的唯一標識。一個站點通常包含一台或兩台SDWAN設備。
· SDWAN隧道:兩個SDWAN設備之間的點到多點邏輯通道。不同站點之間通過SDWAN隧道傳輸數據報文等,實現不同站點之間的互聯。
· SSL(Secure Sockets Layer,安全套接字層)連接:在SDWAN網絡中,CPE與RR之間建立SSL連接,通過該連接交互TTE信息,實現控製通道的建立。
· TTE(Transport Tunnel Endpoint,傳輸隧道端點):SDWAN設備接入傳輸網的連接點和SDWAN隧道的端點。設備的TTE信息主要包括Site ID、TN ID、Private IP Address、Public IP Address和隧道的封裝類型等。
· TTE連接:兩個TTE之間的點到點邏輯連接。通常一個SDWAN隧道上建立多個TTE連接。
SDWAN報文分為控製報文和數據報文。
· 控製報文用於在SDWAN網絡中通告TTE信息、EVPN路由和本端NAT轉換後的Public IP等。NAT的詳細介紹,請參見“1.10 穿越NAT建立SDWAN隧道”
· 數據報文用於轉發用戶的報文。
如圖1-2所示,SDWAN控製報文封裝格式為:在數據部分外添加16字節SDWAN頭、8字節UDP頭和20字節IP頭;如需對報文進行安全保護,則還會封裝IPsec頭。其中,UDP頭的目的端口號為SDWAN UDP端口號(缺省為4799)。SDWAN頭主要包括如下部分:
· Type:表示報文的類型,長度為8比特。取值為1時,表示SDWAN控製報文;為2時,表示SDWAN數據報文。
· Sub Type:表示控製報文的子類型,長度為8比特。取值為1時,表示NAT地址探測請求報文。
· Version:表示SDWAN協議報文號,目前取值固定為0。
· Reserved:保留字段,取值固定為0。
· Length:表示SDWAN頭的長度,長度為16比特。
· Local TTE ID:標識一個本地TTE,長度為32比特。
· Remote TTE ID:標識一個遠端TTE,長度為32比特。
圖1-2 SDWAN控製報文封裝示意圖
如圖1-3所示,SDWAN數據報文封裝格式為:在原始數據報文外添加12字節SDWAN頭、8字節UDP頭和20字節IP頭;如需對報文進行安全保護,則還會封裝IPsec頭。其中,UDP頭的目的端口號為SDWAN UDP端口號(缺省為4799)。SDWAN頭主要包括如下部分:
· Type:表示報文的類型,長度為8比特。取值為1時,表示SDWAN控製報文;為2時,表示SDWAN數據報文。
· Protocol:表示內層數據報文的類型,長度為8比特。取值為1時,表示IPv4報文;為2時,表示IPv6報文。
· Length:表示SDWAN頭的長度,長度為16比特。
· VN ID:表示SDWAN數據報文所屬的VPN實例的VN ID,長度為32比特。若報文屬於公網實例,則本字段為全0。
· Flow ID:表示SDWAN數據報文所屬的流ID,長度為32比特。可以通過remark flow-id命令對報文標記流ID。若未對報文標記流ID,則取值為全0。關於remark flow-id命令的詳細介紹,請參見“ACL和QoS命令”中的“QoS”。
圖1-3 SDWAN數據報文封裝示意圖
為了支持SDWAN,BGP定義了新的地址族——BGP IPv4 Tnl-Encap-Ext地址族。該地址族為IPv4地址族的子地址族,SAFI(Subsequent Address Family Identifier,子地址族標識符)為74。該地址族下交換的路由,稱為IPv4 Tnl-encap-ext路由。IPv4 Tnl-encap-ext路由可以在路徑屬性MP_REACH_NLRI(Multiprotocol Reachable NLRI,多協議可達NLRI)中,攜帶如下兩類信息:
· TTE信息:Site ID、TN ID、Public IP、Private IP、Tunnel Encapsulation和QoS信息等。該信息用來在CPE之間建立數據通道。
· SaaS訪問路徑質量信息:包括Delay、Jitter、Loss和CQI等。該信息用於在智能選路場景下,為不同的應用選擇最佳訪問路徑。
圖1-4 IPv4 Tnl-encap-ext路由的MP_REACH_NLRI屬性示意圖
如圖1-4所示,IPv4 Tnl-encap-ext路由的MP_REACH_NLRI屬性包含如下字段:
· Flags:BGP屬性標記位,取值為0x90,表示該屬性為包含了完整信息的可選非傳遞屬性。
· Type Code:BGP屬性類型,取值為14。
· Length:MP_REACH_NLRI屬性的長度。
· AFI:地址族標識符,取值為1,表示IPv4地址族。
· SAFI:子地址族標識符,取值為74,表示IPv4 Tnl-Encap-Ext地址族。
· Next hop network address:下一跳IP地址。
· Number of SNPAs:下麵字段中SNPA(Subnetwork Point of Attachment,子網連接點)的數量,取值為0,表示屬性中不包含SNPA。
· NLRI:網絡層可達性信息。
MP_REACH_NLRI屬性的網絡層可達性信息包含如下字段:
· NLRI Type:NLRI信息類型。取值1表示攜帶的是IPv4 TTE信息,取值2表示攜帶的是SaaS訪問路徑質量信息,取值3表示攜帶的是IPv6 TTE信息,取值為4表示攜帶的是QoS TTE信息。
· NLRI Length:NLRI的長度。
· Protocol:NLRI信息使用的協議棧,取值為2。
· Prefix Type:NLRI的前綴類型,取值為1。
· Prefix Length:NLRI的前綴長度。
· Prefix:NLRI的前綴信息。TTE信息的內容為TTE ID,SaaS訪問路徑質量信息的內容為站點ID和設備ID。
· Data Type:NLRI的數據部分類型,取值為2。
· Data Length:NLRI的數據部分長度。
· Data:NLRI的數據部分。本字段攜帶了TTE信息或SaaS訪問路徑質量信息的具體內容。
在SDWAN支持多VPN實例場景中,CPE將VPN實例中的私網路由信息以EVPN IP前綴路由的形式發布給其他CPE。為支持SDWAN,EVPN路由進行了如下擴展:
· 在TUNNEL_ENCAPSULATION_ATTRIBUTE屬性中,新增加了一種SDWAN封裝類型。IP前綴路由攜帶了SDWAN封裝後,隻能在使能了發送SDWAN封裝EVPN路由能力的設備之間轉發。
· IP前綴路由的NLRI字段攜帶了VN ID,用來區分屬於不同VPN實例的私網路由。
如圖1-5所示,SDWAN網絡包含控製通道和數據通道兩種類型的通道。
圖1-5 SDWAN網絡隧道示意圖
控製通道是指RR和CPE之間發布TTE信息和私網路由的通道。具體的建立過程為:
(1) CPE與RR之間建立SSL連接(控製通道),其中CPE作為SSL的客戶端,稱為SDWAN client;RR作為SSL的服務器端,稱為SDWAN server。
(2) CPE與RR之間互相發送TTE信息。
(3) CPE與RR收到對端發送的TTE信息後,比較TTE信息中攜帶的路由域和組ID。若路由域和組ID均相同,則建立到達對端的SDWAN隧道(控製通道);若路由域或組ID存在不同,則不建立SDWAN隧道。
如果配置將傳輸網絡的ID作為SDWAN隧道建立的限製條件,則除了路由域和組ID相同外,還需要傳輸網絡的ID相同,才可以建立SDWAN隧道。
(4) 完成SDWAN隧道建立後,CPE、RR自動在本地添加到達對端Systerm IP的UNR(User network route,用戶網絡路由)路由。
(5) CPE、RR之間基於Systerm IP建立IPv4 Tnl-Encap-Ext地址族下的BGP連接(控製通道)。
數據通道是指CPE之間轉發數據報文的通道。具體的建立過程為:
(1) CPE通過IPv4 Tnl-encap-ext路由向RR發送TTE信息。
(2) RR將TTE信息反射給其他CPE。
(3) CPE收到由RR反射的TTE信息後,保存這些TTE信息。
(4) CPE將從本地站點學習到的VPN路由信息通過SDWAN封裝的IP前綴路由發送給RR。
(5) RR將接收到的IP前綴路由反射給其他CPE。
(6) CPE接收到RR反射的IP前綴路由後,根據路由的下一跳地址(即對端CPE的System IP)在本地保存的TTE信息中進行查找,將查找到的TTE信息中的路由域、組ID與本地路由域、組ID進行對比:
¡ 若路由域和組ID均相同,則建立與該TTE的連接,並建立該TTE連接的SDWAN隧道。
¡ 若路由域或組ID存在不同,則不建立TTE連接與SDWAN隧道。
如果配置將傳輸網絡的ID作為SDWAN隧道建立的限製條件,則除了路由域和組ID相同外,還需要傳輸網絡的ID相同,才可以建立SDWAN隧道。
如果RR對IP前綴路由進行全反射,會使得同一路由域內任意兩台CPE間均建立SDWAN隧道。在該網絡中,理論上所有站點都能實現互訪,存在數據安全隱患;且路由域中的設備數量過多也會對設備性能和網絡帶寬帶來巨大壓力。
針對上述問題,網絡管理員可以在RR上設置針對IPv4 Tnl-encap-ext路由或SDWAN封裝的IP前綴路由的出口策略,使得RR有選擇性地將TTE信息以及IP前綴路由隻反射給部分CPE。這樣隻有接收到了TTE信息以及IP前綴路由的CPE之間會建立SDWAN隧道,未接收到TTE信息或IP前綴路由的CPE之間不會建立SDWAN隧道,以實現按需建立SDWAN隧道。按需建立SDWAN隧道可以節約設備資源,並且不建立隧道的租戶間無法通信,從而實現了租戶隔離。
在RIR-SDWAN協同選路組網中,CPE設備之間建立選路協同關係後,會將TTE連接信息和RIR的鏈路質量信息同步到對端設備上,保障智能選路功能為業務流量選擇最優鏈路進行轉發。當選擇的最優鏈路位於對端設備上時,本端設備會通過SDWAN擴展隧道將業務流量轉發到對端設備上,再由對端設備對業務流量進行轉發。
如圖1-6所示,SDWAN擴展隧道的數據報文封裝格式為:在數據部分外添加24字節SDWAN擴展頭、GRE頭和20字節IP頭。SDWAN擴展頭主要包括如下部分:
· Type:表示報文的類型,長度為8比特。取值為1時,表示控製報文;為2時,表示數據報文。
· Sub Type:表示報文的子類型,長度為8比特。取值為1時,表示BFD報文。
· Protocol:表示原報文的協議類型,長度為8比特。取值為AF_INET時,表示IPv4報文;取值為AF_INET6時,表示IPv6報文。
· Version:表示內層報文版本號,目前取值固定為0。
· Length:表示SDWAN擴展頭的長度,長度為16比特。
· Reserved:保留字段,取值固定為0。
· VN ID:表示報文所屬的VPN實例的VN ID,長度為32比特。若報文屬於公網實例,則本字段為全0。
· Flow ID:表示報文所屬的流ID,長度為32比特。
· Local TTE ID:本端TTE ID,長度為32比特。
· Remote TTE ID:遠端TTE ID,長度為32比特。
圖1-6 SDWAN擴展隧道數據報文封裝格式示意圖
如圖1-7所示,SDWAN擴展隧道的控製報文封裝格式為:在數據部分外添加8字節SDWAN擴展頭、GRE頭和20字節IP頭。目前,控製報文主要是指用於檢測SDWAN擴展隧道的BFD控製報文。SDWAN擴展頭主要包括如下部分:
圖1-7 SDWAN擴展隧道控製報文封裝格式示意圖
如圖1-8所示,CPE 1與CPE 2建立選路協同關係,並將TTE連接信息和RIR的鏈路質量信息同步到對端設備上。當CPE 1從本地站點接收到訪問中心站點的業務流量,且CPE 1通過智能選路功能選擇出的最優鏈路為CPE 2設備上的鏈路時,CPE 1設備會對業務流量進行封裝。先在數據部分外添加24字節SDWAN擴展頭(其中Local TTE ID為TTE 2,Remote TTE ID為TTE 4)、GRE頭和20字節IP頭,然後將封裝後的數據報文通過擴展隧道轉發到CPE 2。CPE 2解封裝報文,根據SDWAN擴展頭中Local TTE ID和Remote TTE ID獲取轉發該數據報文的TTE連接,然後對解封裝後的報文進行SDWAN封裝,封裝的SDWAN報文頭中的VN ID和Flow ID即為從SDWAN擴展頭中獲取的VN ID和Flow ID,然後通過TTE連接將報文轉發給RR。
如圖1-9所示,在SDWAN網絡中,站點間的路由發布過程包含三部分:本地站點向CPE發布VPN路由、CPE之間發布路由、CPE向本地站點發布VPN路由。完成這三部分後,站點之間將建立可達路由。
本地站點使用靜態路由、RIP、RIPng、OSPF、OSPFv3、IS-IS、IPv6 IS-IS、EBGP或IBGP,將本站點的VPN路由發布給本端CPE。本地站點發布給CPE的是標準的IPv4路由或IPv6路由。
CPE從本地站點學到VPN路由信息後,將其存放到VPN實例的路由表中。CPE為這些標準的IPv4或IPv6路由增加RD和Export Target屬性,通過BGP EVPN的IP前綴路由發布給RR,該路由的下一跳地址為本端CPE的System IP。RR將收到的IP前綴路由反射給遠端CPE。遠端CPE收到RR反射的IP前綴路由後,將IP前綴路由的Export Target屬性與自己維護的VPN實例的Import Target屬性進行匹配。如果遠端CPE上某個VPN實例的Import Target屬性與路由的Export Target屬性中存在相同的屬性值,則接收該IP前綴路由並將其添加到VPN路由表中。
與本地站點向CPE發布路由信息相同,遠端站點可以通過多種方式從遠端CPE學習VPN路由,包括靜態路由、RIP、RIPng、OSPF、OSPFv3、IS-IS、IPv6 IS-IS、EBGP和IBGP。
在SDWAN網絡中,CPE設備收到用戶站點發送的報文後,根據目的IP查找路由表獲取報文的出接口和下一跳信息。不同出接口的轉發方式不同:
· 若出接口為CPE的本地接口,則根據轉發表將報文從出接口直接轉發給下一跳。
· 若出接口為SDWAN隧道接口,則:
a. 根據轉發表的下一跳地址,獲取下一跳地址的TTE ID。
b. 根據本端和下一跳的TTE ID獲取對應TTE連接的信息。
c. 根據該TTE連接信息對報文進行SDWAN封裝,封裝的SDWAN頭中攜帶數據報文所屬VPN實例的VN ID。不同VPN的報文可能迭代到同一條SDWAN隧道上,通過SDWAN頭攜帶的VN ID,可以區分不同的VPN實例,如圖1-10所示。
d. 通過SDWAN隧道指定的物理出接口將報文轉發出去。
e. 遠端CPE接收並解封裝SDWAN報文後,根據VN ID在對應的VPN實例中查找路由表轉發該報文。
圖1-10 SDWAN隧道轉發報文示意圖
為了保障SDWAN隧道傳輸數據的機密性和完整性,設備支持通過IPsec為SDWAN報文提供安全保護。為此,IPsec進行了如下擴展:
· 支持SDWAN方式的IPsec安全框架。
· 支持通信對等體之間的多個SDWAN隧道共用一對IPsec SA。
有關IPsec的詳細介紹,請參見“安全配置指導”中的“IPsec”。
如圖1-11所示,在SDWAN網絡中,為了節省IP地址資源,分支站點的用戶經常會使用私網IP地址。通過NAT將私網IP地址轉換為公網IP地址後,該站點的用戶才能訪問其他站點。CPE發出的報文在經過NAT設備後,IP地址會發生變化。如果無法獲取NAT轉換後的IP地址,則CPE與CPE/RR之間無法建立SDWAN通道。為了解決此問題,需要在SDWAN組網中部署STUN(Session Traversal Utilities for NAT,NAT環境下的會話傳輸)功能或在CPE/RR上配置NAT轉換後的公網IP地址和公網端口號。關於STUN的詳細介紹,請參見“三層技術-IP業務配置指導”中的“STUN”。
STUN采用C/S模式,由STUN客戶端(STUN client)和STUN服務器(STUN server)組成。在SDWAN網絡中,通常將CPE部署為STUN客戶端,將RR部署為STUN服務器。客戶端通過與服務器進行報文交互,能夠發現網絡中是否存在NAT設備,並確定經過NAT設備轉換後的IP地址和端口號。STUN客戶端探測到轉換後的IP地址和端口號後,采用該IP地址與其他CPE建立SDWAN隧道;若CPE之間無法直接建立數據通道,則需要通過在公網中部署NAT transfer(NAT傳輸)設備來實現互通。
圖1-11 穿越NAT建立SDWAN隧道示意圖
圖1-12 部署NAT transfer的SDWAN隧道示意圖
部署NAT transfer的SDWAN組網如圖1-12所示。下麵以該組網為例,說明穿越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,用戶網絡路由)路由。
(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類型,判斷能否直接建立數據通道,如表1-1所示。
a. 若CPE之間可以直接建立數據通道,建立過程請參見步驟1.10.1 (4)。
b. 若CPE之間無法直接建立數據通道,則需要通過在網絡中部署NAT transfer設備來實現互通。CPE與NAT transfer之間建立數據通道,CPE之間的數據轉發需要先通過數據通道轉發到NAT transfer設備,再由NAT transfer設備通過數據通道轉發到其他CPE,從而實現CPE之間的互通。CPE與NAT transfer之間建立數據通道的過程與CPE與RR之間建立SDWAN隧道的過程相同,具體參見步驟1.10.1 (4)。
表1-1 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 |
× |
√ |
SDWAN配置任務如下:
(1) 配置站點信息和設備標識
a. 配置設備所屬的站點
(2) 配置SDWAN client
(3) 配置SDWAN server
(4) (可選)配置IPsec保護SDWAN隧道
配置方法請參見“安全配置指導”中的“IPsec”。
(5) (可選)配置穿越NAT建立SDWAN隧道
配置方法請參見“三層技術-IP業務配置指導”中的“NAT”
(6) 配置SDWAN隧道
(7) 配置TTE連接連通性檢測
(8) 配置BGP發布IPv4 Tnl-encap-ext路由
¡ CPE配置
¡ RR配置
¡ (可選)通過Priority-Color屬性實現流量逃生以及負載分擔
¡ (可選)配置IP前綴路由僅通過Priority-Color擴展團體屬性迭代下一跳
(11) (可選)Hub-Spoke組網中簡化QoS業務配置
站點ID是站點在SDWAN網絡中的唯一標識。
站點名稱可以描述站點的位置、功能等,方便用戶更好地識別站點在SDWAN網絡中的作用。站點名稱不是站點的唯一標識,不同的設備可以配置相同的站點名稱。
不同的站點角色在SDWAN網絡中的作用不同,站點角色變更會導致SDWAN隧道震蕩,從而對業務產生影響,建議在網絡部署前規劃好設備角色。
(1) 進入係統視圖。
system-view
(2) 配置設備所屬站點的站點ID。
sdwan site-id site-id
缺省情況下,未配置設備的站點ID。
(3) 配置設備所屬站點的站點名稱。
sdwan site-name site-name
缺省情況下,未配置設備的站點名稱。
(4) 配置設備所屬站點的角色。
sdwan site-role { cpe | nat-transfer | rr } *
缺省情況下,未配置站點的角色。
同一個站點內所有支持SDWAN功能的設備上必須配置相同的站點角色。
設備的ID是設備在站點內的唯一標識。
設備的IPv4係統IP是本設備與其他設備建立BGP會話時使用的IPv4地址。在智能選路場景中,係統IP也會作為NQA鏈路通斷探測中NQA客戶端發送的探測報文的內層目的IPv4地址。智能選路的詳細介紹,請參見“三層技術-IP路由配置指導”中的“智能選路”。
(1) 進入係統視圖。
system-view
(2) 配置設備的ID。
sdwan device-id device-id
缺省情況下,未配置設備的ID。
(3) 配置設備的IPv4係統IP。
sdwan system-ip interface-type interface-number
缺省情況下,未配置設備的IPv4係統IP。
設備的係統IP必須在SDWAN網絡中唯一。
配置設備的係統IP時,隻有指定的接口為配置了IPv4地址的LoopBack接口時,本配置才生效。
在SDWAN網絡中,CPE/NAT transfer與RR之間通過SSL連接互相發送TTE信息。其中CPE/NAT transfer作為SDWAN client,RR作為SDWAN server。
通過本功能在CPE/NAT transfer上指定與RR建立SSL連接時引用的SSL客戶端策略後,CPE/NAT transfer將采用該策略與RR建立SSL連接。SSL連接建立成功後,CPE/NAT transfer將自身的TTE信息發送給RR,RR將自身的TTE信息發送給CPE/NAT transfer設備,完成TTE信息的交互,以便在CPE/NAT transfer與RR之間建立SDWAN隧道。
一個SSL連接隻能引用一個SSL客戶端策略。多次執行sdwan ssl-client-policy命令,最後一次執行的命令生效。但新的策略僅對修改配置後新創建的SSL連接生效。
配置本功能前需要先完成SSL客戶端策略配置。關於SSL客戶端策略的詳細介紹,請參見“安全配置指導”中的“SSL”。
(1) 進入係統視圖。
system-view
(2) 在CPE上指定SDWAN server的信息。
sdwan server system-ip system-ip-address { ip ipv4-address | ipv6 ipv6-address } [ port port-number ] [ vpn-instance vpn-instance-name ]
缺省情況下,CPE上未指定SDWAN server的信息。
(3) 在CPE上指定與RR(SDWAN server)建立SSL連接時引用的SSL客戶端策略。
sdwan ssl-client-policy policy-name
缺省情況下,未指定與RR(SDWAN server)建立SSL連接時引用的SSL客戶端策略。
執行本配置後,RR將與CPE/NAT transfer建立SSL連接,並通過SSL連接將自身的TTE信息發送給CPE/NAT transfer設備。CPE/NAT transfer也通過SSL連接將自身的TTE信息發送給RR。完成TTE信息的交互後,RR與CPE/NAT transfer將根據TTE信息建立SDWAN隧道。
SSL連接有以下兩種建立方式:
· 簡便方式:RR上無需配置SSL服務器端策略,RR使用自簽名證書(RR自己生成的證書,無需從CA獲取)、各SSL參數的缺省值與CPE/NAT transfer建立SSL連接。這種方式簡化了配置,但是存在安全隱患。
· 安全方式:設備需要配置SSL服務器端策略、PKI域等。這種方式配置複雜,但是具有更高的安全性。
一個SSL連接隻能引用一個SSL服務器端策略。重複執行sdwan ssl-server-policy命令修改SSL連接引用的SSL服務器端策略後,修改後的策略不會生效。隻有先執行undo sdwan server enable命令,再執行sdwan server enable命令,新的策略才會生效。
如果采用安全方式建立SSL連接,則需要先完成SSL服務器端策略配置。關於SSL服務器端策略的詳細介紹,請參見“安全配置指導”中的“SSL”。
(1) 進入係統視圖。
system-view
(2) 在RR設備上開啟SDWAN server服務。
sdwan server enable
缺省情況下,RR設備上的SDWAN server服務處於關閉狀態。
(3) 在RR上配置SDWAN server服務的TCP端口號。
sdwan server port port-number
缺省情況下,SDWAN server服務的TCP端口號為2004。
(4) (可選)在RR上指定與CPE(SDWAN client)之間建立SSL連接時引用的SSL服務器端策略。
sdwan ssl-server-policy policy-name
缺省情況下,未指定與CPE之間建立SSL連接時引用的SSL服務器端策略。
CPE與CPE/RR之間完成TTE信息交互後,通過比較TTE信息判斷是否建立SDWAN隧道:
· 若SDWAN隧道的路由域、組ID和傳輸網絡均相同,則在CPE與CPE/RR之間建立SDWAN隧道。
· 若SDWAN隧道的路由域、組ID或傳輸網絡存在不同,則不在CPE與CPE/RR之間建立SDWAN隧道。
關於隧道的詳細介紹及Tunnel接口下的更多配置命令,請參見“三層技術-IP業務配置指導”中的“隧道”。
係統視圖和Tunnel接口視圖下均可以配置SDWAN報文采用UDP封裝時的源UDP端口號。係統視圖的配置對所有Tunnel接口都有效,而Tunnel接口視圖下的配置隻對當前Tunnel接口有效。對於一個Tunnel接口來說,優先采用該Tunnel接口視圖下的配置,隻有該Tunnel接口下未進行配置時,才采用係統視圖的配置。
(1) 進入係統視圖。
system-view
(2) (可選)配置全局SDWAN報文采用UDP封裝時的源UDP端口號。
sdwan encapsulation global-udp-port port-number
缺省情況下,SDWAN報文的全局源UDP端口號為4799。
(3) 創建模式為UDP封裝的SDWAN Tunnel接口,並進入Tunnel接口視圖。
(IPv4網絡)
interface tunnel tunnel-number mode sdwan udp
(IPv6網絡)
interface tunnel tunnel-number mode sdwan udp ipv6
在隧道的兩端應配置相同的隧道模式,否則會造成報文傳輸失敗。
(4) 指定發送隧道報文時的物理出接口。
tunnel out-interface out-interface-type out-interface-number
缺省情況下,未指定發送隧道報文的出接口,如果存在多條等價路徑,隨機選擇一個出接口發送隧道報文。
(5) 配置SDWAN隧道接口的接口ID。
sdwan interface-id interface-id
缺省情況下,未配置SDWAN隧道接口的接口ID。
(6) (可選)配置SDWAN報文采用UDP封裝時的源UDP端口號。
sdwan encapsulation udp-port port-number [ dynamic [ time ] [ port-range min-port max-port ] ]
缺省情況下,SDWAN報文的源UDP端口號與全局配置的源UDP端口號保持一致。
(7) 配置SDWAN隧道的路由域。
sdwan routing-domain domain-name id domain-id
缺省情況下,未配置SDWAN隧道的路由域。
(8) (可選)配置SDWAN隧道的組ID。
sdwan group-id group-id
缺省情況下,未配置SDWAN隧道的組ID。
(9) 配置SDWAN隧道使用的傳輸網絡。
sdwan transport-network network-name id network-id [ restrict ]
缺省情況下,未配置SDWAN隧道使用的傳輸網絡。
(10) 配置隧道的源端地址。請選擇其中一項進行配置。
¡ 直接指定隧道的源端地址。
(IPv4網絡)
source ipv4-address
(IPv6網絡)
source ipv6-address
指定的地址將作為封裝後SDWAN報文的源IP地址。
¡ 指定隧道的源接口。
source interface-type interface-number
采用指定接口的IP地址作為封裝後SDWAN報文的源IP地址。
缺省情況下,未設置SDWAN隧道的源端地址。
設備可以通過BFD方式或Keepalive方式檢測SDWAN隧道上TTE連接的連通性。當SDWAN隧道上TTE連接出現故障時,設備可以快速檢測到故障,以便及時進行相應地處理,如將流量切換到其他TTE連接。
BFD方式通過在SDWAN隧道的所有TTE連接上,周期性地向TTE連接對端發送BFD控製報文,來檢測TTE連接的連通性。如果在檢測時間內沒有收到對端發送的BFD控製報文,則認為本端與對端的TTE連接不可達。關於BFD功能的詳細介紹,請參見“可靠性配置指導”中的“BFD”。
Keepalive方式通過在SDWAN隧道的所有TTE連接上,按照指定的時間間隔向對端發送Keepalive請求報文,來檢測TTE連接的連通性:
· 如果本端在發送Keepalive請求報文的時間間隔內收到對端發送的Keepalive應答報文,則認為本端與對端的TTE連接可達。
· 如果本端未在發送Keepalive請求報文的時間間隔內收到對端發送的Keepalive應答報文,則本端會嚐試重新發送Keepalive請求報文。若在發送Keepalive請求報文的時間間隔×允許未收到Keepalive應答報文的最大連續次數時間內沒有收到Keepalive應答報文,則認為本端與對端的TTE連接不可達,將不再使用該TTE連接轉發報文。
采用BFD方式時,需要在TTE連接的兩端均配置sdwan bfd enable命令。
若隧道接口下配置了sdwan bfd enable命令,則設備基於BFD方式的檢測結果判斷TTE連接的連通性;否則,設備基於Keepalive方式的檢測結果判斷TTE連接的連通性。
(1) 進入係統視圖。
system-view
(2) 進入UDP封裝的IPv4/IPv6 SDWAN隧道模式的Tunnel接口視圖。
interface tunnel tunnel-number [ mode sdwan udp [ ipv6 ] ]
(3) 配置使用BFD檢測TTE連接的連通性。
sdwan bfd enable [ template template-name ]
缺省情況下,未使用BFD檢測TTE連接的連通性,使用Keepalive報文檢測TTE連接的連通性。
(1) 進入係統視圖。
system-view
(2) 進入UDP封裝的IPv4/IPv6 SDWAN隧道模式的Tunnel接口視圖。
interface tunnel tunnel-number [ mode sdwan udp [ ipv6 ] ]
(3) 配置SDWAN隧道發送Keepalive請求報文的時間間隔和允許未收到Keepalive應答報文的最大連續次數。
sdwan keepalive interval interval [ retry retries ]
缺省情況下,SDWAN隧道發送Keepalive請求報文的時間間隔為10秒,允許未收到Keepalive應答報文的最大連續次數為3次。
在應用智能選路的SDWAN組網中,建議將發送Keepalive請求報文的時間間隔配置為1~5秒。
BGP相關命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP”。
(1) 進入係統視圖。
system-view
(2) 啟動BGP實例,並進入BGP實例視圖。
bgp as-number [ instance instance-name ]
缺省情況下,沒有運行BGP,不存在BGP實例。
(3) 將CPE或RR配置為對等體。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(4) 創建BGP IPv4 Tnl-encap-ext地址族,並進入BGP IPv4 Tnl-encap-ext地址族視圖。
address-family ipv4 tnl-encap-ext
(5) 使能與指定對等體/對等體組交換IPv4 Tnl-encap-ext路由信息的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情況下,不能與等體/對等體組交換IPv4 Tnl-encap-ext路由信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP IPv4 Tnl-encap-ext地址族視圖。
address-family ipv4 tnl-encap-ext
(4) 對發布給對等體/對等體組的路由或來自對等體/對等體組的路由應用路由策略。
peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }
缺省情況下,沒有為對等體/對等體組指定路由策略。
(5) 設置允許從指定對等體/對等體組收到的路由數量。
peer { group-name | ipv4-address [ mask-length ] } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *
缺省情況下,不限製從對等體/對等體組接收的路由數量。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP IPv4 Tnl-encap-ext地址族視圖。
address-family ipv4 tnl-encap-ext
(4) 配置向對等體/對等體組發布路由時,將下一跳屬性修改為自身的地址。
peer { group-name | ipv4-address [ mask-length ] } next-hop-local
缺省情況下,向EBGP對等體/對等體組發布的所有路由時,都將下一跳屬性修改為自身的地址;向IBGP對等體/對等體組發布EBGP路由時,不修改下一跳屬性。
(5) 為從指定對等體/對等體組接收的路由分配首選值。
peer { group-name | ipv4-address [ mask-length ] } preferred-value value
缺省情況下,從對等體/對等體組接收的路由的首選值為0。
(6) 配置對於從對等體/對等體組接收的BGP消息,允許本地AS號在該消息的AS_PATH屬性中出現,並配置允許出現的次數。
peer { group-name | ipv4-address [ mask-length ] } allow-as-loop [ number ]
缺省情況下,不允許本地AS號在接收消息的AS_PATH屬性中出現。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP IPv4 Tnl-encap-ext地址族視圖。
address-family ipv4 tnl-encap-ext
(4) 配置RR作為路由反射器,CPE或NAT設備作為路由反射器的客戶機。
peer { group-name | ipv4-address [ mask-length ] } reflect-client
缺省情況下,沒有配置路由反射器及其客戶機。
(5) (可選)允許路由反射器在客戶機之間反射IPv4 Tnl-encap-ext路由。
reflect between-clients
缺省情況下,允許路由反射器在客戶機之間反射IPv4 Tnl-encap-ext路由。
(6) (可選)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情況下,每個路由反射器都使用自己的Router ID作為集群ID。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP IPv4 Tnl-encap-ext地址族視圖。
address-family ipv4 tnl-encap-ext
(4) 配置向對等體/對等體組發布團體屬性。
peer { group-name | ipv4-address [ mask-length ] } advertise-community
缺省情況下,不向對等體/對等體組發布團體屬性。
(5) 配置向對等體/對等體組發布擴展團體屬性。
peer { group-name | ipv4-address [ mask-length ] } advertise-ext-community
缺省情況下,不向對等體/對等體組發布擴展團體屬性。
請在用戶視圖下執行如下命令,複位或軟複位BGP會話。
· 複位Tnl-encap-ext地址族下的BGP會話。
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all |external | group group-name | internal } ipv4 tnl-encap-ext
· 手工對Tnl-encap-ext地址族下的BGP會話進行軟複位。
refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | all | external | group group-name | internal } { export | import } ipv4 tnl-encap-ext
在SDWAN網絡中,CPE之間通過IP前綴路由發布站點VPN路由,因此需要在CPE上開啟發布SDWAN封裝的EVPN路由的能力。
在SDWAN網絡支持不同VPN實例的多租戶場景下,CPE通常需要完成以下配置:
· 在VPN實例IPv4/IPv6地址族視圖下開啟EVPN通告SDWAN路由功能,將VPN路由表中的VPN路由作為EVPN的IP前綴路由發布,該路由攜帶的封裝類型為SDWAN封裝。
· 在VPN實例視圖下配置VPN實例的VN ID,VPN路由作為IP前綴路由發布時,會攜帶對應VPN實例下的VN ID,以區分不同租戶的報文,實現租戶之間的隔離。
· 在BGP EVPN地址族視圖下配置向RR發布SDWAN封裝的EVPN路由。
在CPE上,evpn sdwan routing-enable命令和peer advertise encap-type sdwan命令需要配合使用。否則,CPE無法將VPN實例下的路由信息發布給RR。
(1) 進入係統視圖。
system-view
(2) 進入VPN實例視圖。
ip vpn-instance vpn-instance-name
(3) 配置VPN實例的VN ID。
sdwan vn-id vn-id
缺省情況下,VPN實例上VN ID為0。
(4) 進入VPN實例IPv4地址族視圖或VPN實例IPv6地址族視圖。
¡ 進入VPN實例IPv4地址族視圖。
address-family ipv4
¡ 進入VPN實例IPv6地址族視圖。
address-family ipv6
(5) 開啟EVPN通告SDWAN路由功能。
evpn sdwan routing-enable
缺省情況下,EVPN通告SDWAN路由功能處於關閉狀態。
(6) 退回係統視圖。
quit
quit
(7) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(8) 進入BGP EVPN地址族視圖。
address-family l2vpn evpn
(9) 配置向RR發布SDWAN封裝的EVPN路由。
peer { group name | ipv4-address [ mask-length ] } advertise encap-type sdwan
缺省情況下,設備不向對等體/對等體組發布SDWAN封裝的EVPN路由。
在SDWAN網絡中,RR通常作為路由反射器在CPE之間傳遞站點VPN路由,因此需要在RR上開啟向CPE發布SDWAN封裝的EVPN路由的能力。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP EVPN地址族視圖。
address-family l2vpn evpn
(4) 配置BGP路由反射。
a. 配置本機作為路由反射器,CPE作為路由反射器的客戶機。
peer { group-name | ipv4-address [ mask-length ] } reflect-client
缺省情況下,沒有配置路由反射器及其客戶機。
b. (可選)允許路由反射器在客戶機之間反射EVPN路由。
reflect between-clients
缺省情況下,允許路由反射器在客戶機之間反射EVPN路由。
c. (可選)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情況下,每個路由反射器都使用自己的Router ID作為集群ID。
d. (可選)配置路由反射器對反射的EVPN路由進行過濾。
rr-filter ext-comm-list-number
缺省情況下,路由反射器不會對反射的EVPN路由進行過濾。
e. (可選)允許路由反射器反射路由時修改路由屬性。
reflect change-path-attribute
缺省情況下,不允許路由反射器反射路由時修改路由屬性。
(5) 配置向CPE發布SDWAN封裝的EVPN路由。
peer { group name | ipv4-address [ mask-length ] } advertise encap-type sdwan
缺省情況下,設備不向對等體/對等體組發布SDWAN封裝的EVPN路由。
Priority-Color擴展團體屬性是BGP路由的一種擴展團體屬性,隻能用於SDWAN封裝的EVPN路由。在SDWAN網絡中,通過添加Priority-Color擴展團體屬性,可以為EVPN路由增加備份路徑,實現SDWAN網絡中數據流量通道故障時的流量逃生。
Priority-Color擴展團體屬性的格式為優先級:Site ID:Device ID或優先級:Site ID。其中,優先級的數值決定了備份路徑的優先級,該數值越小,優先級越高;Site ID和Device ID標識了SDWAN網絡中的一個或多個逃生站點(即SDWAN設備)。
IP前綴路由中未攜帶Priority-Color擴展團體屬性時,隻能在BGP-VPN實例路由表和VPN實例IP路由表中添加一條路由,路由的下一跳即為IP前綴路由的下一跳。當這個下一跳不可達時,IP前綴路由也將失效,到達該IP前綴的流量轉發將中斷。
IP前綴路由攜帶Priority-Color擴展團體屬性後,能夠在BGP-VPN實例路由表中添加一條主路由,和多條備路由。如果Priority-Color擴展團體屬性中包含Device ID,則設備根據每一個Priority-Color擴展團體屬性生成一條備路由;如果Priority-Color擴展團體屬性中不包含Device ID,則設備根據Site ID對應站點中的每一台SDWAN設備生成一條備路由。主備路由的前綴相同,備路由添加到VPN實例IP路由表時,下一跳為Priority-Color擴展團體屬性中Site ID和Device ID代表設備的System IP。
主路由正常可達時,該路由會被添加到VPN實例IP路由表中。主路由失效時,備路由中最優的一條會被添加到VPN實例IP路由表中。判斷最優路由的條件是:
(1) 根據生成備路由的Priority-Color擴展團體屬性的優先級值進行判斷,優先級數值越小,優先級越高。
(2) 如果多條備路由優先級值相同,則下一跳IP地址最小的備路由為最優。
如果在BGP-VPN IPv4單播地址族/BGP-VPN IPv6單播地址族下,設備通過balance命令開啟了BGP負載分擔,則無論主路由是否失效,優先級值相同的多條最優路由都可以被添加到VPN實例的IP路由表中,以實現SDWAN數據流量的負載分擔。有關BGP負載分擔的詳細介紹,請參見“三層技術-IP路由配置指導”中的“BGP”。
在形成負載分擔的過程中,主路由的優先級值視為0。例如,在開啟了負載分擔後,主路由正常可達時,主路由和多條優先級值為0的備路由均可以被添加到VPN實例的IP路由表中;主路由失效後,VPN實例IP路由表中的主路由不再參與負載分擔,由其他優先級值為0的備路由形成負載分擔。如果不存在優先級值為0的備路由,則主路由正常可達時,僅主路由被添加到VPN實例IP路由表中,不形成負載分擔;主路由失效後,多條優先級數值最小且相同的備路由被添加到VPN實例IP路由表中,並且形成負載分擔。
如圖2-1所示,在SDWAN網絡中,CPE 1、CPE 2和CPE 3均通過RR反射BGP路由,並且兩兩之間均建立了SDWAN隧道。
圖2-1 Priority-Color擴展團體屬性應用場景圖
CPE 2向RR發布本地站點的IP前綴路由。RR在向CPE 1反射這些路由時,可以使用路由策略為EVPN路由攜帶Priority-Color擴展團體屬性,Priority-Color擴展團體屬性中的Site ID和Device ID為逃生站點CPE 3的Site ID和Device ID。CPE 1接收到這些IP前綴路由後,會將這些路由添加到BGP-VPN實例的路由表中,並為每個IP前綴生成主備兩條路由:
· 一條迭代到CPE 1與CPE 2之間SDWAN隧道的主路由。
· 一條迭代到CPE 1與CPE 3之間SDWAN隧道的備路由。
CPE 1和CPE 2之間的路徑正常時,主路由將被添加到CPE 1的VPN實例IP路由表中。CPE 1接收到發往CPE 2所連站點的流量後,將會迭代到CPE 1與CPE 2之間的SDWAN隧道進行轉發。CPE 1和CPE 2之間的路徑出現故障時,主路由失效,備路由將被優選並添加到CPE 1的VPN實例IP路由表中,CPE 1接收到發往CPE 2所連站點的流量後,將會迭代到CPE 1與CPE 3之間的SDWAN隧道進行轉發,經過CPE 3發往CPE 2,以實現流量逃生。
CPE 1和CPE 2之間的流量需要借助CPE 3的繞行路徑進行負載分擔時,可以在RR上將Priority-Color擴展團體屬性的優先級配置為0,並在CPE 1上配置BGP路由的負載分擔條數大於等於2。CPE 1接收到發往CPE 2所連站點的流量後,將會同時在CPE 1與CPE 2之間的SDWAN隧道、CPE 1與CPE 3之間的SDWAN隧道上進行負載分擔轉發。
如需通過Priority-Color擴展團體屬性實現負載分擔,必須要在CPE設備的BGP-VPN IPv4單播地址族視圖或BGP-VPN IPv6單播地址族視圖下配置balance命令。有關balance命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP”。
(1) 進入係統視圖。
system-view
(2) 創建路由策略,並進入該路由策略視圖。
route-policy route-policy-name { deny | permit } node node-number
(3) (可選)配置if-match子句。
有關if-match子句的配置,請參見“三層技術-IP路由配置指導”中的“路由策略”。
(4) 配置BGP路由的Priority-Color擴展團體屬性。
apply extcommunity priority-color priority-color&<1-32> [ additive ]
缺省情況下,未配置BGP路由的Priority-Color擴展團體屬性。
(5) 退回係統視圖。
quit
(6) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(7) 進入BGP EVPN地址族視圖。
address-family l2vpn evpn
(8) 應用本配置中創建的路由策略,為EVPN路由添加Priority-Color擴展團體屬性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-policy route-policy-name { export | import }
缺省情況下,沒有為對等體/對等體組指定路由策略。
缺省情況下,在BGP路由迭代的角度上,設備接收到攜帶了Priority-Color擴展團體屬性的IP前綴路由後會同時通過路由的NEXT_HOP屬性和Priority-Color擴展團體屬性進行下一跳迭代。迭代的過程是:
· NEXT_HOP屬性的地址通常為遠端CPE的System IP,設備根據該地址查找到對應的TTE連接,查找到的TTE連接對應的SDWAN隧道接口,即為IP前綴路由的下一跳迭代到的下一跳出接口。
· 每一個Priority-Color擴展團體屬性中均攜帶了遠端CPE的Site ID信息,或同時攜帶了遠端CPE的Site ID以及Device ID信息。設備根據這些信息查找到對應的TTE連接,並查找到這些TTE連接對應的SDWAN隧道接口。這些SDWAN隧道接口即為根據Priority-Color擴展團體屬性迭代到的下一跳出接口。
設備接收到匹配IP前綴路由的報文後,對報文的轉發方式為:
· 如果未配置BGP路由的負載分擔,則設備會通過根據IP前綴路由NEXT_HOP屬性迭代到的SDWAN隧道轉發報文。在根據IP前綴路由NEXT_HOP屬性迭代到的SDWAN隧道不可用時,設備才會通過根據Priority-Color擴展團體屬性迭代到的SDWAN隧道轉發報文。
· 如果配置了BGP路由的負載分擔,則設備可以同時通過根據IP前綴路由NEXT_HOP屬性迭代到的SDWAN隧道、以及根據Priority-Color擴展團體屬性迭代到的多條SDWAN隧道對報文進行負載分擔轉發。
由於Priority-Color易於配置,可以實現SDWAN轉發路徑的靈活控製,如果網絡管理員希望攜帶Priority-Color擴展團體屬性的IP前綴路由不經過上述流程進行迭代,直接通過Priority-Color擴展團體屬性進行下一跳迭代,可以配置本功能。配置本功能後,設備接收到匹配IP前綴路由的報文時,僅會通過根據Priority-Color擴展團體屬性迭代到的SDWAN隧道轉發報文,使得轉發路徑不受IP前綴路由NEXT_HOP屬性的限製,用戶隻需要修改Priority-Color擴展團體屬性的配置就可以控製轉發路徑,以便靈活實現負載分擔。
本功能僅對SDWAN封裝、攜帶Priority-Color擴展團體屬性的IP前綴路由生效。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP EVPN地址族視圖。
address-family l2vpn evpn
(4) 配置SDWAN封裝的IP前綴路由僅通過Priority-Color擴展團體屬性進行下一跳迭代。
evpn-sdwan nexthop-recursive priority-color-only
缺省情況下,設備接收到攜帶Priority-Color擴展團體屬性的IP前綴路由後,先通過路由的NEXT_HOP屬性進行下一跳迭代,再通過Priority-Color擴展團體屬性進行下一跳迭代。
在穿越NAT建立SDWAN隧道的場景中,通過STUN協議可以探測隧道的源IP地址和端口號(即SDWAN報文封裝時的源UDP端口號)經過NAT轉換後的公網IP地址和公網端口號。但是,運行STUN協議會占用一定的網絡資源,且對設備具有一定的要求,需要CPE/RR設備支持STUN。
通過本命令,可以在不部署STUN協議的情況下,獲取到NAT轉換後的公網IP地址和端口號。
在不部署STUN的情況下,CPE/RR設備可以通過以下兩種方式獲取NAT轉換後的公網IP地址和端口號:
· 若NAT設備上配置的是靜態NAT轉換,則可以通過在CPE/RR上配置sdwan nat-global-ip global-address [ global-port global-port ]或sdwan nat-global-ipv6 global-address [ global-port global-port ]命令,手工指定NAT轉換後的公網IP地址和公網端口號。
· 若NAT設備上配置的是動態NAT轉換,則可以在CPE/RR上配置sdwan nat-global-ip dynamic或sdwan nat-global-ipv6 dynamic命令,指定NAT轉換類型為動態NAT,以便獲取NAT轉換後的公網IP地址和公網端口號。如果兩個CPE上都配置了NAT轉換類型為動態NAT,則這兩個CPE之間無法建立SDWAN隧道。隻有一個CPE上配置NAT轉換類型為動態NAT,另一個CPE上手工指定NAT轉換後的公網IP地址和公網端口號,才可以在這兩個CPE之間建立SDWAN隧道。動態NAT通常應用於Hub-Spoke組網,在Spoke CPE上配置NAT轉換類型為動態NAT,在Hub CPE(一般同時作為RR設備)上手工指定NAT轉換後的公網IP地址和公網端口號,以便在Spoke CPE和Hub CPE之間建立SDWAN隧道,Spoke CPE之間通過Hub CPE通信。
如圖2-2所示,在此組網下,公網IP地址和公網端口號獲取過程為:
a. RR和Spoke CPE之間建立SSL連接後,RR和Spoke CPE通過SSL連接交互TTE信息,並建立TTE連接。其中,RR發布的TTE信息中包括手工指定的NAT轉換後公網IP地址和公網端口號;Spoke CPE發布的TTE信息中NAT類型為動態NAT,其中不包含NAT轉換後公網IP地址和公網端口號。
b. Spoke CPE從接收到的TTE信息中獲取到RR的公網IP地址和公網端口號。Spoke CPE發送報文對TTE連接進行Keepalive探測。RR未獲取到Spoke CPE的公網IP地址和公網端口號,不會對TTE連接進行Keepalive探測。
c. RR接收到Spoke CPE發送的Keepalive探測報文後,從該報文中獲取Spoke CPE的公網IP地址和公網端口號,更新Spoke CPE的TTE信息。同時,RR發送報文對TTE連接進行Keepalive探測,探測報文中包括Spoke CPE的公網IP地址和公網端口號。
d. Spoke CPE接收到RR發送的Keepalive探測報文後,從該報文中獲取自身的公網IP地址和公網端口號。
e. RR和Spoke CPE均獲取到完整的TTE信息後,通過SSL連接交互該TTE信息,並進行驗證。如果驗證通過,則建立SDWAN隧道。
圖2-2 獲取動態NAT轉換後的公網IP地址和公網端口號示意圖
執行本功能後,會導致基於該Tunnel接口建立的TTE連接斷開,並根據手工指定的NAT轉換後的公網IP地址和公網端口號重新建立TTE連接。
在公網不能主動訪問內網的場景下,不建議配置本功能。
通過本配置手工指定NAT轉換後的公網IP地址和公網端口號時,需要確保配置的公網IP地址和公網端口號與NAT設備的配置一致,否則可能會導致通信失敗。
如果兩個CPE上都通過sdwan nat-global-ip dynamic或sdwan nat-global-ipv6 dynamic命令配置NAT轉換類型為動態NAT,則這兩個CPE之間無法建立SDWAN隧道。
(1) 進入係統視圖。
system-view
(2) 創建模式為UDP封裝的SDWAN Tunnel接口,並進入Tunnel接口視圖。
(IPv4網絡)
interface tunnel tunnel-number mode sdwan udp
(IPv6網絡)
interface tunnel tunnel-number mode sdwan udp ipv6
在隧道的兩端應配置相同的隧道模式,否則會造成報文傳輸失敗。
(3) 配置隧道的源IP地址和端口號經NAT轉換後對應的公網IP地址和公網端口號。
(IPv4網絡)
sdwan nat-global-ip { global-address [ global-port global-port ] | dynamic }
(IPv6網絡)
sdwan nat-global-ipv6 { global-ipv6-address [ global-port global-port ] | dynamic }
缺省情況下,未配置NAT轉換後對應的公網IP地址和公網端口號。
在SDWAN場景的Hub-Spoke組網中存在大量Spoke設備,如果需要對Hub-Spoke間的每條SDWAN隧道配置限速等QoS策略,則每增加一個分支站點的Spoke設備,都需要在中心站點的Hub設備上手工配置並應用相應的QoS策略,大量配置命令重複且工作量較大。如果中心站點到各分支站點的SDWAN隧道的QoS策略相同,僅限速參數有差異,則可以通過在Spoke設備上配置本功能來簡化Hub設備上的QoS策略配置。
在Spoke設備上配置本功能後,Hub-Spoke之間的數據通道建立過程中,Spoke設備會向對端Hub設備發送QoS TTE路由,該路由攜帶了本功能配置的User Profile名稱以及流量限速值信息,假設本功能指定的User Profile名稱為A,A將隨TTE信息一並由BGP發布給對端Hub設備。對端Hub設備將與A名稱相同的本地User Profile應用到Hub到Spoke的SDWAN隧道出方向上。如果對端Hub設備上不存在名稱為A的User Profile,或者名稱為A的User Profile中無任何配置則對SDWAN隧道無影響。
在配置本功能之前,需完成以下任務:
· 在Hub設備上創建需要應用的User Profile。
· 根據業務需求在上述User Profile下配置相應QoS策略、流量監管、流量整形、流量限速或優先隊列。
關於User Profile的詳細介紹,請參見“安全配置指導”中的“User Profile”。
上述配置準備中的User Profile如果存在某些QoS配置,且該QoS配置指定為入方向生效,則該QoS配置不生效。例如User Profile視圖下配置了qos car命令且指定方向為inbound,則對於Hub到Spoke的SDWAN隧道,該User Profile視圖下qos car命令不生效。
在對端Hub設備上的SDWAN隧道上應用的User Profile下需要執行qos lr outbound(user profile view)命令並指定peer-advertise-bandwidth參數,使對端Hub設備可以接受的Spoke設備上配置的SDWAN隧道的流量限速值。如果對端Hub設備未執行上述步驟,則Spoke設備配置的對端隧道出方向上應用的流量限速值不生效。關於qos lr outbound(user profile view)命令的詳細介紹,請參見“ACL和QoS命令參考”中的“QoS”。
不建議基於SDWAN隧道粒度和Tunnel口粒度同時配置限速、流量監管、流量整形、隊列調度等功能。如果在Hub-Spoke間的SDWAN隧道應用了User Profile,進行SDWAN隧道粒度的限速,同時在Hub的Tunnel接口上配置的流量限速LR或流量整形GTS等功能將不生效。
(1) 進入係統視圖。
system-view
(2) 創建模式為UDP封裝的SDWAN Tunnel接口,並進入Tunnel接口視圖。
interface tunnel tunnel-number mode sdwan udp [ ipv6 ]
在隧道的兩端應配置相同的隧道模式,否則會造成報文傳輸失敗。
(3) 配置需要在對端隧道出方向上應用的User Profile。
qos apply user-profile profile-name downstream
缺省情況下,未配置在對端隧道出方向上應用的User Profile。關於本命令的詳細介紹,請參見“ACL和QoS命令參考”中的“QoS”。
(4) (可選)配置需要在對端隧道出方向上應用的流量限速值
qos bandwidth downstream bandwidth-value
缺省情況下,未配置需要在對端隧道出方向上應用的流量限速值。關於本命令的詳細介紹,請參見“ACL和QoS命令參考”中的“QoS”。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後SDWAN的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下,執行reset命令可以清除相應的統計信息。
表2-1 SDWAN顯示和維護
操作 |
命令 |
顯示BGP IPv4 tnl-encap-ext路由信息。 |
display bgp [ instance instance-name ] routing-table ipv4 tnl-encap-ext [ peer ipv4-address { advertised-routes | received-routes } [ statistics ] | [ route-type { tte | tte-ipv6 | saas-path } ] [ { tnlencap-route route-length | tnlencap-prefix } [ advertise-info ] ] | statistics ] |
顯示指定的BGP-VPN實例路由表中,根據Priority-Color擴展團體屬性生成的IPv4/IPv6單播路由信息 |
display bgp [ instance instance-name ] routing-table { ipv4 | ipv6 } [ unicast ] vpn-instance vpn-instance-name system-ip |
顯示所有的BGP-VPN實例路由表中,根據Priority-Color擴展團體屬性生成的IPv4/IPv6單播路由信息 |
display bgp [ instance instance-name ] routing-table { vpnv4 | vpnv6 } system-ip |
在RR上顯示SDWAN server的狀態 |
display sdwan server status |
在CPE上顯示SSL連接狀態 |
display sdwan peer-connection status [ system-ip system-ip-address ] [ ipv4 | ipv6 ] |
顯示站點的TTE信息 |
display sdwan site-tte [ site-id site-id ] [ ipv4 | ipv6 ] [ verbose ] |
顯示設備上TTE連接的信息 |
display sdwan tte connection [ site-id site-id [ device-id device-id [ interface-id interface-id ] ] | system-ip { system-ipv4-address | ipv6 system-ipv6-address } ] [ reachable | unreachable ] [ ipv4 | ipv6 ] [ collaboration | count ] |
清除TTE連接信息 |
reset sdwan tte connection interface interface-type interface-number [ site-id site-id device-id device-id interface-id interface-id ] |
站點網絡通過CPE接入SDWAN網絡,通過SDWAN實現不同站點網絡跨越廣域網互通。
在CPE與RR之間部署STUN功能,探測兩者之間是否存在NAT設備以及NAT類型。其中CPE作為STUN客戶端,RR作為STUN服務器。SDWAN client與SDWAN server之間建立SSL連接完成CPE與RR之間控製通道的建立。RR作為路由反射器,在CPE之間反射通過控製通道接收到的TTE信息和私網路由,完成CPE之間的數據通道的建立和私網路由的發布。通過配置IPsec功能,對SDWAN隧道上轉發的報文進行安全保護。
站點網絡1和站點網絡4屬於VPN 1,站點網絡2和站點網絡3屬於VPN 2,通過VPN實現不同租戶之間的隔離。
圖2-3 SDWAN網絡組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
CE 1 |
GE1/0/1 |
10.1.1.1/24 |
CE 2 |
GE1/0/2 |
10.1.2.1/24 |
CE 3 |
GE1/0/1 |
10.1.3.1/24 |
CE 4 |
GE1/0/2 |
10.1.4.1/24 |
CPE 1 |
Loop0 |
1.1.1.10/32 |
CPE 2 |
Loop0 |
1.1.1.30/32 |
|
GE1/0/1 |
10.1.1.2/24 |
|
GE1/0/1 |
10.1.3.2/24 |
|
GE1/0/2 |
10.1.2.2/24 |
|
GE1/0/2 |
10.1.4.2/24 |
|
GE1/0/3 |
11.1.1.1/24 |
|
GE1/0/3 |
14.1.1.1/24 |
|
GE1/0/4 |
12.1.1.1/24 |
|
GE1/0/4 |
13.1.1.1/24 |
STUN server |
Loop0 |
6.6.6.1/32 |
RR |
Loop0 |
1.1.1.20/32 |
|
Loop1 |
6.6.6.2/32 |
|
GE1/0/3 |
11.1.1.2/24 |
|
GE1/0/3 |
14.1.1.2/24 |
|
GE1/0/4 |
13.1.1.2/24 |
|
GE1/0/4 |
12.1.1.2/24 |
|
|
|
(1) 配置各接口的IP地址。
按照圖2-3配置各接口的IP地址和掩碼,具體配置過程略。
(2) 配置OSPF協議發布接口所在網段的路由。CPE和RR無需發布Systerm IP所在接口的網段路由。
(3) 配置站點信息和設備信息。
# 配置CPE 1。
<CPE1> system-view
[CPE1] sdwan site-id 20
[CPE1] sdwan site-name beijing
[CPE1] sdwan site-role cpe
[CPE1] sdwan device-id 20
[CPE1] sdwan system-ip loopback0
[CPE1] sdwan encapsulation global-udp-port 3000
# 配置CPE 2。
<CPE2> system-view
[CPE2] sdwan site-id 30
[CPE2] sdwan site-name nanjing
[CPE2] sdwan site-role cpe
[CPE2] sdwan device-id 30
[CPE2] sdwan system-ip loopback0
[CPE2] sdwan encapsulation global-udp-port 3000
# 配置RR。
<RR> system-view
[RR] sdwan site-id 10
[RR] sdwan site-name shanghai
[RR] sdwan site-role rr
[RR] sdwan device-id 10
[RR] sdwan system-ip loopback0
[RR] sdwan encapsulation global-udp-port 3000
(4) 配置CPE(SDWAN client)與RR(SDWAN server)之間的SSL連接。
請根據組網需要選擇一種方式進行SSL配置,本舉例以安全方式進行舉例:
¡ 簡便方式:RR上無需配置SSL服務器端策略,RR使用自簽名證書(RR自己生成的證書,無需從CA獲取)、各SSL參數的缺省值與CPE/NAT transfer建立SSL連接。這種方式簡化了配置,但是存在安全隱患。
¡ 安全方式:設備需要配置SSL服務器端策略、PKI域等配置。還需要通過FTP、TFTP等協議將證書文件傳送到SDWAN server的存儲介質中,並配置pki import命令將CA證書、本地證書導入到SDWAN server上指定的PKI域中。這種方式配置複雜,但是具有更高的安全性。
# 配置CPE 1。
[CPE1] ssl client-policy plc1
[CPE1-ssl-client-policy-plc1] prefer-cipher rsa_aes_256_cbc_sha
[CPE1-ssl-client-policy-plc1] undo server-verify enable
[CPE1-ssl-client-policy-plc1] quit
[CPE1] sdwan ssl-client-policy plc1
[CPE1] sdwan server system-ip 1.1.1.20 ip 11.1.1.2 port 1234
# 配置CPE 2。
[CPE2] ssl client-policy plc1
[CPE2-ssl-client-policy-plc1] prefer-cipher rsa_aes_256_cbc_sha
[CPE2-ssl-client-policy-plc1] undo server-verify enable
[CPE2-ssl-client-policy-plc1] quit
[CPE2] sdwan ssl-client-policy plc1
[CPE2] sdwan server system-ip 1.1.1.20 ip 13.1.1.2 port 1234
# 配置RR。
[RR] pki domain dm1
[RR-pki-domain-1] public-key rsa general name dm1 length 2048
[RR-pki-domain-1] undo crl check enable
[RR-pki-domain-1] quit
[RR] ssl server-policy plc1
[RR-ssl-server-policy-plcl] pki-domain dm1
[RR-ssl-server-policy-plcl] quit
[RR] sdwan server port 1234
[RR] sdwan ssl-server-policy plc1
[RR] sdwan server enable
(5) 配置CPE與RR之間的BGP連接,並配置在二者之間發布IPv4 Tnl-encap-ext路由。
# 配置CPE 1。
[CPE1] bgp 100
[CPE1-bgp-default] peer 1.1.1.20 as-number 100
[CPE1-bgp-default] peer 1.1.1.20 connect-interface Loopback0
[CPE1-bgp-default] address-family ipv4 tnl-encap-ext
[CPE1-bgp-default-ipv4] peer 1.1.1.20 enable
[CPE1-bgp-default-ipv4] quit
[CPE1-bgp-default] quit
# 配置CPE 2。
[CPE2] bgp 100
[CPE2-bgp-default] peer 1.1.1.20 as-number 100
[CPE2-bgp-default] peer 1.1.1.20 connect-interface Loopback0
[CPE2-bgp-default] address-family ipv4 tnl-encap-ext
[CPE2-bgp-default-ipv4] peer 1.1.1.20 enable
[CPE2-bgp-default-ipv4] quit
[CPE2-bgp-default] quit
# 配置RR。
[RR] bgp 100
[RR-bgp-default] peer 1.1.1.10 as-number 100
[RR-bgp-default] peer 1.1.1.10 connect-interface Loopback0
[RR-bgp-default] peer 1.1.1.30 as-number 100
[RR-bgp-default] peer 1.1.1.30 connect-interface Loopback0
[RR-bgp-default] address-family ipv4 tnl-encap-ext
[RR-bgp-default-ipv4] peer 1.1.1.10 enable
[RR-bgp-default-ipv4] peer 1.1.1.30 enable
[RR-bgp-default-ipv4] peer 1.1.1.10 reflect-client
[RR-bgp-default-ipv4] peer 1.1.1.30 reflect-client
[RR-bgp-default-ipv4] quit
[RR-bgp-default] quit
(6) 配置SDWAN隧道。
# 配置CPE 1。
[CPE1] interface tunnel 1 mode sdwan udp
[CPE1-Tunnel1] source gigabitethernet 1/0/3
[CPE1-Tunnel1] tunnel out-interface gigabitethernet 1/0/3
[CPE1-Tunnel1] sdwan routing-domain rda id 10
[CPE1-Tunnel1] sdwan transport-network tna id 10
[CPE1-Tunnel1] sdwan interface-id 35
[CPE1-Tunnel1] ip address unnumbered interface gigabitethernet 1/0/3
# 配置CPE 2。
[CPE2] interface tunnel 2 mode sdwan udp
[CPE2-Tunnel2] source gigabitethernet 1/0/4
[CPE2-Tunnel2] tunnel out-interface gigabitethernet 1/0/4
[CPE2-Tunnel2] sdwan routing-domain rda id 10
[CPE2-Tunnel2] sdwan transport-network tnb id 20
[CPE2-Tunnel2] sdwan interface-id 30
[CPE2-Tunnel2] ip address unnumbered interface gigabitethernet 1/0/4
# 配置RR。
[RR] interface tunnel 1 mode sdwan udp
[RR-Tunnel1] source gigabitethernet 1/0/3
[RR-Tunnel1] tunnel out-interface gigabitethernet 1/0/3
[RR-Tunnel1] sdwan routing-domain rda id 10
[RR-Tunnel1] sdwan transport-network tna id 10
[RR-Tunnel1] sdwan interface-id 30
[RR-Tunnel1] ip address unnumbered interface gigabitethernet 1/0/3
[RR-Tunnel1] quit
[RR] interface tunnel 2 mode sdwan udp
[RR-Tunnel2] source gigabitethernet 1/0/4
[RR-Tunnel2] tunnel out-interface gigabitethernet 1/0/4
[RR-Tunnel2] sdwan routing-domain rda id 10
[RR-Tunnel2] sdwan transport-network tnb id 20
[RR-Tunnel2] sdwan interface-id 40
[RR-Tunnel2] ip address unnumbered interface gigabitethernet 1/0/4
[RR-Tunnel2] quit
(7) 配置STUN功能。
# 開啟CPE 1上接口tunnel 1的STUN客戶端功能,並設置STUN客戶端連接的STUN服務器的IP和端口號。
[CPE1-Tunnel1] stun client destination-ip 6.6.6.1 destination-port 20000
[CPE1-Tunnel1] quit
# 開啟CPE 2上接口tunnel 2的STUN客戶端功能,並設置STUN客戶端連接的STUN服務器的IP和端口號。
[CPE2-Tunnel2] stun client destination-ip 6.6.6.1 destination-port 20000
[CPE2-Tunnel2] quit
# 開啟STUN服務器功能,並指定STUN服務器的IP地址和UDP端口號。
[STUN] stun server ip 6.6.6.1 port 20000 alternative-ip 6.6.6.2
(8) 配置IPsec保護SDWAN隧道。
# 配置CPE 1。
[CPE1] ipsec transform-set tran1
[CPE1-transform-set-tran1] encapsulation-mode transport
[CPE1-transform-set-tran1] esp encryption-algorithm 3des-cbc
[CPE1-transform-set-tran1] esp authentication-algorithm md5
[CPE1-transform-set-tran1] quit
[CPE1] ipsec profile prf1 sdwan
[CPE1-ipsec-profile-sdwan-prf1] transform-set tran1
[CPE1-ipsec-profile-sdwan-prf1] quit
[CPE1] interface tunnel 1
[CPE1-Tunnel1] tunnel protection ipsec profile prf1
# 配置CPE 2。
[CPE2] ipsec transform-set tran1
[CPE2-transform-set-tran1] encapsulation-mode transport
[CPE2-transform-set-tran1] esp encryption-algorithm 3des-cbc
[CPE2-transform-set-tran1] esp authentication-algorithm md5
[CPE2-transform-set-tran1] quit
[CPE2] ipsec profile prf1 sdwan
[CPE2-ipsec-profile-sdwan-prf1] transform-set tran1
[CPE2-ipsec-profile-sdwan-prf1] quit
[CPE2] interface tunnel 2
[CPE2-Tunnel2] tunnel protection ipsec profile prf1
# 配置RR。
[RR] ipsec transform-set tran1
[RR-transform-set-tran1] encapsulation-mode transport
[RR-transform-set-tran1] esp encryption-algorithm 3des-cbc
[RR-transform-set-tran1] esp authentication-algorithm md5
[RR-transform-set-tran1] quit
[RR] ipsec profile prf1 sdwan
[RR-ipsec-profile-sdwan-prf1] transform-set tran1
[RR-ipsec-profile-sdwan-prf1] quit
[RR] interface tunnel 1
[RR-Tunnel1] tunnel protection ipsec profile prf1
[RR-Tunnel1] quit
[RR] interface tunnel 2
[RR-Tunnel2] tunnel protection ipsec profile prf1
[RR-Tunnel2] quit
(9) 在CPE設備上配置VPN實例,將CE接入CPE
# 配置CPE 1。
[CPE1] ip vpn-instance vpn1
[CPE1-vpn-instance-vpn1] route-distinguisher 1:1
[CPE1-vpn-instance-vpn1] vpn-target 1:1 import-extcommunity
[CPE1-vpn-instance-vpn1] vpn-target 1:1 export-extcommunity
[CPE1-vpn-instance-vpn1] sdwan vn-id 100
[CPE1-vpn-instance-vpn1] quit
[CPE1] ip vpn-instance vpn2
[CPE1-vpn-instance-vpn2] route-distinguisher 2:2
[CPE1-vpn-instance-vpn2] vpn-target 2:2 import-extcommunity
[CPE1-vpn-instance-vpn2] vpn-target 2:2 export-extcommunity
[CPE1-vpn-instance-vpn2] sdwan vn-id 200
[CPE1-vpn-instance-vpn2] quit
[CPE1] interface gigabitethernet 1/0/1
[CPE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[CPE1-GigabitEthernet1/0/1] quit
[CPE1] interface gigabitethernet 1/0/2
[CPE1-GigabitEthernet1/0/2] ip binding vpn-instance vpn2
[CPE1-GigabitEthernet1/0/2] quit
# 配置CPE 2。
[CPE2] ip vpn-instance vpn1
[CPE2-vpn-instance-vpn1] route-distinguisher 1:1
[CPE2-vpn-instance-vpn1] vpn-target 1:1 import-extcommunity
[CPE2-vpn-instance-vpn1] vpn-target 1:1 export-extcommunity
[CPE2-vpn-instance-vpn1] sdwan vn-id 100
[CPE2-vpn-instance-vpn1] quit
[CPE2] ip vpn-instance vpn2
[CPE2-vpn-instance-vpn2] route-distinguisher 2:2
[CPE2-vpn-instance-vpn2] vpn-target 2:2 import-extcommunity
[CPE2-vpn-instance-vpn2] vpn-target 2:2 export-extcommunity
[CPE2-vpn-instance-vpn2] sdwan vn-id 200
[CPE2-vpn-instance-vpn2] quit
[CPE2] interface gigabitethernet 1/0/1
[CPE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn2
[CPE2-GigabitEthernet1/0/1] quit
[CPE2] interface gigabitethernet 1/0/2
[CPE2-GigabitEthernet1/0/2] ip binding vpn-instance vpn1
[CPE2-GigabitEthernet1/0/2] quit
(10) 在CPE與CE之間建立EBGP對等體,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 200
[CE1-bgp-default] peer 10.1.1.2 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 10.1.1.2 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
# 配置CE 2。
<CE2> system-view
[CE2] bgp 300
[CE2-bgp-default] peer 10.1.2.2 as-number 100
[CE2-bgp-default] address-family ipv4 unicast
[CE2-bgp-default-ipv4] peer 10.1.2.2 enable
[CE2-bgp-default-ipv4] import-route direct
[CE2-bgp-default-ipv4] quit
[CE2-bgp-default] quit
# 配置CE 3。
<CE3> system-view
[CE3] bgp 400
[CE3-bgp-default] peer 10.1.3.2 as-number 100
[CE3-bgp-default] address-family ipv4 unicast
[CE3-bgp-default-ipv4] peer 10.1.3.2 enable
[CE3-bgp-default-ipv4] import-route direct
[CE3-bgp-default-ipv4] quit
[CE3-bgp-default] quit
# 配置CE 4。
<CE4> system-view
[CE4] bgp 500
[CE4-bgp-default] peer 10.1.4.2 as-number 100
[CE4-bgp-default] address-family ipv4 unicast
[CE4-bgp-default-ipv4] peer 10.1.4.2 enable
[CE4-bgp-default-ipv4] import-route direct
[CE4-bgp-default-ipv4] quit
[CE4-bgp-default] quit
# 配置CPE 1。
[CPE1] bgp 100
[CPE1-bgp-default] ip vpn-instance vpn1
[CPE1-bgp-default-vpn1] peer 10.1.1.1 as-number 200
[CPE1-bgp-default-vpn1] address-family ipv4 unicast
[CPE1-bgp-default-ipv4-vpn1] peer 10.1.1.1 enable
[CPE1-bgp-default-ipv4-vpn1] import-route direct
[CPE1-bgp-default-ipv4-vpn1] quit
[CPE1-bgp-default-vpn1] quit
[CPE1-bgp-default] ip vpn-instance vpn2
[CPE1-bgp-default-vpn2] peer 10.1.2.1 as-number 300
[CPE1-bgp-default-vpn2] address-family ipv4 unicast
[CPE1-bgp-default-ipv4-vpn2] peer 10.1.2.1 enable
[CPE1-bgp-default-ipv4-vpn2] import-route direct
[CPE1-bgp-default-ipv4-vpn2] quit
[CPE1-bgp-default-vpn1] quit
[CPE1-bgp-default] quit
# 配置CPE 2。
[CPE2] bgp 100
[CPE2-bgp-default] ip vpn-instance vpn1
[CPE2-bgp-default-vpn1] peer 10.1.4.1 as-number 500
[CPE2-bgp-default-vpn1] address-family ipv4 unicast
[CPE2-bgp-default-ipv4-vpn1] peer 10.1.4.1 enable
[CPE2-bgp-default-ipv4-vpn1] import-route direct
[CPE2-bgp-default-ipv4-vpn1] quit
[CPE2-bgp-default-vpn1] quit
[CPE2-bgp-default] ip vpn-instance vpn2
[CPE2-bgp-default-vpn2] peer 10.1.3.1 as-number 400
[CPE2-bgp-default-vpn2] address-family ipv4 unicast
[CPE2-bgp-default-ipv4-vpn2] peer 10.1.3.1 enable
[CPE2-bgp-default-ipv4-vpn2] import-route direct
[CPE2-bgp-default-ipv4-vpn2] quit
[CPE2-bgp-default-vpn1] quit
[CPE2-bgp-default] quit
(11) 配置通過IP前綴路由發布站點的私網路由。
# CPE 1。
[CPE1] ip vpn-instance vpn1
[CPE1-vpn-instance-vpn1] address-family ipv4
[CPE1-vpn-ipv4-vpn1] evpn sdwan routing-enable
[CPE1-vpn-ipv4-vpn1] quit
[CPE1-vpn-instance-vpn1] quit
[CPE1] ip vpn-instance vpn2
[CPE1-vpn-instance-vpn2] address-family ipv4
[CPE1-vpn-ipv4-vpn2] evpn sdwan routing-enable
[CPE1-vpn-ipv4-vpn2] quit
[CPE1-vpn-instance-vpn2] quit
[CPE1] bgp 100
[CPE1-bgp-default] address-family l2vpn evpn
[CPE1-bgp-default-evpn] peer 1.1.1.20 enable
[CPE1-bgp-default-evpn] peer 1.1.1.20 advertise encap-type sdwan
[CPE1-bgp-default-evpn] quit
[CPE1-bgp-default] quit
# CPE 2。
[CPE2] ip vpn-instance vpn1
[CPE2-vpn-instance-vpn1] address-family ipv4
[CPE2-vpn-ipv4-vpn1] evpn sdwan routing-enable
[CPE2-vpn-ipv4-vpn1] quit
[CPE2-vpn-instance-vpn1] quit
[CPE2] ip vpn-instance vpn2
[CPE2-vpn-instance-vpn2] address-family ipv4
[CPE2-vpn-ipv4-vpn2] evpn sdwan routing-enable
[CPE2-vpn-ipv4-vpn2] quit
[CPE2-vpn-instance-vpn2] quit
[CPE2] bgp 100
[CPE2-bgp-default] address-family l2vpn evpn
[CPE2-bgp-default-evpn] peer 1.1.1.20 enable
[CPE2-bgp-default-evpn] peer 1.1.1.20 advertise encap-type sdwan
[CPE2-bgp-default-evpn] quit
[CPE2-bgp-default] quit
# RR。
[RR] bgp 100
[RR-bgp-default] address-family l2vpn evpn
[RR-bgp-default-evpn] undo policy vpn-target
[RR-bgp-default-evpn] peer 1.1.1.10 enable
[RR-bgp-default-evpn] peer 1.1.1.10 reflect-client
[RR-bgp-default-evpn] peer 1.1.1.10 advertise encap-type sdwan
[RR-bgp-default-evpn] peer 1.1.1.30 enable
[RR-bgp-default-evpn] peer 1.1.1.30 reflect-client
[RR-bgp-default-evpn] peer 1.1.1.30 advertise encap-type sdwan
# 以CPE 1為例,其他設備(CPE 2、RR)與此類似。查看設備上TTE連接的信息,可以看到CPE 1與RR、CPE 2分別建立了TTE連接。
[CPE1]display sdwan tte connection
Destination SiteID/DevID/IfID/SysIP: 10/10/30/1.1.1.20
Destination IP/port: 11.1.1.2/3000
Source SiteID/DevID/IfID/SysIP: 20/20/35/1.1.1.10
Source IP/port: 11.1.1.1/3000
Created at: 2023/04/23 18:35:58
Status: Reachable
State changed at: 2023/04/23 18:35:58
Destination SiteID/DevID/IfID/SysIP: 30/30/30/1.1.1.30
Destination IP/port: 13.1.1.1/3000
Source SiteID/DevID/IfID/SysIP: 20/20/35/1.1.1.10
Source IP/port: 11.1.1.1/3000
Created at: 2023/04/23 18:36:32
Status: Reachable
State changed at: 2023/04/23 18:36:32
Number of connections: 2
# 以CPE 1為例,CPE 2設備與此類似。在設備上執行display ip routing-table vpn-instance命令,可以看到去往對端CE 4的路由。
[CPE1] display ip routing-table vpn-instance vpn1
Destinations : 14 Routes : 14
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.0/24 Direct 0 0 10.1.1.1 GE1/0/1
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.255/32 Direct 0 0 10.1.1.1 GE1/0/1
10.1.2.0/24 Direct 0 0 10.1.2.1 GE1/0/2
10.1.2.2/32 Direct 0 0 127.0.0.1 InLoop0
10.1.2.255/32 Direct 0 0 10.1.2.1 GE1/0/2
10.1.4.1/24 BGP 255 0 1.1.1.30 Tun1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# CE 1與CE 4之間可以互訪,且CE 2和CE 3之間也可以互訪。
站點網絡通過CPE接入SDWAN網絡,通過SDWAN實現不同站點網絡跨越廣播域互通,且需要實現站點網絡1內的用戶可以和站點網絡2及站點網絡3內的用戶互通,站點網絡2內的用戶不能和站點網絡3內的用戶互通。實現的方式為:
· 在SDWAN網絡中,SDWAN client與SDWAN server之間建立SSL連接完成CPE與RR之間控製通道的建立。
· RR作為路由反射器,通過出口策略,控製僅在CPE 1和CPE 2之間、CPE 1和CPE 3反射TTE信息和私網路由。RR在CPE 2和CPE 3之間僅反射TTE信息,不反射私網路由。
· 通過配置IPsec功能,對SDWAN隧道上轉發的報文進行安全保護。
圖2-4 按需建立SDWAN隧道組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
CE 1 |
GE1/0/1 |
10.1.1.1/24 |
CE 2 |
GE1/0/1 |
10.1.2.1/24 |
CE 3 |
GE1/0/1 |
10.1.3.1/24 |
CPE 2 |
Loop0 |
1.1.1.20/32 |
CPE 1 |
Loop0 |
1.1.1.10/32 |
|
GE1/0/1 |
10.1.2.2/24 |
|
GE1/0/1 |
10.1.1.2/24 |
|
GE1/0/2 |
12.1.1.2/24 |
|
GE1/0/2 |
11.1.1.2/24 |
RR |
Loop0 |
1.1.1.100/32 |
CPE 3 |
Loop0 |
1.1.1.30/32 |
|
GE1/0/1 |
11.1.1.1/24 |
|
GE1/0/1 |
10.1.3.2/24 |
|
GE1/0/2 |
12.1.1.1/24 |
|
GE1/0/2 |
13.1.1.2/24 |
|
GE1/0/3 |
13.1.1.1/24 |
通過FTP、TFTP等協議將證書文件傳送到SDWAN server的存儲介質中,並配置pki import命令將CA證書、本地證書導入到SDWAN server上指定的PKI域中。
(1) 配置各接口的IP地址。
按照圖2-4配置各接口的IP地址和掩碼,具體配置過程略。
(2) 配置OSPF協議發布SDWAN網絡內接口所在網段的路由。CPE和RR無需發布Systerm IP所在接口的網段路由。
(3) 配置站點信息和設備信息。
# 配置CPE 1。
<CPE1> system-view
[CPE1] sdwan site-id 10
[CPE1] sdwan site-name beijing
[CPE1] sdwan site-role cpe
[CPE1] sdwan device-id 10
[CPE1] sdwan system-ip loopback0
[CPE1] sdwan encapsulation global-udp-port 3000
# 配置CPE 2。
<CPE2> system-view
[CPE2] sdwan site-id 20
[CPE2] sdwan site-name nanjing
[CPE2] sdwan site-role cpe
[CPE2] sdwan device-id 20
[CPE2] sdwan system-ip loopback0
[CPE2] sdwan encapsulation global-udp-port 3000
# 配置CPE 3。
<CPE3> system-view
[CPE3] sdwan site-id 30
[CPE3] sdwan site-name wuhan
[CPE3] sdwan site-role cpe
[CPE3] sdwan device-id 30
[CPE3] sdwan system-ip loopback0
[CPE3] sdwan encapsulation global-udp-port 3000
# 配置RR。
<RR> system-view
[RR] sdwan site-id 100
[RR] sdwan site-name shanghai
[RR] sdwan site-role rr
[RR] sdwan device-id 100
[RR] sdwan system-ip loopback0
[RR] sdwan encapsulation global-udp-port 3000
(4) 配置CPE(SDWAN client)與RR(SDWAN server)之間的SSL連接。
# 配置CPE 1。
[CPE1] ssl client-policy plc1
[CPE1-ssl-client-policy-plc1] prefer-cipher rsa_aes_256_cbc_sha
[CPE1-ssl-client-policy-plc1] undo server-verify enable
[CPE1-ssl-client-policy-plc1] quit
[CPE1] sdwan ssl-client-policy plc1
[CPE1] sdwan server system-ip 1.1.1.100 ip 11.1.1.1 port 1234
# 配置CPE 2。
[CPE2] ssl client-policy plc1
[CPE2-ssl-client-policy-plc1] prefer-cipher rsa_aes_256_cbc_sha
[CPE2-ssl-client-policy-plc1] undo server-verify enable
[CPE2-ssl-client-policy-plc1] quit
[CPE2] sdwan ssl-client-policy plc1
[CPE2] sdwan server system-ip 1.1.1.100 ip 12.1.1.1 port 1234
# 配置CPE 3。
[CPE3] ssl client-policy plc1
[CPE3-ssl-client-policy-plc1] prefer-cipher rsa_aes_256_cbc_sha
[CPE3-ssl-client-policy-plc1] undo server-verify enable
[CPE3-ssl-client-policy-plc1] quit
[CPE3] sdwan ssl-client-policy plc1
[CPE3] sdwan server system-ip 1.1.1.100 ip 13.1.1.1 port 1234
# 配置RR。
[RR] pki domain dm1
[RR-pki-domain-1] public-key rsa general name dm1 length 2048
[RR-pki-domain-1] undo crl check enable
[RR-pki-domain-1] quit
[RR] ssl server-policy plc1
[RR-ssl-server-policy-plcl] pki-domain dm1
[RR-ssl-server-policy-plcl] quit
[RR] sdwan server port 1234
[RR] sdwan ssl-server-policy plc1
[RR] sdwan server enable
(5) 配置CPE與RR之間的BGP連接,並配置在二者之間發布IPv4 Tnl-encap-ext路由。
# 配置CPE 1。
[CPE1] bgp 100
[CPE1-bgp-default] peer 1.1.1.100 as-number 100
[CPE1-bgp-default] peer 1.1.1.100 connect-interface Loopback0
[CPE1-bgp-default] address-family ipv4 tnl-encap-ext
[CPE1-bgp-default-ipv4] peer 1.1.1.100 enable
[CPE1-bgp-default-ipv4] quit
[CPE1-bgp-default] qui
# 配置CPE 2。
[CPE2] bgp 100
[CPE2-bgp-default] peer 1.1.1.100 as-number 100
[CPE2-bgp-default] peer 1.1.1.100 connect-interface Loopback0
[CPE2-bgp-default] address-family ipv4 tnl-encap-ext
[CPE2-bgp-default-ipv4] peer 1.1.1.100 enable
[CPE2-bgp-default-ipv4] quit
[CPE2-bgp-default] quit
# 配置CPE 3。
[CPE3] bgp 100
[CPE3-bgp-default] peer 1.1.1.100 as-number 100
[CPE3-bgp-default] peer 1.1.1.100 connect-interface Loopback0
[CPE3-bgp-default] address-family ipv4 tnl-encap-ext
[CPE3-bgp-default-ipv4] peer 1.1.1.100 enable
[CPE3-bgp-default-ipv4] quit
[CPE3-bgp-default] quit
# 配置RR。
[RR] bgp 100
[RR-bgp-default] peer 1.1.1.10 as-number 100
[RR-bgp-default] peer 1.1.1.10 connect-interface Loopback0
[RR-bgp-default] peer 1.1.1.20 as-number 100
[RR-bgp-default] peer 1.1.1.20 connect-interface Loopback0
[RR-bgp-default] peer 1.1.1.30 as-number 100
[RR-bgp-default] peer 1.1.1.30 connect-interface Loopback0
[RR-bgp-default] address-family ipv4 tnl-encap-ext
[RR-bgp-default-ipv4] peer 1.1.1.10 enable
[RR-bgp-default-ipv4] peer 1.1.1.20 enable
[RR-bgp-default-ipv4] peer 1.1.1.30 enable
[RR-bgp-default-ipv4] peer 1.1.1.10 reflect-client
[RR-bgp-default-ipv4] peer 1.1.1.20 reflect-client
[RR-bgp-default-ipv4] peer 1.1.1.30 reflect-client
[RR-bgp-default-ipv4] quit
[RR-bgp-default] quit
(6) 配置SDWAN隧道。
# 配置CPE 1。
[CPE1] interface tunnel 1 mode sdwan udp
[CPE1-Tunnel1] source gigabitethernet 1/0/2
[CPE1-Tunnel1] tunnel out-interface gigabitethernet 1/0/2
[CPE1-Tunnel1] sdwan routing-domain rda id 10
[CPE1-Tunnel1] sdwan transport-network tna id 10
[CPE1-Tunnel1] sdwan interface-id 10
[CPE1-Tunnel1] ip address unnumbered interface gigabitethernet 1/0/2
# 配置CPE 2。
[CPE2] interface tunnel 1 mode sdwan udp
[CPE2-Tunnel1] source gigabitethernet 1/0/2
[CPE2-Tunnel1] tunnel out-interface gigabitethernet 1/0/2
[CPE2-Tunnel1] sdwan routing-domain rda id 10
[CPE2-Tunnel1] sdwan transport-network tnb id 20
[CPE2-Tunnel1] sdwan interface-id 20
[CPE2-Tunnel1] ip address unnumbered interface gigabitethernet 1/0/2
# 配置CPE 3。
[CPE3] interface tunnel 1 mode sdwan udp
[CPE3-Tunnel1] source gigabitethernet 1/0/2
[CPE3-Tunnel1] tunnel out-interface gigabitethernet 1/0/2
[CPE3-Tunnel1] sdwan routing-domain rda id 10
[CPE3-Tunnel1] sdwan transport-network tnb id 30
[CPE3-Tunnel1] sdwan interface-id 30
[CPE3-Tunnel1] ip address unnumbered interface gigabitethernet 1/0/2
# 配置RR。
[RR] interface tunnel 1 mode sdwan udp
[RR-Tunnel1] source gigabitethernet 1/0/1
[RR-Tunnel1] tunnel out-interface gigabitethernet 1/0/1
[RR-Tunnel1] sdwan routing-domain rda id 10
[RR-Tunnel1] sdwan transport-network tna id 10
[RR-Tunnel1] sdwan interface-id 110
[RR-Tunnel1] ip address unnumbered interface gigabitethernet 1/0/1
[RR-Tunnel1] quit
[RR] interface tunnel 2 mode sdwan udp
[RR-Tunnel2] source gigabitethernet 1/0/2
[RR-Tunnel2] tunnel out-interface gigabitethernet 1/0/2
[RR-Tunnel2] sdwan routing-domain rda id 10
[RR-Tunnel2] sdwan transport-network tnb id 20
[RR-Tunnel2] sdwan interface-id 120
[RR-Tunnel2] ip address unnumbered interface gigabitethernet 1/0/2
[RR-Tunnel2] quit
[RR] interface tunnel 3 mode sdwan udp
[RR-Tunnel3] source gigabitethernet 1/0/3
[RR-Tunnel3] tunnel out-interface gigabitethernet 1/0/3
[RR-Tunnel3] sdwan routing-domain rda id 10
[RR-Tunnel3] sdwan transport-network tnb id 30
[RR-Tunnel3] sdwan interface-id 130
[RR-Tunnel3] ip address unnumbered interface gigabitethernet 1/0/3
[RR-Tunnel3] quit
(7) 配置IPsec保護SDWAN隧道。
# 配置CPE 1。
[CPE1] ipsec transform-set tran1
[CPE1-transform-set-tran1] encapsulation-mode transport
[CPE1-transform-set-tran1] esp encryption-algorithm 3des-cbc
[CPE1-transform-set-tran1] esp authentication-algorithm md5
[CPE1-transform-set-tran1] quit
[CPE1] ipsec profile prf1 sdwan
[CPE1-ipsec-profile-sdwan-prf1] transform-set tran1
[CPE1-ipsec-profile-sdwan-prf1] quit
[CPE1] interface tunnel 1
[CPE1-Tunnel1] tunnel protection ipsec profile prf1
# 配置CPE 2。
[CPE2] ipsec transform-set tran1
[CPE2-transform-set-tran1] encapsulation-mode transport
[CPE2-transform-set-tran1] esp encryption-algorithm 3des-cbc
[CPE2-transform-set-tran1] esp authentication-algorithm md5
[CPE2-transform-set-tran1] quit
[CPE2] ipsec profile prf1 sdwan
[CPE2-ipsec-profile-sdwan-prf1] transform-set tran1
[CPE2-ipsec-profile-sdwan-prf1] quit
[CPE2] interface tunnel 1
[CPE2-Tunnel1] tunnel protection ipsec profile prf1
# 配置CPE 3。
[CPE3] ipsec transform-set tran1
[CPE3-transform-set-tran1] encapsulation-mode transport
[CPE3-transform-set-tran1] esp encryption-algorithm 3des-cbc
[CPE3-transform-set-tran1] esp authentication-algorithm md5
[CPE3-transform-set-tran1] quit
[CPE3] ipsec profile prf1 sdwan
[CPE3-ipsec-profile-sdwan-prf1] transform-set tran1
[CPE3-ipsec-profile-sdwan-prf1] quit
[CPE3] interface tunnel 1
[CPE3-Tunnel1] tunnel protection ipsec profile prf1
# 配置RR。
[RR] ipsec transform-set tran1
[RR-transform-set-tran1] encapsulation-mode transport
[RR-transform-set-tran1] esp encryption-algorithm 3des-cbc
[RR-transform-set-tran1] esp authentication-algorithm md5
[RR-transform-set-tran1] quit
[RR] ipsec profile prf1 sdwan
[RR-ipsec-profile-sdwan-prf1] transform-set tran1
[RR-ipsec-profile-sdwan-prf1] quit
[RR] interface tunnel 1
[RR-Tunnel1] tunnel protection ipsec profile prf1
[RR-Tunnel1] quit
[RR] interface tunnel 2
[RR-Tunnel2] tunnel protection ipsec profile prf1
[RR-Tunnel2] quit
[RR] interface tunnel 3
[RR-Tunnel3] tunnel protection ipsec profile prf1
[RR-Tunnel3] quit
(8) 在CPE設備上配置VPN實例,將CE接入CPE
# 配置CPE 1。
[CPE1] ip vpn-instance vpn1
[CPE1-vpn-instance-vpn1] route-distinguisher 1:1
[CPE1-vpn-instance-vpn1] vpn-target 1:1 import-extcommunity
[CPE1-vpn-instance-vpn1] vpn-target 1:1 export-extcommunity
[CPE1-vpn-instance-vpn1] sdwan vn-id 100
[CPE1-vpn-instance-vpn1] quit
[CPE1] interface gigabitethernet 1/0/1
[CPE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[CPE1-GigabitEthernet1/0/1] quit
# 配置CPE 2。
[CPE2] ip vpn-instance vpn1
[CPE2-vpn-instance-vpn1] route-distinguisher 1:1
[CPE2-vpn-instance-vpn1] vpn-target 1:1 import-extcommunity
[CPE2-vpn-instance-vpn1] vpn-target 1:1 export-extcommunity
[CPE2-vpn-instance-vpn1] sdwan vn-id 100
[CPE2-vpn-instance-vpn1] quit
[CPE2] interface gigabitethernet 1/0/1
[CPE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[CPE2-GigabitEthernet1/0/1] quit
# 配置CPE 3。
[CPE3] ip vpn-instance vpn1
[CPE3-vpn-instance-vpn1] route-distinguisher 1:1
[CPE3-vpn-instance-vpn1] vpn-target 1:1 import-extcommunity
[CPE3-vpn-instance-vpn1] vpn-target 1:1 export-extcommunity
[CPE3-vpn-instance-vpn1] sdwan vn-id 100
[CPE3-vpn-instance-vpn1] quit
[CPE3] interface gigabitethernet 1/0/1
[CPE3-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[CPE3-GigabitEthernet1/0/1] quit
(9) 在CPE與CE之間建立EBGP對等體,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 200
[CE1-bgp-default] peer 10.1.1.2 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 10.1.1.2 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
# 配置CE 2。
<CE2> system-view
[CE2] bgp 300
[CE2-bgp-default] peer 10.1.2.2 as-number 100
[CE2-bgp-default] address-family ipv4 unicast
[CE2-bgp-default-ipv4] peer 10.1.2.2 enable
[CE2-bgp-default-ipv4] import-route direct
[CE2-bgp-default-ipv4] quit
[CE2-bgp-default] quit
# 配置CE 3。
<CE3> system-view
[CE3] bgp 400
[CE3-bgp-default] peer 10.1.3.2 as-number 100
[CE3-bgp-default] address-family ipv4 unicast
[CE3-bgp-default-ipv4] peer 10.1.3.2 enable
[CE3-bgp-default-ipv4] import-route direct
[CE3-bgp-default-ipv4] quit
[CE3-bgp-default] quit
# 配置CPE 1。
[CPE1] bgp 100
[CPE1-bgp-default] ip vpn-instance vpn1
[CPE1-bgp-default-vpn1] peer 10.1.1.1 as-number 200
[CPE1-bgp-default-vpn1] address-family ipv4 unicast
[CPE1-bgp-default-ipv4-vpn1] peer 10.1.1.1 enable
[CPE1-bgp-default-ipv4-vpn1] import-route direct
[CPE1-bgp-default-ipv4-vpn1] quit
[CPE1-bgp-default-vpn1] quit
[CPE1-bgp-default] quit
# 配置CPE 2。
[CPE2] bgp 100
[CPE2-bgp-default] ip vpn-instance vpn1
[CPE2-bgp-default-vpn1] peer 10.1.2.1 as-number 300
[CPE2-bgp-default-vpn1] address-family ipv4 unicast
[CPE2-bgp-default-ipv4-vpn1] peer 10.1.2.1 enable
[CPE2-bgp-default-ipv4-vpn1] import-route direct
[CPE2-bgp-default-ipv4-vpn1] quit
[CPE2-bgp-default-vpn1] quit
[CPE2-bgp-default] quit
# 配置CPE 3。
[CPE3] bgp 100
[CPE3-bgp-default] ip vpn-instance vpn1
[CPE3-bgp-default-vpn1] peer 10.1.3.1 as-number 400
[CPE3-bgp-default-vpn1] address-family ipv4 unicast
[CPE3-bgp-default-ipv4-vpn1] peer 10.1.3.1 enable
[CPE3-bgp-default-ipv4-vpn1] import-route direct
[CPE3-bgp-default-ipv4-vpn1] quit
[CPE3-bgp-default-vpn1] quit
[CPE3-bgp-default] quit
(10) 配置通過IP前綴路由發布站點的私網路由。
# CPE 1。
[CPE1] ip vpn-instance vpn1
[CPE1-vpn-instance-vpn1] address-family ipv4
[CPE1-vpn-ipv4-vpn1] evpn sdwan routing-enable
[CPE1-vpn-ipv4-vpn1] quit
[CPE1-vpn-instance-vpn1] quit
[CPE1] bgp 100
[CPE1-bgp-default] address-family l2vpn evpn
[CPE1-bgp-default-evpn] peer 1.1.1.100 enable
[CPE1-bgp-default-evpn] peer 1.1.1.100 advertise encap-type sdwan
[CPE1-bgp-default-evpn] quit
# CPE 2。
[CPE2] ip vpn-instance vpn1
[CPE2-vpn-instance-vpn1] address-family ipv4
[CPE2-vpn-ipv4-vpn1] evpn sdwan routing-enable
[CPE2-vpn-ipv4-vpn1] quit
[CPE2-vpn-instance-vpn1] quit
[CPE2] bgp 100
[CPE2-bgp-default] address-family l2vpn evpn
[CPE2-bgp-default-evpn] peer 1.1.1.100 enable
[CPE2-bgp-default-evpn] peer 1.1.1.100 advertise encap-type sdwan
[CPE2-bgp-default-evpn] quit
# CPE 3。
[CPE3] ip vpn-instance vpn1
[CPE3-vpn-instance-vpn1] address-family ipv4
[CPE3-vpn-ipv4-vpn1] evpn sdwan routing-enable
[CPE3-vpn-ipv4-vpn1] quit
[CPE3-vpn-instance-vpn1] quit
[CPE3] bgp 100
[CPE3-bgp-default] address-family l2vpn evpn
[CPE3-bgp-default-evpn] peer 1.1.1.100 enable
[CPE3-bgp-default-evpn] peer 1.1.1.100 advertise encap-type sdwan
[CPE3-bgp-default-evpn] quit
(11) 配置RR反射SDWAN封裝的IP前綴路由,並通過出口策略控製不在CPE 2和CPE 3之間反射IP前綴路由。
# 創建ACL。
[RR] acl basic name cpe2
[RR-acl-ipv4-basic-cpe2] rule permit source 10.1.2.0 0.0.0.255
[RR-acl-ipv4-basic-cpe2] quit
[RR] acl basic name cpe3
[RR-acl-ipv4-basic-cpe3] rule permit source 10.1.3.0 0.0.0.255
[RR-acl-ipv4-basic-cpe3] quit
# 創建路由策略。
[RR] route-policy denycpe2 deny node 10
[RR-route-policy-denycpe2-10] if-match ip address acl name cpe2
[RR-route-policy-denycpe2-10] quit
[RR] route-policy denycpe2 permit node 20
[RR-route-policy-denycpe2-20] quit
[RR] route-policy denycpe3 deny node 10
[RR-route-policy-denycpe3-10] if-match ip address acl name cpe3
[RR-route-policy-denycpe3-10] quit
[RR] route-policy denycpe3 permit node 20
[RR-route-policy-denycpe3-20] quit
# 配置BGP EVPN路由反射。
[RR] bgp 100
[RR-bgp-default] address-family l2vpn evpn
[RR-bgp-default-evpn] undo policy vpn-target
[RR-bgp-default-evpn] peer 1.1.1.10 enable
[RR-bgp-default-evpn] peer 1.1.1.10 reflect-client
[RR-bgp-default-evpn] peer 1.1.1.10 advertise encap-type sdwan
[RR-bgp-default-evpn] peer 1.1.1.20 enable
[RR-bgp-default-evpn] peer 1.1.1.20 reflect-client
[RR-bgp-default-evpn] peer 1.1.1.20 advertise encap-type sdwan
[RR-bgp-default-evpn] peer 1.1.1.20 route-policy denycpe3 export
[RR-bgp-default-evpn] peer 1.1.1.30 enable
[RR-bgp-default-evpn] peer 1.1.1.30 reflect-client
[RR-bgp-default-evpn] peer 1.1.1.30 advertise encap-type sdwan
[RR-bgp-default-evpn] peer 1.1.1.30 route-policy denycpe2 export
# 以CPE 1為例。查看設備上TTE連接的信息,可以看到CPE 1與RR、CPE 2、CPE 3分別建立了TTE連接。
[CPE1] display sdwan tte connection
Destination SiteID/DevID/IfID/SysIP: 100/100/110/1.1.1.100
Destination IP/port: 11.1.1.1/3000
Source SiteID/DevID/IfID/SysIP: 10/10/10/1.1.1.10
Source IP/port: 11.1.1.2/3000
Created at: 2023/04/23 18:35:58
Status: Reachable
State changed at: 2023/04/23 18:35:58
Destination SiteID/DevID/IfID/SysIP: 20/20/20/1.1.1.20
Destination IP/port: 12.1.1.2/3000
Source SiteID/DevID/IfID/SysIP: 10/10/10/1.1.1.10
Source IP/port: 11.1.1.2/3000
Created at: 2023/04/23 18:36:58
Status: Reachable
State changed at: 2023/04/23 18:36:58
Destination SiteID/DevID/IfID/SysIP: 30/30/30/1.1.1.30
Destination IP/port: 13.1.1.2/3000
Source SiteID/DevID/IfID/SysIP: 10/10/10/1.1.1.10
Source IP/port: 11.1.1.2/3000
Created at: 2023/04/23 18:37:58
Status: Reachable
State changed at: 2023/04/23 18:37:58
Number of connections: 3
# 查看CPE 2上TTE連接的信息時,則隻能看到CPE 2與RR以及CPE 1分別建立了TTE連接。(CPE 3類似)
[CPE2] display sdwan tte connection
Destination SiteID/DevID/IfID/SysIP: 100/100/110/1.1.1.100
Destination IP/port: 12.1.1.1/3000
Source SiteID/DevID/IfID/SysIP: 20/20/20/1.1.1.20
Source IP/port: 12.1.1.2/3000
Created at: 2023/04/23 18:38:58
Status: Reachable
State changed at: 2023/04/23 18:38:58
Destination SiteID/DevID/IfID/SysIP: 10/10/10/1.1.1.10
Destination IP/port: 11.1.1.2/3000
Source SiteID/DevID/IfID/SysIP: 20/20/20/1.1.1.20
Source IP/port: 12.1.1.2/3000
Created at: 2023/04/23 18:39:58
Status: Reachable
State changed at: 2023/04/23 18:39:58
Number of connections: 2
# 以CPE 1為例,在設備上執行display ip routing-table vpn-instance命令,可以看到去往對端CE 2和CE 3的路由。
[CPE1] display ip routing-table vpn-instance vpn1
Destinations : 12 Routes : 12
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.0/24 Direct 0 0 10.1.1.1 GE1/0/1
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.255/32 Direct 0 0 10.1.1.1 GE1/0/1
10.1.2.1/24 BGP 255 0 1.1.1.20 Tun1
10.1.3.1/24 BGP 255 0 1.1.1.30 Tun2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# 在CPE 2設備上執行display ip routing-table vpn-instance命令,則隻可以看到去往對端CE 1的路由,看不到去往對端CE 3的路由。(CPE 3類似)
[CPE2] display ip routing-table vpn-instance vpn1
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.1.2.0/24 Direct 0 0 10.1.1.1 GE1/0/1
10.1.2.2/32 Direct 0 0 127.0.0.1 InLoop0
10.1.2.255/32 Direct 0 0 10.1.1.1 GE1/0/1
10.1.1.1/24 BGP 255 0 1.1.1.20 Tun1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# CE 1與CE 2、CE 3之間可以互訪,但CE 2和CE 3之間不能互訪。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!