ENS執行個體之間,可以通過ENA完成互連,也可以通過部署第三方FortiGate程式來完成互連,本文介紹通過FortiGate的方式完成互連。而ENS與IDC之間,ENS與ECS之間互連也可使用類似方案完成。
概述
本文介紹FortiGate在ENS上安裝部署的方式,以實現不同ENS節點的VPC內網通過VPN互連。一共分為以下四個步驟進行描述:
-
情境介紹
-
安裝FortiGate
-
配置FortiGate
-
測試互連性
情境介紹
-
當客戶使用多個邊緣節點服務時,這些邊緣節點服務之間可以通過專有線路進行廣域網路互聯,也可以通過VPN的方式進行互聯,本文主要介紹通過VPN的方式互聯。
-
在進行網路互聯之前,需要提前規劃IP地址,並確定測試方式為VM1與VM4之間互相ping來驗證連通性。
1. IP地址規劃
|
ENS VPC |
網段 |
執行個體 |
內網IP |
公網IP |
|
ENS VPC1 |
10.0.100.0/24 |
VM2(部署 FortiGate) |
10.0.100.2 |
建立執行個體時候申請或者使用eip |
|
VM1 |
10.0.100.3 |
|||
|
ENS VPC2 |
172.16.100.0/24 |
VM3(部署FortiGate) |
172.16.100.2 |
建立執行個體時候申請或者使用eip |
|
VM4 |
172.16.100.3 |
2. 網路拓撲
網路拓撲如下,客戶在ENS節點1和節點2分別擁有VPC,並在VPC內部都有獨立的VM,在本次互連測試中,需要使得下圖中的“ENS VM1”和“ENS VM4”實現內網互連。

安裝FortiGate
本部分將對如何從ENS控制台依次建立VPC、交換器、安全性群組、執行個體等進行FortiGate建立進行介紹,共分為四個步驟:
-
在ENS上建立VPC和交換器
-
配置安全性群組
-
部署FortiGate執行個體
-
下發引流配置
1. 在ENS上建立VPC和交換器
-
登入ENS控制台依次選擇,選擇已使用的節點,輸入名稱、IPv4網段,同時配置交換器,輸入子網段。
IPv4網段推薦網段為
10.0.0.0/8,建立成功後網段不能修改。交換器的IPv4子網段預設為10.0.0.0/24,可用IP數為253。單個網路支援建立的交換器數量為3個。 -
點擊建立後,在網路和交換器頁面可查看剛才新增的VPC和交換器,以確定已經建立成功。
2. 配置安全性群組
因為安全性群組預設會過濾流量,所以需要針對安全性群組做特別配置,需要放開部分流量連接埠,測試中為了方便,預設允許入方向所有流量,也可以最嚴格配置,僅允許SSH、ICMP,HTTPS、UDP流量訪問。
-
選擇。
在建立安全性群組頁面,填寫安全性群組名稱(必填)和描述。在訪問規則地區,切換入方向或出方向Tab頁簽配置規則,每條規則包含授權策略、優先順序、協議類型、連接埠範圍、授權對象和描述。系統預設添加四條入方向允許規則:自訂UDP、自訂TCP(HTTPS/443)、自訂TCP(SSH/22)和ICMP,優先順序均為1,授權對象均為
0.0.0.0/0。可通過+添加新增規則,或對已有規則執行複製、刪除操作。配置完成後單擊建立。 -
出方向配置。預設全部允許。
3. 部署FortiGate執行個體
本步驟將展示如何按要求在ENS控制台上建立出FortiGate執行個體,這個執行個體將承載VPN的流量,對應圖表中的VM2。
-
選擇,點擊建立執行個體。
-
在基礎配置中,執行個體類型選擇X86計算類型,執行個體規格參考FortiGate規格參考說明,鏡像選擇自訂鏡像,選擇提前準備的FortiGate鏡像。其中ENS如何建立自訂鏡像,可以參考此處:建立自訂鏡像。
付費模式選擇訂用帳戶,購買時間長度根據實際需求設定。
-
配置網路和儲存。網路選擇自建網路,地區選擇剛剛配置Virtual Private Cloud所在節點,然後依次設定地區節點的網路,交換器和安全组,同時创建公网网卡,並設定带宽限速。
執行個體數量設定為1,頻寬計費方式選擇目標值頻寬,執行個體計費周期選擇按小時。系統硬碟保持預設類型,容量設定為20 GB。資料盤無需添加。
-
系统设置。設定密鑰和執行個體名稱,預設密碼請參考FortiGate官方描述。
在系統設定頁面,登入名稱預設為root,可選擇自訂密碼或金鑰組方式登入。同時配置主機名稱,可按需勾選有序尾碼為執行個體名稱和主機名稱添加有序尾碼,並設定標籤。
-
確認訂單。核對基本配置、网络和存储、系统配置,選擇购买时长,最後點擊确认订单。
-
建立完畢之後,可通過在執行個體列表查看來驗證是否建立成功。
在執行個體列表中可以看到已建立的FortiGate執行個體,狀態列顯示為運行中,表示執行個體部署成功。
-
上述步驟是建立VM2的方式,可以在同VPC上建立另外一個VM,但是不選擇FortiGate的鏡像,以用於驗證。
4. 下發引流配置
以左側ENS節點為例,當VM1建立完畢,VM2已經是FortiGate鏡像之後,VM1取往VM4的流量,需要引到VM2對應的FortiGate上,這樣才能實現通過VPN串連VM1和VM4。具體步驟如下:
-
選擇,在網路列表中選擇建立的網路,點擊對應的路由表。
-
點擊路由表ID,在路由表詳情中,點擊,配置對端IPv4網段,並把下一跳指定為之前配置好的fortiGate執行個體。
在 添加路由條目 對話方塊中,填寫路由條目 名稱,按需填寫 描述,單擊 確定。
-
配置好後介面會顯示如下,則說明流量會引入到FortiGate上。
在 VPC 路由表的自訂路由條目頁簽下,可以看到一條狀態為可用的自訂路由條目,其下一跳指向 FortiGate 執行個體資源。
5. 配置Site2 VPC及FortiGate
-
建立第二個Virtual Private Cloud並分配子網段。
-
建立並配置FortiGate執行個體。
-
增加引流配置。
配置FortiGate
FortiGate的配置需要參考官方文檔,不同版本會有少量差異,具體請參考:https://handbook.fortinet.com.cn/。
配置一共分為以下步驟:
-
注意事項
-
匯入license
-
網路初始化
-
系統初始化
-
網路檢查
-
配置IPSEC
1. 注意事項
在中國內地會對互連網訪問的HTTP和HTTPS進行備案管理,否則不予開放80和443連接埠,請關注。
可以通過SSH登入FortiGate裝置,修改HTTPS連接埠號碼,然後再進行備案。
下面是修改為8443連接埠的配置命令:
config system global
set admin-sport 8443
end
2. 匯入license並初始化
對裝置進行license匯入後進行基礎的初始化,驗證網路設定生效後才可以做IPSEC的配置。
2.1 匯入license
-
建立後的預設初始化帳號密碼為:帳號 admin,密碼請在配置完畢後儘快修改預設密碼,避免風險。
通過 SSH 登入 FortiGate VM,執行 diagnose debug vm-print-license 命令查看當前許可證狀態,確認當前為 EVAL 評估許可。
tianhong@U-Y7T49NCJ-2218 ~ % ssh admin@112.13.209.140
admin@1xxx40's password:
FortiGate-VM64-KVM # diagnose debug vm-print-license
SerialNumber: FGVMEVO84K13L75D
CreateDate: Tue Jul 2 02:39:59 2024
Model: EVAL (1)
CPU: 1
MEM: 2048
VDOM license:
permanent: 2
subscription: 0
FortiGate-VM64-KVM #
-
需要綁定FortiGate License,本文使用BYOL的方式綁定。
在彈出的 FortiGate VM License 對話方塊中,選擇 Full license,在 Upload License File 地區單擊 Select file 選擇已擷取的許可證檔案,然後單擊 OK。
-
需要特別注意的是,匯入license後會自動重啟,重啟後需要重新登入,並開始配置IPSEC。
2.2 系統初始化
-
重啟後,在網頁輸入IP地址進入控制台,通過HTTPS訪問fortigate。
此時顯示 FortiGate 管理登入頁面,輸入 Username(使用者名稱)和 Password(密碼),單擊 Login 登入。
-
正常初始化配置。
FortiGate Setup 嚮導頁面列出四個初始化步驟:Register with FortiCare、Automatic Patch Upgrades、Dashboard Setup 和 Change Your Password,單擊 Begin 按鈕開始配置。
-
第一次部署時,建議升級到最新版本7.4.X或諮詢廠商(最新版本比如配置IPsec時候可以減少後期手動設定),登入進入控制台。
登入後進入 Dashboard > Status 頁面,可查看以下面板:System Information(主機名稱、序號、韌體版本、運行模式、系統時間、WAN IP 等)、Licenses(FortiCare Support、IPS、AntiVirus、Web Filtering 等許可證啟用狀態)、Virtual Machine(vCPU 分配比例與 RAM 大小)、FortiGate Cloud(啟用狀態)、Security Fabric(串連狀態)以及 CPU 即時使用率。確認當前韌體版本(例如 v7.2.8)後,根據需要升級至推薦的 7.4.X 版本。
-
系統需要進行初始化後才能繼續使用,在左側選擇settings,進行如hostname、時區等配置。
將 Host name 設定為
FortiGWENSTest,Time zone 選擇(GMT+8:00) Beijing, ChongQing, HongKong。
2.3 驗證網路設定生效
-
測試本機
ping 10.0.100.2。FortiGWENSTest # exec ping 10.0.100.2 PING 10.0.100.2 (10.0.100.2): 56 data bytes 64 bytes from 10.0.100.2: icmp_seq=0 ttl=255 time=0.0 ms 64 bytes from 10.0.100.2: icmp_seq=1 ttl=255 time=0.0 ms 64 bytes from 10.0.100.2: icmp_seq=2 ttl=255 time=0.0 ms 64 bytes from 10.0.100.2: icmp_seq=3 ttl=255 time=0.0 ms 64 bytes from 10.0.100.2: icmp_seq=4 ttl=255 time=0.0 ms --- 10.0.100.2 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms -
測試同VPC內VM
ping 10.0.100.3。FortiGWENSTest # exec ping 10.0.100.3 PING 10.0.100.3 (10.0.100.3): 56 data bytes 64 bytes from 10.0.100.3: icmp_seq=0 ttl=64 time=1.6 ms 64 bytes from 10.0.100.3: icmp_seq=1 ttl=64 time=0.1 ms 64 bytes from 10.0.100.3: icmp_seq=2 ttl=64 time=0.1 ms 64 bytes from 10.0.100.3: icmp_seq=3 ttl=64 time=0.1 ms 64 bytes from 10.0.100.3: icmp_seq=4 ttl=64 time=0.1 ms --- 10.0.100.3 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 0.1/0.4/1.6 ms -
ping www.aliyun.com判斷互連網串連是否正常。FortiGWENSTest # FortiGWENSTest # exec ping www.ba PING www.a.shifen.com (153.x.x.x): 56 data bytes 64 bytes from 153.x.x.x: icmp_seq=0 ttl=46 time=13.6 ms 64 bytes from 153.x.x.x: icmp_seq=1 ttl=46 time=10.0 ms 64 bytes from 153.x.x.x: icmp_seq=2 ttl=46 time=10.4 ms 64 bytes from 153.x.x.x: icmp_seq=3 ttl=46 time=10.0 ms 64 bytes from 153.x.x.x: icmp_seq=4 ttl=46 time=10.0 ms --- www.xxx.com ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 10.0/10.8/13.6 ms -
以上步驟沒問題表示ENS上FortiGW完成基本配置。
3. 配置IPSEC
IPSec會有多種配置方式,在當前拓撲中,使用Site2Site的方式來部署,可以使VM1和VM4實現VPN互連,將兩端分別定義為Site1和Site2。
3.1 Site1配置
配置如下,按照設定精靈逐步執行即可:
-
點擊左側“VPN- IPsec Tunnels -Create New”,點擊IPsec Tunnel。
-
輸入名稱、方式(Site to Site)。
在 Name 中輸入
toVPC2fortigate,NAT Configuration 選擇 No NAT between sites,Remote Device Type 選擇 FortiGate。 -
配置介面,和共用密鑰。
將Remote device設定為IP Address,填寫遠端IP地址,Outgoing Interface選擇port2,Authentication method選擇Pre-shared Key並輸入預先共用金鑰。
-
配置感興趣流(VPN互連網路:本端業務網段、對端業務網路)。
在 Policy & Routing 步驟中,將 Local Interface 設定為 port4,Local Subnets 設定為
10.0.100.0/24,Remote Subnets 設定為172.16.100.0/24,Internet Access 選擇 None。 -
點擊create核對資訊,確認資訊正確後點擊Create。
Review Settings 頁面的 Object Summary 地區顯示配置摘要:Phase 1 interface 為
toVPC2fortigate,Local address group 為toVPC2fortigate_local,Remote address group 為toVPC2fortigate_remote,Phase 2 interface 為toVPC2fortigate,Static route 和 Blackhole route 均為static,Local to remote policies 為vpn_toVPC2fortigate_local,Remote to local policies 為vpn_toVPC2fortigate_remote。 -
配置Firewall Policy策略。在右側Policy&Objects下Firewall Policy 策略允許內網到IPsec VPN隧道和IPsec VPN隧道到內網的策略(不同版本此處會有不同,較高版本通過VPN配置模板自動下發,參考FortiGate官方手冊)。
樣本中建立了兩條 VPN 策略:從 port4 到 toVPC2 方向的策略 vpn_toVPC2_local_0(源 toVPC2_local,目標 toVPC2_remote)和從 toVPC2 到 port4 方向的策略 vpn_toVPC2_remote(源 toVPC2_remote,目標 toVPC2_local),均設定 Service 為 ALL、Action 為 ACCEPT、Schedule 為 always、NAT 為 Disabled。
-
配置業務靜態路由。然後在左側Network -> Static Routes手動設定路由,目的訪問對端業務路由通過IPEC VPN隧道進行引流。(高版本通過VPN配置模板自動下發)。
在 New Static Route 表單中,Destination 選擇 Subnet,值設定為
172.16.100.0/24;Interface 選擇 toVPC2fortigate;Administrative Distance 設定為10;Status 選擇 Enabled。靜態路由列表中包含手動添加的業務路由(如
172.16.30.0/24經由 port4、192.168.5.0/24經由 AliENSToCustom),以及 VPN 嚮導自動建立的隧道路由(Destination 為 toVPC2fortigate_remote,Interface 為 toVPC2fortigate,備忘 VPN: toVPC2fortigate (Created by VPN wizard))和對應的 Blackhole 路由。 -
介面開Ping用於測試。進行ping測試需要介面地址開Ping,預設是不開Ping,需要雙擊連接埠那一列進入,手工開啟。
編輯介面 port4,Addressing mode 選擇 Manual,IP/Netmask 填入
10.0.100.2/255.255.255.0,在 Administrative Access 地區僅勾選 PING。配置完成後,port4 介面 IP 位址為
10.0.100.2/255.255.255.0,Administrative Access 中 PING 已啟用。
3.2 Site2配置
-
在 VPN > IPsec Tunnels 頁面,Site to Site - FortiGate 分組下已建立隧道 toVPC1,Interface Binding 為 port1,Status 為 Up(綠色),Ref. 值為 4。
在 FortiGate 管理主控台中,導航至 Network > Static Routes 頁面,VPN 嚮導自動建立了兩條靜態路由:第一條目的地為 toVPC1_remote,介面為 toVPC1(VPN 隧道),狀態為 Enabled;第二條目的地為 toVPC1_remote,介面為 Blackhole,狀態為 Enabled。兩條路由的 Comments 均為 VPN: toVPC1 (Created by VPN wizard)。
在 Policy & Objects > Firewall Policy 頁面中,VPN 嚮導已自動建立兩條雙向防火牆策略。策略 vpn_toVPC1_local_0(port2 → toVPC1):Source 為 toVPC1_local,Destination 為 toVPC1_remote,Schedule 為 always,Service 為 ALL,Action 為 ACCEPT,NAT 為 Disabled,Security Profiles 為 SSL no-inspection,Log 為 All。策略 vpn_toVPC1_remote_0(toVPC1 → port2):Source 為 toVPC1_remote,Destination 為 toVPC1_local,其餘配置與前一條策略相同。
測試互連性
配置完畢後即可進行測試,測試時,確認圖中的VM1和VM4能夠ping通,即證明VPN建立,以下是測試環境資料:
-
VM4 ping VM1
[root@i-53at57icfbliwrbmzfjtlg1ha ~]# ping 10.0.100.3 PING 10.0.100.3 (10.0.100.3) 56(84) bytes of data. 64 bytes from 10.0.100.3: icmp_seq=1 ttl=62 time=0.377 ms 64 bytes from 10.0.100.3: icmp_seq=2 ttl=62 time=0.351 ms 64 bytes from 10.0.100.3: icmp_seq=3 ttl=62 time=0.329 ms 64 bytes from 10.0.100.3: icmp_seq=4 ttl=62 time=0.358 ms 64 bytes from 10.0.100.3: icmp_seq=5 ttl=62 time=0.349 ms 64 bytes from 10.0.100.3: icmp_seq=6 ttl=62 time=0.274 ms 64 bytes from 10.0.100.3: icmp_seq=7 ttl=62 time=0.333 ms 64 bytes from 10.0.100.3: icmp_seq=8 ttl=62 time=0.341 ms 64 bytes from 10.0.100.3: icmp_seq=9 ttl=62 time=0.335 ms 64 bytes from 10.0.100.3: icmp_seq=10 ttl=62 time=0.346 ms -
VM1 ping VM4
64 bytes from 172.16.100.3: icmp_seq=1 ttl=62 time=0.795 ms 64 bytes from 172.16.100.3: icmp_seq=2 ttl=62 time=0.345 ms 64 bytes from 172.16.100.3: icmp_seq=3 ttl=62 time=0.350 ms 64 bytes from 172.16.100.3: icmp_seq=4 ttl=62 time=0.334 ms 64 bytes from 172.16.100.3: icmp_seq=5 ttl=62 time=0.352 ms 64 bytes from 172.16.100.3: icmp_seq=6 ttl=62 time=0.355 ms 64 bytes from 172.16.100.3: icmp_seq=7 ttl=62 time=0.357 ms 64 bytes from 172.16.100.3: icmp_seq=8 ttl=62 time=0.326 ms 64 bytes from 172.16.100.3: icmp_seq=9 ttl=62 time=0.331 ms 64 bytes from 172.16.100.3: icmp_seq=10 ttl=62 time=0.331 ms 64 bytes from 172.16.100.3: icmp_seq=11 ttl=62 time=0.374 ms 64 bytes from 172.16.100.3: icmp_seq=12 ttl=62 time=0.359 ms 64 bytes from 172.16.100.3: icmp_seq=13 ttl=62 time=0.355 ms 64 bytes from 172.16.100.3: icmp_seq=14 ttl=62 time=0.347 ms 64 bytes from 172.16.100.3: icmp_seq=15 ttl=62 time=0.353 ms
其他使用情境
在上述介紹中,主要描述了ENS與ENS之間使用FortiGate實現VPN互連的方式,ENS作為FortiGate的基礎設施,提供了算力+互連網的基礎能力,FortiGate可以在此基礎上實現其他的廣域網路VPN互聯方式,比如以下方式:
-
ENS與阿里雲ECS VPN互聯
-
ENS與Office VPN互聯
-
ENS與IDC互聯
在這些實現方式中,ENS上安裝FortiGate的鏡像與前面的介紹一致,只要保證鏡像正確,網路正常,那麼主要配置就參考FortiGate的官方手冊即可。
-
ENS使用FortiGate,Site2Site方式串連阿里雲Region VPC,與ENS之間互聯相似。

-
ENS使用FortiGate,Site2Site方式串連阿里雲Region VPC,FortiGate與VPN Gateway直接建立。

-
ENS使用FortiGate,Site2CPE方式串連客戶的Office。

-
ENS使用FortiGate,Site2Site方式串連客戶的IDC。
