研究室:採用 FlexiWAN SD-WAN 設備的 NCC 站點

1. 簡介

總覽

在本研究室中,您將探索 Network Connectivity Center 的部分功能。

Network Connectivity Center (NCC) 是 Google Cloud 中網路連線管理的軸輻式控制層模型。中樞資源提供集中式連線管理模型,可用於連結輪輻。NCC 目前支援以輪輻的形式使用下列網路資源:

  • VLAN 連結
  • 路由器設備
  • 高可用性 VPN

程式碼研究室需要使用 flexiWAN SaaS SD-WAN 解決方案來簡化 WAN 部署與管理作業。flexWAN 是開放原始碼的 SD-WAN 和 SASE 解決方案。

建構項目

在本程式碼研究室中,您將建構中樞和輪輻的 SD-WAN 拓撲來模擬遠端分支網站,以便從 Google 的骨幹網路週遊據點到雲端和站台與站台通訊。

  1. 您將部署針對「flexiWAN」設定的一組 GCE VM中樞虛擬私有雲中的 SD-WAN 代理程式,代表傳送至 GCP 的傳入和傳出流量標頭。
  2. 部署兩個遠端 FlexiWAN SD-WAN 路由器,代表兩個不同的分支站點虛擬私有雲
  3. 進行資料路徑測試時,您會設定三個 GCE VM,在託管於 GCP 的地端部署用戶端和伺服器中模擬

84e31c667a487f7a.png

課程內容

  • 使用 NCC 以開放原始碼的軟體定義 WAN 解決方案建立遠端分公司辦公室的互連網路
  • 具備開放原始碼軟體定義的 WAN 解決方案相關經驗

軟硬體需求

  • 瞭解 GCP 虛擬私有雲網路
  • Cloud Router 和 BGP 轉送的知識
  • 本程式碼研究室需要 6 個虛擬私有雲。請檢查「配額:網路」和「要求新增網路」(如有需要),下方螢幕截圖如下:

6bc606cb34bce7e8.png

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

可在中樞中新增及管理輪輻。要在共用虛擬私有雲中使用,代管專案擁有 Hub,但其他專案中的其他管理員則可將輪輻新增至中樞。

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer

允許網路使用者查看中樞和輪輻的不同屬性。

networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList

3. 設定網路研究室環境

總覽

在本節中,我們會部署虛擬私有雲網路和防火牆規則。

377d97bf3066f259.png

模擬內部部署的分行網站網路

這個虛擬私有雲網路含有地端部署 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-vms2-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 Cloud 網路環境

如要啟用透過 hub-vpc 網路和輪輻的跨區域站點流量,您必須在 hub-vpc 網路中啟用全域轉送。詳情請參閱 NCC 路徑交換

  1. 建立 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
  1. 建立 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
  1. 建立中樞虛擬私有雲防火牆規則來允許下列項目:
  • SSH
  • ESP、UDP/500、UDP/4500
  • 內部 10.0.0.0/8 範圍 (涵蓋從雲端路由器到路由器設備的 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
  1. 建立工作負載-虛擬私有雲防火牆規則,藉此進行下列操作:
  • SSH
  • 內部 192.168.0.0/16 範圍 (涵蓋從雲端路由器到路由器設備的 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
  1. 在 Workload-VPC 中,啟用 Cloud NAT,允許 Workload1-vm 透過建立 Cloud Router 和 NAT 閘道下載套件
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
  1. 建立「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 的 Prem 裝置

ec754b89e375f3cc.png

建立 SDWAN 適用的地端部署 VM (應用方式)

在下一節中,我們會建立 site1-nva 和 site2-nva 路由器設備做為內部部署路由器。

可建立執行個體

建立名為 site1-nvasite1-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-nvasite2-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 準備 FliWAN 控制層註冊作業。

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 Console 管理。請務必先為 FlexiWAN 機構設定完畢,再進行後續步驟。

登入 flexiManage 帳戶,使用 flexiManage 使用安全權杖,驗證新部署的 flexiWAN NVA。可在所有路由器設備中重複使用相同的權杖。

依序選取「Inventory」→「Tokens」建立權杖,然後選取複製

12c173b589d220ee.png

返回 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

22e1cf5bad3d3086.png

在彈性管理主控台中啟用 Site Router

登入 Flex 管理主控台,在控制器上啟用 site1-nva

在左側面板中依序點選「選取廣告空間」→「裝置」,然後按一下「不明」裝置

f7719c28f78e907a.png

輸入 site1-nva 的主機名稱,然後將滑桿向右滑動,即可核准裝置。

9a6c6c45e1cad732.png

選取 [Interfaces] (介面) 分頁標籤

尋找「已指派」資料欄,然後按一下「No」。將設定變更為 [是]

a8772059968af13e.png

選取「防火牆」分頁,然後按一下「+」符號,新增「內送防火牆」規則

選取 WAN 介面以套用下方所述的 SSH 規則

df03b8a6c817ccd2.png

按一下「更新裝置」

96b9feb77b8517cd.png

從 flexiWAN 控制器啟動 site1-nva。返回「廣告空間」→「裝置」→「site1-nva」,然後選取「啟動裝置」

708215cf91ffc09.png

狀態 - 同步處理中

918d72eeacc386fa.png

狀態 - 已同步處理

5135096dbff49819.png

您可以在「疑難排解」→「通知」中查看警告指標。查看完畢後,選取全部並標示為已讀

9e79db3572f91925.png

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 準備 FliWAN 控制層註冊作業。

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 Console 管理。請務必先為 FlexiWAN 機構設定完畢,再進行後續步驟。

登入 flexiManage 帳戶,使用 flexiManage 使用安全權杖,驗證新部署的 flexiWAN NVA。可在所有路由器設備中重複使用相同的權杖。

選取「廣告空間」→「符記」,建立符記並選取「複製」

12c173b589d220ee.png

返回 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

22e1cf5bad3d3086.png

透過彈性管理主控台啟用 Site Router

登入 Flex 管理主控台,在控制器上啟用 site2-nva

在左側面板中依序點選「選取廣告空間」→「裝置」,然後按一下「不明」裝置

c98696cf67043ec2.png

輸入 site2-nva 的主機名稱,然後將滑桿向右滑動,即可核准裝置。

de418da3f581e0bd.png

選取 [Interfaces] (介面) 分頁標籤

尋找「已指派」資料欄,然後按一下「No」。將設定變更為 [是]

eee6a98dba7b2a04.png

選取「防火牆」分頁,然後按一下「+」符號,新增「傳入防火牆」規則。選取 WAN 介面以套用下方所述的 SSH 規則

df03b8a6c817ccd2.png

按一下「更新裝置」

96b9feb77b8517cd.png

從 flexiWAN 控制器啟動 site2-nva。返回「廣告空間」→「裝置」→「site2-nva」,然後選取「啟動裝置」

c80291bb430dce7d.png

Satus - 同步中

da9c08ebfbd1265e.png

狀態 - 已同步處理

5135096dbff49819.png

您可以在「疑難排解」→「通知」中查看警告指標。查看完畢後,選取全部並標示為已讀

2c21322b87d848b.png

9. 設定中樞 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

建立中樞 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-r1 的 Hub 執行個體上安裝 flexiWAN

開啟連至 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。

  • 依序選取「Inventory」→「Tokens」並複製權杖

返回 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-r2 的 Hub 執行個體上安裝 flexiWAN

開啟與 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。

  • 依序選取「Inventory」→「Tokens」並複製權杖

返回 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

在 Flex Management Console 中啟用 Hub 路由器 hub-r1

登入彈性管理主控台

  • 依序前往「廣告空間」→「裝置」
  • 尋找並記下 hub-r1hub-r2 的主機名稱為 "unknown

1a88ffa4409ad3c0.png

輸入主機名稱為 hub-r1 的不明裝置。

  • 輸入 hub-r1 的主機名稱
  • 核准裝置,將旋鈕向右滑動。

選取「Interfaces」分頁標籤

  • 找出「已指派」
  • 按一下介面列旁邊的「否」,將設定變更為「是」

選取「防火牆」分頁標籤

  • 按一下「+」新增至傳入防火牆規則
  • 選取要沿用規則的 WAN 介面
  • 允許採用 TCP 通訊協定的 SSH 通訊埠 22
  • 按一下「更新裝置」

從 flexiWAN 控制器啟動 SD-WAN 的 hub-r1 設備

  • 返回「Inventory → Devices」→ hub-r1

選取「Start Device」

  • 等待同步處理完成,並記下「執行中」狀態

在 Flex Management Console 中啟用 Hub 路由器 hub-r2

輸入主機名稱為 hub-r2 的不明裝置。

  • 輸入 hub-r2 的主機名稱
  • 核准裝置,將撥盤向右滑動。

選取「介面」分頁標籤

  • 找出「已指派」
  • 按一下介面列旁邊的「否」,將設定變更為「是」

選取「防火牆」分頁

  • 按一下「+」新增至傳入防火牆規則
  • 選取要沿用規則的 WAN 介面
  • 允許使用 TCP 通訊協定的 SSH 通訊埠 22
  • 按一下「新增規則」
  • 按一下「更新裝置」

從 flexiWAN 控制器啟動 SD-WAN 的 hub-r2 設備

  • 返回「Inventory → Devices」→ hub-r2,然後選取「Start Device」
  • 等待同步處理完成,並記下「執行中」狀態

14. GCP Hub 上的 Network Connectivity Center

802fe0ef1e98c563.png

啟用 API 服務

啟用網路連線 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 並宣告工作負載虛擬私有雲子網路 192.168.235.0/24

在 us-central1 中建立 Cloud Router 路由器,以便與 hub-r1 進行通訊

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。

在雲端路由器上建立兩個介面,用於透過 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,並且將 peer-ip 位址更新為 hub-r1 networkIP 的 IP 位址。請注意,int0 和int1。

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 設定網路路由器設備

gcloud compute routers get-status wrk-cr1 --region=us-central1

設定 Workload-cr2,透過 Hub-R2 建立 BGP

在下一個步驟中,請建立 Cloud Router 並宣告工作負載虛擬私有雲子網路 192.168.236.0/24

在 us-east4 中建立要與 hub-r2 通訊的 Cloud Router 路由器

gcloud compute routers create wrk-cr2 \
--region=us-east4 \
--network=workload-vpc \
--asn=65002 \
--set-advertisement-groups=all_subnets \
--advertisement-mode=custom

在雲端路由器上建立一對介面,用於透過 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,並且將 peer-ip 位址更新為 hub-r1 networkIP 的 IP 位址。請注意,int0 和int1。

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 設定網路路由器設備

gcloud compute routers get-status wrk-cr2 --region=us-east4

15. 設定 BGP 的 Hub 路由器設備

設定 BGP 的 hub-r1

務必登入 FlexiManage Console

依序前往「Inventory」→「Devices」→「hub-r1」,然後選取含有「HostName:hub-r1」的裝置

  • 按一下「轉送」分頁標籤
  • 按一下「BGP Configuration」
  • 停用「ReDistribution OSPF Routes」
  • 使用這些參數設定 BGP 的 hub-r1,然後按一下「Save」

8d470056f620717f.png

選取 [Interfaces] (介面)分頁標籤,找到 LAN 介面,然後找到「轉送」欄

  • 按一下「無」開啟選單,選取 BGP 做為轉送通訊協定。

82310aab05e9e414.png

  • 按一下頁面頂端的「更新裝置」

設定 BGP 的 hub-r2

務必登入 FlexiManage Console

依序前往「Inventory」→「Device」→「hub-r2」,選取含有「HostName:hub-r2」的裝置

  • 按一下「轉送」分頁標籤
  • 按一下「BGP Configuration」
  • 停用「ReDistribution OSPF Routes」
  • 使用這些參數為 BGP 設定 hub-r2,然後按一下「儲存」

8ecb14e2c046012e.png

選取 [Interfaces] (介面)分頁標籤,找到 LAN 介面,然後找到「轉送」欄

  • 按一下「無」即可開啟下拉式選單,選取 BGP 做為轉送通訊協定

41a381f81f2b500e.png

  • 按一下頁面頂端的「更新裝置」

選取「轉送」Tab 鍵

  • 確認 hub-r2 已從 wrk-cr2 取得 BGP 路徑

ddf3e811b193ec10.png

16. 路由器設備之間的 BGP 路徑交換

建立遠端站點的本機 ASN

為 site1-nva 和 site2-nva 設定本機 BGP ASN,一旦設定完成,我們就會在遠端站台和中樞路由器之間建立 IPSEC 通道。

選取含有 HostName:site1-nva 的裝置

  • 按一下「轉送」分頁標籤
  • 按一下「BGP Configuration」
  • 停用「ReDistribution OSPF Routes」
  • 已啟用 BGP
  • 本機 ASN 7269 → 儲存
  • 更新裝置
  • 介面分頁 → LAN → 轉送 → BGP
  • 更新裝置

選取含有 HostName:site2-nva 的裝置

  • 按一下「轉送」分頁標籤
  • 按一下「BGP Configuration」
  • 停用「ReDistribution OSPF Routes」
  • 已啟用 BGP
  • 本機 ASN 7270 → 儲存
  • 更新裝置
  • 介面分頁 → LAN → 轉送 → BGP
  • 更新裝置

設定站點和中樞裝置之間的 VPN 通道

務必登入 FlexiManage Console

  • 依序前往「廣告空間」→「裝置」
  • 選取 site1-nvahub-r1 的主機名稱旁的方塊,即可在這組 NVA 之間建立 VPN 通道
  • 按一下「動作」→「建立通道」,然後設定以下項目:

d870b4049a0e7fcf.png

c50d794442c0bdd0.png

  • 選取「建立通道」
  • 移除 site1-nvaub-r1 的勾號

選取適當的參數,重複執行在 site2-nva 和 hub-r2 之間建立通道的步驟

37c86e17b74e98ca.png

確認每組 NVA 之間已建立兩組通道。

  • 選取左側面板中的「廣告空間」然後按一下「通道」。然後找出「狀態」欄

a31e7a73aff53b66.png

驗證「site1-nva」已取得子網路 192.168.235.0/24 和 192.168.236.0/24 的路徑

  • 依序選取「廣告空間」→「裝置」→「site1-nva」,然後按一下「轉送」分頁標籤

在下方的輸出內容範例中,flexiWAN 會自動使用主機 IP 位址「10.100.0.6」建立通道cef8dee200ac600a.png

17. 驗證資料路徑連線能力

驗證網站從地端部署系統連至雲端的連線

請參閱圖表,確認 s1-vmworkload1-vm 之間的資料路徑

2a403992934279b3.png

設定網站到雲端的虛擬私有雲靜態路徑

內部部署的 Site1-VPC 和 Site2-VPC 會模擬內部部署的資料中心網路。

Site-1-nva 和 site-2-nva 路由器設備都使用 VPN 連線來連接中樞網路。

關於站台至雲端的用途**,** 使用路由器設備做為下一個躍點,連線至 GCP 雲端網路中的網路,建立連至 192.168.0.0/16 目的地的靜態路徑。

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-vms2-vm 之間的資料路徑

1a7ec558ab1ecd37.png

設定站點的虛擬私有雲靜態路徑

如要使用 GCP 的全球網路在網站 1 和網站 2 之間轉送站台對站點流量,您必須使用內部部署路由器設備做為下一個躍點,建立連至遠端站點目的地的靜態路徑。

在後續步驟中,工作負載虛擬私有雲將採用 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 位址。您需要這個電視 ID,才能測試 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 或其關係企業。版權所有。請勿散佈。