Packet Mirroring を使用する

Packet Mirroring を使用して、特定の仮想マシン(VM)インスタンスに出入りするトラフィックをミラーリングできます。収集されたトラフィックを使用して、セキュリティの脅威の検出とアプリケーション パフォーマンスのモニタリングに役立てることができます。Packet Mirroring の詳細については、Packet Mirroring をご覧ください。

ミラーリングされたトラフィックは、適切なソフトウェアをインストールした VM に送信されます。このソフトウェアを提供するベンダーのリストについては、Packet Mirroring パートナー プロバイダをご覧ください。

次のセクションでは、パケット ミラーリング ポリシーの作成と管理方法について説明します。

制限事項

  • Packet Mirroring では、Private Service Connect の公開サービス トラフィックのパケットはミラーリングできません。

  • セキュリティ上の理由から、Packet Mirroring はリンクローカル IP アドレス範囲 169.254.0.0/16 に送信されたパケットをミラーリングしません。この範囲には、VM からメタデータ サーバーへのメタデータ リクエストが含まれます。

  • Google Kubernetes Engine(GKE)LoadBalancer Service をパケット ミラーリング コレクタとして使用することはできません。

  • また、パケット ミラーリング ポリシーがコレクタ インスタンスに適用される場合、Packet Mirroring はコレクタ インスタンスを無視し、トラフィックをミラーリングしません。

始める前に

パケット ミラーリング ポリシーを作成するには、適切な権限が必要です。また、コレクタの宛先として機能する内部パススルー ネットワーク ロードバランサも作成する必要があります。この内部パススルー ネットワーク ロードバランサには、バックエンド サービスが VM をコレクタの宛先として使用できるように、インスタンス グループが必要です。

権限

パケット ミラーリング ポリシーを作成および管理するために、Google Cloud には Packet Mirroring に関連するロールが 2 つあります。

  • compute.packetMirroringUser は、パケット ミラーリング ポリシーを作成、更新、削除するユーザー権限を付与します。Packet Mirroring を使用するには、パケット ミラーリング ポリシーを作成するプロジェクトで、このロールが必要です。

  • compute.packetMirroringAdmin は、特定のリソースをミラーリングするユーザー権限を付与します。パケット ミラーリング ポリシーを作成する権限が付与されていても、関連ソースをミラーリングするにはこの権限が必要です。共有 VPC シナリオなど、ポリシーのオーナーに他の権限がないプロジェクトの場合は、このロールを使用します。

IAM ロールの付与について詳しくは、IAM のドキュメントのプロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

コレクタ インスタンスを作成する

Packet Mirroring には、コレクタ インスタンスのインスタンス グループが必要です。インスタンス グループの詳細については、新しいインスタンス テンプレートを作成する単一ゾーンに MIG を作成するのドキュメントをご覧ください。

Packet Mirroring 用の内部ロードバランサを作成する

Packet Mirroring を有効にするには、パケット ミラーリング コレクタとして機能する内部パススルー ネットワーク ロードバランサが必要です。内部パススルー ネットワーク ロードバランサは、次の要件を満たす必要があります。

  • 内部パススルー ネットワーク ロードバランサの転送ルールを作成するときに、Packet Mirroring を有効にする必要があります。ルールの作成後は、このステータスを変更することはできません。この転送ルールを使用して、IPv4 トラフィックと IPv6 トラフィックの両方を収集できます。
  • 内部パススルー ネットワーク ロードバランサは、ミラーリングするインスタンスと同じリージョンに配置されています。
  • 内部パススルー ネットワーク ロードバランサのバックエンド サービスは、NONE(5 タプルハッシュ)のセッション アフィニティを使用する必要があります。
  • 内部パススルー ネットワーク ロードバランサのバックエンド サービスでバックエンドのサブセット化を無効にする必要があります。

バックエンド サービスで構成したヘルスチェックに応答するようにコレクタ インスタンスが設定されていない場合、ヘルスチェックが失敗することがあります。その場合も、パケットのミラーリングは可能です。

Packet Mirroring 用に内部パススルー ネットワーク ロードバランサを作成する方法の詳細については、Packet Mirroring 用のロードバランサの作成をご覧ください。

ファイアウォール ルールを構成する

Packet Mirroring トラフィック用に VPC ネットワークを準備するには、次の操作を行います。

  • ロードバランサのインスタンス グループ内のコレクタ インスタンスが、ミラーリングされるインスタンスまたはミラーリングされるインスタンスの IPv4 および IPv6 アドレス範囲からトラフィックを受信できることを確認します。たとえば、コレクタ インスタンスが任意の VM から IPv4 トラフィックを受信できるようにするには、送信元の IPv4 アドレス範囲が 0.0.0.0/0 のファイアウォール ルールを作成します。コレクタ インスタンスが任意の VM から IPv6 トラフィックを受信できるようにするには、送信元の IPv6 アドレス範囲が ::/0 のファイアウォール ルールを作成します。インターネット トラフィックがコレクタ インスタンスに到達しないようにするには、内部 IPv4 および IPv6 アドレスのみを割り当てます。

  • ミラーリングされたトラフィックが送信元インスタンスから内部パススルー ネットワーク ロードバランサの一部である宛先インスタンスに流れるように、他のファイアウォール ルールによって暗黙の下り(外向き)ルールがオーバーライドされないようにします。

  • コレクタ インスタンスが Google Cloud ヘルスチェック システムからトラフィックを受信できることを確認します。たとえば、IPv4 トラフィックの場合は、130.211.0.0/2235.191.0.0/16 の IPv4 アドレス範囲からコレクタ インスタンスへのトラフィックを許可するファイアウォール ルールを作成します。IPv6 トラフィックの場合は、2600:2d00:1:b029::/64 の IPv6 アドレス範囲からコレクタ インスタンスへのトラフィックを許可するファイアウォール ルールを作成します。

  • 1 つ以上のミラーリング対象インスタンスから下り(外向き)トラフィックを手動で送信して Packet Mirroring をテストする場合は、それらのインスタンスへの SSH トラフィックを許可するファイアウォール ルールを作成します。たとえば、ミラーリング対象インスタンスへの任意の IPv4 および IPv6 アドレスからの SSH 接続を許可するには、任意の送信元 IPv4 および IPv6 アドレスからポート 22 への上り(内向き)TCP トラフィックを許可します。特定の IPv4 または IPv6 アドレス範囲から開始された SSH 接続のみを許可する場合は、その IPv4 または IPv6 アドレス範囲をファイアウォール ルールの送信元範囲として指定します。内部パススルー ネットワーク ロードバランサのテストの詳細については、ロード バランシングのテストをご覧ください。

このトラフィックを許可する既存のルールがない場合は、VPC ファイアウォール ルールの使用を参照して作成してください。内部パススルー ネットワーク ロードバランサのファイアウォール ルールの作成方法については、Cloud Load Balancing ドキュメントのファイアウォール ルールの構成をご覧ください。

パケット ミラーリング ポリシーを作成する

特定のインスタンスに出入りするトラフィックをミラーリングするには、パケット ミラーリング ポリシーを作成します。Google Cloud は、指定したソースの少なくとも 1 つに一致するインスタンスをミラーリングします。

コンソール

  1. Google Cloud コンソールで、[パケットのミラーリング] ページに移動します。

    [パケットのミラーリング] に移動

  2. [ポリシーを作成] をクリックします。

  3. ポリシーに関する次の情報を入力して、[続行] をクリックします。

    1. ポリシーの名前を入力します。
    2. ミラーリング対象のソースとコレクタの宛先を含むリージョンを選択します。パケット ミラーリング ポリシーはソースと宛先と同じリージョンに存在する必要があります。
    3. [優先度] フィールドは無視します。現時点では調整できません。
    4. ポリシーの作成時に [有効にする] を選択してポリシーを有効にします。
  4. ミラーリング対象のソースとコレクタの宛先が配置されている VPC ネットワークを選択し、[続行] をクリックします。

    ソースと宛先の VPC ネットワークは、同じでも異なっていてもかまいません。

    • 同じ VPC ネットワーク内にある場合は、[Mirrored sources and destination are in the same VPC network] を選択して、ネットワークを選択します。
    • 異なるネットワークにある場合は、[ミラーリングされるソースとコレクタの宛先が別々のピアリングされた VPC ネットワークにある] を選択し、ミラーリング対象のソース ネットワーク、コレクタの宛先ネットワークの順に選択します。
  5. ミラーリング対象のソースを選択し、[続行] をクリックします。1 つ以上のソースを選択できます。Google Cloud は、選択したソースの少なくとも 1 つに一致するインスタンスをミラーリングします。

    • サブネット: 1 つ以上のサブネットワークを選択します。Google Cloud は、選択したサブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。
    • ネットワーク タグ: 1 つ以上のネットワーク タグを指定します。Google Cloud は、指定されたタグを少なくとも 1 つ持つインスタンスをミラーリングします。
    • インスタンス名: ミラーリングする特定のインスタンスを選択します。
  6. Packet Mirroring 用に構成された内部パススルー ネットワーク ロードバランサを選択し、[続行] をクリックします。Google Cloud が、内部パススルー ネットワーク ロードバランサの背後にあるインスタンスに、ミラーリングされるトラフィックを送信します。

    共有 VPC の場合、コレクタの宛先とミラーリングされたソースが同じ共有 VPC ネットワークにある場合は、コレクタの宛先があるプロジェクトを選択し、ロードバランサを選択します。

  7. ミラーリングするトラフィックを選択する手順は次のとおりです。

    • すべての IPv4 トラフィックをミラーリングするには、[すべての IPv4 トラフィックをミラーリングする(デフォルト)] を選択します。
    • すべての IPv4 トラフィックと IPv6 トラフィックをミラーリングするには、[フィルタ済みトラフィックをミラーリングする] を選択して、次の操作を行います。
      • [すべてのプロトコルを許可] を選択します。
      • [すべての IPv4 範囲を許可する(0.0.0.0/0)] を選択します。
      • [すべての IPv6 範囲を許可する(::/0)] を選択します。
      • [上り(内向き)と下り(外向き)の両方のトラフィックを許可] を選択します。
    • ミラーリングされるトラフィックを制限するには、[フィルタ済みトラフィックをミラーリングする] を選択して、次の操作を行います。

      • ミラーリングされるトラフィックをプロトコルで制限するには、[特定のプロトコルを許可する] を選択し、プロトコルを選択します。トラフィックをミラーリングするプロトコルが表示されない場合は、[その他のプロトコル] を選択し、[その他のプロトコル] フィールドにプロトコルを入力します。有効な値は、tcpudpespahipipsctp、または IANA プロトコル番号です。IPv6 に ICMP を指定するには、「58」と入力します。

      • IPv4 範囲フィルタの場合は、次の操作を行います。

        • すべての IPv4 トラフィックをミラーリングするには、[すべての IPv4 範囲を許可する(0.0.0.0/0)] を選択します。
        • 特定の IPv4 アドレス範囲のトラフィックをミラーリングするには、[特定の IPv4 範囲を許可する] を選択します。[IPv4 範囲] フィールドに、IPv4 アドレス範囲を 1 つ入力し、Enter キーを押します。複数の IPv4 範囲を追加する場合は、1 つの範囲を入力した後に Enter キーを押します。
      • IPv6 範囲フィルタの場合は、次の操作を行います。

        • すべての IPv6 トラフィックを除外するには、[なし] を選択します。
        • すべての IPv6 トラフィックをミラーリングするには、[すべての IPv6 範囲を許可する(::/0)] を選択します。
        • 特定の IPv6 アドレス範囲のトラフィックをミラーリングするには、[特定の IPv6 範囲を許可する] を選択します。[IPv6 範囲] フィールドに、IPv6 アドレス範囲を 1 つ入力し、Enter キーを押します。複数の IPv6 範囲を追加する場合は、1 つの範囲を入力した後に Enter キーを押します。
  8. ミラーリングするトラフィックのトラフィックの方向を選択します。

  9. パケット ミラーリング ポリシーを作成するには、[送信] をクリックします。

gcloud

パケット ミラーリング ポリシーを作成するには、packet-mirrorings create コマンドを使用します。

gcloud compute packet-mirrorings create POLICY_NAME \
    --region=REGION \
    --network=NETWORK_NAME \
    --collector-ilb=FORWARDING_RULE_NAME \
    [--mirrored-subnets=SUBNET,[SUBNET,...]] \
    [--mirrored-tags=TAG,[TAG,...]] \
    [--mirrored-instances=INSTANCE,[INSTANCE,...]] \
    [--filter-cidr-ranges=CIDR_RANGE,[CIDR_RANGE,...]] \
    [--filter-protocols=PROTOCOL,[PROTOCOL,...]] \
    [--filter-direction=DIRECTION]

次のように置き換えます。

  • POLICY_NAME: パケット ミラーリング ポリシーの名前。
  • REGION は、ミラーリング対象のソースとコレクタの宛先があるリージョンです。
  • NETWORK_NAME は、ミラーリング対象のソースがあるネットワークです。
  • FORWARDING_RULE_NAME: ミラーリング コレクタとして構成されている転送ルールの名前。Google Cloud は、ミラーリングされるすべてのトラフィックを、関連付けられた内部パススルー ネットワーク ロードバランサに送信します。
  • SUBNET: ミラーリングする 1 つ以上のサブネットの名前。複数のサブネットを指定する場合は、カンマ区切りのリストを使用します。Google Cloud は、サブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。
  • TAG: 1 つ以上のネットワーク タグ。Google Cloud は、ネットワーク タグを持つインスタンスをミラーリングします。複数のタグを指定する場合は、カンマ区切りのリストを使用します。
  • INSTANCE: ミラーリングする 1 つ以上のインスタンスの完全修飾 ID。複数のインスタンスを指定する場合は、カンマ区切りのリストを使用します。
  • CIDR_RANGE: ミラーリングする 1 つ以上の IPv4 または IPv6 CIDR 範囲。CIDR 範囲が指定されていない場合、指定したプロトコルに一致するすべての IPv4 トラフィックがミラーリングされます。プロトコルも CIDR 範囲も指定されていない場合、すべての IPv4 トラフィックがミラーリングされます。すべての IPv4 トラフィックと IPv6 トラフィックをミラーリングするには、0.0.0.0/0,::/0 を使用します。IPv4 と IPv6 の両方の CIDR 範囲を指定できます。複数の範囲を指定する場合は、カンマ区切りリストを使用します。
  • PROTOCOL: ミラーリングする 1 つ以上のプロトコル。有効な値は、tcpudpicmpespahipipsctp、または IANA プロトコル番号です。プロトコルが指定されていない場合、指定した CIDR 範囲に一致するすべてのトラフィックがミラーリングされます。プロトコルも CIDR 範囲も指定されていない場合、すべての IPv4 トラフィックがミラーリングされます。IPv6 に ICMP を指定するには、58 を使用します。複数のプロトコルを指定する場合は、カンマ区切りリストを使用します。
  • DIRECTION: VM を基準とした、ミラーリングのトラフィックの方向。デフォルトでは、both に設定されています。すなわち、上り(内向き)と下り(外向き)の両方のトラフィックがミラーリングされます。キャプチャするパケットを制限するには、上り(内向き)パケットのみをキャプチャする ingress か、下り(外向き)パケットのみをキャプチャする egress を指定します。

Terraform

Terraform リソースを使用してパケット ミラーリング ポリシーを作成できます。

resource "google_compute_packet_mirroring" "default" {
  region      = "europe-west1"
  name        = "my-mirroring"
  description = "My packet mirror"
  network {
    url = google_compute_network.ilb_network.id
  }
  collector_ilb {
    url = google_compute_forwarding_rule.default.id
  }
  mirrored_resources {
    tags = ["foo"]
    instances {
      url = google_compute_instance.vm_test.id
    }
  }
  filter {
    ip_protocols = ["tcp"]
    cidr_ranges  = ["0.0.0.0/0"]
    direction    = "BOTH"
  }
}

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

API

パケット ミラーリング ポリシーを作成するには、packetMirrorings.insert メソッドPOST リクエストを行います。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings
{
  "name": "POLICY_NAME",
  "enable": "ENABLED",
  "network": {
    "url": "NETWORK_URL"
  },
  "priority": PRIORITY,
  "mirroredResources": {
    "subnetworks": [
      {
        "url": "SUBNET_URL"
      }
    ],
    "tags": [
      "TAG"
    ],
    "instances": [
      {
        "url": "INSTANCE"
      }
    ]
  },
  "collectorIlb": {
    "url": "FORWARDING_RULE_URL"
  },
  "filter": {
    "IPProtocols": [
      "PROTOCOL"
    ],
    "cidrRanges": [
      "CIDR_RANGE"
    ],
    "direction": "DIRECTION"
  }
}

次のように置き換えます。

  • PROJECT_ID: ポリシーを作成するプロジェクトの ID。
  • REGION は、ミラーリング対象のソースとコレクタの宛先があるリージョンです。
  • POLICY_NAME: パケット ミラーリング ポリシーの名前。
  • ENABLED: このポリシーを有効にするかどうか。TRUEFALSE を指定できます。TRUE がデフォルトです。
  • NETWORK_URL: ミラーリング対象のソースがあるネットワークの URL。
  • PRIORITY: 転送ルールの優先度。一致するルールが複数ある場合に、優先順位を付けるために使用されます。有効な範囲は 0~65,535 です。デフォルトは 1,000 です。
  • SUBNET_URL: ミラーリングするサブネットの URL。Google Cloud は、サブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。複数のサブネットを指定する場合は、カンマ区切りのリストを使用します。
  • TAG: ネットワーク タグ。Google Cloud は、ネットワーク タグを持つインスタンスをミラーリングします。複数のタグを指定する場合は、カンマ区切りのリストを使用します。
  • INSTANCE: ミラーリングするインスタンスの完全修飾 ID。複数のインスタンスを指定する場合は、カンマ区切りのリストを使用します。
  • FORWARDING_RULE_URL: ミラーリング コレクタとして構成された転送ルールの URL。Google Cloud は、ミラーリングされるすべてのトラフィックを、関連付けられた内部パススルー ネットワーク ロードバランサに送信します。
  • PROTOCOL: 1 つ以上のプロトコル。オプションは、tcpudpicmpespahipipsctp、または IANA プロトコル番号です。プロトコルが指定されていない場合、指定した CIDR 範囲に一致するすべてのトラフィックがミラーリングされます。プロトコルも CIDR 範囲も指定されていない場合、すべての IPv4 トラフィックがミラーリングされます。 IPv6 に ICMP を指定するには、「58」と入力します。複数のプロトコルを指定する場合は、"icmp", "udp" の形式を使用します。
  • CIDR_RANGE: ミラーリングする 1 つ以上の IPv4 または IPv6 CIDR 範囲。 CIDR 範囲が指定されていない場合、指定したプロトコルに一致するすべての IPv4 トラフィックがミラーリングされます。プロトコルも CIDR 範囲も指定されていない場合、すべての IPv4 トラフィックがミラーリングされます。すべての IPv4 トラフィックと IPv6 トラフィックをミラーリングするには、"0.0.0.0/0", "::/0" を使用します。IPv4 と IPv6 の両方の CIDR 範囲を指定できます。複数の CIDR 範囲を指定する場合は、"192.0.2.0/24", "2001:0DB8::/32" の形式を使用します。
  • PROTOCOL: ミラーリングする 1 つ以上のプロトコル。
  • DIRECTION: ミラーリングするトラフィックの方向。INGRESSEGRESS、または BOTH を指定できます。デフォルト値は BOTH です。

パケット ミラーリングを確認する

コレクタ インスタンスがミラーリングされたトラフィックを正しく受信していることを確認するには、tcpdump を使用します。

  1. コレクタ インスタンスに接続します

  2. tcpdump コマンドを利用できない場合は、インストールしてください。

  3. ネットワーク インターフェースを確認します。

    ip address
    

    ネットワーク インターフェースのリストで、コレクタ インスタンスのプライマリ内部 IPv4 アドレスに関連付けられている名前(ens4 など)を確認します。

  4. パケットの分析を開始します。

    sudo tcpdump -i INTERFACE_NAME -f "host IP_ADDRESS"
    

    次のように置き換えます。

    • INTERFACE_NAME: 手順 3 で特定したインターフェース名。
    • IP_ADDRESS: ミラーリングされるソース VM の IPv4 アドレス。
  5. テストを実行するには、ミラーリングされたソース VM からトラフィックを送信します(たとえば、ICMP ping を送信します)。tcpdump の出力で、予想されるトラフィックが表示されていることを確認します。

パケット ミラーリング ポリシーを変更する

既存のポリシーを更新して、ミラーリングされるソースやコレクタの宛先などの詳細を変更できます。

コンソール

  1. Google Cloud コンソールで、[パケットのミラーリング] ページに移動します。

    [パケットのミラーリング] に移動

  2. パケット ミラーリング ポリシーのリストで、編集するポリシーをクリックします。

  3. ポリシーの詳細ページで、[編集] をクリックします。

  4. 更新するフィールドを編集します。コンソールでポリシーの作成手順と同じフローに従います。各フィールドの詳細については、パケット ミラーリング ポリシーを作成するをご覧ください。

gcloud

既存のパケット ミラーリング ポリシーを更新するには、packet-mirrorings update コマンドを使用します。

gcloud compute packet-mirrorings update POLICY_NAME [--async] \
  [--collector-ilb=FORWARDING_RULE_NAME] [--description=DESCRIPTION] [--enable] \
  [--filter-direction=DIRECTION] [--region=REGION] \
  [--add-filter-cidr-ranges=[CIDR_RANGE,...] | --clear-filter-cidr-ranges \
    | --remove-filter-cidr-ranges=[CIDR_RANGE,...] \
    | --set-filter-cidr-ranges=[CIDR_RANGE,...]] \
  [--add-filter-protocols=[PROTOCOL,...] | --clear-filter-protocols \
    | --remove-filter-protocols=[PROTOCOL,...] \
    | --set-filter-protocols=[PROTOCOL,...]] \
  [--add-mirrored-instances=[INSTANCE,...] | --clear-mirrored-instances \
    | --remove-mirrored-instances=[INSTANCE,...] \
    | --set-mirrored-instances=[INSTANCE,...]] \
  [--add-mirrored-subnets=[SUBNET,...] | --clear-mirrored-subnets \
    | --remove-mirrored-subnets=[SUBNET,...] \
    | --set-mirrored-subnets=[SUBNET,...]] \
  [--add-mirrored-tags=[TAG,...] | --clear-mirrored-tags \
    | --remove-mirrored-tags=[TAG,...] | --set-mirrored-tags=[TAG,...]]

次のように置き換えます。

  • POLICY_NAME: 変更するパケット ミラーリング ポリシーの名前。
  • FORWARDING_RULE_NAME: コレクタとして構成された転送ルールの名前。Google Cloud は、ミラーリングされるすべてのトラフィックを、関連付けられた内部パススルー ネットワーク ロードバランサに送信します。
  • DESCRIPTION: パケット ミラーリング ポリシーの説明。
  • DIRECTION: パケット ミラーリング ポリシーを適用するトラフィックの方向。egressingress、または both を指定できます。
  • REGION: ポリシーが存在するリージョン。
  • CIDR_RANGE: ミラーリングする 1 つ以上の IPv4 または IPv6 CIDR 範囲。CIDR 範囲が指定されていない場合、指定したプロトコルに一致するすべての IPv4 トラフィックがミラーリングされます。プロトコルも CIDR 範囲も指定されていない場合、すべての IPv4 トラフィックがミラーリングされます。すべての IPv4 トラフィックと IPv6 トラフィックをミラーリングするには、0.0.0.0/0,::/0 を使用します。IPv4 と IPv6 の両方の CIDR 範囲を指定できます。複数の範囲を指定する場合は、カンマ区切りリストを使用します。
  • PROTOCOL: ミラーリングする 1 つ以上のプロトコル。有効な値は、tcpudpicmpespahipipsctp、または IANA プロトコル番号です。プロトコルが指定されていない場合、指定した CIDR 範囲に一致するトラフィックがミラーリングされます。プロトコルも CIDR 範囲も指定されていない場合、すべての IPv4 トラフィックがミラーリングされます。IPv6 に ICMP を指定するには、58 を使用します。複数のプロトコルを指定する場合は、カンマ区切りリストを使用します。
  • INSTANCE: ミラーリングする 1 つ以上の VM インスタンスの完全修飾 ID。複数のインスタンスを指定する場合は、カンマ区切りのリストを使用します。
  • SUBNET: 1 つ以上のサブネットワーク。複数のサブネットを指定する場合は、カンマ区切りのリストを使用します。Google Cloud は、サブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。
  • TAG: 1 つ以上のネットワーク タグ。複数のタグを指定する場合は、カンマ区切りのリストを使用します。

API

パケット ミラーリング ポリシーを更新するには、packetMirrorings.patch メソッドPOST リクエストを行います。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME
{
  "name": "POLICY_NAME",
  "description": "DESCRIPTION",
  "priority": "PRIORITY",
  "collectorIlb": {
    "url": "FORWARDING_RULE_URL"
  },
  "mirroredResources": {
    "subnetworks": [
      {
        "url": "SUBNET_URL"
      }
    ],
    "instances": [
      {
        "url": "INSTANCE_URL"
      }
    ],
    "tags": [
      "NETWORK_TAGS"
    ]
  },
  "filter": {
    "cidrRanges": [
      "CIDR_RANGE"
    ],
    "IPProtocols": [
      "PROTOCOL"
    ],
    "direction": "DIRECTION"
  },
  "enable": "ENABLED"
}

次のように置き換えます。

  • PROJECT_ID: ポリシーを含むプロジェクトの ID。
  • REGION: パケット ミラーリング ポリシーのリージョン。
  • POLICY_NAME: 変更するパケット ミラーリング ポリシーの名前。
  • DESCRIPTION: ポリシーの説明(省略可)。
  • PRIORITY: ポリシーの優先度。一致するポリシーが複数ある場合に、優先順位を付けるために使用されます。デフォルト値は 1,000 です。有効な範囲は 0~65,535 です。
  • FORWARDING_RULE_URL: Packet Mirroring が有効になっている転送ルールの URL。Google Cloud は、ミラーリングされるすべてのトラフィックを、関連付けられた内部パススルー ネットワーク ロードバランサに送信します。
  • SUBNET_URL: サブネットワークの URL。Google Cloud は、サブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。複数のサブネットを指定する場合は、カンマ区切りのリストを使用します。
  • INSTANCE_URL: ミラーリングする VM インスタンスの URL。複数のインスタンスを指定する場合は、カンマ区切りのリストを使用します。
  • NETWORK_TAGS: ネットワーク タグ。Google Cloud は、1 つ以上のネットワーク タグを持つインスタンスをミラーリングします。複数のタグを指定する場合は、カンマ区切りのリストを使用します。
  • CIDR_RANGE: ミラーリングする 1 つ以上の IPv4 または IPv6 CIDR 範囲。CIDR 範囲が指定されていない場合、指定したプロトコルに一致するすべての IPv4 トラフィックがミラーリングされます。プロトコルも CIDR 範囲も指定されていない場合、すべての IPv4 トラフィックがミラーリングされます。すべての IPv4 トラフィックと IPv6 トラフィックをミラーリングするには、"0.0.0.0/0", "::/0" を使用します。IPv4 と IPv6 の両方の CIDR 範囲を指定できます。複数の CIDR 範囲を指定する場合は、"192.0.2.0/24", "2001:DB8::/32" の形式を使用します。
  • IP_PROTOCOL: 1 つ以上のプロトコル。オプションは、tcpudpicmpespahipipsctp、または IANA プロトコル番号です。プロトコルが指定されていない場合、指定した CIDR 範囲に一致するすべてのトラフィックがミラーリングされます。プロトコルも CIDR 範囲も指定されていない場合、すべての IPv4 トラフィックがミラーリングされます。IPv6 に ICMP を指定するには、58 を使用します。複数のプロトコルを指定する場合は、"icmp", "udp" の形式を使用します。
  • DIRECTION: ミラーリングするトラフィックの方向。INGRESSEGRESS、または BOTH を指定できます。デフォルトは BOTH です。
  • ENABLED: ポリシーが有効かどうかを示します。TRUE または FALSE を指定できます。

パケット ミラーリング ポリシーを一覧表示する

パケット ミラーリング ポリシーを一覧表示して、既存のポリシーを表示できます。

コンソール

  • Google Cloud コンソールで、[パケットのミラーリング] ページに移動します。

    [パケットのミラーリング] に移動

    Google Cloud コンソールには、プロジェクト内のすべてのポリシーが一覧表示されます。

gcloud

プロジェクト内または特定のリージョンのパケット ミラーリング ポリシーを一覧表示するには、packet-mirrorings list コマンドを使用します。

gcloud compute packet-mirrorings list \
  [--filter="region:(REGION...)"]

REGION は、一覧表示するポリシーが存在するリージョンの名前に置き換えます。

API

プロジェクト内の既存のパケット ミラーリング ポリシーを一覧表示するには、packetMirrorings.list メソッドGET リクエストを行います。

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/packetMirrorings

PROJECT_ID は、プロジェクトの ID に置き換えます。

特定のリージョンの既存のパケット ミラーリング ポリシーを一覧表示するには、packetMirrorings.list メソッドGET リクエストを行います。

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings

次のように置き換えます。

  • PROJECT_ID: 一覧表示するポリシーを含むプロジェクトの ID。
  • REGION: 一覧表示するポリシーが存在するリージョン。

パケット ミラーリング ポリシーの説明を取得する

パケット ミラーリング ポリシーの説明を取得すると、ポリシーのフィルタなどの詳細を確認できます。

コンソール

  1. Google Cloud コンソールで、[パケットのミラーリング] ページに移動します。

    [パケットのミラーリング] に移動

  2. パケット ミラーリング ポリシーのリストで、表示するポリシーを選択します。選択したポリシーの詳細が Google Cloud コンソールに表示されます。

gcloud

パケット ミラーリング ポリシーの説明を取得するには、packet-mirrorings describe コマンドを使用します。

gcloud compute packet-mirrorings describe POLICY_NAME \
  --region=REGION \

次のように置き換えます。

  • POLICY_NAME: 説明を取得するパケット ミラーリング ポリシーの名前。
  • REGION: ポリシーが存在するリージョン。

API

パケット ミラーリング ポリシーの説明を取得するには、packetMirrorings.get メソッドGET リクエストを行います。

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME

次のように置き換えます。

  • PROJECT_ID: ポリシーを含むプロジェクトの ID。
  • REGION: ポリシーが存在するリージョン。
  • POLICY_NAME: 説明を取得するパケット ミラーリング ポリシーの名前。

パケット ミラーリング ポリシーを無効または有効にする

パケット ミラーリング ポリシーを無効または有効にして、ミラーリングされるトラフィックの収集を停止または開始できます。

コンソール

  1. Google Cloud コンソールで、[パケットのミラーリング] ページに移動します。

    [パケットのミラーリング] に移動

  2. パケット ミラーリング ポリシーのリストから、無効または有効にするポリシーを選択します。

  3. [無効にする] または [有効にする] をクリックします。

  4. [無効にする] または [有効にする] をクリックして確定します。

gcloud

パケット ミラーリング ポリシーを無効にするには、packet-mirrorings update コマンドを使用します。

gcloud compute packet-mirrorings update POLICY_NAME \
  --region=REGION \
  --no-enable

次のように置き換えます。

  • POLICY_NAME: 無効または有効にするパケット ミラーリング ポリシーの名前。
  • REGION: ポリシーが存在するリージョン。

パケット ミラーリング ポリシーを有効にするには、packet-mirrorings update コマンドを使用します。

gcloud compute packet-mirrorings update POLICY_NAME \
  --region=REGION \
  --enable

次のように置き換えます。

  • POLICY_NAME: 無効または有効にするパケット ミラーリング ポリシーの名前。
  • REGION: ポリシーが存在するリージョン。

API

既存のパケット ミラーリング ポリシーを無効または有効にするには、packetMirrorings.patch メソッドPATCH リクエストを行います。

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME
{
  "enable": "FALSE|TRUE"
}

次のように置き換えます。

  • PROJECT_ID: ポリシーを含むプロジェクトの ID。
  • REGION: ポリシーが存在するリージョン。
  • POLICY_NAME: 無効にするパケット ミラーリング ポリシーの名前。

パケット ミラーリング ポリシーを削除する

パケット ミラーリング ポリシーを削除すると、ポリシーをプロジェクトから削除できます。ポリシーを削除すると、Google Cloud はポリシーに関連するすべてのトラフィックのミラーリングを停止します。

コンソール

  1. Google Cloud コンソールで、[パケットのミラーリング] ページに移動します。

    [パケットのミラーリング] に移動

  2. パケット ミラーリング ポリシーのリストで、削除するパケット ミラーリング ポリシーを選択します。

  3. [削除] をクリックします。

  4. [削除] をクリックして確定します。

gcloud

パケット ミラーリング ポリシーを削除するには、packet-mirrorings delete コマンドを使用します。

gcloud compute packet-mirrorings delete POLICY_NAME \
  --region=REGION \

次のように置き換えます。

  • POLICY_NAME: 削除するパケット ミラーリング ポリシーの名前。
  • REGION: ポリシーが存在するリージョン。

API

パケット ミラーリング ポリシーを削除するには、packetMirrorings.delete メソッドDELETE リクエストを行います。

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/packetMirrorings/POLICY_NAME

次のように置き換えます。

  • PROJECT_ID: ポリシーを含むプロジェクトの ID。
  • POLICY_NAME: 削除するパケット ミラーリング ポリシーの名前。
  • REGION: ポリシーが存在するリージョン。

トラブルシューティング

パケット ミラーリング ポリシーがミラーリングされるはずのトラフィックを収集していない場合は、次の構成を確認します。

  • ミラーリングされるインスタンスからコレクタ インスタンスへのトラフィックを許可するファイアウォール ルールがあることを確認します。

  • ミラーリング対象のソースがミラーリングするインスタンスを含むまたは、除外しているかを確認します。たとえば、ミラーリング対象のソースとしてサブネットを指定すると、サブネット内の既存のインスタンスと将来のインスタンスはすべてミラーリングされます。タグを指定すると、一致するタグを持つインスタンスのみがミラーリングされます。

  • パケット ミラーリング フィルタが広すぎないか、または狭すぎないか確認します。意図せずに、フィルタが特定のトラフィックを含む、または除外するよう構成している可能性があります。

  • IPv6 トラフィックを収集するようにパケット ミラーリング ポリシーを構成している場合は、ミラーリングされるトラフィックのソースが、デュアルスタック サブネットに接続しているデュアルスタック VM であることを確認します。