使用封包鏡像

您可以使用封包鏡像功能,鏡像處理特定虛擬機器 (VM) 執行個體的傳入和傳出流量。收集到的流量可協助您偵測安全威脅及監控應用程式效能。如要瞭解 Packet Mirroring,請參閱「Packet Mirroring」。

鏡像流量會傳送至已安裝適當軟體的 VM。如需軟體供應商清單,請參閱「封包鏡像合作夥伴供應商」。

下列各節說明如何建立及管理封包鏡像原則。

限制

  • 封包鏡像無法建立 Private Service Connect 已發布服務流量的封包鏡像。

  • 基於安全考量,封包鏡像不會鏡像處理傳送至連結本機 IP 位址範圍 169.254.0.0/16 的封包。這個範圍包括從 VM 到中繼資料伺服器的中繼資料要求

  • 不支援使用 Google Kubernetes Engine (GKE) LoadBalancer 服務做為封包鏡像收集器。

  • 如果封包鏡像政策可能適用於收集器執行個體,Packet Mirroring 會忽略這些執行個體,且不會鏡像處理其流量。

  • 封包鏡像作業會處理原始封包和鏡像封包,因此會降低封包處理速率。 Google Cloud 合併流量的封包處理速率與虛擬私有雲網路外的輸出速率相似,且取決於下列因素:

    • 鏡像 VM 的機器類型和 CPU 使用率。
    • 鏡像流量的封包大小。
  • 當網路封包符合任何鏡像政策時,封包鏡像作業會以較慢的速度處理原始封包和鏡像封包。封包處理的合併速率取決於機器類型、封包大小和 CPU 使用率,與虛擬私有雲網路外部的輸出速率大致相同。

事前準備

建立封包鏡像政策前,您必須具備適當的權限。您也必須建立內部直通式網路負載平衡器,做為收集器目的地。這個內部直通式網路負載平衡器需要執行個體群組,後端服務才能將 VM 做為收集器目的地。

權限

如要建立及管理封包鏡像政策, Google Cloud 提供兩個與封包鏡像相關的角色:

  • compute.packetMirroringUser 授予使用者建立、更新及刪除封包鏡像原則的權限。如要使用封包鏡像功能,使用者必須在建立封包鏡像政策的專案中,具備這個角色。

  • compute.packetMirroringAdmin 授予使用者權限,可鏡像特定資源。即使使用者有權建立封包鏡像政策,仍須具備鏡像相關來源的權限。如果政策擁有者可能沒有任何其他權限,請在專案中使用這個角色,例如共用虛擬私有雲情境。

如要進一步瞭解如何使用 IAM 角色,請參閱 IAM 說明文件中的「管理專案、資料夾和組織的存取權」一文。

建立收集器執行個體

封包鏡像作業需要收集器執行個體的執行個體群組。如要進一步瞭解執行個體群組,請參閱下列文件:建立新的執行個體範本在單一可用區中建立 MIG

建立 Packet Mirroring 的內部負載平衡器

如要啟用 Packet Mirroring,您必須有內部直通式網路負載平衡器,做為封包鏡像收集器。內部直通式網路負載平衡器必須符合下列條件:

  • 建立內部直通式網路負載平衡器的轉送規則時,必須啟用封包鏡像功能。規則建立後,即無法變更這項狀態。您可以使用這項轉送規則收集 IPv4 和 IPv6 流量。
  • 內部直通式網路負載平衡器與您要鏡像處理的執行個體位於相同區域。
  • 內部直通式網路負載平衡器的後端服務必須使用 NONE (5 元組雜湊) 的工作階段相依性
  • 內部直通式網路負載平衡器的後端服務必須停用後端子集

如果收集器執行個體未設定為回應您透過後端服務設定的健康狀態檢查,健康狀態檢查可能會失敗。在此情況下,封包仍可鏡像處理。

如要進一步瞭解如何為封包鏡像建立內部直通式網路負載平衡器,請參閱為封包鏡像建立負載平衡器

設定防火牆規則

如要準備虛擬私有雲網路以接收封包鏡像流量,請執行下列操作:

  • 請確認負載平衡器執行個體群組中的收集器執行個體,可以接收來自鏡像執行個體或鏡像執行個體 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 位址範圍傳送至收集器執行個體。

  • 如要手動從一或多個鏡像執行個體傳送輸出流量來測試封包鏡像,請建立防火牆規則,允許 SSH 流量傳送至這些執行個體。舉例來說,如要允許從所有 IPv4 和 IPv6 位址透過 SSH 連線至鏡像執行個體,請允許從任何來源 IPv4 和 IPv6 位址,將輸入 TCP 流量傳輸至通訊埠 22。如要只允許從特定 IPv4 或 IPv6 位址範圍發起的 SSH 連線,請將該 IPv4 或 IPv6 位址範圍指定為防火牆規則的來源範圍。如要進一步瞭解如何測試內部直通式網路負載平衡器,請參閱測試負載平衡

如果沒有允許這類流量的現有規則,請參閱「使用虛擬私有雲防火牆規則」一文,瞭解如何建立規則。如要進一步瞭解如何為內部直通網路負載平衡器建立防火牆規則,請參閱 Cloud Load Balancing 說明文件中的「設定防火牆規則」。

建立封包鏡像政策

如要開始鏡像處理特定執行個體的來回流量,請建立封包鏡像政策。 Google Cloud 會鏡像處理符合至少一個指定來源的任何執行個體。

主控台

  1. 前往 Google Cloud 控制台的「封包鏡像」頁面。

    前往 Packet Mirroring

  2. 按一下「建立政策」

  3. 輸入政策的下列資訊,然後按一下「繼續」

    1. 輸入政策的名稱。
    2. 選取包含鏡像來源和收集器目的地的區域。封包鏡像政策必須與來源和目的地位於相同區域。
    3. 忽略「優先順序」欄位。目前無法調整。
    4. 建立政策時,選取「已啟用」即可啟用政策。
  4. 選取鏡像來源和收集器目的地所在的虛擬私有雲網路,然後按一下「繼續」

    來源和目的地可以位於相同或不同的虛擬私有雲網路。

    • 如果鏡像來源和目的地在相同虛擬私有雲網路中,請選取「鏡像來源和目的地在相同虛擬私有雲網路中」,然後選取網路。
    • 如果鏡像執行個體和收集器執行個體在不同網路中,請選取「鏡像來源和收集器目標位置位於不同的對等互連虛擬私有雲網路」,然後選取鏡像來源網路和收集器目標位置網路。
  5. 選取鏡像來源,然後按一下「繼續」。您可以選取一或多個來源。 Google Cloud 只要執行個體符合至少一個所選來源,就會進行鏡像。

    • 子網路:選取一或多個子網路。 Google Cloud 系統會為所選子網路中現有和日後的執行個體建立鏡像。
    • 網路標記:指定一或多個網路標記。 Google Cloud 系統會為具有至少一個指定標記的執行個體建立鏡像。
    • 「執行個體名稱」:選取要建立鏡像的特定執行個體。
  6. 選取已為封包鏡像設定的內部直通式網路負載平衡器,然後按一下「繼續」。 Google Cloud 會將鏡像流量傳送至內部直通式網路負載平衡器後方的執行個體。

    如果是共用虛擬私有雲,且收集器目的地和鏡像來源位於相同的共用虛擬私有雲網路,您必須選取收集器目的地所在的專案,然後選取負載平衡器。

  7. 如要選取要鏡像的流量,請按照下列步驟操作:

    • 如要針對所有 IPv4 流量建立鏡像,請選取「針對所有 IPv4 流量建立鏡像 (預設)」
    • 如要針對所有 IPv4 和 IPv6 流量建立鏡像,請選取「針對篩選的流量建立鏡像」,然後執行下列操作:
      • 選取「允許所有通訊協定」
      • 選取「允許所有 IPv4 範圍 (0.0.0.0/0)」
      • 選取「允許所有 IPv6 範圍 (::/0)」
      • 選取「同時允許輸入和輸出流量」
    • 如要限制建立鏡像的流量,請選取「Mirror filtered traffic」(建立經過篩選的流量鏡像),然後執行下列操作:

      • 如要依通訊協定限制鏡像流量,請選取「允許特定通訊協定」,然後選取通訊協定。如果沒有看到要鏡像處理流量的通訊協定,請選取「其他通訊協定」,然後在「其他通訊協定」欄位中輸入通訊協定。有效值為 tcpudpespahipipsctpIANA 通訊協定編號。如要為 IPv6 指定 ICMP,請輸入 58

      • 如要設定 IPv4 範圍篩選條件,請按照下列步驟操作:

        • 如要針對所有 IPv4 流量建立鏡像,請選取「允許所有 IPv4 範圍 (0.0.0.0/0)」
        • 如要鏡像處理特定 IPv4 位址範圍的流量,請選取「允許特定 IPv4 範圍」。在「IPv4 ranges」(IPv4 範圍) 欄位中,輸入單一 IPv4 位址範圍,然後按 Enter 鍵。 如要新增多個 IPv4 範圍,請在輸入每個範圍後按下 Enter 鍵。
      • 如要使用 IPv6 範圍篩選條件,請按照下列步驟操作:

        • 如要篩除所有 IPv6 流量,請選取「無」
        • 如要針對所有 IPv6 流量建立鏡像,請選取「允許所有 IPv6 範圍 (::/0)」
        • 如要鏡像處理特定 IPv6 位址範圍的流量,請選取「允許特定 IPv6 範圍」。在「IPv6 範圍」欄位中,輸入單一 IPv6 位址範圍,然後按下 Enter 鍵。 如要新增多個 IPv6 範圍,請在輸入每個範圍後按下 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:要鏡像處理的一或多個子網路名稱。 您可以使用以半形逗號分隔的清單提供多個子網路。 Google Cloud 會鏡像子網路中現有和未來的執行個體。
  • TAG:一或多個網路標記。 Google Cloud 鏡像處理具有網路標記的執行個體。您可以使用以半形逗號分隔的清單提供多個標記。
  • INSTANCE:要鏡像處理的一或多個執行個體的完整 ID。如要提供多個例項,請使用以半形逗號分隔的清單。
  • CIDR_RANGE:一或多個要鏡像的 IPv4 或 IPv6 CIDR 範圍。如未指定 CIDR 範圍,系統會鏡像處理所有符合指定通訊協定的 IPv4 流量。如未指定 CIDR 範圍和通訊協定,系統會針對所有 IPv4 流量建立鏡像。如要鏡像所有 IPv4 和 IPv6 流量,請使用 0.0.0.0/0,::/0。 您可以同時加入 IPv4 和 IPv6 CIDR 範圍。 如要提供多個範圍,請使用以半形逗號分隔的清單。
  • PROTOCOL:一或多個要鏡像的通訊協定。有效值為 tcpudpicmpespahipipsctpIANA 通訊協定編號。如未指定通訊協定,系統會鏡像處理符合指定 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:鏡像來源所在的網路網址。
  • PRIORITY:轉送規則的優先順序,如果有多個相符規則,系統會使用這項設定來決定順序。有效範圍為 0 到 65,535,預設值為 1,000。
  • SUBNET_URL:要鏡像的子網路網址。 Google Cloud 鏡像子網路中現有和未來的執行個體。您可以使用以半形逗號分隔的清單提供多個子網路。
  • TAG:網路標記。 Google Cloud 會鏡像處理具有網路標記的執行個體。如要提供多個標記,請使用以半形逗號分隔的清單。
  • INSTANCE:要鏡像的執行個體完整 ID。 如要提供多個例項,請使用以半形逗號分隔的清單。
  • FORWARDING_RULE_URL:設定為鏡像收集器的轉送規則網址。 Google Cloud 會將所有鏡像流量傳送至相關聯的內部直通式網路負載平衡器。
  • PROTOCOL:一或多個通訊協定。選項包括 tcpudpicmpespahipipsctpIANA 通訊協定編號。如未指定通訊協定,系統會鏡像處理符合指定 CIDR 範圍的所有流量。如未指定 CIDR 範圍和通訊協定,系統會針對所有 IPv4 流量建立鏡像。如要為 IPv6 指定 ICMP,請輸入 58。您可以使用下列格式提供多個通訊協定:"icmp", "udp"
  • CIDR_RANGE:要鏡像處理的一或多個 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:要鏡像的一或多個通訊協定。
  • DIRECTION:要鏡射的流量方向。選項為 INGRESSEGRESSBOTH。預設值為 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 控制台的「封包鏡像」頁面。

    前往 Packet Mirroring

  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:要套用封包鏡像政策的流量方向。選項包括 egressingressboth
  • REGION:政策所在的區域。
  • CIDR_RANGE:一或多個要鏡像的 IPv4 或 IPv6 CIDR 範圍。如未指定 CIDR 範圍,系統會鏡像處理所有符合指定通訊協定的 IPv4 流量。如未指定 CIDR 範圍和通訊協定,系統會針對所有 IPv4 流量建立鏡像。如要鏡像所有 IPv4 和 IPv6 流量,請使用 0.0.0.0/0,::/0。 您可以同時加入 IPv4 和 IPv6 CIDR 範圍。 如要提供多個範圍,請使用以半形逗號分隔的清單。
  • PROTOCOL:一或多個要鏡像的通訊協定。有效值為 tcpudpicmpespahipipsctpIANA 通訊協定編號。如未指定通訊協定,系統會鏡像處理符合指定 CIDR 範圍的流量。如未指定通訊協定和 CIDR 範圍,系統會對所有 IPv4 流量建立鏡像。如要指定 IPv6 的 ICMP,請使用 58。如要提供多個通訊協定,請使用以半形逗號分隔的清單。
  • INSTANCE:要鏡像處理的一或多個 VM 執行個體的完整 ID。如要提供多個例項,請使用以半形逗號分隔的清單。
  • SUBNET:一或多個子網路。您可以使用以半形逗號分隔的清單提供多個子網路。 Google Cloud 鏡像會反映子網路中現有和未來的執行個體。
  • TAG:一或多個網路標記。如要提供多個標記,請使用以半形逗號分隔的清單。

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:已啟用封包鏡像的轉送規則網址。 Google Cloud 會將所有鏡像流量傳送至相關聯的內部直通式網路負載平衡器。
  • SUBNET_URL:子網路的網址。Google Cloud 會鏡像處理子網路中現有和未來的執行個體。您可以使用以半形逗號分隔的清單提供多個子網路。
  • INSTANCE_URL:要鏡像的 VM 執行個體網址。您可以使用以半形逗號分隔的清單提供多個例項。
  • NETWORK_TAGS:網路標記。 Google Cloud 會鏡像處理具有一或多個網路標記的執行個體。 如要提供多個標記,請使用以半形逗號分隔的清單。
  • CIDR_RANGE:一或多個要鏡像的 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:一或多個通訊協定。選項包括 tcpudpicmpespahipipsctpIANA 通訊協定編號。如未指定通訊協定,系統會鏡像處理符合指定 CIDR 範圍的所有流量。如未指定 CIDR 範圍和通訊協定,系統會針對所有 IPv4 流量建立鏡像。如要指定 IPv6 的 ICMP,請使用 58。您可以使用下列格式提供多個通訊協定:"icmp", "udp"
  • DIRECTION:要鏡射的流量方向。選項包括 INGRESSEGRESSBOTH。預設值為 BOTH
  • ENABLED:指出政策是否已啟用。 選項為 TRUEFALSE

列出封包鏡像政策

您可以列出封包鏡像政策,查看現有政策。

主控台

  • 前往 Google Cloud 控制台的「封包鏡像」頁面。

    前往 Packet Mirroring

    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 控制台的「封包鏡像」頁面。

    前往 Packet Mirroring

  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 控制台的「封包鏡像」頁面。

    前往 Packet Mirroring

  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 控制台的「封包鏡像」頁面。

    前往 Packet Mirroring

  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 流量,請確認鏡像流量來源為具有 IPv6 位址的 VM,且這些 VM 連線至具有 IPv6 位址範圍的子網路