MACsec をトラブルシューティングする

このページでは、Cloud Interconnect の MACsec をトラブルシューティングする方法について説明します。

新しいキーを作成しようとすると Cloud Interconnect でエラーが表示される

開始時刻のない MACsec キーが存在しているときに、新しいキーを作成しようとすると、Cloud Interconnect にエラーが表示されます。このエラーを解決するには、既存のキー開始時間を更新します。

Cloud Interconnect 接続で MACsec の動作が停止している

Cloud Interconnect 接続とオンプレミス ルーターで MACsec が有効になっていても、Cloud Interconnect 接続で動作を停止していることが MACsec セッションに表示されます。

Cloud Interconnect 接続とオンプレミス ルーターで MACsec が正常に有効になっていても、Cloud Interconnect 接続リンクで動作を停止していることが MACsec セッションに表示されます。考えられる原因は次のいずれかです。

  • オンプレミス ルーターと Google のエッジルーター上のアクティブな鍵が一致しない。
  • オンプレミス ルーターと Google のエッジルーターの間に MACsec プロトコルの不一致がある。

MACsec 状態を解決する手順は次のとおりです。

  1. Cloud Interconnect 接続で MACsec が有効になっていることを確認するには、次のいずれかのオプションを選択します。

    コンソール

    1. Google Cloud コンソールで、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. Google Cloud コンソールで、Cloud Interconnect の [物理接続] タブに移動します。

      [物理接続] に移動

    2. 表示する Cloud Interconnect 接続を選択します。

    3. [リンク回路の情報] で、すべてのリンクの [リンク状態] に アクティブ)が表示されていることを確認します。

    4. [MACsec キー名] にすべてのリンクのキー名が表示され、各キー名に このリンクの MACsec が稼働中です)または このリンクの MACsec がダウンしています)が表示されていることを確認します。

    gcloud

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

    PROJECT_NAME は、Google Cloud プロジェクトの名前で置き換えます。

    出力は次のようになります。links.lacpStatus.stateACTIVE になり、links.macsec.ckn に値が表示され、links.operationalStatusLINK_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 に表示される値がない場合は、Google Cloud サポートにお問い合わせください。

  3. アクティブなキーの CAK 値と CKN 値、キーの開始時間を確認するには、次のいずれかのオプションを選択します。

    コンソール

    1. [MACsec] タブで [事前共有キー] セクションに移動し、現在アクティブなキーの横にある [表示] をクリックします。CKN 値が表示されない場合は、Google Cloud サポートにお問い合わせください。

    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 接続の名前に置き換えます。

      出力は次のようになります。

      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 のエッジルーターの間にプロトコルの不一致があることを示します。オンプレミス ルーターのログを確認して、トラブルシューティングを行います。

    • 次のいずれかのカウンタが増分している場合、これ以上のアシスタンスは Google Cloud サポートまでお問い合わせください。

      • 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 ルーターの確認に進みます。

  • network/interconnect/link/macsec/received_errors_count が増分している場合、エラーのため、パケットは上り(内向き)Cloud Interconnect 接続でドロップします。これは、オンプレミス ルーターと Google のエッジルーターの間にプロトコルの不一致があることを示します。オンプレミス ルーターのログを確認して、トラブルシューティングを行います。

  • 次のいずれかのカウンタが増分している場合、これ以上のアシスタンスは Google Cloud サポートまでお問い合わせください。

    • 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. Google Cloud コンソールで、Cloud Interconnect の [物理接続] タブに移動します。

      [物理接続] に移動

    2. 表示する Cloud Interconnect 接続を選択します。

    3. [MACsec] タブで、[MACsec 構成] に「有効、フェイル オープン」と表示されていることを確認します。

    gcloud

    gcloud compute interconnects describe INTERCONNECT_CONNECTION_NAME
    

    INTERCONNECT_CONNECTION_NAME は、Cloud Interconnect 接続の名前に置き換えます。

    出力は次のようになります。

    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.failopentruemacsecEnabledtrue を表示しています。

  2. Cloud Interconnect 接続のポートのステータス、MACsec の動作状態、アクティブなキー名を確認するには、次のいずれかのオプションを選択します。

    コンソール

    1. Google Cloud コンソールで、Cloud Interconnect の [物理接続] タブに移動します。

      [物理接続] に移動

    2. 表示する Cloud Interconnect 接続を選択します。

    3. [リンク回路の情報] で、すべてのリンクの [リンク状態] に アクティブ)が表示されていることを確認します。

    4. [MACsec キー名] にすべてのリンクのキー名が表示され、各キー名に このリンクの MACsec が稼働中です)または このリンクの MACsec がダウンしています)が表示されていることを確認します。

    gcloud

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

    PROJECT_NAME は、Google Cloud プロジェクトの名前で置き換えます。

    出力は次のようになります。

      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 に表示される値がない場合は、Google Cloud サポートにお問い合わせください。

    gcloud compute interconnects get-diagnostics コマンドは、アクティブなキーの CKN 値を表示します。複数のキーを構成している場合は、最新の開始時刻を指定したキーがアクティブなキーとして選択されます。Google のエッジルーターでは、古いキーの使用を試みる新しい MACsec セッションが拒否されます。

  3. MACsec 構成を取得し、以前に表示された CKN 値に対応する CAK 値とキーの開始時間をメモするには、次のいずれかのオプションを選択します。

    コンソール

    1. [MACsec] タブで [事前共有キー] セクションに移動し、現在アクティブなキーの横にある [表示] をクリックします。キーの CAK 値と CKN 値が表示されない場合は、Google Cloud サポートにお問い合わせください。

    2. [事前共有キー] セクションで、現在アクティブなキーに表示されている開始時間がオンプレミス ルーターの開始時間と一致していることを確認します。

    gcloud

    1. 次のコマンドを実行します。

      gcloud compute interconnects macsec get-config INTERCONNECT_CONNECTION_NAME
      

      出力は次のようになります。

      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 のエッジルーターの間にプロトコルの不一致があることを示します。オンプレミス ルーターのログを確認して、トラブルシューティングを行います。

    • 次のいずれかのカウンタが増分している場合、これ以上のアシスタンスは Google Cloud サポートまでお問い合わせください。

      • 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

次のステップ