一個關於SDWAN單臂部署方案驗證的實驗
假設有這樣一張網路,其中 RTA和PCA表示某公司的A分支,透過中國電信CT路由器接入網際網路ISP;RTB和PCB表示某公司的B分支,透過中國聯通CU路由器接入網際網路ISP。 DNS ( 8 .8.8.8 )表示某網際網路應用。
為實現 A分支私網1 92.168.2.0 / 24 和 B分支私網1 92.168.3.0 / 24 的互通,現計劃使用某廠商的 SD-WAN方案進打通兩個內網,像下圖這樣簡單變更一下網路。圖中POP為某廠商SD-WAN方案使用者接入點裝置,分支側透過接入CPE裝置進行互通。為不改變現有網路結構,將CPE裝置旁掛在分支的出口裝置上,需要能夠同時訪問到內網和網際網路即可,由CPE裝置和POP裝置建立隧道,進而實現內網互通。
這種架構的 SD-WAN() 方案是目前實現比較簡單的方案,對裝置整體要求不高,只要支援 IPsec即可,所以本案例主要也是透過IPsec來實現的。而且分支機構不需要具備公網IP地址,只要能訪問網際網路即可。
接下來就簡單了,可以說是單純的 IPsec的配置。
POP
建立 IKE keychain , 並配置與 兩個 CPE 使用的預共享金鑰為明文的qwe123 。
#
ike keychain key1
pre-shared-key hostname cpe1 key simple qwe123
pre-shared-key hostname cpe2 key simple qwe123
建立IKE profile , 指定 金鑰為 key1,配置IKE第一階段協商使用野蠻模式 。 指定使用IP地址 ( 24.1.1.4 ) 標識本端身份 , 指定需要匹配對端身份型別為 名稱 cpe1 和 cpe2。
#
ike profile pro1
keychain key1
exchange-mode aggressive
local-identity address 24.1.1.4
match remote identity fqdn cpe1
match remote identity fqdn cpe2
建立 IPsec安全提議 , ESP加密演算法為aes-cbc-128 , ESP認證演算法為sha1 。
#
ipsec transform-set tran1
esp encryption-algorithm aes-cbc-128
esp authentication-algorithm sha1
配置 IPsec安全框架,透過IKE協商建立安全聯盟 。
#
ipsec profile sdwan isakmp
transform-set tran1
ike-profile pro1
建立模式為 psec-p2mp 的 隧道介面Tunnel1 ,配置 WAN口地址為 介面的源端地址 ,並 配置Tunnel1介面的IP地址。 最後 在IPsec隧道介面上應用IPsec安全框架sdwan 。
#
interface Tunnel1 mode ipsec-p2mp
ip address 11.1.1.1 255.255.255.0
source 24.1.1.4
tunnel protection ipsec profile sdwan
新增 A分支 到B 分支 的靜態路由 。
#
ip route-static 192.168.2.0 24 Tunnel1 11.1.1.2
ip route-static 192.168.3.0 24 Tunnel1 11.1.1.3
CPE 1
建立 IKE keychain , 並配置與 POP( 地址為24.1.1.4 ) 的對端使用的預共享金鑰為明文的qwe123 。
#
ike keychain key1
pre-shared-key address 24.1.1.4 255.255.255.0 key simple qwe123
建立IKE profile , 指定 金鑰為 key1,配置IKE第一階段協商使用野蠻模式 , 指定使用 名稱 cpe1標識本端身份。指定需要匹配對端身份型別為IP地址,取值為24.1.1.4。
#
ike profile pro1
keychain key1
exchange-mode aggressive
local-identity fqdn cpe1
match remote identity address 24.1.1.4 255.255.255.0
建立 IPsec安全提議 , ESP加密演算法為aes-cbc-128 , ESP認證演算法為sha1 。
#
ipsec transform-set tran1
esp encryption-algorithm aes-cbc-128
esp authentication-algorithm sha1
配置 IPsec安全框架,透過IKE協商建立安全聯盟 。
#
ipsec profile sdwan isakmp
transform-set tran1
ike-profile pro1
建立模式為 IPsec的 隧道 介面Tunnel1 ,配置 WAN口地址為 介面的源端地址 ,配置 POP地址為 介面的目的端地址 ,並 配置Tunnel1介面的IP地址。 最後 在IPsec隧道介面上應用IPsec安全框架sdwan 。
#
interface Tunnel1 mode ipsec
ip address 11.1.1.2 255.255.255.0
source GigabitEthernet2/0
destination 24.1.1.4
tunnel protection ipsec profile sdwan
配置 A分支 到B 分支 的靜態路由 。
#
ip route-static 192.168.3.0 24 Tunnel1
ip route-static 4.4.4.0 24 Tunnel1
CPE 2
配置同 CPE 1 ,不再贅述,直接上配置。
#
ike keychain key1
pre-shared-key address 24.1.1.4 255.255.255.0 key simple qwe123
#
ike profile pro1
keychain key1
exchange-mode aggressive
local-identity fqdn cpe2
match remote identity address 24.1.1.4 255.255.255.0
#
ipsec transform-set tran1
esp encryption-algorithm aes-cbc-128
esp authentication-algorithm sha1
#
ipsec profile sdwan isakmp
transform-set tran1
ike-profile pro1
#
interface Tunnel1 mode ipsec
ip address 22.1.1.2 255.255.255.0
source GigabitEthernet2/0
destination 24.1.1.4
tunnel protection ipsec profile sdwan
#
ip route-static 192.168.2.0 24 Tunnel1
ip route-static 4.4.4.0 24 Tunnel1
接下來只要在路由器 RTA和RTB上將去往對端私網流量的下一跳指向CPE就可以了。
RTA
#
ip route-static 192.168.3.0 24 192.168.2.10
RTB
#
ip route-static 192.168.2.0 24 192.168.3.10
驗證配置
從 PCA上測試訪問PCB的情況。
可以看到,訪問正常,並且透過 tracert檢視轉發路徑,流量是先到閘道器,再到CPE 1 ,再到 POP,再到CPE 2 ,最後到達目標主機 PCB。
而且,此時是不影響訪問網際網路的,在私網互通的同時可以正常訪問模擬的公網業務。
檢視隧道介面狀態。
檢視當前 IKE SA的資訊 。
檢視當前 IPsec SA的資訊 。
可以看到 POP上隧道對端的地址是分支的出口公網IP地址,而流量是全0的,也就是說,任何流量轉發過來都會封裝IPsec,這就是IPsec隧道的魅力所在。
如果要增加流量,只需要兩端內網對應的增加路由就可以了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014251/viewspace-2897194/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 實驗9.單臂路由實現Vlan互通實驗路由
- 一個關於JAVA GC的小實驗JavaGC
- 一個簡單的身份證校驗
- 親身驗證切實可行的python專案部署方案Python
- angular中關於表單動態驗證的一種新思路Angular
- 關於Laravel的表單驗證分層設計以及驗證場景的應用Laravel
- 關於軟體驗證中的單元測試
- 分享一個關於Cookie做的實驗結果Cookie
- ensp 實驗十一單臂路由 三層交換機路由
- 從零實現一個Vue表單驗證外掛Vue
- 自定義一個簡單的資料模型驗證器類,可用於各類驗證場景,待後續完善模型
- 為網站實現一個驗證碼網站
- 使用TensorFlow 來實現一個簡單的驗證碼識別過程
- Flutter上你需要一個簡單實用的驗證碼輸入WidgetFlutter
- 利用js編寫一個簡單的html表單驗證,驗證通過時提交資料(附原始碼)JSHTML原始碼
- 分享一個圖片驗證碼功能的實現
- 簡單幾步實現滑動驗證碼(後端驗證)後端
- SAP CDS redirect view支援寫操作嗎,一個實驗來驗證View
- 使用表單驗證,建立資料驗證層,Ajax 統一返回驗證錯誤資訊
- 實戰表單驗證學習
- 純CSS實現表單驗證CSS
- 實現elementUI表單的全域性驗證UI
- 如何在Go語言中實現表單驗證?整一個validator吧!Go
- node實現基於token的身份驗證
- 關於驗證碼,你不知道的一些問題!
- 一個ocp考試題的驗證
- 使用.Net Core實現的一個圖形驗證碼
- 關於重寫 Laravel 表單驗證器 Request 返回 JSON 的資料格式LaravelJSON
- 從零搭建一個IdentityServer——單頁應用身份驗證IDEServer
- 關於Canvas的一些經驗Canvas
- JavaScript 表單驗證JavaScript
- Laravel 表單驗證Laravel
- javascript表單驗證JavaScript
- bootstrap表單驗證boot
- bootstrapValidator 表單驗證boot
- antd 表單驗證
- 利用jQuery實現表單驗證功能jQuery
- vue 實戰表單驗證規則Vue