1. 簡介
總覽
在本實驗室中,您將探索 Network Connectivity Center 的部分功能。
Network Connectivity Center (NCC) 是中樞與輪輻的控制層模式,可在 Google Cloud 管理網路連線。中樞資源提供集中式連線管理模式,可以在輪輻間建立連線。NCC 目前支援下列網路資源做為輪輻:
- VLAN 連結
- 路由器設備
- 高可用性 VPN
Codelabs 需要使用 flexiWAN SaaS SD-WAN 解決方案,簡化 WAN 部署和管理作業。flexWAN 是開放原始碼的 SD-WAN 和 SASE 解決方案。
建構項目
在本程式碼研究室中,您將建構中樞和輪輻 SD-WAN 拓撲,模擬遠端分支機構網站,這些網站會透過 Google 的骨幹網路進行網站對雲端和網站對網站通訊。
- 您將部署一對 GCE VM,並在中樞 VPC 中設定「flexiWAN」SD-WAN 代理程式,代表傳入和傳出 GCP 流量的頭端。
- 部署兩個遠端 flexiWAN SD-WAN 路由器,代表兩個不同的分支機構網站 VPC
- 如要測試資料路徑,請設定三個 GCE VM,模擬在 GCP 上代管的內部部署用戶端和伺服器
課程內容
- 使用 NCC,透過開放原始碼軟體定義的 WAN 解決方案,互連遠端分公司
- 具備開放原始碼軟體定義的 WAN 解決方案實作經驗
軟硬體需求
- 瞭解 GCP 虛擬私有雲網路
- 瞭解 Cloud Router 和 BGP 路由
- 本程式碼研究室需要 6 個虛擬私有雲。檢查「配額:網路」,並視需要要求新增網路,如下方螢幕截圖所示:

2. 目標
- 設定 GCP 環境
- 在 GCP 中部署 flexiWAN Edge 執行個體
- 建立 NCC 中樞,並將 flexiWAN Edge NVA 設為輪輻
- 使用 flexiManage 設定及管理 flexiWAN 執行個體
- 設定 vpc-app-svcs 與 flexiWAN NVA 之間的 BGP 路徑交換
- 建立遠端網站,模擬客戶的遠端分公司或資料中心
- 在遠端網站和 NVA 之間建立 IPSEC 通道
- 確認設備是否已成功部署
- 驗證網站至雲端資料移轉作業
- 驗證站對站網站資料移轉
- 清理所用資源
本教學課程需要建立免費的 flexiManage 帳戶 ,以便驗證、加入及管理 flexiEdge 執行個體。
事前準備
使用 Google Cloud 控制台和 Cloud Shell
在本實驗室中,我們將使用 Google Cloud 控制台和 Cloud Shell 與 GCP 互動。
Google Cloud Console
如要使用 Cloud 控制台,請前往 https://console.cloud.google.com。
在 Google Cloud 中設定下列項目,即可更輕鬆地設定 Network Connectivity Center:
在 Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案。
啟動 Cloud Shell。本程式碼研究室會使用 $variables,協助您在 Cloud Shell 中實作 gcloud 設定。
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname
IAM 角色
NCC 需要 IAM 角色才能存取特定 API。請務必視需要為使用者設定 NCC IAM 角色。
角色名稱 | 說明 | 權限 |
networkconnectivity.networkAdmin | 網路管理員可管理中樞和輪輻。 | networkconnectivity.hubs.networkconnectivity.spokes. |
networkconnectivity.networkSpokeManager | 允許在中樞中新增及管理輪輻。在 Shared VPC 中使用,其中主專案擁有中樞,但其他專案中的其他管理員可以為其連結新增輪輻至中樞。 | networkconnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer | 允許網路使用者查看中樞和輪輻的不同屬性。 | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
3. 設定網路實驗室環境
總覽
在本節中,我們將部署虛擬私有雲網路和防火牆規則。

模擬內部部署分公司網路
這個虛擬私有雲網路包含地端部署 VM 執行個體的子網路。
建立地端部署網站網路和子網路:
gcloud compute networks create site1-vpc \
--subnet-mode custom
gcloud compute networks create site2-vpc \
--subnet-mode custom
gcloud compute networks create s1-inside-vpc \
--subnet-mode custom
gcloud compute networks create s2-inside-vpc \
--subnet-mode custom
gcloud compute networks subnets create site1-subnet \
--network site1-vpc \
--range 10.10.0.0/24 \
--region us-central1
gcloud compute networks subnets create site2-subnet \
--network site2-vpc \
--range 10.20.0.0/24 \
--region us-east4
gcloud compute networks subnets create s1-inside-subnet \
--network s1-inside-vpc \
--range 10.10.1.0/24 \
--region us-central1
gcloud compute networks subnets create s2-inside-subnet \
--network s2-inside-vpc \
--range 10.20.1.0/24 \
--region us-east4
建立 site1-vpc 防火牆規則,允許:
- SSH、內部、IAP
- ESP、UDP/500、UDP/4500
- 10.0.0.0/8 範圍
- 192.168.0.0/16 範圍
gcloud compute firewall-rules create site1-ssh \--network site1-vpc \
--allow tcp:22
gcloud compute firewall-rules create site1-internal \
--network site1-vpc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create site1-cloud \
--network site1-vpc \
--allow all \
--source-ranges 192.168.0.0/16
gcloud compute firewall-rules create site1-vpn \
--network site1-vpc \
--allow esp,udp:500,udp:4500 \
--target-tags router
gcloud compute firewall-rules create site1-iap \
--network site1-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
建立 site2-vpc 防火牆規則,允許:
- SSH、內部、IAP
- 10.0.0.0/8 範圍
- 192.168.0.0/16 範圍
gcloud compute firewall-rules create site2-ssh \
--network site2-vpc \
--allow tcp:22
gcloud compute firewall-rules create site2-internal \
--network site2-vpc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create site2-cloud \
--network site1-vpc \
--allow all \
--source-ranges 192.168.0.0/16
gcloud compute firewall-rules create site2-vpn \
--network site1-vpc \
--allow esp,udp:500,udp:4500 \
--target-tags router
gcloud compute firewall-rules create site2-iap \
--network site2-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
建立 s1-inside-vpc 防火牆規則,允許:
- SSH、內部、IAP
- 10.0.0.0/8 範圍
- 192.168.0.0/16 範圍
gcloud compute firewall-rules create s1-inside-ssh \
--network s1-inside-vpc \
--allow tcp:22
gcloud compute firewall-rules create s1-inside-internal \
--network s1-inside-vpc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create s1-inside-cloud \
--network s1-inside-vpc \
--allow all \
--source-ranges 192.168.0.0/16
gcloud compute firewall-rules create s1-inside-iap \
--network site2-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
建立 s2-inside-vpc 防火牆規則,允許:
- SSH、內部、IAP
- 10.0.0.0/8 範圍
- 192.168.0.0/16 範圍
gcloud compute firewall-rules create s2-inside-ssh \
--network s2-inside-vpc \
--allow tcp:22
gcloud compute firewall-rules create s2-inside-internal \
--network s2-inside-vpc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create s2-inside-cloud \
--network s2-inside-vpc \
--allow all \
--source-ranges 192.168.0.0/16
gcloud compute firewall-rules create s2-inside-iap \
--network site2-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
為進行測試,請建立 s1-inside-vm 和 s2-inside-vm 例項
gcloud compute instances create s1-vm \
--zone=us-central1-a \
--machine-type=e2-micro \
--network-interface subnet=s1-inside-subnet,private-network-ip=10.10.1.3,no-address
gcloud compute instances create s2-vm \
--zone=us-east4-b \
--machine-type=e2-micro \
--network-interface subnet=s2-inside-subnet,private-network-ip=10.20.1.3,no-address
模擬 GCP 雲端網路環境
如要透過 hub-vpc 網路和 Spoke 啟用跨區域的站對站流量,請在 hub-vpc 網路中啟用全域轉送。詳情請參閱 NCC 路由交換。
- 建立
hub-vpc網路和子網路:
gcloud compute networks create hub-vpc \
--subnet-mode custom \
--bgp-routing-mode=global
gcloud compute networks subnets create hub-subnet1 \
--network hub-vpc \
--range 10.1.0.0/24 \
--region us-central1
gcloud compute networks subnets create hub-subnet2 \
--network hub-vpc \
--range 10.2.0.0/24 \
--region us-east4
- 建立
workload-vpc網路和子網路:
gcloud compute networks create workload-vpc \
--subnet-mode custom \
--bgp-routing-mode=global
gcloud compute networks subnets create workload-subnet1 \
--network workload-vpc \
--range 192.168.235.0/24 \
--region us-central1
gcloud compute networks subnets create workload-subnet2 \
--network workload-vpc \
--range 192.168.236.0/24 \
--region us-east4
- 建立 Hub-VPC 防火牆規則,允許:
- SSH
- ESP、UDP/500、UDP/4500
- 內部 10.0.0.0/8 範圍 (涵蓋從 Cloud Router 到路由器設備的 BGP 工作階段所需的 TCP 通訊埠 179)
gcloud compute firewall-rules create hub-ssh \
--network hub-vpc \
--allow tcp:22
gcloud compute firewall-rules create hub-vpn \
--network hub-vpc \
--allow esp,udp:500,udp:4500 \
--target-tags router
gcloud compute firewall-rules create hub-internal \
--network hub-vpc \
--allow all \
--source-ranges 192.168.0.0/16
gcloud compute firewall-rules create hub-iap \
--network hub-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
- 建立 Workload-VPC 防火牆規則,允許:
- SSH
- 內部 192.168.0.0/16 範圍 (涵蓋從 Cloud Router 到路由器設備的 BGP 工作階段所需的 TCP 通訊埠 179)
gcloud compute firewall-rules create workload-ssh \
--network workload-vpc \
--allow tcp:22
gcloud compute firewall-rules create workload-internal \
--network workload-vpc \
--allow all \
--source-ranges 192.168.0.0/16
gcloud compute --project=$projectname firewall-rules create allow-from-site-1-2 --direction=INGRESS --priority=1000 --network=workload-vpc --action=ALLOW --rules=all --source-ranges=10.10.1.0/24,10.20.1.0/24
gcloud compute firewall-rules create workload-onprem \
--network hub-vpc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create workload-iap \
--network workload-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
- 在工作負載虛擬私有雲中啟用 Cloud NAT,建立 Cloud Router 和 NAT 閘道,允許 workload1-vm 下載套件
gcloud compute routers create cloud-router-usc-central-1-nat \
--network workload-vpc \
--region us-central1
gcloud compute routers nats create cloudnat-us-central1 \
--router=cloud-router-usc-central-1-nat \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges \
--region us-central1
- 建立
workload1-vmin "us-central1-a" inworkload-VPC,您將使用這個主機驗證網站與雲端的連線能力
gcloud compute instances create workload1-vm \
--project=$projectname \
--machine-type=e2-micro \
--image-family debian-10 \
--image-project debian-cloud \
--zone us-central1-a \
--private-network-ip 192.168.235.3 \
--no-address \
--subnet=workload-subnet1 \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart
echo 'Welcome to Workload VM1 !!' | tee /var/www/html/index.html
EOF"
4. 設定 SD-WAN 的內部部署設備

為 SDWAN (裝置) 建立地端 VM
在下一節中,我們將建立做為地端部署路由器的 site1-nva 和 site2-nva 路由器裝置。
可建立執行個體
建立名為 site1-nva 的 site1-router 設備
gcloud compute instances create site1-nva \
--zone=us-central1-a \
--machine-type=e2-medium \
--network-interface subnet=site1-subnet \
--network-interface subnet=s1-inside-subnet,no-address \
--create-disk=auto-delete=yes,boot=yes,device-name=flex-gcp-nva-1,image=projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20220901,mode=rw,size=20,type=projects/$projectname/zones/us-central1-a/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any \
--can-ip-forward
建立名為 site2-nva 的 site2-router 設備
gcloud compute instances create site2-nva \
--zone=us-east4-b \
--machine-type=e2-medium \
--network-interface subnet=site2-subnet \
--network-interface subnet=s2-inside-subnet,no-address \
--create-disk=auto-delete=yes,boot=yes,device-name=flex-gcp-nva-1,image=projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20220901,mode=rw,size=20,type=projects/$projectname/zones/us-east4-a/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any \
--can-ip-forward
5. 在 site1-nva 上安裝 flexiWAN
開啟與 site1-nva 的 SSH 連線,如果逾時請重試
gcloud compute ssh site1-nva --zone=us-central1-a
在 site1-nva 上安裝 flexiWAN
sudo su
sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y
準備 VM,以註冊 flexiWAN 控制層。
flexiWAN 安裝完成後,請執行 fwsystem_checker 指令,檢查系統設定。這個指令會檢查系統需求,並協助修正系統中的設定錯誤。
- 選取選項
2,即可快速完成設定,且不會發出聲音 - 然後使用 0 結束。
- 請勿關閉 Cloud Shell 視窗。
root@site-1-nva-1:/home/user# fwsystem_checker
<output snipped>
[0] - quit and use fixed parameters
1 - check system configuration
2 - configure system silently
3 - configure system interactively
4 - restore system checker settings to default
------------------------------------------------
Choose: 2
<output snipped>
[0] - quit and use fixed parameters
1 - check system configuration
2 - configure system silently
3 - configure system interactively
4 - restore system checker settings to default
------------------------------------------------
Choose: 0
Please wait..
Done.
=== system checker ended ====
請勿關閉工作階段,以便執行後續步驟
6. 向 SD-WAN 控制器註冊 site1-nva
如要完成 flexiWAN NVA 的佈建作業,請按照這些步驟操作,並透過 flexiManage 控制台管理 NVA。請務必先設定 flexiWAN 機構,再繼續操作。
登入 flexiManage 帳戶,使用安全權杖向 flexiManage 驗證新部署的 flexiWAN NVA。所有路由器裝置都可以重複使用同一個權杖。
選取「廣告空間」→「權杖」,建立權杖並選取「複製」

返回 Cloud Shell (site1-nva),然後執行下列步驟,將權杖貼到 /etc/flexiwan/agent/token.txt 目錄中:
nano /etc/flexiwan/agent/token.txt
#Paste the generated token obtain from flexiManage
#Exit session with CTRL+X and Select Y to save then enter

在 flexiManage 控制台上啟用網站路由器
登入 flexiManage 控制台,在控制器上啟用 site1-nva
在左側面板中依序選取「Inventory」→「Devices」,然後按一下「Unknown」裝置

輸入 site1-nva 的主機名稱,然後將撥號盤向右滑動,核准裝置。

選取「介面」分頁標籤
找出「已指派」欄,按一下「否」,然後將設定改為「是」

選取「防火牆」分頁,然後按一下「+」符號,新增輸入防火牆規則
選取要套用 SSH 規則的 WAN 介面,如下所示

按一下「更新裝置」
從 flexiWAN 控制器啟動 site1-nva。返回「Inventory」→「Devices」→「site1-nva」,然後選取「Start Device」。
狀態 - 正在同步

狀態 -「已同步」

警告指標會顯示在「疑難排解」→「通知」下方。查看完畢後,選取所有郵件,然後標示為已讀取

7. 在 site2-nva 上安裝 flexiWAN
開啟新分頁並建立 Cloud Shell 工作階段,更新 $variables 以協助實作 gcloud 設定
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname
開啟與 site2-nva 的 SSH 連線,如果連線逾時,請重試
gcloud compute ssh site2-nva --zone=us-east4-b
在 site2-nva 上安裝 flexiWAN
sudo su
sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y
準備 VM,以註冊 flexiWAN 控制層。
flexiWAN 安裝完成後,請執行 fwsystem_checker 指令,檢查系統設定。這個指令會檢查系統需求,並協助修正系統中的設定錯誤。
- 選取選項
2,即可快速完成設定,且不會發出聲音 - 然後使用 0 結束。
- 請勿關閉 Cloud Shell 視窗。
root@site2-nva:/home/user# fwsystem_checker
<output snipped>
[0] - quit and use fixed parameters
1 - check system configuration
2 - configure system silently
3 - configure system interactively
4 - restore system checker settings to default
------------------------------------------------
Choose: 2
<output snipped>
[0] - quit and use fixed parameters
1 - check system configuration
2 - configure system silently
3 - configure system interactively
4 - restore system checker settings to default
------------------------------------------------
Choose: 0
Please wait..
Done.
=== system checker ended ====
8. 向 SD-WAN 控制器註冊 site2-nva
如要完成 flexiWAN NVA 的佈建作業,請按照這些步驟操作,並透過 flexiManage 控制台管理 NVA。請務必先設定 flexiWAN 機構,再繼續操作。
登入 flexiManage 帳戶,使用安全權杖向 flexiManage 驗證新部署的 flexiWAN NVA。所有路由器裝置都可以重複使用同一個權杖。
依序選取「廣告空間」→「權杖」,建立權杖並選取「複製」

返回 Cloud Shell (site2-nva),然後執行下列步驟,將權杖貼到 /etc/flexiwan/agent/token.txt 目錄:
nano /etc/flexiwan/agent/token.txt
#Paste the generated token obtain from flexiManage
#Exit session with CTRL+X and Select Y to save then enter

從 flexiManage 控制台啟用 Site Router
登入 flexiManage 控制台,在控制器上啟用 site2-nva
在左側面板中依序選取「Inventory」→「Devices」,然後按一下「Unknown」裝置

輸入 site2-nva 的主機名稱,然後將撥號盤向右滑動,核准裝置。

選取「介面」分頁標籤
找出「已指派」欄,按一下「否」,然後將設定改為「是」

選取「防火牆」分頁標籤,然後點選「+」符號,新增輸入防火牆規則。選取要套用 SSH 規則的 WAN 介面,如下所示

按一下「更新裝置」
從 flexiWAN 控制器啟動 site2-nva。返回「Inventory」→「Devices」→「site2-nva」選取「Start Device」
狀態 -「正在同步」

狀態 -「已同步」

警告指標會顯示在「疑難排解」→「通知」下方。查看完畢後,選取所有郵件,然後標示為已讀取

9. 設定 Hub SDWAN 設備
在下一節中,您將建立並向 flexiWAN 控制器註冊 Hub 路由器 (hub-r1 和 hub-r2),就像先前對網站路由器執行的操作一樣。
開啟新分頁並建立 Cloud Shell 工作階段,更新 $variables 以協助實作 gcloud 設定
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname
建立 Hub NVA 執行個體
建立 hub-r1 設備:
gcloud compute instances create hub-r1 \
--zone=us-central1-a \
--machine-type=e2-medium \
--network-interface subnet=hub-subnet1 \
--network-interface subnet=workload-subnet1,no-address \
--can-ip-forward \
--create-disk=auto-delete=yes,boot=yes,device-name=flex-gcp-nva-1,image=projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20220901,mode=rw,size=20,type=projects/$projectname/zones/us-central1-a/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any
建立 hub-r2 設備:
gcloud compute instances create hub-r2 \
--zone=us-east4-b \
--machine-type=e2-medium \
--network-interface subnet=hub-subnet2 \
--network-interface subnet=workload-subnet2,no-address \
--can-ip-forward \
--create-disk=auto-delete=yes,boot=yes,device-name=flex-gcp-nva-1,image=projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20220901,mode=rw,size=20,type=projects/$projectname/zones/us-east4-a/diskTypes/pd-balanced \
--no-shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring \
--reservation-affinity=any
10. 在 Hub 執行個體上安裝 flexiWAN,適用於 hub-r1
開啟與 hub-r1 的 SSH 連線
gcloud compute ssh hub-r1 --zone=us-central1-a
在兩個 hub-r1 上安裝 flexiWAN 代理程式
sudo su
sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y
準備 hub-r1 VM,以註冊 flexiWAN。
flexiWAN 安裝完成後,請執行 fwsystem_checker 指令,檢查系統設定。這個指令會檢查系統需求,並協助修正系統中的設定錯誤。
root@hub-r1:/home/user# fwsystem_checker
- 選取選項
2,即可快速完成設定,且不會發出聲音 - 然後使用 0 結束。
- 請勿關閉 Cloud Shell 視窗。
11. 在 flexiManage 控制器上註冊 hub-r1 VM
登入 flexiManage 帳戶,使用安全權杖向 flexiManage 驗證新部署的 flexiWAN NVA。
- 依序選取「廣告空間」→「權杖」,然後複製權杖
返回 Cloud Shell (hub-r1),然後執行下列步驟,將權杖貼到 /etc/flexiwan/agent/token.txt 目錄中:
nano /etc/flexiwan/agent/token.txt
#Paste the generated token obtain from flexiManage
#Exit session with CTRL+X and Select Y to save then enter
12. 在 Hub 執行個體上安裝 flexiWAN,適用於 hub-r2
開啟與 hub-r2 的 SSH 連線
gcloud compute ssh hub-r2 --zone=us-east4-b
在兩個 hub-r2 上安裝 flexiWAN 代理程式
sudo su
sudo curl -sL https://deb.flexiwan.com/setup | sudo bash -
apt install flexiwan-router -y
準備 hub-r2 VM,以註冊 flexiWAN。
flexiWAN 安裝完成後,請執行 fwsystem_checker 指令,檢查系統設定。這個指令會檢查系統需求,並協助修正系統中的設定錯誤。
root@hub-r2:/home/user# fwsystem_checker
- 選取選項
2,即可快速完成設定,且不會發出聲音 - 然後使用 0 結束。
- 請勿關閉 Cloud Shell 視窗。
13. 在 flexiManage 控制器上註冊 hub-r2 VM
登入 flexiManage 帳戶,使用安全權杖向 flexiManage 驗證新部署的 flexiWAN NVA。
- 依序選取「廣告空間」→「權杖」,然後複製權杖
返回 Cloud Shell (hub-r2),然後執行下列步驟,將權杖貼到 /etc/flexiwan/agent/token.txt 目錄中:
nano /etc/flexiwan/agent/token.txt
#Paste the generated token obtain from flexiManage
#Exit session with CTRL+X and Select Y to save then enter
在 flexiManage 控制台上啟用 Hub 路由器 hub-r1
登入 flexiManage 控制台
- 依序前往「廣告空間」→「裝置」
- 找出並記下 hub-r1 和 hub-r2 的主機名稱,兩者皆為「unknown」

選取主機名稱為「hub-r1」的不明裝置
- 輸入 hub-r1 的主機名稱
- 核准裝置:將撥號盤向右滑動。
選取「介面」分頁標籤
- 找出「已指派」欄
- 在介面列旁,按一下「否」將設定變更為「是」
選取「防火牆」分頁標籤
- 按一下「+」新增連入防火牆規則
- 選取要沿用規則的 WAN 介面
- 允許使用 TCP 通訊協定的 SSH 通訊埠 22
- 按一下「更新裝置」
從 flexiWAN 控制器啟動 SD-WAN 的 hub-r1 設備
- 返回「Inventory」→「裝置」→「hub-r1」
選取「啟動裝置」。
- 等待同步作業完成,並記下「running」狀態
在 flexiManage 控制台上啟用 Hub 路由器 hub-r2
選取主機名稱為「hub-r2」的不明裝置
- 輸入 hub-r2 的主機名稱
- 核准裝置:將撥號盤向右滑動。
選取「介面」分頁標籤
- 找出「已指派」欄
- 在介面列旁,按一下「否」,將設定變更為「是」。
選取「防火牆」分頁標籤
- 按一下「+」新增連入防火牆規則
- 選取要沿用規則的 WAN 介面
- 允許使用 TCP 通訊協定的 SSH 通訊埠 22
- 按一下「新增規則」
- 按一下「更新裝置」
從 flexiWAN 控制器啟動 SD-WAN 的 hub-r2 設備
- 返回 Inventory → Devices → hub-r2,選取 ‘Start Device'
- 等待同步作業完成,並記下「running」狀態
14. GCP Hub 上的 Network Connectivity Center

啟用 API 服務
如果尚未啟用,請啟用 Network Connectivity API:
gcloud services enable networkconnectivity.googleapis.com
建立 NCC 中樞
gcloud network-connectivity hubs create ncc-hub
Create request issued for: [ncc-hub]
Waiting for operation [projects/user-3p-dev/locations/global/operations/operation-1668793629598-5edc24b7ee3ce-dd4c765b-5ca79556] to complete...done.
Created hub [ncc-hub]
將兩個路由器裝置都設為 NCC 輪輻
找出 hub-r1 和 hub-r2 的 URI 和 IP 位址,並記下輸出內容。您會在下一個步驟中使用。
請務必記下 hub-r1 和 hub-r2 執行個體的 IP 位址 (192.168.x.x)。
gcloud compute instances describe hub-r1 \
--zone=us-central1-a \
--format="value(selfLink.scope(projects))"
gcloud compute instances describe hub-r1 --zone=us-central1-a | grep "networkIP"
gcloud compute instances describe hub-r2 \
--zone=us-east4-b \
--format="value(selfLink.scope(projects))"
gcloud compute instances describe hub-r2 --zone=us-east4-b | grep "networkIP"
將 hub-r1 的 VNIC networkIP (192.168.x.x) 新增為輪輻,並啟用站對站資料移轉
gcloud network-connectivity spokes linked-router-appliances create s2s-wrk-cr1 \
--hub=ncc-hub \
--router-appliance=instance="https://www.googleapis.com/compute/projects/$projectname/zones/us-central1-a/instances/hub-r1",ip=192.168.235.4 \
--region=us-central1 \
--site-to-site-data-transfer
將 hub-r2 的 VNIC networkIP (192.168.x.x) 新增為輪輻,並啟用網站對網站資料移轉
gcloud network-connectivity spokes linked-router-appliances create s2s-wrk-cr2 \
--hub=ncc-hub \
--router-appliance=instance=/projects/$projectname/zones/us-east4-b/instances/hub-r2,ip=192.168.236.101 \
--region=us-east4 \
--site-to-site-data-transfer
設定 Cloud Router,與 Hub-R1 建立 BGP
在下一個步驟中,建立 Cloud Router 並通告工作負載 VPC 子網路 192.168.235.0/24
在 us-central1 中建立 Cloud Router,與 hub-r1 進行 BGP 通訊
gcloud compute routers create wrk-cr1 \
--region=us-central1 \
--network=workload-vpc \
--asn=65002 \
--set-advertisement-groups=all_subnets \
--advertisement-mode=custom
將路由器設備設定為 NCC 輪輻,即可讓 Cloud Router 在虛擬介面上協商 BGP。
在 Cloud Router 上建立兩個介面,與 hub-r1 交換 BGP 訊息。
系統會從工作負載子網路選取 IP 位址,並視需要變更。
gcloud compute routers add-interface wrk-cr1 \
--region=us-central1 \
--subnetwork=workload-subnet1 \
--interface-name=int0 \
--ip-address=192.168.235.101
gcloud compute routers add-interface wrk-cr1 \
--region=us-central1 \
--subnetwork=workload-subnet1 \
--interface-name=int1 \
--ip-address=192.168.235.102 \
--redundant-interface=int0
設定 Cloud Router 介面,與 hub-r1 的 vNIC-1 建立 BGP,並使用 hub-r1 networkIP 的 IP 位址更新 peer-ip-address。請注意,int0 和 int1 使用相同的 IP 位址。
gcloud compute routers add-bgp-peer wrk-cr1 \
--peer-name=hub-cr1-bgp-peer-0 \
--interface=int0 \
--peer-ip-address=192.168.235.4 \
--peer-asn=64111 \
--instance=hub-r1 \
--instance-zone=us-central1-a \
--region=us-central1
gcloud compute routers add-bgp-peer wrk-cr1 \
--peer-name=hub-cr1-bgp-peer-1 \
--interface=int1 \
--peer-ip-address=192.168.235.4 \
--peer-asn=64111 \
--instance=hub-r1 \
--instance-zone=us-central1-a \
--region=us-central1
驗證 BGP 狀態。在程式碼研究室的此階段,由於網路路由器裝置尚未設定 BGP,因此 BGP 處於「連線狀態」。
gcloud compute routers get-status wrk-cr1 --region=us-central1
設定 Workload-cr2,與 Hub-R2 建立 BGP
在下一個步驟中,建立 Cloud Router 並通告工作負載虛擬私有雲子網路 192.168.236.0/24
在 us-east4 中建立 Cloud Router,與 hub-r2 進行 BGP 通訊
gcloud compute routers create wrk-cr2 \
--region=us-east4 \
--network=workload-vpc \
--asn=65002 \
--set-advertisement-groups=all_subnets \
--advertisement-mode=custom
在 Cloud Router 上建立一對介面,與 hub-r2 交換 BGP 訊息,IP 位址是從工作負載子網路選取,如有需要可以變更。
gcloud compute routers add-interface wrk-cr2 \
--region=us-east4 \
--subnetwork=workload-subnet2 \
--interface-name=int0 \
--ip-address=192.168.236.5
gcloud compute routers add-interface wrk-cr2 \
--region=us-east4 \
--subnetwork=workload-subnet2 \
--interface-name=int1 \
--ip-address=192.168.236.6 \
--redundant-interface=int0
設定 Cloud Router 介面,與 hub-r2 的 vNIC-1 建立 BGP,並使用 hub-r1 的 IP 位址更新 peer-ip-address networkIP。請注意,int0 和 int1 使用相同的 IP 位址。
gcloud compute routers add-bgp-peer wrk-cr2 \
--peer-name=hub-cr2-bgp-peer-0 \
--interface=int0 \
--peer-ip-address=192.168.236.101 \
--peer-asn=64112 \
--instance=hub-r2 \
--instance-zone=us-east4-b \
--region=us-east4
gcloud compute routers add-bgp-peer wrk-cr2 \
--peer-name=hub-cr2-bgp-peer-1 \
--interface=int1 \
--peer-ip-address=192.168.236.101 \
--peer-asn=64112 \
--instance=hub-r2 \
--instance-zone=us-east4-b \
--region=us-east4
驗證 BGP 狀態。在程式碼研究室的此階段,由於網路路由器裝置尚未設定 BGP,因此 BGP 處於「連線狀態」。
gcloud compute routers get-status wrk-cr2 --region=us-east4
15. 設定 Hub 路由器設備的 BGP
為 BGP 設定 hub-r1
請務必登入 flexiManage 控制台
依序前往「廣告空間」→「裝置」→「hub-r1」,然後選取「HostName:hub-r1」的裝置。
- 按一下「轉送」分頁標籤
- 按一下「BGP Configuration」(BGP 設定)
- 停用「重新發布 OSPF 路由」
- 使用下列參數設定 hub-r1 的 BGP,然後按一下「儲存」

選取「介面」分頁標籤,找出 LAN 介面,然後找到「路由」欄
- 按一下「無」開啟選單,選取 BGP 做為轉送通訊協定

- 按一下頁面頂端的「更新裝置」
為 BGP 設定 hub-r2
請務必登入 flexiManage 控制台
依序前往「廣告空間」→「裝置」→「hub-r2」,選取「HostName:hub-r2」的裝置
- 按一下「轉送」分頁標籤
- 按一下「BGP Configuration」(BGP 設定)
- 停用「重新發布 OSPF 路由」
- 使用下列參數設定 hub-r2 的 BGP,然後按一下「儲存」

選取「介面」分頁標籤,找出 LAN 介面,然後找到「路由」欄
- 按一下「無」,開啟下拉式選單,選取 BGP 做為路由通訊協定

- 按一下頁面頂端的「更新裝置」
選取「routing」分頁標籤
- 確認 hub-r2 已從 wrk-cr2 取得 BGP 路由

16. 路由器設備之間的 BGP 路由交換
為遠端網站建立本機 ASN
為 site1-nva 和 site2-nva 設定本機 BGP ASN,設定完成後,我們會在遠端網站和中樞路由器之間建立 IPSEC 通道。
選取「HostName:site1-nva」的裝置
- 按一下「轉送」分頁標籤
- 按一下「BGP Configuration」(BGP 設定)
- 停用「重新發布 OSPF 路由」
- 已啟用 BGP
- 本機 ASN 7269 → 儲存
- 更新裝置
- 「介面」分頁 →「LAN」→「路由」→「BGP」
- 更新裝置
選取「HostName:site2-nva」的裝置
- 按一下「轉送」分頁標籤
- 按一下「BGP Configuration」(BGP 設定)
- 停用「重新發布 OSPF 路由」
- 已啟用 BGP
- 本機 ASN 7270 → 儲存
- 更新裝置
- 「介面」分頁 →「LAN」→「路由」→「BGP」
- 更新裝置
在網站和中樞裝置之間設定 VPN 通道
請務必登入 flexiManage 控制台
- 依序前往「廣告空間」→「裝置」
- 選取「site1-nva」和「hub-r1」主機名稱旁的方塊,在這對 NVA 之間建立 VPN 通道
- 按一下「動作」→「建立通道」,然後設定下列項目:

- 選取「建立通道」
- 從 site1-nva 和 ub-r1 移除勾號
選取適當的參數,重複上述步驟,在 site2-nva 和 hub-r2 之間建立通道

確認每對 NVA 之間都已建立通道。
- 在左側面板中,依序選取「目錄」和「通道」,然後找出狀態欄。

確認「site1-nva」已瞭解子網路 192.168.235.0/24 和 192.168.236.0/24 的路徑
- 依序選取「Inventory」→「Devices」→「site1-nva」,然後按一下「Routing」分頁標籤。
在下方的輸出範例中,flexiWAN 會使用主機 IP 位址 10.100.0.6 自動建立通道 
17. 驗證資料路徑連線
驗證地端部署環境至雲端的連線能力
請參閱圖表,確認 s1-vm 和 workload1-vm 之間的資料路徑

為網站到雲端設定虛擬私有雲靜態路由
地端 Site1-VPC 和 Site2-VPC 會模擬地端資料中心網路。
Site-1-nva 和 site-2-nva 路由器設備都會使用 VPN 連線來連上中樞網路。
如果是「網站到雲端」的用途,請建立前往 192.168.0.0/16 目的地的靜態路由,並使用路由器設備做為下一個躍點,連線至 GCP 雲端網路中的網路。
在 s1-inside-vpc 上,為雲端目的地 (192.168.0.0/16) 建立靜態路由:
gcloud compute routes create site1-subnet-route \
--network=s1-inside-vpc \
--destination-range=192.168.0.0/16 \
--next-hop-instance=site1-nva \
--next-hop-instance-zone=us-central1-a
在 s2-inside-vpc 上,為雲端目的地 (192.168.0.0/16) 建立靜態路由:
gcloud compute routes create site2-subnet-route \
--network=s2-inside-vpc \
--destination-range=192.168.0.0/16 \
--next-hop-instance=site2-nva \
--next-hop-instance-zone=us-east4-b
在 Cloud Shell 中,查詢 「workload1-vm」的 IP 位址。您需要這個項目,才能測試「s1-vm」的連線能力。
gcloud compute instances describe workload1-vm --zone=us-central1-a | grep "networkIP"
開啟與 s1-vm 的 SSH 連線,如果連線逾時,請重試
gcloud compute ssh s1-vm --zone=us-central1-a
透過 SSH 連線至「s1-vm」,並使用「curl」指令,與 workload1-VM IP 位址建立 TCP 工作階段。
s1-vm:~$ curl 192.168.235.3 -vv * Trying 192.168.235.3:80... * Connected to 192.168.235.3 (192.168.235.3) port 80 (#0) > GET / HTTP/1.1 > Host: 192.168.235.3 > User-Agent: curl/7.74.0 > Accept: */* > * Mark bundle as not supporting multiuse < HTTP/1.1 200 OK < Date: Wed, 07 Dec 2022 15:12:08 GMT < Server: Apache/2.4.54 (Debian) < Last-Modified: Tue, 06 Dec 2022 00:57:46 GMT < ETag: "1f-5ef1e4acfa1d9" < Accept-Ranges: bytes < Content-Length: 31 < Content-Type: text/html < Page served from: workload1-vm * Connection #0 to host 192.168.235.3 left intact
驗證站對站連線
請參閱圖表,確認 s1-vm 和 s2-vm 之間的資料路徑

為 Site-to-Site 設定虛擬私有雲靜態路由
如要使用 GCP 的全球網路,在「網站 1」和「網站 2」之間轉送站對站流量,請建立靜態路由,將目的地設為遠端網站子網路,並將地端路由器設備設為下一個躍點。
在後續步驟中,工作負載 VPC 會透過 NCC 進行設定,以支援站對站的資料移轉。
在 s1-inside-vpc 上,建立可連線至 site2-subnet (10.20.1.0/24) 的靜態路徑:
gcloud compute routes create site1-sn1-route \
--network=s1-inside-vpc \
--destination-range=10.20.1.0/24 \
--next-hop-instance=site1-nva \
--next-hop-instance-zone=us-central1-a
在 s2-inside-vpc 上,建立靜態路徑來連線至 site1-subnet (10.10.1.0/24):
gcloud compute routes create site2-sn1-route \
--network=s2-inside-vpc \
--destination-range=10.10.1.0/24 \
--next-hop-instance=site2-nva \
--next-hop-instance-zone=us-east4-b
在 Cloud Shell 中,查詢「s2-vm」的 IP 位址。您需要這個 IP 位址,才能從 S1-vm 測試連線。
gcloud compute instances describe s2-vm --zone=us-east4-b | grep networkIP
開啟與 s1-vm 的 SSH 連線,如果連線逾時,請重試
gcloud compute ssh s1-vm --zone=us-central1-a
透過 SSH 連線至「s1-vm」,並「ping」連線至「s2-vm」的 IP 位址。
s1-vm:~$ ping 10.20.1.3
PING 10.20.1.3 (10.20.1.3) 56(84) bytes of data.
64 bytes from 10.20.1.3: icmp_seq=1 ttl=60 time=99.1 ms
64 bytes from 10.20.1.3: icmp_seq=2 ttl=60 time=94.3 ms
64 bytes from 10.20.1.3: icmp_seq=3 ttl=60 time=92.4 ms
64 bytes from 10.20.1.3: icmp_seq=4 ttl=60 time=90.9 ms
64 bytes from 10.20.1.3: icmp_seq=5 ttl=60 time=89.7 ms
18. 清除
登入 Cloud Shell,並刪除中心和分支機構網站網路中的 VM 執行個體
#on prem instances
gcloud compute instances delete s1-vm --zone=us-central1-a --quiet
gcloud compute instances delete s2-vm --zone=us-east4-b --quiet
#delete on prem firewall rules
gcloud compute firewall-rules delete site1-ssh --quiet
gcloud compute firewall-rules delete site1-internal --quiet
gcloud compute firewall-rules delete site1-cloud --quiet
gcloud compute firewall-rules delete site1-vpn --quiet
gcloud compute firewall-rules delete site1-iap --quiet
gcloud compute firewall-rules delete site2-ssh --quiet
gcloud compute firewall-rules delete site2-internal --quiet
gcloud compute firewall-rules delete site2-cloud --quiet
gcloud compute firewall-rules delete site2-vpn --quiet
gcloud compute firewall-rules delete site2-iap --quiet
gcloud compute firewall-rules delete allow-from-site-1-2 --quiet
gcloud compute firewall-rules delete s2-inside-cloud s2-inside-internal s2-inside-ssh --quiet
gcloud compute firewall-rules delete s1-inside-cloud s1-inside-iap s1-inside-internal s1-inside-ssh s2-inside-cloud s2-inside-iap s2-inside-internal s2-inside-ssh --quiet
#delete ncc spokes
gcloud network-connectivity spokes delete s2s-wrk-cr1 --region us-central1 --quiet
gcloud network-connectivity spokes delete s2s-wrk-cr2 --region us-east4 --quiet
#delete ncc hub
gcloud network-connectivity hubs delete ncc-hub --quiet
#delete the cloud router
gcloud compute routers delete wrk-cr1 --region=us-central1 --quiet
gcloud compute routers delete wrk-cr2 --region=us-east4 --quiet
#delete the instances
gcloud compute instances delete hub-r1 --zone=us-central1-a --quiet
gcloud compute instances delete hub-r2 --zone=us-east4-b --quiet
gcloud compute instances delete workload1-vm --zone=us-central1-a --quiet
gcloud compute instances delete site1-nva --zone=us-central1-a --quiet
gcloud compute instances delete site2-nva --zone=us-east4-b --quiet
#delete on prem subnets
gcloud compute networks subnets delete hub-subnet1 s1-inside-subnet site1-subnet workload-subnet1 --region=us-central1 --quiet
gcloud compute networks subnets delete hub-subnet2 s2-inside-subnet site2-subnet workload-subnet2 --region=us-east4 --quiet
#delete hub firewall rule
gcloud compute firewall-rules delete hub-ssh --quiet
gcloud compute firewall-rules delete hub-vpn --quiet
gcloud compute firewall-rules delete hub-internal --quiet
gcloud compute firewall-rules delete hub-iap --quiet
gcloud compute firewall-rules delete workload-ssh --quiet
gcloud compute firewall-rules delete workload-internal --quiet
gcloud compute firewall-rules delete workload-onprem --quiet
gcloud compute firewall-rules delete workload-iap --quiet
#delete on vpcs
gcloud compute networks delete hub-vpc s1-inside-vpc s2-inside-vpc site2-vpc workload-vpc --quiet
19. 恭喜!
您已完成 Network Connectivity Center 實驗室!
涵蓋範圍
- 為 NCC 站點至雲端連線設定軟體定義的 WAN 整合
- 為 NCC 站對站連線設定軟體定義 WAN 整合功能
後續步驟
©Google LLC 或其關係企業。版權所有。請勿散布。




