檢查 VPN 狀態

設定對等互連 VPN 閘道後,請檢查下列元件,確保這些元件可正確與 Cloud VPN 通訊:

  • 檢查您設定的 HA VPN 或傳統版 VPN 通道的狀態,包括運作狀態。
  • 檢查高可用性 VPN 閘道上的通道高可用性狀態。
  • 查看 Cloud Router 邊界閘道協定 (BGP) 工作階段的狀態,或 Cloud Router 正在通告的路徑。

如要進一步瞭解 Cloud VPN,請參閱下列資源:

  • 如要瞭解設定 Cloud VPN 前應考慮的最佳做法,請參閱「最佳做法」。

  • 如要進一步瞭解 Cloud VPN,請參閱 Cloud VPN 總覽

  • 如需本頁所用詞彙的定義,請參閱「重要術語」。

檢查高可用性 VPN 通道

請按照這個程序,檢查高可用性 VPN 閘道兩個介面的通道狀態。

主控台

  1. 前往 Google Cloud 控制台的「VPN」VPN頁面。

    前往 VPN

  2. 查看 VPN 通道狀態BGP 工作階段狀態

  3. 如要查看通道詳細資料,請按一下通道的「名稱」

  4. 在「Logs」下方,按一下「View」,查看 Cloud Logging 記錄。

  5. 您也可以修改與此通道相關聯的 BGP 工作階段。

gcloud

查看隧道狀態有兩個步驟。首先,請找出隧道名稱和區域,然後使用 describe 指令選項查看隧道詳細資料。

在下列指令中,請這樣取代:

  • PROJECT_ID:專案 ID
  • GW_NAME:閘道名稱
  • REGION:閘道或通道所在的區域
  • NAME:通道名稱

如要查看隧道狀態,請完成下列步驟:

  1. 找出您需要檢查狀態的 VPN 通道名稱和地區。您可以使用下列任一方法來識別隧道:

    1. 選項 1:如要列出專案中的所有 VPN 通道,請執行下列指令:

      gcloud compute vpn-tunnels list
        --project=PROJECT_ID
      

      指令輸出內容應如下列範例所示:

      NAME                REGION       GATEWAY      VPN_INTERFACE  PEER_ADDRESS
      tunnel-a-to-b-if-0  us-central1  ha-vpn-gw-a  0              10.242.123.165
      tunnel-a-to-b-if-1  us-central1  ha-vpn-gw-a  1              10.220.75.213
      tunnel-b-to-a-if-0  us-central1  ha-vpn-gw-b  0              10.242.127.148
      tunnel-b-to-a-if-1  us-central1  ha-vpn-gw-b  1              10.220.66.156
      
    2. 選項 2:如果您知道包含通道的 VPN 閘道的名稱,請執行下列指令,擷取閘道相關聯通道的清單:

      gcloud compute vpn-gateways describe GW_NAME \
        --region=REGION \
        --project=PROJECT_ID \
        --format='flattened(tunnels)'
      
  2. 知道隧道的名稱和區域後,請使用 vpn-tunnels 指令的 describe 選項,判斷隧道的狀態:

    gcloud compute vpn-tunnels describe NAME \
       --region=REGION \
       --project=PROJECT_ID \
       --format='flattened(status,detailedStatus)'
    

    系統會傳回基本狀態訊息和更詳細的訊息。指令輸出內容應如下列範例所示。如需完整清單,請省略 --format 選項。

    detailedStatus: Tunnel is up and running.
    

    下列四個指令輸出範例會顯示兩個互相連線的高可用性 VPN 閘道,每個閘道都有一組通道的完整清單。也就是說,在 ha-vpn-gw-a 上,interface 0interface 1 上的通道會連線至 ha-vpn-gw-b 對應介面的通道。

    範例 1:tunnel-a-to-b-if-0

     creationTimestamp: '2018-10-11T13:12:33.851-07:00'
     description: ''
     detailedStatus: Tunnel is up and running.
     id: '2919847494518181982'
     ikeVersion: 2
     kind: compute#vpnTunnel
     labelFingerprint: LABEL_FINGERPRINT
     localTrafficSelector:
     — 0.0.0.0/0
     name: tunnel-a-to-b-if-0
     peerIp: GW_A_IF_0_IP
     region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1
     remoteTrafficSelector:
     — 0.0.0.0/0
     router: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a
     selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-0
     sharedSecret: '*************'
     sharedSecretHash: SECRET_HASH
     vpnGateway: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnGateways/ha-vpn-gw-a
     vpnGatewayInterface: 0
    

    範例 2:tunnel-a-to-b-if-1

     creationTimestamp: '2018-10-11T13:14:21.630-07:00'
     description: ''
     detailedStatus: Tunnel is up and running.
     id: '178016642781024754'
     ikeVersion: 2
     kind: compute#vpnTunnel
     labelFingerprint: LABEL_FINGERPRINT
     localTrafficSelector:
     —0.0.0.0/0
     name: tunnel-a-to-b-if-1
     peerIp: GW_B_IF_1_IP
     region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1
     remoteTrafficSelector:
     — 0.0.0.0/0
     router: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-a
     selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-1
     sharedSecret: '*************'
     sharedSecretHash: SECRET_HASH
     vpnGateway: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnGateways/ha-vpn-gw-a
     vpnGatewayInterface: 1
    

    範例 3:tunnel-b-to-a-if-0

     creationTimestamp: '2018-10-11T13:16:19.345-07:00'
     description: ''
     detailedStatus: Tunnel is up and running.
     id: '1183416925692236156'
     ikeVersion: 2
     kind: compute#vpnTunnel
     labelFingerprint: LABEL_FINGERPRINT
     localTrafficSelector:
     — 0.0.0.0/0
     name: tunnel-b-to-a-if-0
     peerIp: GW_A_IF_0_IP
     region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1
     remoteTrafficSelector:
     — 0.0.0.0/0
     router: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-b
     selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-0
     sharedSecret: '*************'
     sharedSecretHash: SECRET_HASH
     vpnGateway: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnGateways/ha-vpn-gw-b
     vpnGatewayInterface: 0
    

    範例 4:tunnel-b-to-a-if-1

     creationTimestamp: '2018-10-11T13:19:01.562-07:00'
     description: ''
     detailedStatus: Tunnel is up and running.
     id: '8199247227773914842'
     ikeVersion: 2
     kind: compute#vpnTunnel
     labelFingerprint: LABEL_FINGERPRINT
     localTrafficSelector:
     — 0.0.0.0/0
     name: tunnel-b-to-a-if-1
     peerIp: GW_A_IF_1_IP
     region: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1
     remoteTrafficSelector:
     — 0.0.0.0/0
     router: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/routers/router-b
     selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-1
     sharedSecret: '*************'
     sharedSecretHash: SECRET_HASH
     vpnGateway: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnGateways/ha-vpn-gw-b
     vpnGatewayInterface: 1
    

API

如要查看隧道詳細資料,您可以使用下列任一 API 呼叫:

  • 如要列出特定專案和區域中所有 VPN 通道的屬性和狀態,請使用 vpnTunnels.list 方法發出 GET 要求:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnTunnels
    
  • 如要列出特定專案和區域中特定通道的屬性和狀態,請使用 vpnTunnels.get 方法發出 GET 要求:

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

檢查傳統版 VPN 通道

請按照這個程序,檢查 Classic VPN 閘道上的通道狀態。

主控台

  1. 前往 Google Cloud 控制台的「VPN」VPN頁面。

    前往 VPN

  2. 查看 VPN 通道狀態BGP 工作階段狀態

  3. 如要查看通道詳細資料,請按一下通道的「名稱」

  4. 在「Logs」下方,按一下「View」查看記錄記錄。

  5. 您也可以修改與此通道相關聯的 BGP 工作階段。

gcloud

檢查傳統版 VPN 通道狀態的程序與高可用性 VPN 類似。

在下列指令中,請這樣取代:

  • PROJECT_ID:專案 ID
  • GW_NAME:閘道名稱
  • REGION:閘道或通道所在的區域
  • NAME:通道名稱

如要查看隧道狀態,請完成下列步驟:

  1. 找出您需要檢查狀態的 VPN 通道名稱和地區。您可以使用下列任一方法來識別隧道:

    1. 選項 1:如要列出專案中的所有 VPN 通道,請執行下列指令:

      gcloud compute vpn-tunnels list
        --project=PROJECT_ID
      
    2. 選項 2:如果您知道包含通道的 VPN 閘道的名稱,請執行下列指令,擷取閘道相關聯通道的清單:

      gcloud compute target-vpn-gateways describe GW_NAME \
        --region=REGION \
        --project=PROJECT_ID \
        --format='flattened(tunnels)'
      
  2. 請執行下列指令,描述隧道以判斷其狀態。系統會傳回基本狀態訊息和更詳細的訊息。如需完整清單,請省略 --format 選項。

    gcloud compute vpn-tunnels describe NAME \
        --region=REGION \
        --project=PROJECT_ID \
        --format='flattened(status,detailedStatus)'
    

API

如要查看隧道詳細資料,您可以使用下列任一 API 呼叫:

  • 如要列出特定專案和區域中所有 VPN 通道的屬性和狀態,請使用 vpnTunnels.list 方法發出 GET 要求:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnTunnels
    
  • 如要列出特定專案和區域中特定通道的屬性和狀態,請使用 vpnTunnels.get 方法發出 GET 要求:

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

檢查傳統版 VPN 轉送規則

請按照這個程序檢查為傳統版 VPN 閘道建立的轉送規則。

主控台

  1. 前往 Google Cloud 控制台的「VPN」VPN頁面。

    前往 VPN

  2. 按一下「閘道名稱」

  3. 在「VPN 詳細資料」頁面中,查看您建立的轉送規則。

gcloud

如要查看特定區域中 Classic VPN 網關的轉送規則,請執行下列指令:

gcloud compute target-vpn-gateways describe GW_NAME
    --region=REGION \
    --project=PROJECT_ID

API

如要查看特定區域中傳統版 VPN 閘道的轉送規則,請使用 targetVpnGateways.get 方法。將 RESOURCE_ID 替換為閘道的名稱。

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

解讀通道狀態訊息

如要解讀控制台或 Google Cloud CLI 中的通道狀態訊息,請參閱下表。 Google Cloud

狀態 詳細狀態訊息 附註
正在配置資源。 正在配置資源。VPN 通道即將啟動。 新建立的 Cloud VPN 通道的初始狀態。
正在等待完整設定 正在等待路徑設定。 正在準備路徑或轉送設定。
初次交握 與對等端的握手因不明原因而中斷。系統即將再次嘗試。 與對等 VPN 進行階段 1 (IKE SA) 協商。可能至少失敗了一次。
已建立 通道已啟動且正在執行。 通道已啟動,且已設定路徑。
沒有任何連入封包 沒有來自對等端的封包。 沒有從對等 VPN 閘道接收任何流量。

檢查高可用性 VPN 閘道的高可用性狀態

如要檢查高可用性 VPN 閘道上通道的高可用性設定狀態,請使用 Google Cloud 控制台、compute vpn-gateways get-status 指令或 vpnGateways.getStatus 方法。

輸出內容會顯示高可用性冗餘需求狀態,適用於與 HA VPN 閘道連線的每個對等點閘道相關聯的 VPN 通道。

對等互連閘道可以是另一個高可用性 VPN 閘道或外部 VPN 閘道。如果有多個對等互連閘道連線至高可用性 VPN 閘道,系統會顯示多個高可用性設定狀態,每個對等互連閘道各顯示一個狀態。

指令輸出內容會以以下方式指出正確的隧道數量和涵蓋率:

  • 設定了足夠備援 (涵蓋範圍) 的 VPN 閘道會顯示下列狀態:
    HighAvailabilityRedundancyRequirementState: CONNECTION_REDUNDANCY_MET
  • 未設定足夠備援功能的 VPN 閘道會顯示以下狀態:
    HighAvailabilityRedundancyRequirementState: CONNECTION_REDUNDANCY_NOT_MET
  • 如果高可用性 VPN 閘道與另一個高可用性 VPN 閘道或對等互連閘道之間的通道數量不足,指令輸出內容會顯示以下狀態:
    redundancyUnsatisfiedReason: INCOMPLETE_TUNNELS_COVERAGE

詳情請參閱「查看記錄和指標」。

主控台

  1. 前往 Google Cloud 控制台的「VPN」VPN頁面。

    前往 VPN

  2. 如要查看閘道和隧道的閘道詳細資料,請按一下「閘道名稱」。對於高可用性 VPN 閘道,您也可以查看閘道的高可用性狀態。

gcloud

如要顯示 HA VPN 閘道的通道狀態,請執行下列指令。更改下列內容:

  • GW_NAME:高可用性 VPN 閘道的名稱
  • REGION:閘道所在的區域
gcloud compute vpn-gateways get-status GW_NAME \
    --region=REGION

以下指令輸出範例會顯示 HA VPN 閘道連線至具有兩個介面的對等互連閘道的資訊:

  peerGateways:
  — peerExternalGateway: peer-gw
  tunnels:
  — localGatewayInterface: 0
    peerGatewayInterface: 0
    tunnelUrl:
    https://www.googleapis.com/compute/v1/projects/PROJECT_ID/
    regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-0
  — localGatewayInterface: 1
    peerGatewayInterface:1
    tunnelUrl:
    https://www.googleapis.com/compute/v1/projects/PROJECT_ID/
    regions/us-central1/vpnTunnels/tunnel-a-to-on-prem-if-1
    HighAvailabilityRedundancyRequirementState:
      state: CONNECTION_REDUNDANCY_MET

以下指令輸出範例是針對兩個互相連線的高可用性 VPN 閘道。針對這類設定,請為每個高可用性 VPN 閘道名稱執行下列指令:

  • 取得 ha-vpn-gw-a 的狀態,會顯示其與 ha-vpn-gw-b 的連線:

    peerGateways:
    — peerGcpGateway: ha-vpn-gw-b
    tunnels:
    — localGatewayInterface: 0
      peerGatewayInterface: 0
      tunnelUrl:
      https://www.googleapis.com/compute/v1/projects/PROJECT_ID/
      regions/us-central1/vpnTunnels/tunnel-a-to-b-if-0
    — localGatewayInterface: 1
      peerGatewayInterface: 1
      tunnelUrl:
      https://www.googleapis.com/compute/v1/projects/PROJECT_ID/
      regions/us-central1/vpnTunnels/tunnel-a-to-b-if-1
      HighAvailabilityRedundancyRequirementState:
        state: CONNECTION_REDUNDANCY_MET
    
  • 取得 ha-vpn-gw-b 的狀態,會顯示其與 ha-vpn-gw-a 的連線:

    peerGateways:
    — peerGcpGateway: ha-vpn-gw-a
    tunnels:
    — localGatewayInterface: 0
      peerGatewayInterface: 0
      tunnelUrl:
      https://www.googleapis.com/compute/v1/projects/PROJECT_ID/
      regions/us-central1/vpnTunnels/tunnel-b-to-a-if-0
    — localGatewayInterface: 1
      peerGatewayInterface: 1
      tunnelUrl:
      https://www.googleapis.com/compute/v1/projects/PROJECT_ID/
      regions/us-central1/vpnTunnels/tunnel-b-to-a-if-1
      HighAvailabilityRedundancyRequirementState:
        state: CONNECTION_REDUNDANCY_MET
    

下列指令輸出範例是針對一個高可用性 VPN 閘道,該閘道已連線至具有兩個連線和四個 IP 位址的 AWS 虛擬閘道:

  peerGateways:
  - peerExternalGateway: peer-gw
  tunnels:
   - localGatewayInterface: 0
     peerGatewayInterface: 0
     tunnelUrl:
     https://www.googleapis.com/compute/v1/projects/PROJECT_ID/
     regions/us-central1/vpnTunnels/tunnel-a-to-aws-connection-0-ip0
   - localGatewayInterface: 0
     peerGatewayInterface: 1
     tunnelUrl:
     https://www.googleapis.com/compute/v1/projects/PROJECT_ID/
     regions/us-central1/vpnTunnels/tunnel-a-to-aws-connection-0-ip1
   - localGatewayInterface: 1
     peerGatewayInterface: 2
     tunnelUrl:
     https://www.googleapis.com/compute/v1/projects/PROJECT_ID/
     regions/us-central1/vpnTunnels/tunnel-a-to-aws-connection-1-ip0
   - localGatewayInterface: 1
     peerGatewayInterface: 3
     tunnelUrl:
     https://www.googleapis.com/compute/v1/projects/PROJECT_ID/
     regions/us-central1/vpnTunnels/tunnel-a-to-aws-connection-1-ip1
     HighAvailabilityRedundancyRequirementState:
       state: CONNECTION_REDUNDANCY_MET

以下指令輸出範例適用於兩個互相連線的高可用性 VPN 閘道,並使用單一通道連線。這項設定不符合 99.99% 可用性的服務水準協議:

  peerGateways:
    - peerGcpGateway: ha-vpn-gw-a
    tunnels:
    - localGatewayInterface: 0
      peerGatewayInterface: 0
      tunnelUrl:
      https://www.googleapis.com/compute/v1/projects/PROJECT_ID/
      regions/us-central1/vpnTunnels/tunnel-b-to-a-if-0
      HighAvailabilityRedundancyRequirementState:
        state: CONNECTION_REDUNDANCY_NOT_MET
      detailedStatus:
        redundancyUnsatisfiedReason: INCOMPLETE_TUNNELS_COVERAGE

API

如要取得特定專案和區域中特定 HA VPN 閘道的狀態,請使用 vpnGateways.getStatus 方法提出 GET 要求:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/vpnGateways/GATEWAY_NAME/getStatus

檢查 BGP 狀態

如果是使用 BGP 動態轉送的通道,您可以檢查 Cloud Router 狀態,查看詳細資料,例如路由器 BGP 工作階段的狀態,或 Cloud Router 正在通告的路徑。

後續步驟

  • 如要使用高可用性和高總處理量情境或多個子網路情境,請參閱「進階設定」。
  • 如要解決使用 Cloud VPN 時可能遇到的常見問題,請參閱疑難排解