こんにちは、G-genの渡邉 @norry です。
昨今クラウドネイティブというワードを当たり前のように耳にするようになりました。 自分はクラウドの利点を徹底的に活用する!というような意味合いで捉えいています、システムを構築・運用する際にまずクラウドをベースにして使い倒していく感じでしょうか。
弊社はフルリモートで働くベンチャー企業である事もあり、社内にオンプレミスのサーバーを保有しておらず、VPN環境も利用していません。
とはいえ、日本の多くの企業では社内にサーバーがあり、これからクラウドへ移行し、まずはオンプレミスとクラウドのハイブリッドでの運用や、インターネット側には公開せず社内システムを利用したいと言う事もあると思います。
本番環境なら専用線サービスであるCloud Interconnect を利用して閉域網で接続する事をおすすめしますが、予算の関係や気軽に開始したい方々へ向けて社内 LAN から Google Cloud (旧GCP ) で簡単に VPN接続する手順をご案内いたします。
Cloud VPN とは
Cloud VPN とは IPsec VPN 接続を使用して、オンプレミス ネットワーク と VPC ネットワークをプライベートに接続するサービスです。
詳細は以下の記事で解説していますので、ご参照ください。
アーキテクチャ
構成図
今回はシンプルな下図のような構成で構築します。

Cloud VPN のタイプ
公式ドキュメントの引用になりますが
Google Cloud には、HA VPN と Classic VPN の 2 種類の Cloud VPN ゲートウェイがあります。ただし、Classic VPN の特定の機能が 2022 年 3 月 31 日に非推奨となります。
とありますので今回は HA VPN 構成で設定していきます。
HA (High Availability) VPN とは
単一リージョン内の IPsec VPN 接続を使用して、オンプレミス ネットワークを VPC ネットワークに安全に接続できる、高可用性(High Availability)Cloud VPN ソリューションです。
オンプレミス ネットワークとしていますが、実際には IPsec VPN 接続可能な AWS や Microsoft Azure とも接続出来ます。
HA VPN は2 つのインターフェースに1つずつ、2 つの外部 IP アドレスを自動的に選択し、99.99% のサービス可用性の SLA を提供します。
アクティブインターフェイスを1つ、外部アドレス1つでも実は通信可能ですがその場合 SLA は99.99% となりません。
VPN 接続で理解しておくべき用語
Cloud VPN で HA VPN 構成を組む場合に良く出てくる言葉を下記にまとめておきます、さらっと確認しておいていただいた方が全体の理解が深まるかと思います。
用語 | 簡単な解説 | |
---|---|---|
1 | AS 番号 (Autonomous System number) | ISP など大きなネットワークに割り当てられる一意の識別番号 |
2 | BGP (Border Gateway Protocol) | AS を他のAS に広告したりルーティングしたりするためのプロトコル |
3 | Cloud VPN ゲートウェイ(IP) | Google Cloud の外側 (WAN) IP アドレス |
4 | ピア VPN ゲートウェイ(IP) | オンプレミスの 外側 (WAN) IP アドレス |
5 | Cloud Router の BGP IP | IPsec VPN でトンネルを張る時の Google Cloud 側 BGP 用 IP アドレス |
6 | BGP ピア IP | IPsec VPN でトンネルを張る時のオンプレミス側の BGP用 IP アドレス |
Google Cloud 側の設定
VPC の設定
まずは VPC (Virtual Private Cloud) を設定します。VPCって何? という方は以下を参照ください。
管理コンソール > VPCネットワーク > VPC ネットワークの作成 から以下のように作成しました。

また、合わせて組織ポリシーで以下の設定を実施しておく事をおすすめします。
ポリシーID | ポリシー概要 | 理由と説明 |
---|---|---|
constraints/compute.skipDefaultNetworkCreation | デフォルト ネットワークの作成をスキップ | デフォルトネットワークは通常使わないため、自動作成されないよう設定する |
constraints/iam.automaticIamGrantsForDefaultServiceAccounts | デフォルトのサービス アカウントに対する IAM ロールの自動付与の無効化 | 有効にすることで VM を最初に作成する時に作成されるデフォルトの Compute Engine サービスアカウントに Owner 権限が付与されることを防ぐ |
Google Cloud Engine (GCE) インスタンスの作成
管理コンソール > Compute Engine > VM インスタンス > + インスタンスを作成
設定内容は次のとおりです、今回は外部 IP を持たず、インターネット側から直接アクセス出来ない形にしています。ただし VM 側からは Cloud NAT を通じてインターネット接続が可能です。
項目 | 設定値 |
---|---|
名前 | windows-1 |
ゾーン | asia-northeast2-a |
マシンタイプ | e2-medium |
OS | windows-server-2019 |
ネットワーク | norry-vpc |
サブネットワーク | private |
プライマリ内部 IP | 10.0.1.2 |
外部 IP | なし |
ファイアウォールルールの設定
管理コンソール > VPCネットワーク > ファイアウォール > + ファイアウォールを作成
作成した VPC に対しファイアウォールの設定を行います。今回は VM に 社内 LAN (192.168.100.0/24) からの RDP と Ping を通す為の icmp を許可しました。

Cloud VPN を作成
VPC の作成、VMの作成、ファイアウォールの設定が完了しましたので実際に Cloud VPN の設定に入っていきます。
HA VPN では Cloud VPN ゲートウェイで IP を2つ、トンネルも2本張る構成にしています。 ASN はプライベート ASN を利用しています。 設定するパラメータは次の通りです。
項目 | 設定値 |
---|---|
名前 | norry-ha-vpn |
ネットワーク | norry-vpc |
リージョン | asia-northeast2 |
Cloud VPN ゲートウェイ(IP) ① | 34.xxx.xxx.xxx |
Cloud VPN ゲートウェイ(IP) ② | 35.xxx.xxx.xxx |
トンネル名 ① | norry-inhouse-tn |
トンネル名 ② | norry-inhouse-tn2 |
ピア VPN ゲートウェイ(IP) | 118.xxx.xxx.xxx |
Cloud Router ASN | 65001 |
ピアルーター ASN | 65002 |
Cloud Router の BGP IP ① | 169.254.0.1 |
Cloud Router の BGP IP ② | 169.254.1.1 |
BGP ピア IP ① | 169.254.0.2 |
BGP ピア IP ② | 169.254.1.2 |
IKEバージョン | IKEv2 |
共有シークレット | 任意 |
ルーティングオプション | ポリシーベース |
リモートネットワークIPの範囲 | 192.168.100.0/24 |
ローカルIP範囲 | 10.0.1.0/24 |
では Google Cloud 側の設定に入っていきましょう。
管理コンソール > ハイブリッド接続 > VPN > + VPN 設定ウィザード から
高可用性 (HA) VPN を選択します。

「VPN ゲートウェイの名前」「ネットワーク」「リージョン」を選択し、作成して実行
ピア VPN ゲートウェイはオンプレミスまたは非 Google Cloud を選択し、「新しい VPN ゲートウェイを作成する」
「名前」とインターフェース 1 つのインターフェース を選択し、RTX1210 のグローバル IP を設定します。グローバル IP を複数お持ちの場合はインターフェースを増やす事が可能です。
次に新しくルーターを作成します
「名前」と「ASN」を設定し作成します。
続いて IKE まわりの設定をします。「名前」「 IKE バージョン」「 IKE 事前共有キー」を入力。
BGP セッションの作成、「名前」「ピア ASN」「Cloud Router の BGP IP」「BGP ピア IP」を入力。BGP IP はリンクローカルアドレスを使用しました。
1つ目のトンネル作成まで終わりましたので 「 VPN トンネル作成」で 2 本目のトンネルを作成してください。
社内オンプレミスルーター (RTX1210) の設定
Config は Yamaha 公式ページを参照して以下の設定をしています。
IPsecトンネルの設定1
tunnel select 1 ipsec tunnel 1 ipsec sa policy 1 1 esp aes-cbc sha-hmac ipsec ike version 1 2 ipsec ike always-on 1 on ipsec ike encryption 1 aes-cbc ipsec ike group 1 modp1024 ipsec ike hash 1 sha ipsec ike keepalive log 1 on ipsec ike keepalive use 1 on rfc4306 ipsec ike local address 1 192.168.100.1 ipsec ike local name 1 118.xxx.xxx.xxx ipv4-addr ipsec ike nat-traversal 1 on ipsec ike pfs 1 on ipsec ike pre-shared-key 1 text (事前共有鍵) ipsec ike remote address 1 34.xxx.xxx.xxx ipsec ike remote name 1 34.xxx.xxx.xxx ipv4-addr ip tunnel address 169.254.0.2 ip tunnel remote address 169.254.0.1 ip tunnel tcp mss limit auto tunnel enable 1
IPsecトンネルの設定2
tunnel select 2 ipsec tunnel 2 ipsec sa policy 2 2 esp aes-cbc sha-hmac ipsec ike version 2 2 ipsec ike always-on 2 on ipsec ike encryption 2 aes-cbc ipsec ike group 2 modp1024 ipsec ike hash 2 sha ipsec ike keepalive log 2 on ipsec ike keepalive use 2 on rfc4306 ipsec ike local address 2 192.168.100.1 ipsec ike local name 2 118.xxx.xxx.xxx ipv4-addr ipsec ike nat-traversal 2 on ipsec ike pfs 2 on ipsec ike pre-shared-key 2 text (事前共有鍵) ipsec ike remote address 2 35.xxx.xxx.xxx ipsec ike remote name 2 35.xxx.xxx.xxx ipv4-addr ip tunnel address 169.254.1.2 ip tunnel remote address 169.254.1.1 ip tunnel tcp mss limit auto tunnel enable 2
IPsecトンネル 共通設定
ipsec auto refresh on
BGPの設定
bgp use on bgp autonomous-system 65002 bgp neighbor 1 65001 169.254.0.1 local-address=169.254.0.2 bgp neighbor 2 65001 169.254.1.1 local-address=169.254.1.2 bgp import filter 1 equal 192.168.100.0/24 bgp import 65001 static filter 1
BGPの設定 有効化
bgp configure refresh
接続確認
Ping と RDP 接続確認
以上で設定完了です、社内 PC から Ping のテストをしてみます。
norry@penguin:~$ ping 10.0.1.2 PING 10.0.1.2 (10.0.1.2) 56(84) bytes of data. 64 bytes from 10.0.1.2: icmp_seq=1 ttl=124 time=30.1 ms 64 bytes from 10.0.1.2: icmp_seq=2 ttl=124 time=29.6 ms 64 bytes from 10.0.1.2: icmp_seq=3 ttl=124 time=27.5 ms 64 bytes from 10.0.1.2: icmp_seq=4 ttl=124 time=26.6 ms 64 bytes from 10.0.1.2: icmp_seq=5 ttl=124 time=25.6 ms 64 bytes from 10.0.1.2: icmp_seq=6 ttl=124 time=29.2 ms 64 bytes from 10.0.1.2: icmp_seq=7 ttl=124 time=44.0 ms ^C --- 10.0.1.2 ping statistics --- 7 packets transmitted, 7 received, 0% packet loss, time 16ms rtt min/avg/max/mdev = 25.586/30.368/43.999/5.770 ms
RDP も接続出来ました。
渡邉 宣之 (記事一覧)
クラウドソリューション部
データ分析基盤の構築、クラウド管理運用やネットワークが守備範囲、Google Workspace 活用推進中、Google Cloud 認定資格は4資格保持
週末フォトグラファーで、観葉植物や塊根植物にハマってます。