針對企業在雲上環境中因公網訪問入口分散、安全性原則不統一所帶來的管理複雜性與安全風險,您可以通過網關型負載平衡GWLB聯動IPv4網關構建互連網邊界防火牆。該方案通過IPv4網關集中控制公網訪問流量,並結合GWLB對所有進出流量進行安全檢測與過濾,實現集中化的安全性原則管控,有效降低安全風險,提升網路管理效率。
GWLB聯動IPv4網關方案介紹
傳統的公網服務部署方案中,VPC內的資源通過綁定公網IP與公網直接進行通訊,但該方案存在以下安全隱患:
-
公網暴露面廣:綁定的每個公網IP都是一個直接面向互連網的暴露點,當這些暴露點數量增多且分布在不同資源上時,企業的網路安全邊界變得零散,難以進行統一的流量監控和策略管控。
-
策略管理複雜:需要為每個綁定公網IP的資源單獨配置和維護安全性原則(如安全性群組),不僅增加了營運複雜度及時間成本,也容易因配置疏漏產生安全風險。
-
缺乏深度安全檢測:安全性群組及網路ACL主要基於四層(IP及連接埠)進行存取控制,無法對流量進行深度報文檢測(DPI)、入侵防禦等七層安全防護。
通過將IPv4網關與GWLB的聯動部署,可構建集中、透明且可擴充的互連網邊界防火牆。IPv4網關可將所有進出VPC的公網流量進行統一管控,再通過網關型負載平衡終端節點GWLBe將流量路由至GWLB後端防火牆等網路虛擬設備進行深度檢測。經檢測後,流量再次被路由回相應的GWLBe,最終轉寄至應用端。
關鍵特性
-
-
集中控制公網訪問流量:使用IPv4網關結合路由表等組件,可實現控制公網訪問流量統一經過IPv4網關,有利於實施統一的安全性原則和審計,有效降低分散接入帶來的安全風險。
-
-
-
透明的流量檢測: 以三層網路網關的模式工作,流量在經過網路虛擬設備檢測時,其源和目的IP地址保持不變,無需對用戶端或後端服務進行任何修改。
-
可擴充的網路虛擬設備: 可以根據業務流量的變化,隨時在GWLB後端增減網路虛擬設備。
-
跨可用性區域高可用部署: GWLB及其後端網路虛擬設備可部署在多個可用性區域,當單個可用性區域的網路虛擬設備或GWLBe發生故障時,流量會自動分發至其他可用性區域的正常節點,保障安全防護服務的高可用性。
-
使用情境
-
集中安全合規審計:為金融、政府等高安全合規要求行業的公網流量日誌和安全性原則提供統一安全裝置叢集,實現統一審計、監控及事件追溯。
-
公網業務深度安全防護:為對外提供服務的網站、API或應用提供深度內容檢測,有效抵禦Web攻擊、惡意掃描、破壞入侵等進階威脅。
-
VPC內資源安全訪問公網:為VPC內主動訪問互連網的資源(如更新補丁、調用外部API)提供安全的出向訪問通道,防止其訪問惡意網站及資料外泄。
使用限制
-
GWLB後端啟動至少一個網路虛擬設備。
-
GWLB的後端伺服器的存取原則(例如安全性群組)必須放通UDP協議類型和6081連接埠(Geneve協議連接埠)。
-
建立終端節點服務時,選擇地區與可用性區域需要同時支援私網串連和GWLB執行個體的地區與可用性區域。關於私網串連和GWLB執行個體支援的地區,請參見支援私網串連的地區和可用性區域和GWLB支援的地區與可用性區域。
-
GWLBe部署的可用性區域必須是終端節點服務資源(GWLB)部署的可用性區域的子集,才可以建立串連。
情境樣本
某企業核心業務系統部署於阿里雲華北6(烏蘭察布)地區的VPC中。為實現高可用性,應用伺服器ECS分布在兩個不同的可用性區域內(可用性區域B、可用性區域C),並通過為ECS執行個體直接綁定Elastic IP Address EIP的方式對外提供服務。隨著業務的擴充,該部署模式因公網入口分散,難以實施統一的安全性原則和審計,已無法滿足企業日益增長的集中化安全管控需求。同時,該部署模式缺乏對流量進行深度檢測的能力,難以有效抵禦日益複雜的網路攻擊。
為解決上述問題,企業可通過聯動部署GWLB與IPv4網關構建高可用的互連網邊界防火牆,實現集中化的流量安全檢測和管理,有效降低安全風險並實施統一的安全防護策略。
前提條件
-
您已建立了業務VPC和安全VPC,在業務VPC的可用性區域B和可用性區域C建立了業務子網和GWLBe子網,在安全VPC的可用性區域B和可用性區域C建立了安全子網。請參見專用網路與交換器。
-
您已在業務VPC中建立應用伺服器ECS執行個體,且ECS執行個體中部署了應用服務,如果ECS執行個體需要進行公網通訊,必須為其分配公網IP。
-
您已為業務VPC建立並啟用IPv4網關。
-
您已建立所需路由表,包括IPv4網關路由表、業務子網的路由表和GWLBe子網的路由表。
-
在安全VPC中建立了至少兩台ECS執行個體,用於類比網路虛擬設備。
重要請確保安全VPC內的ECS執行個體規格支援巨型幀(Jumbo Frames),因為Geneve封裝會在未經處理資料包基礎上增加68位元組,報文可能會大於1500位元組。更多資訊,請參見網路傳輸單元最大值和支援巨型幀的執行個體規格類型系列。
-
您已為業務VPC內及安全VPC內的所有ECS執行個體建立安全性群組,並確保安全VPC內ECS執行個體所在安全性群組已放通UDP協議類型和6081連接埠,以及健全狀態檢查所需的連接埠和協議。
操作步驟
步驟一:配置網關型負載平衡
建立GWLB執行個體
執行個體是一個負載平衡服務實體,您需要先建立GWLB執行個體。
-
在網關型負載平衡GWLB控制台的頂部功能表列,選擇GWLB所在的地區。
-
在執行個體頁面,單擊建立網關型負載平衡。
-
在網關型負載平衡購買頁面,配置GWLB執行個體資訊,然後單擊立即購買,並根據控制台提示完成執行個體開通。
本文情境中,地區和可用性區域選擇華北6(烏蘭察布),專用網路選擇已建立的安全VPC,可用區選擇烏蘭察布 可用性區域B和烏蘭察布 可用性區域C,並分別在可用性區域中選擇相應安全子網的交換器ID。GWLB執行個體其他未列出配置項使用預設值或根據實際情況修改。
-
返回執行個體頁面,選擇對應的地區即可看到建立的執行個體。
建立後端伺服器組
您需要建立伺服器組並添加後端伺服器來接收GWLB轉寄的用戶端請求。
-
在左側導覽列,選擇。
-
在伺服器組頁面,單擊建立伺服器組。
-
在建立伺服器組對話方塊,設定管理員組相關的參數,然後單擊建立。
本文情境中,伺服器群組類型選擇伺服器類型,VPC選擇已建立的安全VPC(與GWLB執行個體同VPC)。伺服器組其他未列出配置項使用預設值或根據實際情況修改。
-
在伺服器組建立成功對話方塊單擊添加後端伺服器。
-
在添加後端伺服器面板,選中已建立的ECS_01和ECS_02執行個體,單擊確定。
配置監聽
您需要為執行個體配置監聽,並將監聽關聯到後端伺服器組,將所有連接埠的流量通過Geneve協議的方式轉寄至後端伺服器。
-
在左側導覽列,選擇,單擊執行個體ID。
-
單擊監聽頁簽,然後單擊建立IP監聽。
-
在建立IP監聽配置頁面,選擇伺服器群組類型,選擇已建立的伺服器組,然後單擊確定。
IP監聽其他未列出配置項使用預設值或根據實際情況修改。
步驟二:配置網路虛擬設備
由於GWLB在OSI參考模型第三層以透明模式運行,所以在該負載平衡後端部署網路虛擬設備時,需要做一些適配工作,以確保網路虛擬設備具備接收、處理和回送Geneve封裝業務流量的能力。
阿里雲GWLB支援將各類第三方網路虛擬設備(如Fortinet、山石網科等品牌)整合至後端伺服器組中。本文以iptables類比後端網路虛擬設備為例,實際配置請根據裝置廠商相關指導進行操作。
步驟三:配置私網串連
配置終端節點服務
將GWLB執行個體作為終端節點服務的服務資源,供業務VPC訪問。
-
在終端節點服務頁面,單擊建立終端節點服務。
-
在建立終端節點服務頁面,配置終端節點服務資訊,然後單擊確定建立。
本文情境中,所屬地區選擇華北6(烏蘭察布),服務資源類型選擇網關型負載平衡GWLB,選擇服務資源選擇烏蘭察布 可用性區域B和烏蘭察布 可用性區域C,服務資源選擇已建立的GWLB執行個體,自動接受終端節點串連選擇是。終端節點服務其他未列出配置項使用預設值或根據實際情況修改。
配置網關型負載平衡終端節點
服務使用者需要建立相應的GWLBe,從而與終端節點服務建立串連。
-
在終端節點頁面,單擊網關型負載平衡終端節點頁簽,然後單擊建立終端節點。
-
在建立終端節點頁面,配置終端節點GWLBe_01資訊,然後單擊確定建立。
本文情境配置如下。終端節點其他未列出配置項使用預設值或根據實際情況修改。
參數
描述
所屬地區
本文選擇華北6(烏蘭察布)。
節點名稱
自訂終端節點的名稱。
終端節點類型
終端節點選擇的節點類型。本文選擇網關型負載平衡終端節點。
類型
本文選擇選擇可用服務,然後選擇已建立的終端節點服務。
專用網路
選擇終端節點所屬的專用網路。本文選擇業務VPC的ID。
可用區及交換器
選擇終端節點服務對應的可用性區域,然後選擇該可用性區域內的交換器,系統會自動在該交換器下建立一個終端節點網卡。
本文可用性區域選擇烏蘭察布 可用性區域B並選擇可用性區域B內GWLBe子網的交換器ID。
-
重複建立步驟建立GWLBe_02。其中可用性區域與交換器選擇烏蘭察布 可用性區域C與可用性區域C內GWLBe子網的交換器ID。
說明請確保終端節點的串連狀態是已串連。
步驟四:配置路由
配置路由將流量路由至GWLBe。
-
在路由表頁面的頂部功能表列,選擇路由表所屬的地區。
本文情境中,選擇華北6(烏蘭察布)。
-
請根據以下資訊,依次單擊目標路由表的ID,在路由表詳情頁進行路由配置。
說明在路由表詳情頁面的頁簽下,可查看系統路由條目。
系統會在自訂路由表中自動添加以下系統路由:以路由表所屬VPC內的交換器網段為目標網段的路由條目,用於交換器內的雲產品通訊。
-
IPv4網關路由表:IPv4網關的路由表必須具有將發往應用伺服器的流量路由到GWLBe的條目。
在路由表詳情頁面的頁簽下,找到目標系統路由條目,然後在操作列單擊編輯,在編輯路由條目對話方塊,進行如下配置,然後單擊確定。
配置完成後,該路由條目會出現在自訂路由條目頁簽下。
配置
目標網段為192.168.1.0/24的系統路由條目
目標網段為192.168.2.0/24的系統路由條目
下一跳類型
選擇網關型負載平衡終端節點。
網關型負載平衡終端節點
選擇已建立的可用性區域B的GWLBe_01。
選擇已建立的可用性區域C的GWLBe_02。
-
業務子網路由表:業務子網的路由表必須具有將來自應用伺服器的所有流量路由到GWLBe的條目。
分別在可用性區域B及可用性區域C的業務子網路由表詳情頁面選擇頁簽,單擊添加路由條目,在添加路由條目對話方塊,進行如下配置,然後單擊確定。
配置
業務子網B路由表
業務子網C路由表
目標網段
0.0.0.0/0
下一跳類型
選擇網關型負載平衡終端節點。
網關型負載平衡終端節點
選擇已建立的可用性區域B的GWLBe_01。
選擇已建立的可用性區域C的GWLBe_02。
-
GWLBe子網路由表:GWLBe子網的路由表必須將從檢查返回的流量路由到最終目的地。對於來自互連網的流量,本地路由將確保其會到達應用伺服器。對於來自應用伺服器的流量,則添加將所有流量路由到IPv4網關的條目。
分別在可用性區域B及可用性區域C的GWLBe子網路由表詳情頁面選擇頁簽,單擊添加路由條目,在添加路由條目對話方塊,進行如下配置,然後單擊確定。
配置
GWLBe子網路由表
目標網段
0.0.0.0/0
下一跳類型
選擇IPv4网关。
IPv4網關
選擇已建立的IPv4網關。
-
步驟五:驗證測試
登入安全裝置伺服器,捕獲所有經過連接埠為6081的資料包,執行如下命令:
tcpdump -i any port 6081
返回報文顯示有來自應用伺服器ECS的請求和響應資料,實現了通過GWLB將流量路由至網路虛擬設備進行安全檢測的過程。
測試訪問流量連通性
-
登入任意一台可以訪問公網的用戶端,分別執行
curl http://<應用伺服器ECS_B_01綁定的EIP>和curl http://<應用伺服器ECS_C_01綁定的EIP>,檢查是否可正常訪問應用。C:\Users\Administrator>curl http://8.xxx.56/ Hello World ! This is ECS_C_01. C:\Users\Administrator>curl http://8.xxx.130/ Hello World ! This is ECS_B_01. -
在GWLB任一後端ECS開啟命令列視窗,執行
tcpdump -i any port 6081,捕獲所有經過連接埠為6081的資料包。返回報文顯示
Geneve封裝的業務流量,內層如:IP <用戶端公網IP>.xxxxx > <應用ECS內網IP>.http ...,則表示GWLB已將外部業務流量正確分發到安全裝置進行處理。10:24:36.525075 IP 10.0.1.41.56736 > iZ0jlgs5xxx.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 47.83.xxx.59927 > 192.168.1.153.http: Flags [SEW], seq 2485172945, win 65535, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0 10:24:36.525098 IP iZ0jlgsxxx .56736 > 10.0.1.41.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 47.83.xxx.59927 > 192.168.1.153.http: Flags [SEW], seq 2485172945, win 65535, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0 10:24:36.526547 IP 10.0.1.41.56736 > iZ0jlgs5xxx.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 192.168.1.153.http > 47.83.xxx.59927: Flags [S,E], seq 3488689686, ack 2485172946, win 59220, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 10:24:36.526549 IP iZ0jlgxxx .56736 10.0.1.41.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 192.168.1.153.http > 47.83.xxx.59927: Flags [S,E], seq 3488689686, ack 2485172946, win 59220, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 10:24:36.572545 IP 10.0.1.41.56736 > iZ0jlgxxx.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 47.83.xxx.59927 > 192.168.1.153.http: Flags [.], ack 1, win 255, length 0 10:24:36.572551 IP iZ0jlgs4u5xxx .56736 > 10.0.1.41.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 47.83.xxx.59927 > 192.168.1.153.http: Flags [.], ack 1, win 255, length 0 10:24:36.572552 IP 10.0.1.41.56736 > iZ0jlgs5xxx.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 47.83.xxx.59927 > 192.168.1.153.http: Flags [P.], seq 1:77, ack 1, win 255, length 76: HTTP: GET / HTTP/1.1 10:24:36.572554 IP iZ0xxx .56736 10.0.1.41.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 47.83.xxx.59927 > 192.168.1.153.http: Flags [P.], seq 1:77, ack 1, win 255, length 76: HTTP: GET / HTTP/1.1 10:24:36.622282 IP 10.0.1.41.56736 > iZ0jlgsxxx.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 47.83.xxx.59927 > 192.168.1.153.http: Flags [F.], seq 77, ack 269, win 254, length 0 10:24:36.622288 IP iZ0jlgs4uxxx .56736 > 10.0.1.41.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 47.83.xxx.59927 > 192.168.1.153.http: Flags [F.], seq 77, ack 269, win 254, length 0 10:24:36.623401 IP 10.0.1.41.56736 > iZ0jlgs5xxx.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 192.168.1.153.http > 47.83.xxx.59927: Flags [F.], seq 269, ack 78, win 463, length 0 10:24:36.623481 IP iZ0jlgs4uxxx .56736 > 10.0.1.41.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 192.168.1.153.http > 47.83.xxx.59927: Flags [F.], seq 269, ack 78, win 463, length 0
測試出網流量連通性
-
登入任一應用伺服器,執行
ping www.aliyun.com,檢查是否可正常訪問公網。[root@iZ0jl xxx xxx ~]# ping www.aliyun.com PING www.aliyun.com.w.cdngslb.com (124.238.xxx.xxx) 56(84) bytes of data. 64 bytes from 124.238.xxx.xxx (124.238.xxx.xxx): icmp_seq=1 ttl=51 time=17.3 ms 64 bytes from 124.238.xxx.xxx (124.238.xxx.xxx): icmp_seq=2 ttl=51 time=15.1 ms 64 bytes from 124.238.xxx.xxx (124.238.xxx.xxx): icmp_seq=3 ttl=51 time=15.1 ms 64 bytes from 124.238.xxx.xxx (124.238.xxx.xxx): icmp_seq=4 ttl=51 time=14.5 ms 64 bytes from 124.238.xxx.xxx (124.238.xxx.xxx): icmp_seq=5 ttl=51 time=14.4 ms 64 bytes from 124.238.xxx.xxx (124.238.xxx.xxx): icmp_seq=6 ttl=51 time=14.4 ms 64 bytes from 124.238.xxx.xxx (124.238.xxx.xxx): icmp_seq=7 ttl=51 time=14.4 ms 64 bytes from 124.238.xxx.xxx (124.238.xxx.xxx): icmp_seq=8 ttl=51 time=14.4 ms -
在GWLB任一後端ECS開啟命令列視窗,執行
tcpdump -i any port 6081,捕獲所有經過連接埠為6081的資料包。返回報文顯示來自應用伺服器ECS的請求和響應資料,表示應用伺服器到公網的流量已通過GWLB後端網路虛擬設備的檢測與透傳。
10:15:18.247012 IP 10.0.1.41.32236 > iZ0jlgs xxx.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 192.168.1.153 > 124.238.xxx : ICMP echo request, id 9, seq 8, length 64 10:15:18.247028 IP iZ0jlgs xxx > 10.0.1.41.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 192.168.1.153 > 124.238.xxx : ICMP echo request, id 9, seq 8, length 64 10:15:18.261183 IP 10.0.1.41.32236 > iZ0jlgs xxx.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 124.238.xxx > 192.168.1.153: ICMP echo reply, id 9, seq 8, length 64 10:15:18.261192 IP iZ0jlgs xxx.32236 > 10.0.1.41.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 124.238.xxx > 192.168.1.153: ICMP echo reply, id 9, seq 8, length 64 10:15:19.248397 IP 10.0.1.41.32236 > iZ0jlgs xxx.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 192.168.1.153 > 124.238.xxx : ICMP echo request, id 9, seq 9, length 64 10:15:19.248419 IP iZ0jlg xxx.32236 > 10.0.1.41.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 192.168.1.153 > 124.238.xxx : ICMP echo reply, id 9, seq 9, length 64 10:15:19.262605 IP 10.0.1.41.32236 > iZ0jlg xxx.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 124.238.xxx > 192.168.1.153: ICMP echo request, id 9, seq 9, length 64 10:15:19.262613 IP iZ0jlg xxx.32236 > 10.0.1.41.geneve: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 124.238.xxx > 192.168.1.153: ICMP echo reply, id 9, seq 9, length 64
相關文檔
-
GWLB計費概述:GWLB支援隨用隨付,費用包括GWLB執行個體費及LCU費用。
-
私網串連計費說明:GWLB需要與GWLBe搭配使用才能提供服務。GWLBe由私網串連服務獨立定價與計費。
-
部署GWLB時,建議開啟以下配置:
-
GWLB健全狀態檢查:可探測GWLB後端網路虛擬設備可用性,當某台裝置出現異常時,支援自動將新的請求路由至運行正常的後端裝置上。
-
串連優雅中斷:在移除GWLB後端網路虛擬設備時,可平滑處理現有串連。
-
重新平衡現有流量(Rebalance):當GWLB後端網路虛擬設備故障或被移除時,GWLB會將現有流量重新路由到健康的後端裝置上,避免業務中斷。
-
-
瞭解私網串連與IPv4網關更多資訊: