Google Cloud VPNでのPing送信
クリエイター : Prajwol Kc , 株式会社readytowork ネパール支店 チームマネージャー
ここでは、別々の地域にある2つのネットワーク間でVPNトンネルを確立し、一方のネットワークにいるVMが、もう一方のネットワークにいるVMに内部IPアドレスでpingを送れるようにする。
ネットワークとインスタンスの探索
vpn-network-1とvpn-network-2 が別々のリージョンにサブネットで作成されていることを確認します。
クラウドコンソールのナビゲーションメニューで、VPC ネットワーク>VPC ネットワーク をクリックします。
ファイアウォールのルールを調べる
ナビゲーションペインで、ファイアウォール をクリックします。
vpn-network-1 のnetwork-1-allow-sshおよびnetwork-1-allow-icmpルールに注意してください。
vpn-network-2 のnetwork-2-allow-sshおよびnetwork-2-allow-icmpルールに注意してください。
これらのファイアウォールルールは、どこからでもSSHと ICMPトラフィックを許可します。
インスタンスとその接続性を調べる
現在、2つのネットワーク間のVPN接続が確立されていません。ネットワーク内のインスタンス間の接続オプションを調べます。
クラウドコンソールのナビゲーションメニューで、[Compute Engine] > [VM instances] をクリックします。
Columns をクリックし、Network を選択します。
サーバー-1から、サーバー-2の以下のIPアドレスにpingを打つことができるはずです:内部IPアドレスチェック外部IPアドレス送信
サーバー2の外部IPアドレスと内部IPアドレスに注意する。
サーバー-1については、SSHをクリックしてターミナルを起動し、接続します。
サーバー-2の外部IPアドレスへの接続をテストするには、サーバー-2の外部IPアドレスを前述の値に置き換えて、以下のコマンドを実行する:
ping -c 3 <Enter server-2's external IP address here>
content_copy
これは、VMインスタンスがインターネット上で通信できるためである。
サーバー2の内部IPアドレスへの接続性をテストするには、サーバー2の内部IPアドレスを前述の値に置き換えて、以下のコマンドを実行する:
ping -c 3 <Enter server-2's internal IP address here>
content_copy
VPN接続がまだなので、内部IPアドレスにpingを打つと100%のパケットロスが発生するはずです。
SSHターミナルを終了する。
同じことをサーバー2から試してみましょう。
サーバー-1の外部IPアドレスと内部IPアドレスに注意してください。
サーバー-2の場合、SSHをクリックしてターミナルを起動し、接続します。
サーバー-1の外部IPアドレスへの接続をテストするには、サーバー-1の外部IPアドレスを前述の値に置き換えて、以下のコマンドを実行する:
ping -c 3 <Enter server-1's external IP address here>
content_copy
サーバー1の内部IPアドレスへの接続性をテストするには、サーバー1の内部IPアドレスを前述の値に置き換えて、以下のコマンドを実行する:
ping -c 3 <Enter server-1's internal IP address here>
content_copy
同様の結果を見る。
SSHターミナルを終了する。
なぜサーバー-1からサーバー-2、サーバー-2からサーバー-1の両方をテストしているのですか?
サブネット-aからサブネット-bへのパスと、サブネット-bからサブネット-aへのパスは同じではありません。各方向のトラフィックを通過させるために1つのトンネルを使用しています。両方のトンネルが確立されていないと、リモートサーバーの内部IPアドレスにpingを打つことができません。 pingはリモートサーバーに届くかもしれないが、応答は返せない。
実際には、単一のトンネルを対称的なコンフィギュレーションで使うこともできる。しかし、単一のトンネルは単一障害点となる可能性があるため、本番環境では複数のトンネル、あるいは複数のゲートウェイやVPNを用意するのが一般的です。
タスク2:VPNゲートウェイとトンネルの作成
2つのネットワーク間にVPNゲートウェイとトンネルを作成して、2つのVMインスタンス間のプライベート通信を確立します。
2つの静的IPアドレスを予約する
各VPNゲートウェイに1つの静的IPアドレスを予約します。
クラウドコンソールのナビゲーションメニューで、[VPCネットワーク] > [外部IPアドレス] をクリックします。
静的アドレスの予約 をクリックします。
PropertyValue(値を入力するか、指定されたオプションを選択します)Namevpn-1-static-ipIPバージョンIPv4Regionus-central1
Reserve をクリックします。
vpn-2-static-ipについても同じことを繰り返します。
Reserve static address をクリックします。
次のように指定し、残りの設定はデフォルトのままにします:PropertyValue(値を入力するか、指定されたオプションを選択)Namevpn-2-static-ipIP versionIPv4Regione Europe-west1
次のステップのために両方のIPアドレスをメモしておいてください。これらのIPアドレスは、[VPN-1-STATIC-IP]と[VPN-2-STATIC-IP]と呼ばれます。
vpn-1ゲートウェイとtunnel1to2を作成します。
クラウドコンソールのナビゲーションメニューで、Hybrid Connectivity >VPN をクリックします。
Create VPN Connection をクリックします。
求められたら、Classic VPN を選択し、Continue をクリックします。
VPN gatewayで以下を指定し、残りの設定はデフォルトのままにします:PropertyValue (type value or select option as specified)Namevpn-1Networkvpn-network-1Regionus-central1IPアドレスvpn-1-static-ip
Tunnelsセクションで以下を指定し、残りの設定はデフォルトのままにします: PropertyValue (type value or select option as specified)Nametunnel1to2Remote peer IP address[VPN-2-STATIC-IP]IKE pre-shared keygcprocksRouting optionsRoute-basedRemote network IP ranges10.1.3.0/24
VPN-2-STATIC-IP]を予約したeurope-west1のIPアドレスに置き換えてください。
コマンドライン をクリックします。
gcloud command line window には、VPN gatewayと VPN tunnelsを作成するためのgcloudコマンドが表示され、3つの転送ルールも作成されていることが示されています。
Closeをクリックする。
Create をクリックします。
Check my progressをクリックして目的を確認します。
vpn-1」ゲートウェイとトンネルを作成する進捗状況を確認するをクリックします。
vpn-2ゲートウェイとtunnel2to1を作成します。
VPNセットアップウィザードをクリックします。
VPNセットアップウィザードをクリックします。
VPNゲートウェイのセクションで以下を指定し、残りの設定はデフォルトのままにします:PropertyValue (type value or select option as specified)Namevpn-2Networkvpn-network-2Regioneurope-west1IPアドレスvpn-2-static-ip
Tunnels]セクションで以下を指定し、残りの設定はデフォルトのままにします:PropertyValue (値を入力するか、指定されたオプションを選択)Nametunnel2to1リモートピアIPアドレス[VPN-1-STATIC-IP]IKE事前共有鍵gcprocksルーティングオプションRoute-basedリモートネットワークIP範囲10.5.4.0/24
VPN-1-STATIC-IP]をus-central1の予約IPアドレスに置き換えてください。
Create をクリックします。
Cloud VPN Tunnels をクリックします。
Check my progressをクリックして目的を確認します。
vpn-2」ゲートウェイとトンネルを作成する進捗状況を確認するをクリックします。
VPN tunnels status が両方のトンネルで「Established」に変わるのを待ってから続行します。
Check my progress をクリックして、目的を確認します。
トンネルの確立進捗状況の確認
タスク3:VPN接続の確認
サーバー-1から、サーバー-2の以下のIPアドレスにpingを打つことができるはずです:check外部IPアドレスcheck内部IPアドレスSubmit
サーバ-1からサーバ-2への接続性の確認
クラウドコンソールのナビゲーションメニューで、Compute Engine>VM instances をクリックします。
server-1 の場合、SSH をクリックしてターミナルを起動し、接続します。
server-2の内部IPアドレスへの接続性をテストするには、以下のコマンドを実行します:
ping -c 3 <insert server-2's internal IP address here>
content_copy
サーバー-1のSSHターミナルを終了する。
server-2 の場合は、SSH をクリックしてターミナルを起動し、接続します。
server-1の内部IPアドレスへの接続をテストするには、以下のコマンドを実行する:
ping -c 3 <insert server-1's internal IP address here>
content_copy
外部IPアドレスの削除
VPN接続が確認できたので、インスタンスの外部IPアドレスを削除することができる。デモンストレーションのため、server-1インスタンスに対してのみ行います。
ナビゲーションメニューで、Compute Engine>VM instances をクリックします。
server-1インスタンスを選択し、Stop をクリックします。インスタンスが停止するまで待ちます。
インスタンスのネットワークインターフェイスを変更する前に、インスタンスを停止する必要があります。
server-1インスタンスの名前をクリックして、VM instance detailsページを開きます。
Edit をクリックします。
Network interfacesの Editアイコンをクリックします。
External IP]を [None] に変更します。
Done をクリックします。
Save] をクリックし、インスタンスの詳細が更新されるのを待ちます。
Start をクリックします。
Start] を再度クリックし、VM インスタンスを起動することを確認します。
VM instances]ページに戻り、インスタンスの開始を待ちます。
server-1インスタンスのExternal IP が Noneに設定されていることに注意してください。
ご自由にサーバー-2にSSH接続して、サーバー-1インスタンスの内部IPアドレスにpingできることを確認してください。クラウド・コンソールからサーバー-1にSSH接続することはできませんが、ここに説明されているように、Cloud IAPを使用してCloud ShellからSSH接続することができます。また、一般的なセキュリティのベストプラクティスとして、該当する場合は内部IPアドレスを使用することをお勧めします。Cloud VPNを構成したので、外部IPアドレスを使用してインスタンス間で通信する必要はなくなりました。
ここでは、別々の地域にある2つのサブネットワーク・ネットワーク間のVPN通信が設定されている。そして、内部 IP アドレスを使用して VM を様々なネットワークにピンチして VPN リンクをテストした。
また、VPNゲートウェイとトンネルのクラウドコンソールのセットアップも行った。しかしこのプロセスでは、コンソールでコマンドラインボタンを使って議論される送信ルールの開発が見えなくなってしまった。これはセットアップの問題を解決するのに役立つだろう。
協業開発及び開発パートナーをお探しのお客様へ
弊社は、ネパールに海外拠点を持ち、生成AI、モバイルアプリ、システム開発を中心に事業を展開する企業です。
自社サービスの開発経験を活かし、クライアント様と共に事業を創造することを重視し、創業以来、スタートアップから中小企業、大手企業、自治体まで、幅広い開発実績があります。プロダクトはユーザーが使いやすいように設計しており、企画から開発、保守運用まで対応しています。開発技術を厳選し限定することで、セキュリティ、プロダクトの品質向上に努めており、事業開発に関する課題を深く理解し、最適なご提案が可能です
お問い合わせはこちらから:
お問い合わせフォーム:https://readytowork.jp/
直通番号:080-8940-7169