ネットワークエンジニアのITブログ

長らくネットワークで仕事をしてきましたが、ここ数年クラウドとサーバー系に触れる機会が増えて、クラウドのネットワークというのが自分の性分にはあっているようです。最近のお気に入りはNSXALBとGoogle Cloud。

「オンプレミスとクラウドをどう繋ぐ?」Cloud VPNとBGPで実現する、迅速・安全なハイブリッド接続

Google Cloudの利用を開始する上で最初の関門となるのが、既存のオンプレミス環境とのネットワーク接続です。本記事では、コスト効率よく迅速にセキュアな接続を実現するCloud VPNを使い、BGPでの動-的ルート交換を含めた実践的なハイブリッド接続の構築手順を解説します。

はじめに:ハイブリッド接続の選択肢

Google Cloud上にシステムを構築する際、多くのケースで既存のオンプレミス環境との間でプライベートな通信が必要となります。このハイブリッド接続を実現する方法として、Google Cloudは主に「Cloud Interconnect」と「Cloud VPN」を提供しています。

  • Cloud Interconnect: 高速・低遅延な専用線接続。高いパフォーマンスと信頼性が求められる本番環境に最適ですが、コストと導入リードタイムがかかります。
  • Cloud VPN: インターネット回線を利用した暗号化(IPsec)トンネル。迅速かつ低コストで導入でき、開発環境やバックアップ用途、小規模拠点との接続に適しています。

今回は、このうちCloud VPNを使い、さらに可用性と運用性に優れたHA (High Availability) VPNとBGPによる動的ルーティングを組み合わせた構成を、ステップバイステップで構築していきます。

HA VPN + BGP構成の設計ポイント

2.1 なぜHA VPNとBGPなのか?

Google Cloudが推奨するHA VPNは、冗長化された2つのトンネルを構成でき、片方の経路に障害が発生しても自動的に切り替わる高い可用性を持ちます。これにBGP(Border Gateway Protocol)による動的ルーティングを組み合わせることで、オンプレミス側とGoogle Cloud側のネットワークセグメントの追加・変更が発生した際に、手動で経路設定を変更することなく、自動的にルート情報が交換されるため、運用負荷を大幅に削減できます。

2.2 今回の構成ゴール

オンプレミス環境(ホームラボ)のゲートウェイであるFortiGateと、Google CloudのHA VPNゲートウェイIPsec VPNで接続します。BGPを用いて互いのネットワーク経路を交換し、オンプレミスのPCからGoogle Cloud上のWebサーバーへプライベートIPアドレスでアクセスできることを目指します。

実践!Cloud VPNの設定手順

3.1 Google Cloud側の設定(VPNゲートウェイとトンネル)

Google CloudコンソールのVPN設定ウィザードに従って設定を進めます。

[VPN]の管理画面で[VPN設定ウィザード]を開始し、「高可用性(HA)VPN」を選択します。

Cloud HA VPNゲートウェイを作成します。名前を付け、対象のVPCネットワークとリージョンを選択します。

ピアVPNゲートウェイ(オンプレミス側ゲートウェイ)の情報を設定します。今回はFortiGateのグローバルIPアドレスを1つ設定します。

VPNトンネルとCloud Routerを設定します。新しいCloud Routerを作成し、Google側のBGP自律システム番号(ASN)を定義します。(例:64640)

BGPセッションを構成します。ピア(FortiGate)側のASN(例:65000)を指定します。BGP用のIPアドレスは自動で割り振られます。

設定完了後、[構成をダウンロード]をクリックし、オンプレミス側のデバイス(今回はFortiGate)用のサンプル構成ファイルをダウンロードします。これがオンプレミス側設定の重要なベースとなります。

オンプレミス側(FortiGate)の設定手順

4.1 サンプル構成ファイルの活用

ダウンロードしたサンプルファイルには、IPsec VPN(フェーズ1, 2)やBGPの設定が含まれています。このファイルをベースに、自環境のインターフェース名などに合わせて修正します。

Google Cloud
Configuration generated for fgt60d, project: jithub-414902.
phase1
config vpn ipsec phase1-interface
edit GCP-HA-VPN-INT0
set interface port1
set remote-gw 34.157.78.15
set psksecret IKE_SHARED_SECRET_PLACEHOLDER
next
end

Configure BGP settings
config router bgp
set as 65000
config neighbor
edit 169.254.76.221
set remote-as 64640
next
end
end

4.2 FortiGateへの設定適用**

修正したコンフィグをFortiGateのCLIから適用します。

phase1
config vpn ipsec phase1-interface
edit GCP-HA-VPN-INT0
set interface "wan1"
set remote-gw 34.157.78.15
set psksecret xxxxxxxx
next
end

Configure BGP settings
config router bgp
config neighbor
edit 169.254.76.221
set remote-as 64640
next
end
end

Configure the firewall policy to allow traffic
config firewall policy
edit 152
set name allow-lan-to-gcp
set srcintf "internal1"
set dstintf "GCP-HA-VPN-INT0"
set srcaddr all
set dstaddr all
set action accept
set schedule always
set service ALL
end
end

動作確認

5.1 接続ステータスの確認**

設定適用後、FortiGateの管理画面でVPNトンネルが「アップ」していることを確認します。

次に、BGPのルーティングテーブルを確認し、Google Cloud側のネットワーク(10.24.1.0/24など)の経路情報を正しく受信できていることを確認します。

5.2 エンドツーエンドの疎通確認

最後に、オンプレミス環境のPCから、Google Cloud上のWebサーバー(10.24.1.3)へpingおよびcurlコマンドでアクセスします。正常に応答が返ってくれば、ハイブリッド接続の確立は成功です。

[root@cent91 ~]# ping 10.24.1.3 -c 3
PING 10.24.1.3 (10.24.1.3) 56(84) bytes of data.
64 バイト応答 送信元 10.24.1.3: icmp_seq=1 ttl=61 時間=49.8ミリ秒
--- 10.24.1.3 ping 統計 ---
送信パケット数 3, 受信パケット数 3, 0% packet loss, time 2003ms

[root@cent91 ~]# curl -v http://10.24.1.3

Trying 10.24.1.3:80...

Connected to 10.24.1.3 (10.24.1.3) port 80 (#0)

GET / HTTP/1.1
< HTTP/1.1 200 OK
...

まとめ

本記事では、Google CloudのHA VPNとBGPを利用して、オンプレミス環境との間にセキュアで運用性の高いハイブリッド接続を構築する手順を解説しました。VPN設定ウィザードとサンプル構成ファイルを活用することで、比較的スムーズに設定を進めることができます。

今回は1本のトンネルで構成しましたが、HA VPNは本来2本のトンネルによる冗長化を前提としたサービスです。実際の設計では、オンプレミス側の構成も考慮しつつ、2本のトンネルを構成して99.99%のSLAを確保することが推奨されます。

富士ソフトでは、お客様のビジネス要件や既存のネットワーク環境に合わせた、最適なハイブリッドクラウド接続の設計・構築をご支援しています。Cloud VPNだけでなく、Cloud Interconnectの導入や、複雑なルーティング設計など、クラウド接続に関するお悩みはぜひお気軽にご相談ください。