排解 MACsec 問題

本頁說明如何排解 Cloud Interconnect 的 MACsec 問題。

嘗試建立新金鑰時,Cloud Interconnect 顯示錯誤訊息

如果您有現有的 MACsec 金鑰,但沒有開始時間,且您嘗試建立新金鑰,Cloud Interconnect 會顯示錯誤。如要解決這項錯誤,請更新現有機碼的開始時間

Cloud Interconnect 連線的 MACsec 運作中斷

您已在 Cloud Interconnect 連線和地端部署路由器上成功啟用 MACsec,但 MACsec 工作階段顯示 Cloud Interconnect 連線連結的運作狀態為「關閉」。問題可能由下列原因造成:

  • 地端部署路由器和 Google 邊緣路由器上的有效金鑰不相符。
  • 地端部署路由器與 Google 邊緣路由器之間的 MACsec 協定不符。

如要解決 MACsec 狀態問題,請按照下列步驟操作:

  1. 如要確認 Cloud Interconnect 連線已啟用 MACsec,請選取下列其中一個選項:

    控制台

    1. 前往 Cloud de Confiance 控制台的 Cloud Interconnect「實體連線」分頁。

      前往「實體連線」

    2. 選取要查看的 Cloud Interconnect 連線。

    3. 在「MACsec」分頁中,確認「MACsec 設定」顯示下列其中一項:

      • 已啟用 (無法開啟):連結已啟用 MACsec 加密。 如果兩端之間未建立 MACsec 加密,則連結會在沒有加密的情況下運作。

      • 已啟用 (無法關閉):連結已啟用 MACsec 加密功能。如果兩端之間未建立 MACsec 加密連線,連結就會失敗。

    gcloud

    gcloud compute interconnects describe INTERCONNECT_CONNECTION_NAME
    

    INTERCONNECT_CONNECTION_NAME 改成 Cloud Interconnect 連線的名稱。

    輸出結果大致如下。確認畫面顯示「macsecEnabled: true」:

    adminEnabled: true
    availableFeatures:
    - IF_MACSEC
    circuitInfos:
    - customerDemarcId: fake-peer-demarc-0
      googleCircuitId: LOOP-0
      googleDemarcId: fake-local-demarc-0
    creationTimestamp: '2021-10-05T03:39:33.888-07:00'
    customerName: Fake Company
    description: something important
    googleReferenceId: '123456789'
    id: '12345678987654321'
    interconnectAttachments:
    - https://www.googleapis.com/compute/v1/projects/my-project1/regions/us-central1/interconnectAttachments/interconnect-123456-987654321-0
    interconnectType: IT_PRIVATE
    kind: compute#interconnect
    labelFingerprint: 12H17262736_
    linkType: LINK_TYPE_ETHERNET_10G_LR
    location: https://www.googleapis.com/compute/v1/projects/my-project1/global/interconnectLocations/cbf-zone2-65012
    macsec:
      failOpen: false
      preSharedKeys:
      - name: key1
        startTime: 2023-07-01T21:00:01.000Z
    macsecEnabled: true
    name: INTERCONNECT_CONNECTION_NAME
    operationalStatus: OS_ACTIVE
    provisionedLinkCount: 1
    requestedFeatures:
    - IF_MACSEC
    requestedLinkCount: 1
    selfLink: https://www.googleapis.com/compute/v1/projects/my-project1/global/interconnects/INTERCONNECT_CONNECTION_NAME
    selfLinkWithId: https://www.googleapis.com/compute/v1/projects/my-project1/global/interconnects/12345678987654321
    state: ACTIVE
    
  2. 如要檢查 Cloud Interconnect 連接埠狀態、MACsec 運作狀態和有效金鑰名稱,請使用下列任一選項:

    控制台

    1. 前往 Cloud de Confiance 控制台的 Cloud Interconnect「實體連線」分頁。

      前往「實體連線」

    2. 選取要查看的 Cloud Interconnect 連線。

    3. 在「Link circuit info」(連結電路資訊) 中,確認所有連結的「Link state」(連結狀態) 都顯示「Active」(運作中)

    4. 確認「MACsec 金鑰名稱」會為所有連結顯示金鑰名稱,且每個金鑰名稱都會顯示「這個連結的 MACsec 已開始運作」或「這個連結的 MACsec 已停止運作」

    gcloud

    gcloud compute interconnects get-diagnostics INTERCONNECT_CONNECTION_NAME \
        --project=PROJECT_NAME
    

    PROJECT_NAME 替換為您的Cloud de Confiance 專案名稱。

    輸出結果大致如下。確認 links.lacpStatus.state 顯示 ACTIVElinks.macsec.ckn 顯示值,且 links.operationalStatus 顯示 LINK_OPERATIONAL_STATUS_UP

    bundleAggregationType: BUNDLE_AGGREGATION_TYPE_STATIC
    bundleOperationalStatus: BUNDLE_OPERATIONAL_STATUS_UP
    links:
    - circuitId: LOOP-0
      googleDemarc: fake-local-demarc-0
      lacpStatus:
        googleSystemId: '00:11:22:33:44:55'
        neighborSystemId: '55:44:33:22:11:00'
        state: ACTIVE
      macsec:
        ckn: 0101010189abcdef...0123456789abcdef
        operational: false
      operationalStatus: LINK_OPERATIONAL_STATUS_UP
      receivingOpticalPower:
        state: OK
        value: -2.49
      transmittingOpticalPower:
        state: OK
        value: -0.88
    macAddress: 00:11:22:33:44:55
    

    如果沒有顯示 links.macsec.ckn 的值,請聯絡Cloud de Confiance by S3NS 支援團隊尋求協助。

  3. 如要驗證有效金鑰的 CAK 和 CKN 值,以及金鑰的開始時間,請選取下列其中一個選項:

    控制台

    1. 在「MACsec」分頁中,前往「預先共用金鑰」部分,然後按一下有效金鑰旁的「查看」。如果沒有顯示 CKN 值,請與 Cloud de Confiance by S3NS 支援團隊聯絡以尋求協助。

    2. 預先共用金鑰 部分,確認有效金鑰列出的開始時間與您的地端部署路由器上的開始時間相符。執行下列其中一個步驟:

      • 如果值不相符,請參閱路由器的手冊,更新路由器上的值,然後確認是否可以建立 MACsec 工作階段。

      • 如果值相符,但 MACsec 工作階段在連結上仍處於運作中斷狀態,請繼續下一個步驟。

    gcloud

    1. 執行 gcloud compute interconnects get-diagnostics 指令,顯示有效金鑰的 CKN 值。

      如果設定了多個金鑰,系統會選取開始時間最近且未來的金鑰做為有效金鑰。Google 邊緣路由器會拒絕任何嘗試使用舊金鑰的新 MACsec 工作階段。

    2. 取得 MACsec 設定,然後記下與先前顯示的 CKN 值對應的 CAK 值和金鑰的開始時間:

      gcloud compute interconnects macsec get-config INTERCONNECT_CONNECTION_NAME
      

      INTERCONNECT_CONNECTION_NAME 替換為 Cloud Interconnect 連線的名稱。

      輸出結果會與下列內容相似;請尋找 ckn

      preSharedKeys:
      - name: key1
        ckn: 0101010189abcdef...0123456789abcdef
        cak: 0123456789abcdef...0123456789abcdef
        startTime: 2023-07-01T12:12:12Z
      - name: key2
        ckn: 0202020289abcdef...0123456789abcdef
        cak: 0123456789abcdef...0123456789abcdef
        startTime: 2023-08-01T12:12:12Z
      
    3. 確認地端部署路由器上的有效 CKN、CAK 和開始時間,與 Cloud Interconnect 的 MACsec 顯示的值相符。執行下列其中一個步驟:

      • 如果值不相符,請參閱路由器的手冊,更新路由器上的值,然後確認是否可以建立 MACsec 工作階段。

      • 如果值相符,但 MACsec 工作階段在連結上仍處於運作中斷狀態,請繼續下一個步驟。

  4. 查看指標,判斷封包是否在 Cloud Interconnect 連線的輸入或輸出端遭到捨棄。如要瞭解如何查看指標,請參閱「監控連線」。

    如要決定後續步驟,請按照下列步驟操作:

    • 如果 network/interconnect/link/macsec/received_errors_count 正在遞增,表示封包因錯誤而遭到捨棄,導致 Cloud Interconnect 連線輸入流量減少。這表示地端部署路由器和 Google 邊緣路由器之間的通訊協定不符。檢查地端部署路由器的記錄,以進行疑難排解。

    • 如果下列任一計數器遞增,請與支援團隊聯絡,尋求進一步協助:Cloud de Confiance by S3NS

      • network/interconnect/link/macsec/received_dropped_packets_count
      • network/interconnect/link/macsec/send_errors_count
      • network/interconnect/link/macsec/send_dropped_packets_count
    • 如果下列計數器都沒有遞增,表示封包在您的地端部署路由器輸出端遭到捨棄。檢查地端部署路由器的記錄,以便疑難排解。

      • network/interconnect/receive_errors_count
      • network/interconnect/received_unicast_packets_count
      • network/interconnect/link/macsec/received_control_packets_count
      • network/interconnect/link/macsec/received_data_packets_count
      • network/interconnect/link/macsec/received_errors_count
      • network/interconnect/link/macsec/received_dropped_packets_count

MACsec 運作中,但發生封包遺失

您已成功為 Cloud Interconnect 啟用 MACsec,且 MACsec 運作正常,但發生封包遺失問題。

如果 MACsec 連線正常運作,但 Cloud Interconnect 的連結聚合控制通訊協定 (LACP) 狀態為 Detached,請確認地端部署路由器已啟用安全通道 ID (SCI)。詳情請參閱設定地端部署路由器

查看指標,判斷封包是否在 Cloud Interconnect 連線的輸入或輸出端遭到捨棄。如要瞭解如何查看指標,請參閱「監控連線」。如果 Cloud Interconnect 連線未顯示任何封包錯誤或遺失,請繼續檢查 MACsec 路由器:

  • 如果 network/interconnect/link/macsec/received_errors_count 正在遞增,表示封包因錯誤而遭捨棄,位置在 Cloud Interconnect 連線的輸入端。這表示地端部署路由器與 Google 邊緣路由器之間存在通訊協定不符的問題。檢查地端部署路由器的記錄,以排解問題。

  • 如果下列任一計數器遞增,請與 Cloud de Confiance by S3NS 支援團隊聯絡,尋求進一步協助:

    • network/interconnect/link/macsec/received_dropped_packets_count
    • network/interconnect/link/macsec/send_errors_count
    • network/interconnect/link/macsec/send_dropped_packets_count
  • 如果下列計數器都沒有遞增,表示封包在您的地端部署路由器的輸出端遭到捨棄。檢查地端部署路由器記錄,以進行疑難排解。

    • network/interconnect/receive_errors_count
    • network/interconnect/received_unicast_packets_count
    • network/interconnect/link/macsec/received_control_packets_count
    • network/interconnect/link/macsec/received_data_packets_count
    • network/interconnect/link/macsec/received_errors_count
    • network/interconnect/link/macsec/received_dropped_packets_count

啟用容錯開放行為時,排解 MACsec 問題

如果您啟用 Cloud Interconnect 的 MACsec,並採用故障開放行為,即使無法成功建立 MACsec 工作階段,Cloud Interconnect 連線仍會繼續轉送流量。強烈建議您避免在正式版 Cloud Interconnect 連線上使用故障開放行為,以免以明文傳輸封包。

如要判斷 MACsec 連線的設定和狀態,請執行下列操作:

  1. 如要驗證 Cloud Interconnect 連線狀態,請選取下列任一選項:

    控制台

    1. 前往 Cloud de Confiance 控制台的 Cloud Interconnect「實體連線」分頁。

      前往「實體連線」

    2. 選取要查看的 Cloud Interconnect 連線。

    3. 在「MACsec」分頁中,確認「MACsec configuration」(MACsec 設定) 顯示「Enabled, fail open」(已啟用,失敗時開啟)

    gcloud

    gcloud compute interconnects describe INTERCONNECT_CONNECTION_NAME
    

    INTERCONNECT_CONNECTION_NAME 改成 Cloud Interconnect 連線的名稱。

    輸出內容會與下列內容類似;請找出設為 truemacsec failOpen,以及設為 truemacsecEnabled

    availableFeatures:
    - IF_MACSEC
    adminEnabled: true
    circuitInfos:
    - customerDemarcId: fake-peer-demarc-0
      googleCircuitId: LOOP-0
      googleDemarcId: fake-local-demarc-0
    creationTimestamp: '2021-10-05T03:39:33.888-07:00'
    customerName: Fake Customer
    description: <something>
    googleReferenceId: '123456789'
    id: '12345678987654321'
    interconnectAttachments:
    - https://www.googleapis.com/compute/prod/projects/my-project1/regions/us-central1/interconnectAttachments/interconnect-123456-123456789-0
    interconnectType: IT_PRIVATE
    kind: compute#interconnect
    labelFingerprint: 42WmSpB8rSM=
    linkType: LINK_TYPE_ETHERNET_10G_LR
    location: https://www.googleapis.com/compute/prod/projects/my-project1/global/interconnectLocations/cbf-zone2-65012
    macsec:
      failOpen: true
      preSharedKeys:
      - name: key3
        startTime: '2023-07-01T21:00:01.000Z'
    macsecEnabled: true
    name: INTERCONNECT_CONNECTION_NAME
    operationalStatus: OS_ACTIVE
    provisionedLinkCount: 1
    requestedFeatures:
    - IF_MACSEC
    requestedLinkCount: 1
    selfLink: https://www.googleapis.com/compute/prod/projects/my-project1/global/interconnects/INTERCONNECT_CONNECTION_NAME
    selfLinkWithId: https://www.googleapis.com/compute/prod/projects/my-project1/global/interconnects/INTERCONNECT_CONNECTION_NAME/12345678987654321
    state: ACTIVE
    

    在本範例中,macsec.failopen 會顯示 true,而 macsecEnabled 則會顯示 true

  2. 如要查看 Cloud Interconnect 連線的連接埠狀態、MACsec 運作狀態和有效金鑰名稱,請選取下列其中一個選項:

    控制台

    1. 前往 Cloud de Confiance 控制台的 Cloud Interconnect「實體連線」分頁。

      前往「實體連線」

    2. 選取要查看的 Cloud Interconnect 連線。

    3. 在「Link circuit info」(連結電路資訊) 中,確認所有連結的「Link state」(連結狀態) 都顯示「Active」(運作中)

    4. 確認「MACsec 金鑰名稱」會為所有連結顯示金鑰名稱,且每個金鑰名稱都會顯示「這個連結的 MACsec 已開始運作」或「這個連結的 MACsec 已停止運作」

    gcloud

    gcloud compute interconnects get-diagnostics INTERCONNECT_CONNECTION_NAME \
        --project=PROJECT_NAME
    

    PROJECT_NAME 替換為您的Cloud de Confiance 專案名稱。

    輸出內容會與下列內容相似;請尋找設為 BUNDLE_OPERATIONAL_STATUS_UPbundleOperationalStatus、設為 ACTIVEstate,以及設為 falsemacsec ckn operational

      bundleAggregationType: BUNDLE_AGGREGATION_TYPE_LACP
      bundleOperationalStatus: BUNDLE_OPERATIONAL_STATUS_UP
      links:
      - circuitId: LOOP-0
        googleDemarc: fake-local-demarc-0
        lacpStatus:
          googleSystemId: '00:11:22:33:44:55'
          neighborSystemId: '55:44:33:22:11:00'
          state: ACTIVE
        macsec:
          ckn: 0101010189abcdef...0123456789abcdef
          operational: false
        operationalStatus: LINK_OPERATIONAL_STATUS_UP
        receivingOpticalPower:
          state: OK
          value: -2.49
        transmittingOpticalPower:
          state: OK
          value: -0.88
      macAddress: 00:11:22:33:44:55
    

    在這個例子中:

    • bundleOperationalStatus: BUNDLE_OPERATIONAL_STATUS_UP 表示套件運作正常。
    • links.lacpStatus.state: ACTIVE 表示 LACP 成員連結已啟動。
    • links.macsec.operational: false 表示 MACsec 運作中斷。

    在本例中,由於已啟用故障開放行為,因此不會捨棄 LACP 控制封包。

    如果沒有顯示 links.macsec.ckn 的值,請聯絡Cloud de Confiance by S3NS 支援團隊尋求協助。

    gcloud compute interconnects get-diagnostics 指令會顯示有效金鑰的 CKN 值。如果您設定了多個金鑰,系統會選取開始時間最新的金鑰做為有效金鑰。Google 的邊緣路由器會拒絕任何嘗試使用舊金鑰的新 MACsec 工作階段。

  3. 如要取得 MACsec 設定,然後記下與先前顯示的 CKN 值對應的 CAK 值和金鑰的開始時間,請選取下列其中一個選項:

    控制台

    1. 在「MACsec」分頁中,前往「預先共用金鑰」部分,然後按一下有效金鑰旁的「查看」。如果未顯示金鑰的 CAK 和 CKN 值,請與 Cloud de Confiance by S3NS 支援團隊聯絡以尋求協助。

    2. 在「預先共用金鑰」部分,確認有效金鑰的列出開始時間,與地端部署路由器上的開始時間相符。

    gcloud

    1. 執行下列指令:

      gcloud compute interconnects macsec get-config INTERCONNECT_CONNECTION_NAME
      

      輸出結果會與下列內容相似;請尋找 preSharedKeys name ckn

      preSharedKeys:
      - name: key1
        ckn: 0101010189abcdef...0123456789abcdef
        cak: 0123456789abcdef...0123456789abcdef
        startTime: 2023-07-01T12:12:12Z
      - name: key2
        ckn: 0202020289abcdef...0123456789abcdef
        cak: 0123456789abcdef...0123456789abcdef
        startTime: 2023-08-01T12:12:12Z
      
    2. 確認地端部署路由器上的有效 CKN、CAK 和開始時間,與 Cloud Interconnect 的 MACsec 顯示的值相符。

    3. 執行下列其中一個步驟:

      • 如果值不相符,請參閱路由器的手冊,更新路由器上的值,然後確認現在是否可以建立 MACsec。

      • 如果值相符,但 MACsec 工作階段在連結上仍處於運作中斷狀態,請繼續下一個步驟。

  4. 查看指標,觀察 Cloud Interconnect 連線的封包計數器。如要進一步瞭解如何查看指標,請參閱「監控連線」。

    啟用 MACsec 故障開放行為後,下列計數器會遞增:

    • network/interconnect/sent_unicast_packets_count
    • network/interconnect/received_unicast_packets_count

    啟用 MACsec 故障開放行為後,下列計數器不會遞增:

    • network/interconnect/link/macsec/received_control_packets_count
    • network/interconnect/link/macsec/received_data_packets_count
    • network/interconnect/link/macsec/sent_control_packets_count
    • network/interconnect/link/macsec/sent_data_packets_count

    如要決定後續步驟,請按照下列步驟操作:

    • 如果 network/interconnect/link/macsec/received_errors_count 正在遞增,表示封包因錯誤而遭到捨棄,導致 Cloud Interconnect 連線輸入流量減少。這表示地端部署路由器和 Google 邊緣路由器之間的通訊協定不符。檢查地端部署路由器的記錄,以進行疑難排解。

    • 如果下列任一計數器遞增,請與支援團隊聯絡,尋求進一步協助:Cloud de Confiance by S3NS

      • network/interconnect/link/macsec/received_dropped_packets_count
      • network/interconnect/link/macsec/send_errors_count
      • network/interconnect/link/macsec/send_dropped_packets_count
    • 如果下列任何計數器都沒有遞增,可能表示封包在內部部署路由器輸出端遭到捨棄。檢查地端部署路由器的記錄,以便疑難排解。

      • network/interconnect/receive_errors_count
      • network/interconnect/received_unicast_packets_count
      • network/interconnect/link/macsec/received_errors_count
      • network/interconnect/link/macsec/received_dropped_packets_count

後續步驟