關於虛擬私有雲流量記錄

本頁面說明虛擬私有雲流量記錄的記錄格式,包括可用的基本和中繼資料欄位。此外,本文也會說明如何使用記錄篩選功能,只產生符合特定條件的記錄。

記錄格式

記錄包含做為每個記錄核心欄位的幾個基礎欄位,以及用來新增其他資訊的中繼資料欄位。您可能會省略中繼資料欄位,以節省儲存費用。

某些記錄欄位採用多欄位格式,也就是指定欄位會包含多項資料。舉例來說,connection 欄位採用 IpConnection 格式,其中包含來源和目的地 IP 位址和通訊埠,以及通訊協定,全部都在單一欄位中。記錄格式表下方說明這些多欄位格式的欄位。

中繼資料欄位的值並非根據資料層路徑,而是近似值,可能遺漏或不正確。與中繼資料欄位不同,基本欄位的值是直接從封包標頭取得。

欄位 欄位格式 欄位類型:基本或選填中繼資料
連結 IpConnection
說明流量的連線詳細資料,包括 5 元組和網路位址轉譯 IP 位址 (如適用)
基本
reporter string
回報流量的一端:
  • 如果是 VM 和無伺服器端點,回報者可以是 SRC 或 DEST。
  • 如果是 Cloud Interconnect 的 VLAN 連結和 Cloud VPN 通道等閘道,回報者可以是 SRC_GATEWAY 或 DEST_GATEWAY。
基本
connection_direction string
TCP 連線相對於報告者的方向。

如果啟用 TCP 連線記錄,且在匯總間隔期間觀察到傳出 SYN 或 SYN-ACK 封包,系統就會為 VM 和無伺服器端點填入這個欄位。如果連線橫跨多個匯總時間間隔,則只有在擷取 SYN 或 SYN-ACK 的時間間隔內,系統才會填入這個欄位。

可以是下列任一值:

  • EGRESS:回報者傳送 SYN 封包 (reporter 為 SRC),啟動 TCP 連線。
  • INGRESS:回報者傳送 SYN-ACK 封包 (reporter 為 DEST),回應傳入的 SYN 封包。
基本
round_trip_time 延遲時間
在匯總時間間隔內測得的 RTT (以毫秒為單位,精確度為毫秒以下)。系統會為 TCP (適用於 VM 和無伺服器端點) 和 Falcon 流量填入這個欄位:
  • 如果是 TCP 流量,測得的延遲時間是指從傳送 SEQ 到收到對應 ACK 之間經過的時間。
  • 如果是 Falcon 流量,延遲時間是指硬體測量的 RTT。

未填入:

  • TCP 連線記錄記錄連線事件,但沒有樣本資料封包時
  • 捨棄的流量 (disposition=DROPPED)
基本
rtt_msec int64
在匯總間隔期間測得的封包往返時間 (RTT),以毫秒為單位。這個欄位的填寫方式如下:
  • 僅測量 TCP 流量
  • 為 VM 和無伺服器端點填入
  • 未填入:
    • VLAN 連結和 Cloud VPN 通道
    • TCP 連線記錄記錄連線事件,但沒有樣本資料封包時
    • 捨棄的流量 (disposition=DROPPED)

測得的 RTT 是指從傳送 SEQ 到收到對應 ACK 之間經過的時間。

基本
bytes_sent int64
從來源傳送至目的地的預估使用者酬載位元組數。1 如果封包沒有使用者酬載,則值為零。2 如果流量遭到捨棄 (disposition=DROPPED),或 TCP 連線記錄記錄了沒有樣本資料封包的連線事件,則不會填入這個欄位。
基本
packets_sent int64
從來源傳送至目的地的預估封包數量。1如果流量遭到捨棄 (disposition=DROPPED),或 TCP 連線記錄記錄了沒有樣本資料封包的連線事件,則不會填入這個欄位。
基本
start_time string
採用 RFC 3339 日期字串格式的時間戳記,標記了在匯總時間間隔內發現第一個封包的時間點。
基本
end_time string
採用 RFC 3339 日期字串格式的時間戳記,標記了在匯總時間間隔內發現最後一個封包的時間點。
基本
disposition string
僅在記錄擷取到封包捨棄時,才會填入這個欄位。這個欄位會設為 DROPPED。
基本
drop_reason string
僅在記錄含有 disposition=DROPPED 時,才會填入字串。 詳情請參閱「封包捨棄註解」和「封包捨棄原因」。
基本
bytes_dropped int64
從來源傳送至目的地時,遭捨棄的使用者酬載位元組預估數量。僅在記錄含有 disposition=DROPPED 時,才會填入字串。
基本
packets_dropped int64
從來源到目的地捨棄的封包預估數量。僅在記錄含有 disposition=DROPPED 時,才會填入字串。
基本
throughput_inclusion string
僅在記錄含有 disposition=DROPPED 時,才會填入字串。 指出捨棄的流量是否計入 (INCLUDED) 或排除 (EXCLUDED) 於同一回報者為流量回報的 bytes_sent 和 packets_sent 欄位。
基本
來源和目的地中繼資料欄位
src_gateway GatewayDetails
如果流量來源是地端部署或其他雲端端點,且透過閘道 (例如 Cloud Interconnect 的 VLAN 連結或 Cloud VPN 通道) 連線至 Google Cloud ,並符合下列任一條件,這個欄位就會填入閘道詳細資料:
  • 來源閘道是流量的回報者。
  • 流量的目的地是回報者,且符合下列任一條件:
    • 來源閘道與流量目的地在同一個專案中。
    • 虛擬私有雲流量記錄是在組織層級設定,且未停用跨專案註解3。
中繼資料
dest_gateway GatewayDetails
如果流量目的地是透過閘道 (例如 Cloud Interconnect 的 VLAN 連結或 Cloud VPN 通道) 連線至 Google Cloud 的地端部署或其他雲端端點,且符合下列任一條件,這個欄位就會填入閘道詳細資料:
  • 目的地閘道是流量的回報者。
  • 流程來源為回報者,且符合下列任一條件:
    • 目的地閘道與流量來源位於同一個專案。
    • 虛擬私有雲流量記錄是在組織層級設定,且未停用跨專案註解3。
中繼資料
src_gke_details GkeDetails
如果流量來源是 Google Kubernetes Engine (GKE) 端點,這個欄位會填入 GKE 端點詳細資料。
中繼資料
dest_gke_details GkeDetails
如果流量的目的地是 GKE 端點,這個欄位會填入 GKE 端點詳細資料。
中繼資料
src_google_service GoogleServiceDetails
如果流量來源是 Google 服務,這個欄位會填入服務詳細資料。
中繼資料
dest_google_service GoogleServiceDetails
如果流量目的地是 Google 服務,這個欄位會填入服務詳細資料。
中繼資料
src_instance InstanceDetails
如果流量來源是虛擬私有雲網路中的 VM,且符合下列任一條件,這個欄位會填入 VM 執行個體詳細資料:
  • 來源 VM 是流量的報告者。
  • 流量的目的地是回報者,且符合下列任一條件:
    • 來源 VM 或來源 VM 連結的虛擬私有雲網路,與流量目的地在同一個專案。
    • 虛擬私有雲流量記錄是在組織層級設定,且未停用跨專案註解3。
中繼資料
dest_instance InstanceDetails
如果流量的目的地是位於虛擬私有雲網路中的 VM,且符合下列任一條件,系統就會在這個欄位填入 VM 執行個體詳細資料。
  • 目的地 VM 是流量的報告者。
  • 流程來源為回報者,且符合下列任一條件:
    • 目的地 VM 或目的地 VM 連結的虛擬私有雲網路,與流量來源位於相同專案。
    • 虛擬私有雲流量記錄是在組織層級設定,且未停用跨專案註解3。
中繼資料
src_location GeographicDetails
如果流量來源是虛擬私有雲網路以外的公開 IP 位址,這個欄位會填入可用的地點中繼資料。
中繼資料
dest_location GeographicDetails
如果流量的目的地是虛擬私有雲網路以外的公開 IP 位址,這個欄位會填入可用的地點中繼資料。
中繼資料
src_serverless_details ServerlessDetails
如果流量來源是無伺服器端點,例如設定了直接虛擬私有雲輸出的 Cloud Run 或 App Engine 資源,系統就會在這個欄位填入無伺服器中繼資料。
中繼資料
dest_serverless_details ServerlessDetails
如果流量的目的地是無伺服器端點,例如設有直連虛擬私有雲輸出的 Cloud Run 或 App Engine 資源,這個欄位就會填入無伺服器中繼資料。
中繼資料
src_psc_interface PrivateServiceConnectInterfaceDetails
如果流量來源是 Private Service Connect 介面,這個欄位會填入 Private Service Connect 介面詳細資料,並由來源和目的地在用戶專案中回報。
中繼資料
dest_psc_interface PrivateServiceConnectInterfaceDetails
如果流量的目的地是 Private Service Connect 介面,這個欄位會填入 Private Service Connect 介面詳細資料,並由來源和目的地在用戶專案中回報。
中繼資料
src_vpc VpcDetails
如果流量來源是位於虛擬私有雲網路中的 VM 或無伺服器端點,且符合下列任一條件,這個欄位會填入虛擬私有雲網路的詳細資料:
  • 來源資源是流量的回報者。
  • 流程的目的地是回報者,且符合下列任一條件:
    • 來源資源或來源資源附加的虛擬私有雲網路,與流量目的地在同一個專案。
    • 虛擬私有雲流量記錄是在組織層級設定,且未停用跨專案註解3。
中繼資料
dest_vpc VpcDetails
如果流量的目的地是位於虛擬私有雲網路中的 VM 或無伺服器端點,且符合下列任一條件,這個欄位會填入虛擬私有雲網路的詳細資料:
  • 目的地資源是流量的報告者。
  • 流程來源為回報者,且符合下列任一條件:
    • 目的地資源或目的地資源附加的虛擬私有雲網路,與流量來源位於相同專案。
    • 虛擬私有雲流量記錄是在組織層級設定,且未停用跨專案註解3。
中繼資料
其他中繼資料欄位
internet_routing_details InternetRoutingDetails
如果流量是在 Google Cloud 和網際網路之間,這個欄位會填入轉送詳細資料。僅適用於輸出流量。
中繼資料
load_balancing LoadBalancingDetails
如果流量通過下列其中一種設定的負載平衡器,這個欄位會填入 Cloud Load Balancing 詳細資料:
  • 流量回報者是負載平衡器的用戶端,且負載平衡器類型為 APPLICATION_LOAD_BALANCER、PROXY_NETWORK_LOAD_BALANCER、PASSTHROUGH_NETWORK_LOAD_BALANCER 或 PROTOCOL_FORWARDING。
  • 流量的回報者是負載平衡器的後端,且負載平衡器類型為 PASSTHROUGH_NETWORK_LOAD_BALANCER 或 PROTOCOL_FORWARDING。
中繼資料
nat_gateway_details NatGatewayDetails
如果流量回報者是 Cloud NAT 閘道執行網路位址轉譯的子網路中的 SRC,這個欄位會填入 Cloud NAT 閘道詳細資料。
中繼資料
network_service NetworkServiceDetails
如果設定了區分服務碼點 (DSCP) 標頭,這個欄位會填入網路服務詳細資料。
中繼資料
psc PrivateServiceConnectDetails
如果流量與 Private Service Connect 連線相關聯 (包括透過 Network Connectivity Center 傳播的連線),且符合下列任一條件,這個欄位就會填入 Private Service Connect 詳細資料:
  • 流量回報者為用戶,並使用指定已發布服務或全域 Google API 的 Private Service Connect 端點。
  • 流量回報者是供應商,並使用內部直通式網路負載平衡器或內部通訊協定轉送。
中繼資料
rdma_traffic_type string
RDMA 流量類型。VM 之間的 GPU 對 GPU 流量。可以是 GPUDirect-TCPXO、Falcon 或 RoCE。
中繼資料
1 根據取樣封包估算的總量。為確保準確度,請匯總較長時間範圍或多項資源的記錄。如要進一步瞭解準確度和取樣,請參閱「虛擬私有雲流量記錄:瞭解位元組和封包計數」和「記錄取樣和處理」。
2 針對 Falcon 流量,來源和目的地的傳送位元組值計算方式不同:
  • 如果來源 VM 是回報者,回報的位元組值就是使用者酬載位元組和傳送的封包標頭位元組總和。即使封包不含使用者酬載,這個值也一律大於零。
  • 如果目的地 VM 是回報者,回報的位元組值就是接收並轉送至應用程式層的使用者酬載位元組。如果封包沒有使用者酬載,位元組值為零。
3 如果虛擬私有雲流量記錄是在組織層級設定,根據預設,跨專案流量的記錄會包含流量兩端的詳細資料。透過 Shared VPC、虛擬私有雲網路對等互連和 Network Connectivity Center 傳輸的流量,可使用跨專案註解。詳情請參閱「跨專案註解」。

GatewayDetails 欄位格式

欄位 類型 說明
project_id 字串 閘道的Google Cloud 專案 ID
位置 字串 閘道區域
名稱 字串 閘道名稱
類型 字串 閘道類型。可以是 INTERCONNECT_ATTACHMENT 或 VPN_TUNNEL。
虛擬私人雲端 VpcDetails 閘道的虛擬私有雲網路詳細資料
interconnect_name 字串 如果閘道類型為 INTERCONNECT_ATTACHMENT,這個欄位會填入已設定 VLAN 連結的 Cloud Interconnect 連線名稱。
interconnect_project_number int64 如果閘道類型為 INTERCONNECT_ATTACHMENT,這個欄位會填入已設定 VLAN 連結的 Cloud Interconnect 連線 Google Cloud 專案編號。

GeographicDetails 欄位格式

欄位 類型 說明
asn int32 這個端點所屬外部網路的 ASN
城市 字串 外部端點所在的城市
continent 字串 外部端點所在的洲別
country 字串 外部端點的國家/地區,以 ISO 3166-1 Alpha-3 國家/地區代碼表示
區域 字串 外部端點所在的地區

GkeDetails 欄位格式

欄位 類型 說明
叢集 ClusterDetails GKE 叢集中繼資料
Pod PodDetails GKE Pod 中繼資料,在流量來源或目的地為 Pod 時填入
服務 ServiceDetails GKE Service 中繼資料,僅填入 Service 端點。記錄最多包含兩項服務。如果相關服務超過兩項,這個欄位會包含單一服務,並加上特殊 MANY_SERVICES 標記。

ClusterDetails 欄位格式

欄位 類型 說明
cluster_location 字串 叢集的位置。視叢集為可用區或區域而定,這可以是可用區或區域。
cluster_name 字串 GKE 叢集名稱。

PodDetails 欄位格式

欄位 類型 說明
pod_name 字串 Pod 名稱
pod_namespace 字串 Pod 的命名空間
工作負載 WorkloadDetails 控管 Pod 的頂層工作負載資源中繼資料
WorkloadDetails 欄位格式
欄位 類型 說明
workload_name 字串 頂層工作負載控制器的名稱
workload_type 字串 頂層工作負載控制器的類型。可能的值為 DEPLOYMENT、REPLICA_SET、STATEFUL_SET、DAEMON_SET、JOB、CRON_JOB 或 REPLICATION_CONTROLLER。

ServiceDetails 欄位格式

欄位 類型 說明
service_name 字串 服務名稱。如果相關服務超過兩項,這個欄位會設為特殊 MANY_SERVICES 標記。
service_namespace 字串 服務的命名空間

範例:

如果有兩項服務,「服務」欄位會如下所示:

service: [
 0: {
  service_name: "my-lb-service"
  service_namespace: "default"
 }
 1: {
  service_name: "my-lb-service2"
  service_namespace: "default"
 }
]

如果服務超過兩項,「服務」欄位會顯示如下:

service: [
 0: {
  service_name: "MANY_SERVICES"
 }
]

GoogleServiceDetails 欄位格式

欄位 類型 說明
類型 字串

服務類型:GOOGLE_API 或 GOOGLE_VPC_HOSTED_SERVICE。

service_name 字串

服務名稱。例如:pubsub.googleapis.com。

限制:

  • 如果 Google API 要求需要超過 60 秒才能完成,可能就不會顯示服務名稱。
  • 如果 VM 或閘道使用相同的 5 元組連線至多項服務,記錄檔只會隨機選取並列出其中一項服務的名稱。
連線能力 字串

存取方法。如果是 GOOGLE_API 類型,連線欄位可以是下列其中一項:

  • PUBLIC_IP (如果 API 是從具有外部 IP 位址的 VM 存取)
  • PRIVATE_GOOGLE_ACCESS 或 DIRECT_CONNECTIVITY (如果透過 Private Google Access 存取 API)
  • PRIVATE_SERVICE_CONNECT_FOR_GOOGLE_APIS (如果透過 Private Service Connect 端點存取 API)

如果是 GOOGLE_VPC_HOSTED_SERVICE 類型,連線欄位可以是下列其中一項:

  • PUBLIC_IP (如果透過公開 IP 連線存取服務)
  • PRIVATE_SERVICES_ACCESS (如果透過私人服務存取權存取服務)
  • PRIVATE_SERVICE_CONNECT_ENDPOINT 或 PRIVATE_SERVICE_CONNECT_INTERFACE (如果透過 Private Service Connect 存取服務)
private_domain 字串

私人網域或 Private Service Connect API 套件。private_domain 欄位可以是下列其中一項:

  • PRIVATE_GOOGLE_ACCESS 存取方法:private.googleapis.com 或 restricted.googleapis.com
  • DIRECT_CONNECTIVITY 存取方法: restricted.googleapis.com
  • PRIVATE_SERVICE_CONNECT_FOR_GOOGLE_APIS 存取方法:all-apis 或 vpc-sc

InstanceDetails 欄位格式

欄位 類型 說明
project_id 字串 VM 資源所屬 Google Cloud 專案的 ID
區域 字串 VM 地區
vm_name 字串 VM 的執行個體名稱
儲存區 字串 VM 區域
managed_instance_group InstanceGroupDetails 如果 VM 屬於代管執行個體群組,這個欄位會填入執行個體群組詳細資料。

InstanceGroupDetails 欄位格式

欄位 類型 說明
名稱 字串 執行個體群組名稱
區域 字串 如果執行個體群組為區域性,這個欄位會填入執行個體群組的區域。
儲存區 字串 如果執行個體群組位於單一可用區,這個欄位會填入執行個體群組的可用區。

InternetRoutingDetails 欄位格式

欄位 類型 說明
egress_as_path AsPath 相關 AS 路徑清單。如果流量有多個可用的 AS 路徑,這個欄位可能會包含多個 AS 路徑。

AsPath 欄位格式

欄位 類型 說明
as_details AsDetails AS 路徑中所有系統的 AS 詳細資料清單。清單從 Google Cloud網路外部的第一個 AS 開始,到遠端 IP 位址所屬的 AS 結束。

AsDetails 欄位格式

欄位 類型 說明
asn uint32 AS 的自治系統編號 (ASN)

IpConnection 欄位格式

欄位 類型 說明
src_ip 字串 來源 IP 位址。所有流程都會填入這個值。
dest_ip 字串 目標 IP 位址。所有流程都會填入這個值。
src_port int32 來源通訊埠:
  • 為 TCP 和 UDP 流量填入
  • 不適用於 ICMP、ESP、GRE 和 RDMA 流量
dest_port int32 目的地通訊埠:
  • 為 TCP 和 UDP 流量填入
  • 不適用於 ICMP、ESP、GRE 和 RDMA 流量
nat_ip 字串 Cloud NAT 閘道使用的 IP 位址 (如有設定)。只有在回報者為 SRC 時,系統才會填入資料。
nat_port int32 Cloud NAT 閘道指派的通訊埠 (如有設定)。只有在回報者為 SRC 時,系統才會填入資料。
通訊協定 int32 IANA 通訊協定號碼:
  • 為 TCP、UDP、ICMP、ESP 和 GRE 流量填入
  • 不會填入 RDMA 流程

延遲時間欄位格式

欄位 類型 說明
median_msec 雙精度值 匯總時間間隔內測得的中位數延遲時間 (以毫秒為單位)。

LoadBalancingDetails 欄位格式

欄位 類型 說明
forwarding_rule_project_id 字串 轉送規則的Google Cloud 專案 ID
reporter 字串 Cloud Load Balancing 報告者。可以是 CLIENT 或 BACKEND。
  • 如果流量的回報端是負載平衡器的用戶端,這個欄位會設為 CLIENT。
  • 如果流量的回報端是負載平衡器的後端,這個欄位會設為 BACKEND。
類型 字串 負載平衡器類型。可以是 APPLICATION_LOAD_BALANCER、PROXY_NETWORK_LOAD_BALANCER、PASSTHROUGH_NETWORK_LOAD_BALANCER 或 PROTOCOL_FORWARDING。
scheme 字串 負載平衡器架構。可以是 EXTERNAL_MANAGED、INTERNAL_MANAGED、EXTERNAL、INTERNAL 或 INTERNAL_SELF_MANAGED。
url_map_name 字串 網址對應的名稱。如果負載平衡器類型為 APPLICATION_LOAD_BALANCER,則會填入這個欄位。
forwarding_rule_name 字串 轉送規則名稱
backend_service_name 字串 後端服務的名稱。如果回報端為 BACKEND,且負載平衡器類型為 PASSTHROUGH_NETWORK_LOAD_BALANCER,則會填入這個欄位。如果後端群組類型為 TARGET_POOL,系統就不會填入這個欄位。
backend_service_project_id 字串 後端服務的專案 ID。如果回報端為 BACKEND,且負載平衡器類型為 PASSTHROUGH_NETWORK_LOAD_BALANCER,系統就會填入這個欄位。如果後端群組類型為 TARGET_POOL,系統就不會填入這個欄位。
backend_group_name 字串 後端群組的名稱。如果回報端為 BACKEND,且負載平衡器類型為 PASSTHROUGH_NETWORK_LOAD_BALANCER,則會填入這個欄位。
backend_group_type 字串 後端群組的類型。可以是 INSTANCE_GROUP、NETWORK_ENDPOINT_GROUP 或 TARGET_POOL。如果回報端為 BACKEND,且負載平衡器類型為 PASSTHROUGH_NETWORK_LOAD_BALANCER,系統就會填入這個欄位。
backend_group_location 字串 後端群組的位置。可以是可用區或區域,取決於後端群組的範圍是可用區或區域。如果回報端為 BACKEND,且負載平衡器類型為 PASSTHROUGH_NETWORK_LOAD_BALANCER,系統就會填入這個欄位。如果後端群組類型為 TARGET_POOL,系統就不會填入這個欄位。
虛擬私人雲端 VpcDetails 負載平衡器的虛擬私有雲網路詳細資料

NatGatewayDetails 欄位格式

欄位 類型 說明
gateway_name 字串 Cloud NAT 閘道的名稱
router_name 字串 與 Cloud NAT 閘道相關聯的 Cloud Router 名稱
project_id 字串 Google Cloud Cloud NAT 閘道和 Cloud Router 的專案 ID
區域 字串 Cloud NAT 閘道和 Cloud Router 的區域
類型 字串 Cloud NAT 類型:PUBLIC 或 PRIVATE

NetworkServiceDetails 欄位格式

欄位 類型 說明
dscp int32 如果封包標頭有 Differentiated Services 欄位,這個欄位會填入 DSCP 值。

封包捨棄原因

下表說明 SRC 或 SRC_GATEWAY 回報時,drop_reason 欄位支援的值。

捨棄原因 說明
FIREWALL_DENY

系統評估了輸出防火牆規則,並執行「deny」動作,因此捨棄了傳出流量。

建議:如要允許這類流量,請調整防火牆規則。

NAT_ENDPOINT_INDEPENDENT_CONFLICT

發生與端點無關的對應衝突,因此傳出流量遭到捨棄。

建議:請參閱下列 Cloud NAT 說明文件:

NAT_OUT_OF_CONNECTIONS

NAT 連線追蹤表格已達容量上限,因此系統捨棄了傳出流量。

建議:查看每個 VM 的網路位址轉譯 (NAT) 連線限制和網路位址轉譯 (NAT) 逾時。

NAT_OUT_OF_PORTS

Cloud NAT 閘道已用盡可指派給 VM 的 NAT 2 元組 (通訊埠),因此捨棄傳出流量。因此,VM 網路介面無法使用閘道傳送封包。

建議:請確認 NAT IP 位址和每個 VM 的通訊埠分配數量充足。詳情請參閱「IP 位址和通訊埠」。

NO_MATCHING_ROUTE

由於沒有符合目的地的路徑,因此傳出流量遭到捨棄。

建議:使用 Google Cloud 控制台的「Effective Routes」(有效路徑) 專區,查看虛擬私有雲網路中的路徑。您也可以建立及執行 Connectivity Tests。

QUEUE_OVERFLOW

主機的封包處理軟體超出 CPU 容量,因此傳出流量遭到捨棄。

建議:如果封包持續遭到捨棄,建議使用頻寬較高 (Tier_1) 的 VM,或將流量分散至更多 VM。

SPOOFED_SOURCE

封包來源與 VM 網路介面無關聯,且 IP 轉送功能已關閉,因此傳出流量已捨棄。

建議:如要從 VM 網路介面傳送任意來源的封包,到虛擬私有雲網路內可轉送的目的地,您必須為 VM 啟用 IP 轉送功能。

TOO_MANY_CONNECTIONS

主機的封包處理軟體無法容納流量,因此傳出流量遭到捨棄。

建議:建議您改用專為大量連線設計的其他機器系列,或將工作負載分配至更多 VM。

下表說明 DEST 或 DEST_GATEWAY 回報時,drop_reason 欄位支援的值。

捨棄原因 說明
EARLY_DROPS_FULL_FAIR_QUEUE

主機的封包處理軟體強制執行資源公平性,因此捨棄傳入流量。這種行為通常只會影響第 1 代機器系列。

建議:如果持續發生掉幀情形,建議改用較新或效能較佳的機器系列。

FIREWALL_DENY

系統評估輸入防火牆規則後,發現其動作為「deny」,因此捨棄了輸入流量。

建議:如要允許這類流量,請調整防火牆規則。

INVALID_L4_CHECKSUM_INTERNET

偵測到核對和不符,因此已捨棄傳入流量。封包是從虛擬私有雲網路外部的來源,傳送至與 VM 回報者相關聯的目的地外部 IP 位址。詳情請參閱「輸入至虛擬私有雲網路以外的目的地」。

建議:如果持續發生丟失情形,請檢查來源或網路路徑的健康狀態。

INVALID_L4_CHECKSUM_INTERNAL

偵測到核對和不符,因此已捨棄傳入流量。封包在虛擬私有雲網路中轉送至與 VM 回報者相關聯的目的地 IP 位址。詳情請參閱「可透過虛擬私有雲網路轉送至目的地的輸入流量」。

建議:如果持續發生丟棄情形,請檢查來源或網路路徑的健康狀態。

PSC_NAT_OUT_OF_CONNECTIONS

Private Service Connect 端點已達到用戶的同時連線數量上限,因此捨棄傳入流量。

建議:請用戶降低連至這個 Private Service Connect 端點的新連線速率,或使用更多用戶端 VM,將連線分散至這個 Private Service Connect 端點。

PSC_NAT_OUT_OF_PORTS

Private Service Connect NAT 通訊埠耗盡,因此來自 Private Service Connect 用戶的傳入流量遭到捨棄。

建議:請檢查 NAT 子網路大小。

QUEUE_OVERFLOW

主機的封包處理軟體超出 CPU 容量,因此捨棄傳入流量。

建議:如果封包持續遭到捨棄,建議使用頻寬較高 (Tier_1) 的 VM,或將流量分散至更多 VM。

TOO_MANY_CONNECTIONS

主機的封包處理軟體無法容納流量,因此捨棄傳入流量。

建議:如果流量過高是因為 VM 層級的連線並行率或流失率過高,請考慮降低 VM 的新連線速率。

PrivateServiceConnectDetails 欄位格式

欄位 類型 說明
reporter 字串 Private Service Connect 回報者。可以是 CONSUMER 或 PRODUCER。
consumer_connection IpConnection 從用戶端角度描述流量的網路位址轉譯前 5 元組。如果回報者為 PRODUCER,則會填入。
psc_endpoint PrivateServiceConnectEndpointDetails 用戶端端點詳細資料
psc_attachment PrivateServiceConnectAttachmentDetails 供應端服務連結詳細資料

PrivateServiceConnectEndpointDetails 欄位格式

欄位 類型 說明
名稱 字串 Private Service Connect 端點的名稱。只有在 target_service_type 為 PUBLISHED_SERVICE 時,系統才會填入這個欄位。
project_id 字串 端點的Google Cloud 專案 ID。
區域 字串 端點的區域。如果目標服務類型為 GLOBAL_GOOGLE_APIS,則不會填入這個欄位。
psc_connection_id 字串 Private Service Connect 連線 ID
target_service_type 字串 目標服務類型。可以是 GLOBAL_GOOGLE_APIS 或 PUBLISHED_SERVICE。
虛擬私人雲端 VpcDetails 端點的虛擬私有雲網路詳細資料。 如果回報者是 PRODUCER,系統不會填入 subnetwork_name 和 subnetwork_region 欄位。

PrivateServiceConnectAttachmentDetails 欄位格式

欄位 類型 說明
名稱 字串 服務連結的名稱
project_id 字串 服務連結的Google Cloud 專案 ID
區域 字串 服務連結的區域
虛擬私人雲端 VpcDetails 服務連結的虛擬私有雲網路詳細資料

PrivateServiceConnectInterfaceDetails 欄位格式

欄位 類型 說明
network_attachment NetworkAttachmentDetails 用戶網路連結的中繼資料
producer ProducerDetails 發起連線的供應端中繼資料

NetworkAttachmentDetails 欄位格式

欄位 類型 說明
名稱 字串 網路連結的名稱
project_id 字串 網路連結的Google Cloud 專案 ID
區域 字串 網路連結的區域

ProducerDetails 欄位格式

欄位 類型 說明
project_id 字串 Google Cloud 供應商的專案 ID。只有在 service_class_id 欄位無法使用時,系統才會填入這個欄位。
區域 字串 供應商 VM 的區域
service_class_id 字串 生產者服務類別的 ID (如有)
儲存區 字串 供應商 VM 的可用區

ServerlessDetails 欄位格式

欄位 類型 說明
project_id 字串 Cloud Run 或 App Engine 資源所屬 Google Cloud 專案的 ID。在 Shared VPC 設定中,專案 ID 通常是服務專案的 ID。
區域 字串 Cloud Run 或 App Engine 資源的區域

可以是下列其中一項:

  • cloud_run_service_details
  • cloud_run_job_details
  • cloud_run_worker_pool_details
  • app_engine_service_details

可以是下列其中一項:

Cloud Run 或 App Engine 資源的名稱

CloudRunServiceDetails 欄位格式

欄位 類型 說明
service_name 字串 Cloud Run 服務名稱

CloudRunJobDetails 欄位格式

欄位 類型 說明
job_name 字串 Cloud Run 工作的名稱

CloudRunWorkerPoolDetails 欄位格式

欄位 類型 說明
worker_pool_name 字串 Cloud Run worker 集區的名稱

AppEngineServiceDetails 欄位格式

欄位 類型 說明
service_name 字串 App Engine 服務名稱

VpcDetails 欄位格式

欄位 類型 說明
project_id 字串 虛擬私有雲所在 Google Cloud 專案的 ID。在 Shared VPC 設定中,專案 ID 是主專案的 ID。
subnetwork_name 字串 子網路名稱 (如適用)
subnetwork_region 字串 子網路所在區域 (如適用)
vpc_name 字串 網路名稱

中繼資料註解

記錄包含基本欄位和中繼資料欄位。「記錄格式」一節會列出哪些欄位是中繼資料類型,哪些是基本類型。所有基本欄位一律會包含,您可以自訂要保留的中繼資料欄位。

  • 如果選取所有中繼資料,虛擬私有雲流量記錄格式中的所有中繼資料欄位都會納入流量記錄。記錄格式新增中繼資料欄位時,流量記錄會自動納入這些新欄位。

  • 如果未選取任何中繼資料,系統會省略所有中繼資料欄位。

  • 如果選取自訂中繼資料,可以依據父項欄位 (例如 src_vpc) 或完整名稱 (例如 src_vpc.project_id) 指定要納入的中繼資料欄位

    記錄格式新增中繼資料欄位時,除非這些欄位位於您指定要納入的上層欄位中,否則不會納入流程記錄。

    • 如果您使用父項欄位指定自訂中繼資料,當該父項欄位內的記錄格式新增中繼資料欄位時,流量記錄會自動納入新欄位。

    • 如果您使用欄位的全名指定自訂中繼資料,則新增至父項欄位的新中繼資料欄位會從流量記錄中排除。

如要瞭解如何自訂中繼資料欄位,請參閱「啟用虛擬私有雲流量記錄」或「更新虛擬私有雲流量記錄設定」。

跨專案註解

如果在組織層級啟用虛擬私有雲流量記錄,系統會為通過 Shared VPC、虛擬私有雲網路對接和 Network Connectivity Center 的流量加上跨專案註解。跨專案註解預設為啟用。您可以視需要停用這些註解。

  • 如果啟用跨專案註解,不同專案資源之間的流量記錄會包含流量兩端的資訊。
  • 如果停用跨專案註解,記錄檔只會包含流量回報者的資訊。

如果在專案層級啟用虛擬私有雲流量記錄,不同專案資源之間的流量不會加上跨專案註解。

GKE 註解

如果流量的端點位於 GKE 叢集,則可使用 GKE 中繼資料註解進行註解,其中可包含端點的叢集、Pod 和 Service 詳細資料。

GKE Service 註解

傳送至 ClusterIP、NodePort 或 LoadBalancer 的流量可以接收 Service 註解。如果傳送至 NodePort 或 LoadBalancer,流量會在連線的兩個躍點上接收 Service 註解。

直接傳送至 Pod Service 通訊埠的流量,會在目的地端點加上 Service 註解。

如果 Pod 在同一個 Service 通訊埠上支援多個 Service,則傳送至 Pod Service 通訊埠的流量,會在目的地端點上加上多個 Service 的註解。最多只能選取兩項服務。如果超過這個數量,端點會加上特殊的 MANY_SERVICES 標記。

網際網路流量的 Pod 註解

根據預設,Pod 和網際網路之間的流量不會收到 Pod 註解。虛擬私有雲流量記錄無法新增 Pod 註解,因為對於傳送至網際網路的封包,偽裝代理程式會在虛擬私有雲流量記錄看到封包之前,將 Pod IP 位址轉譯為節點 IP 位址。

由於偽裝,只有在目的地位於預設非偽裝目的地或自訂 nonMasqueradeCIDRs 清單中時,Pod 註解才會顯示。如果您在自訂 nonMasqueradeCIDRs 清單中加入網際網路目的地,則必須提供一種方法,將內部 Pod IP 位址轉譯後,再傳送至網際網路。無論是私人或非私人叢集,都可以使用 Cloud NAT。詳情請參閱「GKE 互動」。

捨棄流量的記錄

虛擬私有雲流量記錄會為遭捨棄的流量產生記錄。遭捨棄流量的記錄會與標準記錄分開產生。封包捨棄作業會依流量和捨棄原因匯總。在匯總時間間隔內,系統會將捨棄原因相同的封包合併為一筆記錄,並為每個不同的捨棄原因產生個別記錄。

輸出捨棄作業是由來源 (SRC 或 SRC_GATEWAY) 回報,輸入捨棄作業則由目的地 (DEST 或 DEST_GATEWAY) 回報。如果來源和目的地都啟用虛擬私有雲流量記錄,則會套用下列行為:

  • 輸出捨棄。如果來源端發生捨棄,系統會為來源產生標準記錄和包含捨棄原因的記錄。由於流量從未傳送至目的地,因此不會為目的地產生記錄。
  • Ingress 掉落物。如果目的地端發生丟棄,系統會為來源和目的地產生記錄。虛擬私有雲流量記錄會為來源產生標準記錄,並為目的地產生僅包含捨棄原因的記錄。

遭捨棄流量的記錄包含 disposition、drop_reason、bytes_dropped、packets_dropped 和 throughput_inclusion 欄位。

如需追蹤的封包捨棄原因清單,請參閱「封包捨棄原因」。

記錄篩選

啟用虛擬私有雲流量記錄時,您可以根據基本和中繼資料欄位設定篩選器,只保留符合篩選條件的記錄。所有其他記錄都會在寫入 Logging 前捨棄。

您可以篩選「記錄格式」中列出的任何欄位子集,但下列欄位除外:

  • rtt_msec
  • bytes_sent
  • packets_sent
  • start_time
  • end_time
  • bytes_dropped
  • packets_dropped
  • throughput_inclusion

虛擬私有雲流量記錄篩選功能使用 CEL,這是一種嵌入式運算式語言,用於以屬性為基礎的邏輯運算式。虛擬私有雲流量記錄的篩選運算式長度上限為 2,048 個字元。詳情請參閱「支援的 CEL 邏輯運算子」。

如要進一步瞭解 CEL,請參閱 CEL 簡介和語言定義。產生篩選器功能支援部分 CEL 語法。

如要建立使用記錄篩選功能的虛擬私有雲流量記錄設定,請參閱「啟用虛擬私有雲流量記錄」。如要為現有的虛擬私有雲流量記錄設定記錄篩選功能,請參閱「更新虛擬私有雲流量記錄設定」。如需記錄檔篩選器範例,請參閱「記錄檔篩選器範例」。

支援的 CEL 邏輯運算子

運算式 支援的類型 說明
true/false 布林值 布林值常數

x == y

x != y

boolean、int、string

比較運算子

範例:connection.protocol == 6

x && y

x || y

布林值

布林邏輯運算子

範例:connection.protocol == 6 && src_instance.vm_name == "vm_1"

!x 布林值 否定
1、2.0、0、... 整數 常數數值常值
x + y 字串 字串串連
"foo", 'foo', ... 字串 常數字串常值
x.lower() 字串 傳回字串的小寫值
x.upper() 字串 傳回字串的大寫值
x.contains(y) 字串 如果字串包含指定子字串,則傳回「是」
x.startsWith(y) 字串 如果字串開頭為指定子字串,則傳回 true
x.endsWith(y) 字串 如果字串結尾是指定子字串,則傳回 true
inIpRange(X, Y) 字串

如果 X 是 IP,且 Y 是包含 X 的 IP 範圍,則傳回 true

範例:inIpRange("1.2.3.1", "1.2.3.0/24")

x.containsFieldValue(y) x:清單
y:對應(字串、字串)

如果清單包含的物件欄位與指定的鍵/值組合相符,則傳回「是」

範例:dest_gke_details.service.containsFieldValue({'service_name': 'service1', 'service_namespace': 'namespace1'})

has(x) string

如果欄位存在,則傳回 true。

App Hub 標籤

如果 Google Cloud 資源已註冊為 App Hub 工作負載或服務,記錄檔會包含應用程式專屬標籤。VPC Flow Logs 包含下列資源相關流量的標籤:

  • Compute Engine 代管執行個體群組
  • GKE Pod (CRON_JOB、DAEMON_SET、DEPLOYMENT 和 STATEFUL_SET 工作負載類型)
  • 設定為使用直連虛擬私有雲輸出的 Cloud Run 服務和工作
  • 轉送規則

在適用情況下,每筆記錄最多會附加一個來源資源和一個目的地資源的 App Hub 標籤。如果是轉送規則,CLIENT 和 BACKEND 欄位會決定轉送規則是來源還是目的地資源。

App Hub 標籤與虛擬私有雲流量記錄中繼資料註解不同,虛擬私有雲流量記錄中繼資料和記錄篩選設定不適用於這些標籤。

後續步驟