檢查 VPN 狀態

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

  • 檢查您設定的高可用性 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. 在「記錄」下方,按一下 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 通道

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

控制台

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

    前往 VPN

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

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

  4. 在「Logs」(記錄) 底下,按一下「View」(查看) 即可查看 Logging 記錄。

  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 details」(VPN 詳細資料) 頁面中,查看您建立的轉送規則。

gcloud

如要查看特定區域中傳統版 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 控制台或 Google Cloud CLI 的通道狀態訊息,請參閱下表。

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

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

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

輸出內容會顯示與每個對等互連閘道相關聯的 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

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

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

下列指令輸出範例顯示高可用性 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

如要取得特定專案和區域中特定高可用性 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 時可能遇到的常見問題,請參閱「疑難排解」。