最民主的 SD-WAN 分析:架構、配置、管理和陷阱

從透過 SD-WAN 收到的問題數量來看,該技術已開始在俄羅斯徹底紮根。 供應商自然不會睡著並提供他們的概念,一些勇敢的先驅者已經在他們的網路上實施它們。

我們幾乎與所有供應商合作,多年來,在我們的實驗室裡,我成功地深入研究了軟體定義解決方案的每個主要開發人員的架構。 Fortinet 的 SD-WAN 在這裡有點與眾不同,它只是將平衡通訊通道之間流量的功能內建到防火牆軟體中。 該解決方案相當民主,因此通常由尚未準備好應對全球變化但希望更有效地利用其溝通管道的公司考慮。

在本文中,我想告訴您如何配置和使用 Fortinet 的 SD-WAN、該解決方案適合誰以及您可能會遇到哪些陷阱。

SD-WAN 市場中最著名的參與者可分為以下兩種類型之一:

1. 從頭開始創建 SD-WAN 解決方案的新創公司。 其中最成功的被大公司收購後獲得了巨大的發展動力——這就是 Cisco/Viptela、VMWare/VeloCloud、Nuage/Nokia 的故事

2. 大型網路供應商創建了SD-WAN解決方案,開發了傳統路由器的可程式性和可管理性——這是瞻博網路、華為的故事

Fortinet 成功找到了出路。 防火牆軟體具有內建功能,可將其介面組合成虛擬通道,並使用與傳統路由相比複雜的演算法來平衡它們之間的負載。 此功能稱為 SD-WAN。 Fortinet所做的可以稱為SD-WAN嗎? 市場逐漸認識到軟體定義意味著控制平面與資料平面、專用控制器和編排器的分離。 Fortinet 沒有這樣的東西。 集中管理是可選的,並透過傳統的 Fortimanager 工具提供。 但在我看來,你不應該尋找抽象的真理並浪費時間爭論術語。 在現實世界中,每種方法都有其優點和缺點。 最好的出路是理解它們並能夠選擇與任務相對應的解決方案。

我將嘗試透過螢幕截圖告訴您 Fortinet 的 SD-WAN 是什麼樣子以及它可以做什麼。

一切如何運作

假設您有兩個由兩個資料通道連接的分支。 這些資料鏈路組合成一個群組,類似於常規乙太網路介面組合成 LACP 連接埠通道的方式。 老前輩會記得 PPP 多鏈路 - 也是一個合適的類比。 通道可以是實體連接埠、VLAN SVI、VPN 或 GRE 隧道。

透過 Internet 連接分行本地網路時通常使用 VPN 或 GRE。 實體連接埠 - 如果站點之間存在 L2 連接,或透過專用 MPLS/VPN 連接時,如果我們對沒有覆蓋和加密的連接感到滿意。 在 SD-WAN 群組中使用實體連接埠的另一個場景是平衡使用者對 Internet 的本地存取。

我們的展位上有四個防火牆和兩個 VPN 隧道,透過兩個「通訊營運商」運作。 該圖如下所示:

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

VPN 隧道是在介面模式下配置的,因此類似於 P2P 介面上具有 IP 位址的裝置之間的點對點連接,可以對其進行 ping 操作以確保透過特定隧道的通訊正常運作。 為了使流量加密並到達對端,將其路由到隧道中就足夠了。 另一種方法是使用子網路清單選擇要加密的流量,這會讓管理員感到非常困惑,因為配置變得更加複雜。 在大型網路中,您可以使用ADVPN技術來建立VPN;這類似於思科的DMVPN或華為的DVPN,可以更輕鬆地設定。

兩側均具有 BGP 路由的兩台設備的站點到站點 VPN 配置

«ЦОД» (DC)
«Филиал» (BRN)

config system interface
 edit "WAN1"
  set vdom "Internet"
  set ip 1.1.1.1 255.255.255.252
  set allowaccess ping
  set role wan
  set interface "DC-BRD"
  set vlanid 111
 next
 edit "WAN2"
  set vdom "Internet"
  set ip 3.3.3.1 255.255.255.252
  set allowaccess ping
  set role lan
  set interface "DC-BRD"
  set vlanid 112
 next
 edit "BRN-Ph1-1"
  set vdom "Internet"
  set ip 192.168.254.1 255.255.255.255
  set allowaccess ping
  set type tunnel
  set remote-ip 192.168.254.2 255.255.255.255
  set interface "WAN1"
 next
 edit "BRN-Ph1-2"
  set vdom "Internet"
  set ip 192.168.254.3 255.255.255.255
  set allowaccess ping
  set type tunnel
  set remote-ip 192.168.254.4 255.255.255.255
  set interface "WAN2"
 next
end

config vpn ipsec phase1-interface
 edit "BRN-Ph1-1"
  set interface "WAN1"
  set local-gw 1.1.1.1
  set peertype any
  set net-device disable
  set proposal aes128-sha1
  set dhgrp 2
  set remote-gw 2.2.2.1
  set psksecret ***
 next
 edit "BRN-Ph1-2"
  set interface "WAN2"
  set local-gw 3.3.3.1
  set peertype any
  set net-device disable
  set proposal aes128-sha1
  set dhgrp 2
  set remote-gw 4.4.4.1
  set psksecret ***
 next
end

config vpn ipsec phase2-interface
 edit "BRN-Ph2-1"
  set phase1name "BRN-Ph1-1"
  set proposal aes256-sha256
  set dhgrp 2
 next
 edit "BRN-Ph2-2"
  set phase1name "BRN-Ph1-2"
  set proposal aes256-sha256
  set dhgrp 2
 next
end

config router static
 edit 1
  set gateway 1.1.1.2
  set device "WAN1"
 next
 edit 3
  set gateway 3.3.3.2
  set device "WAN2"
 next
end

config router bgp
 set as 65002
 set router-id 10.1.7.1
 set ebgp-multipath enable
 config neighbor
  edit "192.168.254.2"
   set remote-as 65003
  next
  edit "192.168.254.4"
   set remote-as 65003
  next
 end

 config network
  edit 1
   set prefix 10.1.0.0 255.255.0.0
  next
end

config system interface
 edit "WAN1"
  set vdom "Internet"
  set ip 2.2.2.1 255.255.255.252
  set allowaccess ping
  set role wan
  set interface "BRN-BRD"
  set vlanid 111
 next
 edit "WAN2"
  set vdom "Internet"
  set ip 4.4.4.1 255.255.255.252
  set allowaccess ping
  set role wan
  set interface "BRN-BRD"
  set vlanid 114
 next
 edit "DC-Ph1-1"
  set vdom "Internet"
  set ip 192.168.254.2 255.255.255.255
  set allowaccess ping
  set type tunnel
  set remote-ip 192.168.254.1 255.255.255.255
  set interface "WAN1"
 next
 edit "DC-Ph1-2"
  set vdom "Internet"
  set ip 192.168.254.4 255.255.255.255
  set allowaccess ping
  set type tunnel
  set remote-ip 192.168.254.3 255.255.255.255
  set interface "WAN2"
 next
end

config vpn ipsec phase1-interface
  edit "DC-Ph1-1"
   set interface "WAN1"
   set local-gw 2.2.2.1
   set peertype any
   set net-device disable
   set proposal aes128-sha1
   set dhgrp 2
   set remote-gw 1.1.1.1
   set psksecret ***
  next
  edit "DC-Ph1-2"
   set interface "WAN2"
   set local-gw 4.4.4.1
   set peertype any
   set net-device disable
   set proposal aes128-sha1
   set dhgrp 2
   set remote-gw 3.3.3.1
   set psksecret ***
  next
end

config vpn ipsec phase2-interface
  edit "DC-Ph2-1"
   set phase1name "DC-Ph1-1"
   set proposal aes128-sha1
   set dhgrp 2
  next
  edit "DC2-Ph2-2"
   set phase1name "DC-Ph1-2"
   set proposal aes128-sha1
   set dhgrp 2
  next
end

config router static
 edit 1
  set gateway 2.2.2.2
  et device "WAN1"
 next
 edit 3
  set gateway 4.4.4.2
  set device "WAN2"
 next
end

config router bgp
  set as 65003
  set router-id 10.200.7.1
  set ebgp-multipath enable
  config neighbor
   edit "192.168.254.1"
    set remote-as 65002
   next
  edit "192.168.254.3"
   set remote-as 65002
   next
  end

  config network
   edit 1
    set prefix 10.200.0.0 255.255.0.0
   next
end

我以文字形式提供配置,因為在我看來,以這種方式配置 VPN 更方便。 幾乎所有的設定雙面都是相同的;在文字形式下,它們可以複製貼上。 如果您在網路介面中執行相同的操作,很容易犯錯 - 忘記某處的複選標記,輸入錯誤的值。

將介面加入捆綁包後

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

所有路由和安全性原則都可以引用它,但不能引用其中包含的介面。 您至少需要允許從內部網路到 SD-WAN 的流量。 當您為它們建立規則時,您可以套用IPS、防毒和HTTPS外洩等保護措施。

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

為捆綁包配置 SD-WAN 規則。 這些規則定義了特定流量的平衡演算法。 它們與基於策略的路由中的路由策略類似,只是當流量落入策略範圍內時,它不是安裝下一跳或通常的傳出接口,而是添加到 SD-WAN 捆綁包的接口加上這些接口之間的流量平衡演算法。

可以透過 L3-L4 資訊、認可的應用程式、網際網路服務(URL 和 IP)以及認可的工作站和筆記型電腦使用者將流量與一般流量分開。 此後,可以將以下平衡演算法之一分配給分配的流量:

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

在介面首選項清單中,從已新增至捆綁包中的介面中選擇將為此類流量提供服務的介面。 透過不添加所有介面,您可以精確限制您使用的管道,例如電子郵件,如果您不想給具有高 SLA 的昂貴管道造成負擔。 在 FortiOS 6.4.1 中,可以將新增至 SD-WAN 套件的介面分組為區域,例如建立一個區域用於與遠端站點通信,另一個區域用於使用 NAT 進行本地網路存取。 是的,是的,進入常規網路的流量也可以被平衡。

關於平衡演算法

關於 Fortigate(Fortinet 的防火牆)如何在通道之間分割流量,有兩個有趣的選項,但在市場上並不常見:

最低成本 (SLA) – 從目前滿足SLA的所有介面中,選擇由管理員手動設定的權重(成本)較低的介面; 此模式適用於「批次」流量,例如備份和檔案傳輸。

最佳品質 (SLA) – 此演算法除了常見的Fortigate封包的延遲、抖動和遺失之外,還可以使用目前的通道負載來評估通道的品質; 此模式適用於VoIP、視訊會議等敏感流量。

這些演算法需要設定一個通訊通道性能計——性能 SLA。 該儀表定期(檢查間隔)監視有關SLA 合規性的信息:通信通道中的數據包丟失、延遲和抖動,並且可以“拒絕”當前不符合質量閾值的那些通道– 它們丟失了太多數據包或遇到了太多問題。很多延遲。 此外,儀表還會監視通道的狀態,並且可以在回應重複遺失(非活動之前的故障)的情況下暫時將其從捆綁中刪除。 恢復後,經過多次連續回應(恢復連結後),儀表將自動將通道返回到捆綁包,並且將再次開始通過它傳輸資料。

這就是「儀表」設定的樣子:

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

在 Web 介面中,ICMP-Echo-equest、HTTP-GET 和 DNS 請求可用作測試協定。 命令列上還有更多選項:TCP-echo 和 UDP-echo 選項可用,以及專門的品質測量協定 - TWAMP。

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

測量結果也可以在網頁介面中看到:

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

並在命令列上:

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

故障排除

如果您建立了規則,但一切未如預期運作,您應該查看 SD-WAN 規則清單中的命中計數值。 它將顯示流量是否完全符合此規則:

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

在儀表本身的設定頁面上,您可以看到通道參數隨時間的變化。 虛線表示參數的閾值

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

在 Web 介面中,您可以看到流量如何根據傳輸/接收的資料量和會話數量進行分配:

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

除此之外,還有一個極好的機會以最大的細節追蹤資料包的通過。 在實際網路中工作時,設備配置會累積許多跨 SD-WAN 連接埠的路由策略、防火牆和流量分配。 所有這些都以複雜的方式相互作用,儘管供應商提供了資料包處理演算法的詳細框圖,但非常重要的是能夠不建立和測試理論,而是查看流量的實際流向。

例如,下面的一組命令

diagnose debug flow filter saddr 10.200.64.15
diagnose debug flow filter daddr 10.1.7.2
diagnose debug flow show function-name
diagnose debug enable
diagnose debug trace 2

允許您追蹤來源位址為 10.200.64.15 和目標位址為 10.1.7.2 的兩個封包。
我們從 10.7.1.2 ping 10.200.64.15 兩次,並查看控制台上的輸出。

第一個包:

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

第二包:

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

這是防火牆收到的第一個資料包:
id=20085 trace_id=475 func=print_pkt_detail line=5605 msg="vd-Internet:0 received a packet(proto=1, 10.200.64.15:42->10.1.7.2:2048) from DMZ-Office. type=8, code=0, id=42, seq=0."
VDOM – Internet, Proto=1 (ICMP), DMZ-Office – название L3-интерфейса. Type=8 – Echo.

已為他創建了一個新會話:
msg="allocate a new session-0006a627"

並且在路由策略設定中找到了匹配項
msg="Match policy routing id=2136539137: to 10.1.7.2 via ifindex-110"

結果發現封包需要傳送到 VPN 隧道之一:
"find a route: flag=04000000 gw-192.168.254.1 via DC-Ph1-1"

在防火牆策略中偵測到以下允許規則:
msg="Allowed by Policy-3:"

資料包被加密並傳送到 VPN 隧道:
func=ipsecdev_hard_start_xmit line=789 msg="enter IPsec interface-DC-Ph1-1"
func=_ipsecdev_hard_start_xmit line=666 msg="IPsec tunnel-DC-Ph1-1"
func=esp_output4 line=905 msg="IPsec encrypt/auth"

加密資料包將傳送到此 WAN 介面的網關位址:
msg="send to 2.2.2.2 via intf-WAN1"

對於第二個封包,一切都發生類似,但它被發送到另一個 VPN 隧道並通過不同的防火牆連接埠離開:
func=ipsecdev_hard_start_xmit line=789 msg="enter IPsec interface-DC-Ph1-2"
func=_ipsecdev_hard_start_xmit line=666 msg="IPsec tunnel-DC-Ph1-2"
func=esp_output4 line=905 msg="IPsec encrypt/auth"
func=ipsec_output_finish line=622 msg="send to 4.4.4.2 via intf-WAN2"

此解決方案的優點

可靠的功能和用戶友好的介面。 SD-WAN 出現先前 FortiOS 中可用的功能集已完全保留。 也就是說,我們沒有新開發的軟體,而是來自經過驗證的防火牆供應商的成熟系統。 具有傳統的網路功能集,方便易學的網路介面。 例如,有多少 SD-WAN 供應商在終端設備上擁有遠端存取 VPN 功能?

安全等級80。 FortiGate 是頂級防火牆解決方案之一。 互聯網上有很多有關設置和管理防火牆的材料,並且在勞動力市場上有許多安全專家已經掌握了供應商的解決方案。

SD-WAN 功能零價格。 在 FortiGate 上建置 SD-WAN 網路的成本與在其上建置常規 WAN 網路的成本相同,因為不需要額外的授權即可實現 SD-WAN 功能。

進入門檻低。 Fortigate 針對不同效能等級提供了良好的設備分級。 最年輕、最便宜的型號非常適合擴大辦公室或銷售點,例如容納 3-5 名員工。 許多供應商根本沒有如此低性能且價格實惠的型號。

高性能。 將 SD-WAN 功能減少到流量平衡,使該公司能夠發布專門的 SD-WAN ASIC,因此 SD-WAN 作業不會降低整個防火牆的效能。

能夠在 Fortinet 設備上實施整個辦公室。 它們是一對防火牆、交換器、Wi-Fi 存取點。 這樣的辦公室管理起來既簡單又方便——交換器和接入點在防火牆上註冊並透過它們進行管理。 例如,從控制此交換器的防火牆介面來看,交換器連接埠可能如下所示:

最民主的 SD-WAN 分析:架構、配置、管理和陷阱

缺乏控制器作為單點故障。 供應商本身也關注這一點,但這只能被稱為部分好處,因為對於那些擁有控制器的供應商來說,確保其容錯能力的成本並不高,通常是以虛擬化環境中少量計算資源為代價的。

該尋找什麼

控制平面和資料平面之間沒有分離。 這意味著必須手動或使用現有的傳統管理工具 - FortiManager 設定網路。 對於實施這種分離的供應商來說,網路是自行組裝的。 管理員可能只需要調整其拓撲,禁止某處的某些內容,僅此而已。 然而,FortiManager的王牌在於它不僅可以管理防火牆,還可以管理交換器和Wi-Fi接入點,幾乎整個網路。

有條件增加可控性。 由於傳統工具用於自動化網路配置,因此隨著 SD-WAN 的引入,網路可管理性略有增加。 另一方面,新功能的可用速度更快,因為供應商首先僅針對防火牆作業系統發布新功能(這可以立即使用它),然後才為管理系統補充必要的介面。

某些功能可以透過命令列使用,但不能透過 Web 介面使用。 有時進入命令列進行設定並不那麼可怕,但在 Web 介面中看不到有人已經透過命令列配置了某些內容才可怕。 但這通常適用於最新的功能,並且隨著 FortiOS 的更新,Web 介面的功能逐漸得到改進。

適合

對於那些沒有很多分支機構的人。 在包含8-10 個分支機構的網路上實施具有複雜中心組件的SD-WAN 解決方案可能不會花費太多- 您將不得不花錢購買SD-WAN 設備和虛擬化系統資源的許可證來託管中心組件。 小公司通常擁有有限的免費運算資源。 對於 Fortinet 來說,只需購買防火牆就足夠了。

對於那些有很多小樹枝的人。 對於許多供應商來說,每個分公司的最低解決方案價格相當高,從最終客戶業務的角度來看可能並不有趣。 Fortinet 以極具吸引力的價格提供小型設備。

對於那些還沒準備好走得太遠的人。 對於某些客戶來說,使用控制器、專有路由以及新的網路規劃和管理方法實施 SD-WAN 可能是一個太大的步驟。 是的,這樣的實施最終將有助於優化溝通管道的使用和管理員的工作,但首先您必須學習很多新東西。 對於尚未準備好進行範式轉變,但希望從溝通管道中擠出更多內容的人來說,Fortinet 的解決方案恰到好處。

來源: www.habr.com

添加評論