ラボ: flexiWAN SD-WAN アプライアンスを使用した NCC サイト間

1. はじめに

概要

このラボでは、Network Connectivity Center のいくつかの機能について学びます。

Network Connectivity Center(NCC)は、Google Cloud でのネットワーク接続管理のためのハブ アンド スポーク コントロール プレーン モデルです。ハブリソースは、スポークを接続する一元化された接続管理モデルを提供します。NCC は現在、スポークとして次のネットワーク リソースをサポートしています。

  • VLAN アタッチメント
  • Router アプライアンス
  • HA VPN

Codelab では、WAN のデプロイと管理を簡素化する flexiWAN SaaS SD-WAN ソリューションを使用する必要があります。flexWAN は、オープンソースの SD-WAN および SASE ソリューションです。

作成するアプリの概要

この Codelab では、ハブ アンド スポークの SD-WAN トポロジを構築し、サイト間通信やサイト間通信のために Google のバックボーン ネットワークを通過するリモート ブランチサイトをシミュレートします。

  1. 「flexiWAN」用に構成された GCE VM のペアをデプロイします。GCP へのインバウンド トラフィックとアウトバウンド トラフィックのヘッドエンドを表すハブ VPC 内の SD-WAN エージェント。
  2. 2 つの異なるブランチサイト VPC を表す 2 つのリモート flexiWAN SD-WAN ルーターをデプロイする
  3. データパスのテストでは、オンプレミスのクライアントと GCP でホストされるサーバーをシミュレートするために 3 つの GCE VM を構成します。

84e31c667a487f7a.png

学習内容

  • NCC とオープンソースのソフトウェア定義 WAN ソリューションを使用して、リモートの支社を相互接続
  • オープンソースのソフトウェア定義の WAN ソリューションの実務経験

必要なもの

  • GCP VPC ネットワークに関する知識
  • Cloud Router と BGP ルーティングに関する知識
  • Codelab には 6 つの VPC が必要です。割り当て: ネットワークを確認し、必要に応じて追加のネットワークをリクエストします。以下のスクリーンショットをご覧ください。

6bc606cb34bce7e8.png

2. 目標

  • GCP 環境を設定する
  • GCP に flexiWAN Edge インスタンスをデプロイする
  • NCC ハブと flexiWAN エッジ NVA をスポークとして確立する
  • flexiManage を使用して flexiWAN インスタンスを構成、管理する
  • vpc-app-svcs と flexiWAN NVA の間で BGP ルート交換を構成する
  • お客様のリモート支店やデータセンターをシミュレートするリモートサイトを作成する
  • リモートサイトと NVA の間に IPSEC トンネルを確立する
  • アプライアンスが正常にデプロイされたことを確認する
  • サイトからクラウドへのデータ転送を検証する
  • サイト間データ転送を検証する
  • 使用済みのリソースをクリーンアップする

このチュートリアルでは、flexiEdge インスタンスの認証、オンボーディング、管理を行うための無料の flexiManage アカウント を作成する必要があります。

始める前に

Google Cloud コンソールと Cloud Shell の使用

このラボでは、GCP とやり取りするために Google Cloud コンソールと Cloud Shell の両方を使用します。

Google Cloud Console

Cloud コンソールには https://console.cloud.google.com からアクセスできます。

Google Cloud で次の項目を設定すると、Network Connectivity Center を簡単に構成できます。

Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

Cloud Shell を起動します。この Codelab では、Cloud Shell での gcloud 構成の実装に役立つ $variables を使用します。

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname

IAM ロール

NCC では、特定の API にアクセスするための IAM ロールが必要です。必要に応じて、NCC IAM ロールをユーザーに構成してください。

ロール名

説明

権限

networkconnectivity.networkAdmin

ネットワーク管理者はハブ アンド スポークを管理できます。

networkconnectivity.hubs.networkconnectivity.spokes

networkconnectivity.networkSpokeManager

ハブでスポークを追加して管理できます。ホスト プロジェクトがハブを所有し、他のプロジェクトの他の管理者がハブにアタッチメント用のスポークを追加できる共有 VPC で使用されます。

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer

ネットワーク ユーザーがハブとスポークのさまざまな属性を表示できるようにします。

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

3. ネットワーク ラボ環境を設定する

概要

このセクションでは、VPC ネットワークとファイアウォール ルールをデプロイします。

377d97bf3066f259.png

オンプレミスのブランチサイト ネットワークをシミュレートする

この VPC ネットワークには、オンプレミス 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 ネットワークとスポークを介したリージョンのサイト間トラフィックを有効にするには、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. 以下を許可する Hub-VPC ファイアウォール ルールを作成します。
  • 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. 以下を許可する Workload-VPC ファイアウォール ルールを作成します。
  • 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 を有効にして、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
  1. workload1-vm in "us-central1-a" in workload-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 用にオンプレミス アプライアンスを設定する

ec754b89e375f3cc.png

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

flexiWAN コントロール プレーン登録用に VM を準備する。

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 を登録する

この手順は、flexiManage Console で管理する flexiWAN NVA のプロビジョニングを完了するために必要です。先に進む前に、flexiWAN 組織が設定されていることを確認してください。

flexiManage アカウントにログインし、セキュリティ トークンを使用して、新しくデプロイされた flexiWAN NVA を flexiManage で認証します。同じトークンをすべてのルーター アプライアンスで再利用できます。

[広告枠] → [トークン] を選択し、トークンを作成してコピーを選択

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

flexiManage Console でサイトルーターを有効にする

flexiManage Console にログインし、コントローラで site1-nva を有効にします。

左側のパネルで [広告枠を選択] → [デバイス] に移動し、[不明] デバイスをクリックします。

f7719c28f78e907a.png

site1-nva のホスト名を入力し、ダイヤルを右にスライドしてデバイスを承認します。

9a6c6c45e1cad732.png

[Interfaces] タブを選択します。

[Assigned] を探します。列を選択し、[No] をクリックします。設定を [Yes] に変更します。

a8772059968af13e.png

[ファイアウォール] タブを選択し、+ 記号をクリックしてインバウンド ファイアウォール ルールを追加します。

以下で説明するように、SSH ルールを適用する WAN インターフェースを選択します。

df03b8a6c817ccd2.png

[Update Device] をクリックします。

96b9feb77b8517cd.png

flexiWAN コントローラから site1-nva を起動します。[広告枠] → [デバイス] → [site1-nva] に戻り、[デバイスを開始] を選択します。

708215cf91ffc09.png

ステータス - 同期中

918d72eeacc386fa.png

ステータス - 同期済み

5135096dbff49819.png

警告インジケーターは、[トラブルシューティング] → [通知] で確認できます。表示したら、すべて選択して既読にします

9e79db3572f91925.png

7. site2-nva に flexiWAN をインストールする

新しいタブを開いて Cloud Shell セッションを作成し、gcloud 構成の実装に役立つように $variables を更新します。

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

flexiWAN コントロール プレーン登録用に VM を準備する。

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 を登録する

この手順は、flexiManage Console で管理する flexiWAN NVA のプロビジョニングを完了するために必要です。先に進む前に、flexiWAN 組織が設定されていることを確認してください。

flexiManage アカウントにログインし、セキュリティ トークンを使用して、新しくデプロイされた flexiWAN NVA を flexiManage で認証します。同じトークンをすべてのルーター アプライアンスで再利用できます。

[インベントリ] → [トークン] を選択し、トークンを作成して[コピー] を選択

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

flexiManage Console からサイトルーターを有効にする

flexiManage コンソールにログインしてコントローラで site2-nva をアクティブにします。

左側のパネルで [広告枠を選択] → [デバイス] に移動し、[不明] デバイスをクリックします。

c98696cf67043ec2.png

site2-nva のホスト名を入力し、ダイヤルを右にスライドしてデバイスを承認します。

de418da3f581e0bd.png

[Interfaces] タブを選択します。

[Assigned] を探します。列を選択し、[No] をクリックします。設定を [Yes] に変更します。

eee6a98dba7b2a04.png

[ファイアウォール] タブを選択し、「+」記号をクリックしてインバウンド ファイアウォール ルールを追加します。以下で説明するように、SSH ルールを適用する WAN インターフェースを選択します。

df03b8a6c817ccd2.png

[Update Device] をクリックします。

96b9feb77b8517cd.png

flexiWAN コントローラから site2-nva を起動します。[広告枠] → [デバイス] → [site2-nva] に戻り、[デバイスを開始] を選択します。

c80291bb430dce7d.png

Satus - 同期

da9c08ebfbd1265e.png

ステータス - 同期済み

5135096dbff49819.png

警告インジケーターは、[トラブルシューティング] → [通知] で確認できます。表示したら、すべて選択して既読にします

2c21322b87d848b.png

9. Hub SDWAN アプライアンスを設定する

次のセクションでは、以前サイトルートで実行した flexiWAN Controller にハブルーター(hub-r1 と hub-r2)を作成して登録します。

新しいタブを開いて Cloud Shell セッションを作成し、gcloud 構成の実装に役立つように $variables を更新します。

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 のハブ インスタンスに 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

flexiWAN 登録用に hub-r1 VM を準備する。

flexiWAN が完了したら、fwsystem_checker コマンドを実行してシステム構成を確認します。このコマンドは、システム要件を確認し、システム内の構成エラーを修正します。

root@hub-r1:/home/user# fwsystem_checker
  • オプション 2 を選択すると、すばやくサイレント構成できます
  • 0 で終了します。
  • Cloud Shell ウィンドウを閉じないでください。

11. flexiManage コントローラで hub-r1 VM を登録する

flexiManage アカウントにログインし、セキュリティ トークンを使用して、新しくデプロイされた flexiWAN NVA を flexiManage で認証します。

  • [インベントリ] → [トークン] を選択し、トークンをコピーします。

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 のハブ インスタンスに 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

flexiWAN 登録用に hub-r2 VM を準備する。

flexiWAN が完了したら、fwsystem_checker コマンドを実行してシステム構成を確認します。このコマンドは、システム要件を確認し、システム内の構成エラーを修正します。

root@hub-r2:/home/user# fwsystem_checker
  • オプション 2 を選択すると、すばやくサイレント構成できます
  • 0 で終了します。
  • Cloud Shell ウィンドウを閉じないでください。

13. flexiManage コントローラで hub-r2 VM を登録する

flexiManage アカウントにログインし、セキュリティ トークンを使用して、新しくデプロイされた flexiWAN NVA を flexiManage で認証します。

  • [インベントリ] → [トークン] を選択し、トークンをコピーします。

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 Console でハブルーター hub-r1 を有効にする

flexiManage Console にログインします。

  • [広告枠] → [デバイス] に移動します。
  • hub-r1hub-r2 のホスト名が両方とも [unknown] であることを確認します。

1a88ffa4409ad3c0.png

[HostName] に [hub-r1] の不明なデバイスを選択します。

  • hub-r1 のホスト名を入力します。
  • デバイスを承認し、ダイヤルを右にスライドします。

[インターフェース] タブを選択します。

  • [Assigned] 列を探します。
  • インターフェース行の横にある [いいえ] をクリックして、設定を [はい] に変更します。

[ファイアウォール] タブを選択します。

  • [+] をクリックします。[受信ファイアウォール ルールを追加]
  • ルールを継承する WAN インターフェースを選択する
  • TCP プロトコルで SSH ポート 22 を許可する
  • [Update Device] をクリックします。

flexiWAN のコントローラから SD-WAN 用の hub-r1 アプライアンスを起動する

  • [広告枠] → [デバイス] → [hub-r1] に戻ります。

[Start Device] を選択します

  • 同期が完了するまで待ち、「running」と表示されていることを確認します。ステータス

flexiManage Console でハブルーター hub-r2 を有効にする

[HostName] に [hub-r2] の不明なデバイスを選択します。

  • hub-r2 のホスト名を入力します。
  • デバイスを承認し、ダイヤルを右にスライドします。

[インターフェース] タブを選択します。

  • [Assigned] 列を探します。
  • インターフェース行の横にある [いいえ] をクリックして、設定を [はい] に変更します。

[ファイアウォール] タブを選択します。

  • [+] をクリックします。[受信ファイアウォール ルールを追加]
  • ルールを継承する WAN インターフェースを選択する
  • TCP プロトコルで SSH ポート 22 を許可する
  • [ルールを追加] をクリックします。
  • [Update Device] をクリックします。

flexiWAN のコントローラから SD-WAN 用の hub-r2 アプライアンスを起動する

  • [インベントリ] → [デバイス] → [hub-r2] に戻り、[Start Device] を選択します。
  • 同期が完了するまで待ち、「running」と表示されていることを確認します。ステータス

14. GCP Hub の Network Connectivity Center

802fe0ef1e98c563.png

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

Hub-R1 と BGP を確立するように Cloud Router を構成する

次の手順では、Cloud Router を作成し、ワークロード VPC サブネット 192.168.235.0/24 を通知します。

hub-r1 を使用して BGP と通信するクラウド ルーターを us-central1 に作成する

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

ルーター アプライアンスを NCC スポークとして構成することで、クラウド ルーターが仮想インターフェース上で BGP をネゴシエートできるようになります。

Cloud Router に、hub-r1 と BGP メッセージを交換する 2 つのインターフェースを作成します。

ワークロードのサブネットから 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

networkIP で、hub-r1 の vNIC-1 との BGP を確立するように Cloud Router インターフェースを構成します。peer-ip-address を hub-r1 の IP アドレスに更新します。int0 と int0 には同じ IP アドレスが使用されます。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 の状態を確認します。Codelab のこの時点で、BGP は「接続状態」になっています。ネットワーク ルーター アプライアンスが BGP 用に構成されていないためです。

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

Hub-R2 との BGP を確立するように Workload-cr2 を構成する

次の手順では、Cloud Router を作成し、ワークロード VPC サブネット 192.168.236.0/24 を通知します。

hub-r2 を使用して BGP と通信するクラウド ルーターを us-east4 に作成する

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

hub-r2 の vNIC-1 との BGP を確立するように Cloud Router インターフェースを構成します。peer-ip-address を hub-r1 の IP アドレスに更新します networkIP。int0 と int0 には同じ IP アドレスが使用されます。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 の状態を確認します。Codelab のこの時点で、BGP は「接続状態」になっています。ネットワーク ルーター アプライアンスが BGP 用に構成されていないためです。

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

15. BGP 用にハブルーター アプライアンスを構成する

BGP 用に hub-r1 を構成する

flexiManage Console に ログインしてください

[Inventory] → [Devices] → [hub-r1] に移動し、HostName:hub-r1 であるデバイスを選択します。

  • [ルーティング] タブをクリックします。
  • [BGP 構成] をクリックします。
  • [OSPF ルートを再配布] を無効にします。
  • 次のパラメータを使用して BGP 用に hub-r1 を構成し、[Save] をクリックします。

8d470056f620717f.png

[Interfaces] を選択します。タブで LAN インターフェースを探し、[Routing] 列を探します。

  • [none] をクリックします。ルーティング プロトコルとして BGP を選択するためのメニューを開く

82310aab05e9e414.png

  • ページ上部の [デバイスの更新] をクリックします。

BGP 用に hub-r2 を構成する

flexiManage Console に ログインしてください

[インベントリ] → [デバイス]hub-r2 の順に移動し、HostName:hub-r2 と表示されているデバイスを選択します。

  • [ルーティング] タブをクリックします。
  • [BGP 構成] をクリックします。
  • [OSPF ルートを再配布] を無効にします。
  • 次のパラメータを使用して BGP 用に hub-r2 を構成し、[Save] をクリックします。

8ecb14e2c046012e.png

[Interfaces] を選択します。[LAN] タブで [Routing] 列を探します。

  • [なし] をクリックしますルーティング プロトコルとして BGP を選択するプルダウン メニューを開く

41a381f81f2b500e.png

  • ページ上部の [デバイスの更新] をクリックします。

[ルーティング] を選択します。タブ

  • hub-r2 が wrk-cr2 から BGP ルートを学習したことを確認します。

ddf3e811b193ec10.png

16. ルーター アプライアンス間の BGP ルート交換

リモートサイトのローカル ASN を確立する

site1-nva と site2-nva のローカル BGP ASN を構成します。構成が完了したら、リモート サイトとハブルーターの間に IPSEC トンネルを確立します。

[HostName:site1-nva] と表示されているデバイスを選択します。

  • [ルーティング] タブをクリックします。
  • [BGP 構成] をクリックします。
  • [OSPF ルートを再配布] を無効にします。
  • BGP が有効
  • ローカル ASN 7269 → 保存
  • デバイスの更新
  • [インターフェース] タブ → [LAN] → [ルーティング] → [BGP]
  • デバイスの更新

[HostName:site2-nva] と表示されているデバイスを選択します。

  • [ルーティング] タブをクリックします。
  • [BGP 構成] をクリックします。
  • [OSPF ルートを再配布] を無効にします。
  • 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

サイトから Cloud への VPC 静的ルートを構成する

オンプレミスの 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

cloudshell で、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

サイト間の VPC 静的ルートを構成する

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

Cloudshell で「s2-vm」の 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 またはその関連会社All rights reserved. Do not distribute.