このコードラボでは、Google Cloud とオンプレミス環境を接続する Partner Interconnect において、BGP (Border Gateway Protocol) による動的ルーティングを設定する手順を学びます。
本ハンズオンは、事前に VLAN アタッチメントの作成およびアット東京(サービスプロバイダ)側でのプロビジョニングが完了し、参加者各ユーザーにオンプレミス側の VyOS ルーターが 1 台ずつ割り当てられている状態からスタートします。


1. 右上の三点メニュー、Preferences の順にクリックする
2. 左のメニューから Language & region をクリックする
3. Language から日本語を選択し、SAVE ボタンをクリックする
4. 左上のナビゲーションメニュー、Cloud の概要、ダッシュボードの順にクリックし、ダッシュボードに移動する
1. Google Cloud プロジェクトを確認する
2. 画面、右上の Cloud Shell をアクティブにするをクリックします。

起動するか聞かれるので、続行、承認をクリックします。以下のように画面の下半分に Cloud Shell (黒い画面) が開いたら成功です。
このセクションは、ハンズオン開催前に行う事前準備です。当日は内容の確認のみを実施します。
プロジェクトに対して Cloud Shell から以下のコマンドを順に実行し、VPC ネットワーク、サブネット、Cloud Router、および Partner Interconnect 用の VLAN アタッチメントを作成します。
以下のコマンドを Cloud Shell にペーストし実行します。
# ==========================================
# 1. 環境変数の設定
# ==========================================
export PROJECT_ID=$(gcloud config get-value project)
export REGION="asia-northeast1"
export NETWORK_NAME="handson-vpc"
export SUBNET_NAME="handson-subnet"
export SUBNET_RANGE="10.0.0.0/24"
export ROUTER_NAME="my-router"
export ATTACHMENT_NAME="my-attachment"
# ==========================================
# 2. APIの有効化
# ==========================================
gcloud services enable compute.googleapis.com
# ==========================================
# 3. VPC ネットワークの作成 (カスタムモード)
# ==========================================
gcloud compute networks create $NETWORK_NAME \
--subnet-mode=custom \
--bgp-routing-mode=regional
# ==========================================
# 4. サブネットの作成
# ==========================================
gcloud compute networks subnets create $SUBNET_NAME \
--network=$NETWORK_NAME \
--region=$REGION \
--range=$SUBNET_RANGE
# ==========================================
# 5. Cloud Router の作成 (Google Cloud 側のローカル ASN は 16550)
# ==========================================
gcloud compute routers create $ROUTER_NAME \
--network=$NETWORK_NAME \
--region=$REGION \
--asn=16550
# ==========================================
# 6. VLAN アタッチメント (Partner Interconnect用) の作成
# ==========================================
gcloud compute interconnects attachments partner create $ATTACHMENT_NAME \
--region=$REGION \
--router=$ROUTER_NAME \
--edge-availability-domain=availability-domain-2
# ==========================================
# 7. ピアリングキーの出力
# ==========================================
echo "=== 以下のピアリングキーをパートナー(プロバイダ)に伝達してください ==="
gcloud compute interconnects attachments describe $ATTACHMENT_NAME \
--region=$REGION \
--format="value(pairingKey)"
ここでは、Partner Interconnect の開通状況をカスタマーポータルで確認する手順を実施します。
詳細はスライドでインストラクターの指示にしたがってください。
以下の URL へアクセスします
https://laboportal.attokyo.co.jp/portal/index.html
事前に用意のあるユーザー ID とパスワードを利用してログインします。

ポータル画面にログインして使用方法を確認します。

Duration: 5:00
アット東京側でのプロビジョニングが完了すると、Google Cloud 側で BGP ピアリングに使用するリンクローカル IP アドレス(169.254.x.x)が割り当てられます。まずはこの情報を取得します。
作業手順 Cloud Shell またはターミナルを開き、以下のコマンドを実行して VLAN アタッチメントの詳細を確認します。
gcloud compute interconnects attachments describe my-attachment \
--region asia-northeast1 \
--format="yaml(cloudRouterIpAddress,customerRouterIpAddress,state)"
結果から、以下の 3 点を確認し、メモしておきます。
Duration: 15:00
双方向のルーターに BGP ピアの設定を行い、ルーティング情報を交換できるようにします。 Google Cloud 側は Cloud Router のベースのみが存在する状態のため、インターフェースの追加と BGP ピアの作成を行います。
上部の検索窓から、Interconnect を検索し、 Cloud Interconnect をクリックします。

Interconnect の設定画面より、有効化 をクリックします。

同意するをクリックします。

続いて、画面下部の my-attachment の文字がリンクになっているのでクリックします。

BGPセッションを編集をクリックします。

オンプレミスの AS 番号、ここでは 65001 を指定して、保存して次へ をクリックします
こちらはオンプレミス側の設定と合わせる必要があります。なお Google Cloud 側の AS 番号は16550で固定です。

以上で、Cloud 側の設定は完了です。
Cloud Shell をひらき、さらに SSH でオンプレミスの VyOS にログインします。
ssh vyos@219.99.131.62 -p (ポート番号、パスワードはトレーナーの指示に従い入力ください)
以下のコンフィグをメモ帳などテキストエディタに貼り付けてください。必要な情報を書き換えて Cloud Shell にコピー&ペーストします。
※ [取得した customerRouterIpAddress] と [取得した cloudRouterIpAddress]と[VLAN ID シートで確認する] の部分を、先ほどメモした IP アドレスに書き換えてください。
configure
set interfaces ethernet eth1 vif [VLAN ID シートで確認する] address [取得した customerRouterIpAddress]/29
set interfaces ethernet eth1 vif [VLAN ID シートで確認する] description "GCP Partner Interconnect VLAN"
set protocols bgp system-as 65001
set protocols bgp parameters router-id [取得した cloudRouterIpAddress]
# ネイバー(GCP側 Cloud Router)の設定
set protocols bgp neighbor [取得した cloudRouterIpAddress] remote-as 16550
set protocols bgp neighbor [取得した cloudRouterIpAddress] description "GCP Cloud Router"
set protocols bgp neighbor [取得した cloudRouterIpAddress] address-family ipv4-unicast
# IPv4 アドレスファミリの有効化と広報ネットワークの設定
set protocols bgp address-family ipv4-unicast network 192.168.1.0/24
commit
save
exit
Duration: 5:00
設定が完了したら、ルーティング情報が正しく交換されているかを確認します。
VyOS のオペレーションモードで以下のコマンドを実行し、セッションが確立(Established)していることを確認します。
show ip bgp summary
以下のような出力であれば、正常です。
IPv4 Unicast Summary:
BGP router identifier 192.168.1.100, local AS number 65001 VRF default vrf-id 0
BGP table version 6
RIB entries 3, using 384 bytes of memory
Peers 1, using 24 KiB of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc
169.254.22.193 4 16550 10463 10471 6 0 0 2d10h05m 1 2 GCP Cloud Router
Total number of neighbors 1
Exit して Cloud Shell へ戻ります。
exit
Cloud Shell で以下のコマンドを実行し、bgpPeerStatus の status が UP になっていることを確認します。
gcloud compute routers get-status my-router \
--region asia-northeast1
Duration: 10:00
BGP セッションが確立できたら、テスト用 VM を作成してデータプレーンの疎通確認を行います。
作業手順
# ファイアウォールルールの作成 (IAP 経由の SSH とオンプレからの ICMP を許可)
gcloud compute firewall-rules create allow-handson-ssh-icmp \
--network handson-vpc \
--allow tcp:22,icmp \
--source-ranges 35.235.240.0/20,192.168.1.0/24
# テスト用 VM の作成 (外部 IP なし)
gcloud compute instances create test-vm \
--zone asia-northeast1-a \
--subnet handson-subnet \
--machine-type e2-micro \
--no-address
gcloud compute ssh test-vm --zone asia-northeast1-a --tunnel-through-iap
ログイン後、VyOS のルーターに対して Ping を実行します。
[101-124]の部分は、は user1 の場合、101, user24 の場合、124 と言うルールに沿って書き換えてください。(そのままではエラーになります。)
ping 192.168.1.[101-124]
応答(Reply)が返ってくれば通信成功です。終了したら exit で VM からログアウトして Cloud Shell に戻ります。
exit
Duration: 15:00
より実践的なルーティング制御として、配信ルートの絞り込みと優先度操作(AS-Path Prepend)を行います。
GCP 側でのカスタムルート配信制御 Cloud Router の設定を更新し、指定したサブネット(10.0.0.0/24)のみを明示的に広報するように変更します。
まずは、サブネットの追加をします。この時点でオンプレミスに即座に 10.0.1.0/24 が配信されます。(余裕のある方は確認してみてください)
gcloud compute routers update-bgp-peer my-router \
--region=asia-northeast1 \
--peer-name=vyos-peer \
--advertisement-mode=CUSTOM \
--set-advertisement-ranges=10.0.0.0/24
ルート配信を限定します。
gcloud compute routers update-bgp-peer my-router \
--region=asia-northeast1 \
--peer-name=vyos-peer \
--advertisement-mode=CUSTOM \
--set-advertisement-ranges=10.0.0.0/24
再び、Cloud Shell から VyOS にログインして、VyOS 側で確認してみます。
ssh vyos@219.99.131.62 -p (ポート番号、パスワードはトレーナーの指示に従い入力ください)
以下のコマンドで 10.0.1.0/24が表示されないことを確認します。
show ip route
VyOS 側でのルートマップ設定
VyOS にログインし、以下のルーティングポリシーを追加します。
再び、Cloud Shell から VyOS にログインして、設定を編集します。
ssh vyos@219.99.131.62 -p (ポート番号、パスワードはトレーナーの指示に従い入力ください)
configure
# 1. プレフィックスリストの作成
set policy prefix-list GCP-IN rule 10 action permit
set policy prefix-list GCP-IN rule 10 prefix 10.0.0.0/24
set policy prefix-list ONPREM-OUT rule 10 action permit
set policy prefix-list ONPREM-OUT rule 10 prefix 192.168.1.0/24
# 2. ルートマップの作成 (Local Preference と AS-Path Prepend)
set policy route-map RM-GCP-IN rule 10 action permit
set policy route-map RM-GCP-IN rule 10 match ip address prefix-list GCP-IN
set policy route-map RM-GCP-IN rule 10 set local-preference 200
set policy route-map RM-GCP-IN rule 100 action permit
set policy route-map RM-GCP-OUT rule 10 action permit
set policy route-map RM-GCP-OUT rule 10 match ip address prefix-list ONPREM-OUT
set policy route-map RM-GCP-OUT rule 10 set as-path prepend "65001 65001"
set policy route-map RM-GCP-OUT rule 100 action permit
# 3. BGP ネイバーへルートマップを適用
set protocols bgp neighbor [取得した cloudRouterIpAddress] address-family ipv4-unicast route-map import RM-GCP-IN
set protocols bgp neighbor [取得した cloudRouterIpAddress] address-family ipv4-unicast route-map export RM-GCP-OUT
commit
save
exit
ポリシーの適用(ソフトリセット) 設定を反映させるため、VyOS のオペレーションモードで BGP セッションの経路再送信を行います。
reset ip bgp [取得した cloudRouterIpAddress] soft out
reset ip bgp [取得した cloudRouterIpAddress] soft in
最後に、設定したルーティングポリシーが正しく反映されているかを確認します。
Exit して Cloud Shell に戻り、Cloud Router のステータスを確認します。
exit
Cloud Router のステータスを確認します。
gcloud compute routers get-status my-router \
--region asia-northeast1
出力結果の bestRoutes の asLists に、65001 が 3つ連なって表示されていれば、パスを長く見せる Prepend 設定は成功です。
「アット東京 + Google Cloud Partner Interconnect ハンズオン 2026」 に ご参加頂きありがとうございました!
本日のハンズオンが少しでも参考になれば幸いです。
引き続き、このようなハンズオンイベントを続けて参りますので ご要望、フィードバックがございましたら是非アンケートでお寄せください。