ICMP のトラブルシューティング

このチュートリアルでは、接続テストを繰り返し使用して、ネットワーク接続性の問題を特定および修正する方法を示します。

この場合、Virtual Private Cloud ファイアウォール ルールは、1 つの仮想マシン(VM)インスタンスの外部 IP アドレスが ICMP プロトコルを使用して別の VM の外部 IP アドレスに ping するのを防ぎます。

VM 間の通信の問題はネットワーク接続の不具合であることが多いため、接続テストによって、考えられる構成の問題に関する情報を得て、問題を修正できるようになります。その後、接続テストを再度実行して、修正を確認できます。

概要

この場合、Virtual Private Cloud ネットワークの同じサブネットに 2 つの VM インスタンスを構成済みです。両方の VM に外部 IP アドレスがあります。vm1 から vm2 の外部 IP アドレスに ping パケットを送信してそれらの間の接続をテストすると、ping は機能しません。

2 つの VM 間の拒否された ping のトラブルシューティング
2 つの VM 間の拒否された ping のトラブルシューティング

始める前に

チュートリアルを開始する前に、接続テストの実行Before you begin セクションのすべての手順に従ってください。

ファイアウォール ルールの仕組みを確認しておくことも役に立ちます。

ネットワーク リソースを構成する

このセクションでは、テストパスで Google Cloud リソースを構成します。

VPC ネットワークを構成する

VM を含む既存のネットワークとサブネットを使用するか、新しいネットワークとサブネットを作成できます。

2 つの VM インスタンスを構成する

  1. このチュートリアルの VM インスタンスは、同じ VPC ネットワークとサブネットに配置されています。既存の VM を使用するか、新しい VM を作成できます。
  2. VM の作成時に、vm1vm2 に外部 IP アドレスを割り当てます。アドレスは後で使用するため、メモしておきます。

ファイアウォール ルール default-deny-outgoing-ping の作成

VM を作成したら、 default-deny-outgoing-ping という下り VPC ファイアウォール ルールを作成します。このルールは、vm1 から vm2 への ICMP プロトコルを拒否します。

ネットワーク内に、このルールを無視する既存のファイアウォール ルールがないことを確認してください。

次の表の値を使用して、このファイアウォール ルールを構成します。

ファイアウォール ルールのフィールド
名前 default-deny-outgoing-ping
ネットワーク VM が配置されている VPC ネットワークを使用します。
優先度 1000
方向 egress
一致したときのアクション deny
ターゲット [All instances in the network] を選択します。
送信先 IP 範囲 vm2 の外部 IP アドレスを使用します。
指定したプロトコルとポート other protocols にチェックを入れて、「icmp」と入力します。

ファイアウォール ルール default-deny-ingress-to-vm2 の作成

vm2 の外部 IP アドレスへの ICMP プロトコルを拒否するには、default-deny-ingress-to-vm2 という名前の上りのファイアウォール ルールを作成します。

ネットワーク内に、このルールを無視する既存のファイアウォール ルールがないことを確認してください。次の表の値を使用して、ルールを作成します。

ファイアウォール ルールのフィールド
名前 default-deny-ingress-to-vm2
ネットワーク VM が配置されている VPC ネットワークを使用します。
優先度 65534
方向 ingress
一致したときのアクション deny
ターゲット [All instances in the network] を選択します。
ソース IP の範囲 vm1 の外部 IP アドレスを使用します。
指定したプロトコルとポート other protocols にチェックを入れて、「icmp」と入力します。

最初のトレースを実行する

Cloud Console を使用して、トレースを実行し、ICMP(ping)パケットが vm1 から vm2 の外部 IP アドレスに移動できるかどうかを判断します。トレースの入力値については、次の表を使用してください。

このトレースを実行すると、接続テストは、ファイアウォール ルール default-deny-outgoing-ping が原因でトレース パケットが削除されたことを通知します。

フィールド名
プロトコル icmp
送信元 IP アドレス vm1 の外部 IP アドレスを使用します。
チェックボックス This is an external IP address used in Google Cloud. をオンにします。
送信元 IP アドレス プロジェクト vm1 のプロジェクト名を確認します。
宛先 IP アドレス vm2 の外部 IP アドレスを使用します。
チェックボックス This is an external IP address used in Google Cloud. をオンにします。
送信先 IP アドレス プロジェクト vm2 のプロジェクト名を確認します。

次の Cloud Console スナップショットは、トレース パケットがファイアウォール ルール default-deny-outgoing-ping によって削除されたことを示しています。

拒否された送信 ping を含むトレースのコンソール UI スナップショット
拒否された送信 ping を含むトレースのコンソール UI スナップショット

ファイアウォール ルール default-deny-outgoing-ping を無効にした後、2 番目のトレースを実行します

  1. vm2 への ping テストを許可するには、ファイアウォール ルール default-deny-outgoing-ping一時的に無効化します。
  2. 構成が正常に更新されたら、トレースを再度実行します。
  3. トレースは再び失敗します。このファイアウォール ルールにより、vm2 の外部 IP アドレスへの上り ICMP パケットが拒否されたため、パケットは削除されました。

次の Cloud Console スナップショットは、受信トレース パケットは Cloud NAT は通過できる一方、前述のファイアウォール ルールが原因で vm2 には到達できないことを示しています。

到達できないトレースの Console UI スナップショット
拒否された送信 ping を含むトレースの Console UI スナップショット

ファイアウォール ルール allow-ping-from-known-ranges を作成する

vm2 の外部 IP アドレスへの進入を許可するには、allow-ping-from-known-ranges という新しいファイアウォール ルールを構成します。

すべての 内向き ICMP パケットを VPC ネットワークに許可することはセキュリティ リスクであるため、vm2 の外部 IP への ICMP パケットの送信を許可されている少数のソース範囲のみを指定します。

このチュートリアルの目的上、このソース範囲には vm1 の外部 IP アドレスのみが含まれますが、既存のファイアウォール ルールまたはルールの優先度をチェックして、この新しいルールをオーバーライドしないことを確認してください。

次の表の値を使用して、ルールを構成します。

ファイアウォール ルールのフィールド
名前 allow-ping-from-known-ranges
ネットワーク 両方の VM を含むネットワークの名前を使用します。
優先度 1000
方向 上り
一致したときのアクション allow
ターゲット [All instances in the network] を選択します。
ソースフィルタ IP 範囲
ソース IP の範囲 vm1 の外部 IP アドレスを使用
指定したプロトコルとポート Other protocols にチェックを入れて、「ICMP」と入力します。

3 番目のトレースを実行する

allow-ping-from-known-ranges ファイアウォール ルールを作成した後、vm2 の外部 IP アドレスを再度 ping します。ping が機能し、問題は解決します。

2 つの VM 間の許可された ping
2 つの VM 間の許可された ping

この結果を確認するには、新しいファイアウォール ルールを含む更新された構成に対して、別のトレースを行います。今回、接続テストは、パケットが vm2 に配信されたことと、一致したファイアウォール ルール allow-ping-from-known-ranges が外部 IP アドレス vm2 への受信 ICMP パケットを許可することを通知します。

vm2 への正常なトレースの Console UI スナップ ショット
vm2 への正常なトレースの Console UI スナップショット

クリーンアップ

必要に応じて、このチュートリアル用に作成した次の Google Cloud リソースを無効にするか削除できます。これらが本番環境リソースではないことを確認してください。リソースを無効にする場合は、Compute Engine の料金ページすべてのネットワーキングの料金ページをチェックして、リソースに対して課金されないことを確認してください。

  1. ファイアウォール ルールを無効化または削除します。
  2. VM を無効化または削除します。
  3. VPC サブネットを削除します。
  4. VPC ネットワークを削除する

次のステップ