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

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

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

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

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

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

    • 次のいずれかのカウンタが増分している場合、これ以上のアシスタンスは 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 は操作上動作していますが、パケットロスが発生しています。

MACsec 接続が動作しているにもかかわらず、Cloud Interconnect の Link Aggregation Control Protocol(LACP)ステータスが Detached の場合は、オンプレミス ルーターで Secure Channel Identifier(SCI)が有効になっていることを確認します。詳細については、オンプレミス ルーターの構成をご覧ください。

指標を表示して、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 接続の名前に置き換えます。

    出力は次のようになります。macsec failOpentrue に設定され、macsecEnabledtrue に設定されていることを確認します。

    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 プロジェクトの名前で置き換えます。

    出力は次のようになります。bundleOperationalStatusBUNDLE_OPERATIONAL_STATUS_UP に設定され、stateACTIVE に設定され、macsec ckn operationalfalse に設定されていることを確認します。

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

    • 次のいずれかのカウンタが増分している場合、これ以上のアシスタンスは 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

次のステップ