1. はじめに
概要
このラボでは、Network Connectivity Center の機能の一部について説明します。
Network Connectivity Center(NCC)は、Google Cloud でのネットワーク接続管理のためのハブアンドスポーク コントロール プレーン モデルです。ハブリソースは、スポークを接続するための一元化された接続管理モデルを提供します。NCC は現在、次のネットワーク リソースをスポークとしてサポートしています。
- VLAN アタッチメント
- ルーター アプライアンス
- HA VPN
Codelabs では、WAN のデプロイと管理を簡素化する flexiWAN SaaS SD-WAN ソリューションを使用する必要があります。flexWAN はオープンソースの SD-WAN および SASE ソリューションです。
作成するアプリの概要
この Codelab では、ハブアンドスポーク SD-WAN トポロジを構築して、サイトからクラウドへの通信とサイトからサイトへの通信に Google のバックボーン ネットワークを通過するリモート ブランチ サイトをシミュレートします。
- GCP へのインバウンド トラフィックとアウトバウンド トラフィックのヘッドエンドを表すハブ VPC に、「flexiWAN」SD-WAN エージェント用に構成された GCE VM のペアをデプロイします。
- 2 つの異なるブランチ サイト VPC を表す 2 つのリモート flexiWAN SD-WAN ルーターをデプロイする
- データパスのテストでは、オンプレミス クライアントと GCP でホストされるサーバーをシミュレートするように 3 つの GCE VM を構成します。
学習内容
- オープンソースのソフトウェア定義 WAN ソリューションを使用して NCC でリモート支店を相互接続する
- オープンソースのソフトウェア定義型 WAN ソリューションの実務経験
必要なもの
- GCP VPC ネットワークの知識
- Cloud Router と BGP ルーティングの知識
- この Codelab には 6 つの VPC が必要です。割り当て: ネットワークを確認し、必要に応じて追加のネットワークをリクエストします。以下のスクリーンショットを参照してください。

2. 目標
- GCP 環境を設定する
- GCP に flexiWAN Edge インスタンスをデプロイする
- NCC Hub と flexiWAN Edge 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 構成の実装を支援します。
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 ネットワークとファイアウォール ルールをデプロイします。

オンプレミス ブランチ サイト ネットワークをシミュレートする
この 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 Cloud ネットワーク環境をシミュレートする
hub-vpc ネットワークとスポークを介してリージョンをまたぐサイト間トラフィックを有効にするには、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
- ワークロード 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
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
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. site1-nva を SD-WAN コントローラに登録します。
これらの手順は、flexiManage コンソールから管理される flexiWAN NVA のプロビジョニングを完了するために必要です。先に進む前に、flexiWAN 組織が設定されていることを確認してください。
flexiManage アカウントにログインし、セキュリティ トークンを使用して、新しくデプロイされた flexiWAN NVA を flexiManage で認証します。同じトークンをすべてのルーター アプライアンスで再利用できます。
[広告枠] → [トークン] を選択し、トークンを作成してコピーを選択します。

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 を有効にします。
左側のパネルで、[インベントリ] → [デバイス] を選択し、[不明] デバイスをクリックします。

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

[Interfaces] タブを選択します。
[割り当て済み] 列を見つけて [いいえ] をクリックし、設定を [はい] に変更します。

[ファイアウォール] タブを選択し、「+」記号をクリックしてインバウンド ファイアウォール ルールを追加します。
以下のように、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
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. site2-nva を SD-WAN コントローラに登録します。
これらの手順は、flexiManage コンソールから管理される flexiWAN NVA のプロビジョニングを完了するために必要です。先に進む前に、flexiWAN 組織が設定されていることを確認してください。
flexiManage アカウントにログインし、セキュリティ トークンを使用して、新しくデプロイされた flexiWAN NVA を flexiManage で認証します。同じトークンをすべてのルーター アプライアンスで再利用できます。
[Inventory](在庫)→ [Tokens](トークン)を選択し、トークンを作成して [copy](コピー)を選択します。

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 コンソールからサイトルーターを有効にする
flexiManage コンソールにログインして、コントローラで site2-nva を有効にします。
左側のパネルで、[インベントリ] → [デバイス] を選択し、[不明] デバイスをクリックします。

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

[Interfaces] タブを選択します。
[割り当て済み] 列を見つけて [いいえ] をクリックし、設定を [はい] に変更します。

[ファイアウォール タブ] を選択し、[+] 記号をクリックして受信ファイアウォール ルールを追加します。以下のように、ssh ルールを適用する WAN インターフェースを選択します。

[デバイスを更新] をクリックします。
flexiWAN コントローラから site2-nva を起動します。[Inventory] → [Devices] → [site2-nva] に戻り、[Start Device] を選択します。
ステータス - 同期中

ステータス - 同期済み

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

9. ハブ SDWAN アプライアンスを設定する
次のセクションでは、サイトルートで以前に実行したように、ハブルーター(hub-r1 と hub-r2)を作成して flexiWAN コントローラに登録します。
新しいタブを開いて 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. ハブ インスタンスに 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
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 コンソールでハブルーター hub-r1 を有効にします。
flexiManage コンソールにログインする
- [広告枠] → [デバイス] に移動します。
- hub-r1 と hub-r2 のホスト名が両方とも「不明」になっていることを確認します。

ホスト名が hub-r1 の不明なデバイスを選択します。
- hub-r1 のホスト名を入力します。
- デバイスを承認します。ダイヤルを右にスライドします。
[Interfaces] タブを選択します。
- [Assigned](割り当て済み)列を探す
- インターフェースの行の横にある [いいえ] をクリックして、設定を [はい] に変更します。
[ファイアウォール] タブを選択します。
- [+] をクリックして、上り(内向き)のファイアウォール ルールを追加します。
- ルールを継承する WAN インターフェースを選択します。
- TCP プロトコルで SSH ポート 22 を許可する
- [デバイスを更新] をクリックします。
flexiWAN のコントローラから SD-WAN 用の hub-r1 アプライアンスを起動する
- [Inventory] → [Devices] → [hub-r1] に戻ります。
[デバイスを起動] を選択します。
- 同期が完了するまで待機し、「実行中」ステータスをメモします。
flexiManage コンソールでハブルーター hub-r2 を有効にします。
ホスト名が hub-r2 の不明なデバイスを選択します。
- hub-r2 のホスト名を入力します。
- デバイスを承認します。ダイヤルを右にスライドします。
[Interfaces] タブを選択します。
- [Assigned](割り当て済み)列を探す
- インターフェースの行の横にある [いいえ] をクリックして、設定を [はい] に変更します。
[ファイアウォール] タブを選択します。
- [+] をクリックして、上り(内向き)のファイアウォール ルールを追加します。
- ルールを継承する WAN インターフェースを選択します。
- TCP プロトコルで SSH ポート 22 を許可する
- [Add Rule] をクリックします。
- [デバイスを更新] をクリックします。
flexiWAN のコントローラから SD-WAN 用の hub-r2 アプライアンスを起動する
- [Inventory](インベントリ)→ [Devices](デバイス)→ [hub-r2] に戻り、[Start Device](デバイスを起動)を選択します。
- 同期が完了するまで待機し、「実行中」ステータスをメモします。
14. GCP Hub の Network Connectivity Center

API サービスを有効にする
Network Connectivity API がまだ有効になっていない場合は、有効にします。
gcloud services enable networkconnectivity.googleapis.com
NCC Hub を作成する
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 で通信する Cloud Router を 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 スポークとして構成することで、Cloud Router は仮想インターフェースで BGP をネゴシエートできます。
hub-r1 と BGP メッセージを交換する Cloud Router に 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
Cloud Router インターフェースを構成して hub-r1 の vNIC-1 と BGP を確立し、peer-ip-address を hub-r1 の IP アドレス networkIP で更新します。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 を作成し、ワークロード 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
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 を確立し、peer-ip-address を hub-r1 の IP アドレス 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. BGP 用にハブ ルーター アプライアンスを構成する
BGP 用に hub-r1 を構成する
flexiManage コンソールにログインしてください
[在庫] → [デバイス] → [hub-r1] に移動し、[HostName:hub-r1] のデバイスを選択します。
- [ルーティング] タブをクリックします。
- [BGP 構成] をクリックします。
- 「OSPF ルートの再配布」を無効にする
- 次のパラメータを使用して BGP 用に hub-r1 を構成し、[保存] をクリックします。

[Interfaces] タブを選択し、LAN インターフェースを見つけて、[Routing] 列を見つけます。
- [なし] をクリックしてメニューを開き、ルーティング プロトコルとして BGP を選択します。

- ページ上部の [デバイスを更新] をクリックします。
BGP 用に hub-r2 を構成する
flexiManage コンソールにログインしてください
[インベントリ] → [デバイス] → [hub-r2] に移動し、[HostName:hub-r2] のデバイスを選択します。
- [ルーティング] タブをクリックします。
- [BGP 構成] をクリックします。
- 「OSPF ルートの再配布」を無効にする
- 次のパラメータを使用して BGP 用に hub-r2 を構成し、[保存] をクリックします。

[Interfaces] タブを選択し、LAN インターフェースを見つけて、[Routing] 列を見つけます。
- [なし] をクリックしてプルダウン メニューを開き、ルーティング プロトコルとして BGP を選択します。

- ページ上部の [デバイスを更新] をクリックします。
[routing] タブを選択します。
- hub-r2 が wrk-cr2 から BGP ルートを学習したことを確認する

16. ルーター アプライアンス間の BGP ルート交換
リモートサイトのローカル ASN を確立する
site1-nva と site2-nva のローカル BGP ASN を構成します。構成が完了したら、リモートサイトとハブ ルーターの間に IPSEC トンネルを確立します。
HostName:site1-nva のデバイスを選択します。
- [ルーティング] タブをクリックします。
- [BGP 構成] をクリックします。
- 「OSPF ルートの再配布」を無効にする
- BGP が有効
- ローカル ASN 7269 → 保存
- デバイスを更新
- [Interfaces] タブ → [LAN] → [Routing] → [BGP]
- デバイスを更新
HostName:site2-nva のデバイスを選択します。
- [ルーティング] タブをクリックします。
- [BGP 構成] をクリックします。
- 「OSPF ルートの再配布」を無効にする
- BGP が有効
- ローカル ASN 7270 → 保存
- デバイスを更新
- [Interfaces] タブ → [LAN] → [Routing] → [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 へのルートを学習したことを確認する
- [インベントリ] → [デバイス] → [site1-nva] を選択し、[ルーティング] タブをクリックします。
次の出力例では、flexiWAN はホスト IP アドレス 10.100.0.6 を使用してトンネルを自動的に作成しました。
17. データパスの接続を確認する
オンプレミスからサイトツークラウド接続を確認する
図を参照して、s1-vm と workload1-vm 間のデータパスを検証します。

サイトからクラウドへの VPC 静的ルートを構成する
オンプレミスの 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
「s1-vm」に SSH 接続し、「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 の間のデータパスが

サイト間接続用に 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
Cloud Shell で、「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
「s1-vm」に SSH 接続し、「s2-vm」の IP アドレスを ping します。
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 統合を構成しました
次のステップ
- Network Connectivity Center の概要
- Network Connectivity Center のドキュメント
- flexiWAN リソース
- flexiWAN GitLab リポジトリ
©Google, LLC or its affiliates. All rights reserved. Do not distribute.




