Solucionar problemas de MACsec

En esta página se describe cómo solucionar problemas de MACsec para Cloud Interconnect.

Cloud Interconnect muestra un error cuando intento crear una clave

Si tienes una clave MACsec sin hora de inicio y tratas de crear una nueva, Cloud Interconnect mostrará un error. Para resolver el error, actualiza la hora de inicio de la clave actual.

MACsec no funciona en mi conexión de Cloud Interconnect

Has habilitado correctamente MACsec en tu conexión de Cloud Interconnect y en tu router on-premise, pero la sesión de MACsec muestra que está inactiva en los enlaces de tu conexión de Cloud Interconnect. El problema puede deberse a uno de los siguientes motivos:

  • Las claves activas de tu router local y de los routers perimetrales de Google no coinciden.
  • Hay una discrepancia en el protocolo MACsec entre tu router on-premise y el router perimetral de Google.

Para resolver el estado de MACsec, haga lo siguiente:

  1. Para verificar que MACsec esté habilitado en tu conexión de Cloud Interconnect, selecciona una de las siguientes opciones:

    Consola

    1. En la Google Cloud consola, ve a la pestaña Cloud Interconnect > Conexiones físicas.

      Ve a Conexiones físicas.

    2. Selecciona la conexión de Cloud Interconnect que quieras ver.

    3. En la pestaña MACsec, compruebe que en Configuración de MACsec se muestra una de las siguientes opciones:

      • Habilitado, fallo abierto: el cifrado MACsec está habilitado en el enlace. Si no se establece el cifrado MACsec entre ambos extremos, el enlace funcionará sin cifrado.

      • Habilitado, error cerrado: el cifrado MACsec está habilitado en el enlace. Si no se establece el cifrado MACsec entre ambos extremos, el enlace fallará.

    gcloud

    gcloud compute interconnects describe INTERCONNECT_CONNECTION_NAME
    

    Sustituye INTERCONNECT_CONNECTION_NAME por el nombre de tu conexión de Cloud Interconnect.

    La salida es similar a la siguiente. Verifica que se muestra 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. Para comprobar el estado del puerto de Cloud Interconnect, el estado operativo de MACsec y el nombre de la clave activa, usa una de las siguientes opciones:

    Consola

    1. En la Google Cloud consola, ve a la pestaña Cloud Interconnect > Conexiones físicas.

      Ve a Conexiones físicas.

    2. Selecciona la conexión de Cloud Interconnect que quieras ver.

    3. En Información del circuito de enlace, compruebe que el Estado del enlace sea Activo en todos los enlaces.

    4. Verifica que Nombre de clave MACsec muestre un nombre de clave para todos los enlaces y que cada nombre de clave muestre MACsec en este enlace está activo o MACsec en este enlace está inactivo.

    gcloud

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

    Sustituye PROJECT_NAME por el nombre de tuGoogle Cloud proyecto.

    La salida es similar a la siguiente. Comprueba que links.lacpStatus.state muestra ACTIVE, que links.macsec.ckn muestra un valor y que links.operationalStatus muestra 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
    

    Si no se muestra ningún valor en links.macsec.ckn, ponte en contacto con el equipo de Asistencia para obtener ayuda.Google Cloud

  3. Para verificar los valores CAK y CKN de la clave activa, así como la hora de inicio de la clave, selecciona una de las siguientes opciones:

    Consola

    1. En la pestaña MACsec, vaya a la sección Claves precompartidas y, a continuación, haga clic en Ver junto a la clave activa. Si no se muestra ningún valor de CKN, ponte en contacto con el Google Cloud equipo de Asistencia para obtener ayuda.

    2. En la sección Claves precompartidas, comprueba que la hora de inicio que aparece en la clave activa coincida con la hora de inicio de tu router local. Elige una de estas opciones:

      • Si los valores no coinciden, consulta el manual de tu router para actualizar los valores en él y, a continuación, comprueba si se puede establecer una sesión MACsec.

      • Si los valores coinciden, pero la sesión de MACsec sigue sin funcionar en el enlace, continúa con el siguiente paso.

    gcloud

    1. Ejecuta el comando gcloud compute interconnects get-diagnostics para mostrar el valor CKN de la clave activa.

      Si tienes configuradas varias llaves, se seleccionará como llave activa la que tenga la hora de inicio más reciente que no sea futura. Los routers perimetrales de Google rechazan cualquier sesión MACsec nueva que intente usar claves antiguas.

    2. Obtén la configuración de MACsec y anota el valor de CAK y la hora de inicio de la clave que corresponden al valor de CKN que se ha mostrado anteriormente:

      gcloud compute interconnects macsec get-config INTERCONNECT_CONNECTION_NAME
      

      Sustituye INTERCONNECT_CONNECTION_NAME por el nombre de tu conexión de Cloud Interconnect.

      La salida es similar a la siguiente. Busca el 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. Verifica que la CKN, la CAK y las horas de inicio activas de tu router local coincidan con los valores que muestra MACsec para Cloud Interconnect. Elige una de estas opciones:

      • Si los valores no coinciden, consulta el manual de tu router para actualizar los valores en él y, a continuación, comprueba si se puede establecer una sesión MACsec.

      • Si los valores coinciden, pero la sesión de MACsec sigue inactiva en el enlace, continúa con el siguiente paso.

  4. Consulta las métricas para determinar si los paquetes se están descartando en la entrada o en la salida de la conexión de Cloud Interconnect. Para obtener información sobre cómo ver las métricas, consulta Monitorizar conexiones.

    Para saber qué va a ocurrir, haz lo siguiente:

    • Si network/interconnect/link/macsec/received_errors_count aumenta, significa que los paquetes se están retirando en la conexión de Cloud Interconnect de entrada debido a errores. Esto indica que hay una incompatibilidad de protocolo entre tu router on-premise y los routers perimetrales de Google. Consulta los registros de tu router local para solucionar el problema.

    • Si alguno de los siguientes contadores aumenta, ponte en contacto con elGoogle Cloud equipo de Asistencia para obtener más ayuda:

      • network/interconnect/link/macsec/received_dropped_packets_count
      • network/interconnect/link/macsec/send_errors_count
      • network/interconnect/link/macsec/send_dropped_packets_count
    • Si ninguno de los siguientes contadores aumenta, significa que los paquetes se están descartando en la salida de tu router local. Consulta los registros de tu router local para solucionar el problema.

      • 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 está operativo y se están perdiendo paquetes

Has habilitado MACsec para Cloud Interconnect correctamente y MACsec está operativo, pero experimentas pérdida de paquetes.

Si tu conexión MACsec funciona, pero el estado del protocolo de control de agregación de enlaces (LACP) de Cloud Interconnect es Detached, comprueba que el identificador de canal seguro (SCI) esté habilitado en tu router local. Para obtener más información, consulta el artículo sobre cómo configurar tu router local.

Consulta las métricas para determinar si se están descartando paquetes en la entrada o la salida de la conexión de Cloud Interconnect. Para obtener información sobre cómo ver las métricas, consulta Monitorizar conexiones. Si la conexión de Cloud Interconnect no muestra ningún error ni pérdida de paquetes, comprueba los routers MACsec:

  • Si network/interconnect/link/macsec/received_errors_count aumenta, significa que los paquetes se están descartando en la conexión de Cloud Interconnect de entrada debido a errores. Esto indica que hay un error de coincidencia de protocolo entre tu router local y los routers perimetrales de Google. Consulta los registros de tu router local para solucionar el problema.

  • Si alguno de los siguientes contadores aumenta, ponte en contacto con el Google Cloudequipo de Asistencia para obtener más ayuda:

    • network/interconnect/link/macsec/received_dropped_packets_count
    • network/interconnect/link/macsec/send_errors_count
    • network/interconnect/link/macsec/send_dropped_packets_count
  • Si ninguno de los siguientes contadores aumenta, significa que los paquetes se están descartando en la salida de tu router local. Consulta los registros de tu router local para solucionar el problema.

    • 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

Solucionar problemas de MACsec cuando el comportamiento de apertura en caso de fallo está habilitado

Si habilitas MACsec para Cloud Interconnect con un comportamiento de apertura en caso de fallo, tu conexión de Cloud Interconnect seguirá reenviando tráfico aunque no se pueda establecer una sesión de MACsec correctamente. Te recomendamos encarecidamente que evites usar el comportamiento de apertura en caso de fallo en las conexiones de Cloud Interconnect de producción para no transmitir paquetes como texto sin cifrar.

Para determinar la configuración y el estado de tu conexión MACsec, haz lo siguiente:

  1. Para verificar el estado de tu conexión de Cloud Interconnect, selecciona una de las siguientes opciones:

    Consola

    1. En la Google Cloud consola, ve a la pestaña Cloud Interconnect > Conexiones físicas.

      Ve a Conexiones físicas.

    2. Selecciona la conexión de Cloud Interconnect que quieras ver.

    3. En la pestaña MACsec, comprueba que en Configuración de MACsec se muestre Habilitado, fail open.

    gcloud

    gcloud compute interconnects describe INTERCONNECT_CONNECTION_NAME
    

    Sustituye INTERCONNECT_CONNECTION_NAME por el nombre de tu conexión de Cloud Interconnect.

    La salida es similar a la siguiente. Busca macsec failOpen con el valor true y macsecEnabled con el valor true:

    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
    

    En este ejemplo, macsec.failopen muestra true y macsecEnabled muestra true.

  2. Para comprobar el estado del puerto de la conexión de Cloud Interconnect, el estado operativo de MACsec y el nombre de la clave activa, seleccione una de las siguientes opciones:

    Consola

    1. En la Google Cloud consola, ve a la pestaña Cloud Interconnect > Conexiones físicas.

      Ve a Conexiones físicas.

    2. Selecciona la conexión de Cloud Interconnect que quieras ver.

    3. En Información del circuito de enlace, compruebe que el Estado del enlace sea Activo en todos los enlaces.

    4. Verifica que Nombre de clave MACsec muestre un nombre de clave para todos los enlaces y que cada nombre de clave muestre MACsec en este enlace está activo o MACsec en este enlace está inactivo.

    gcloud

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

    Sustituye PROJECT_NAME por el nombre de tuGoogle Cloud proyecto.

    La salida será similar a la siguiente. Busca el valor BUNDLE_OPERATIONAL_STATUS_UP de bundleOperationalStatus, el valor ACTIVE de state y el valor false de macsec 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
    

    En este ejemplo:

    • bundleOperationalStatus: BUNDLE_OPERATIONAL_STATUS_UP indica que el paquete está operativo.
    • links.lacpStatus.state: ACTIVE indica que el enlace miembro de LACP está activo.
    • links.macsec.operational: false indica que MACsec no funciona.

    En este caso, como el comportamiento de apertura en caso de fallo está habilitado, los paquetes de control LACP no se descartan.

    Si no se muestra ningún valor en links.macsec.ckn, ponte en contacto con el equipo de Asistencia para obtener ayuda.Google Cloud

    El comando gcloud compute interconnects get-diagnostics muestra el valor de CKN de la clave activa. Si tienes configurada más de una clave, se seleccionará como clave activa la que tenga la hora de inicio más reciente. Los routers de borde de Google rechazan cualquier sesión MACsec nueva que intente usar las claves antiguas.

  3. Para obtener la configuración de MACsec y, a continuación, anotar el valor de CAK y la hora de inicio de la clave que corresponden al valor de CKN mostrado anteriormente, seleccione una de las siguientes opciones:

    Consola

    1. En la pestaña MACsec, vaya a la sección Claves precompartidas y, a continuación, haga clic en Ver junto a la clave activa. Si no se muestran los valores de CAK y CKN de la clave, ponte en contacto con el Google Cloud equipo de Asistencia para obtener ayuda.

    2. En la sección Claves precompartidas, comprueba que la hora de inicio que aparece en la clave activa coincida con las horas de inicio de tu router local.

    gcloud

    1. Ejecuta el siguiente comando:

      gcloud compute interconnects macsec get-config INTERCONNECT_CONNECTION_NAME
      

      El resultado es similar al siguiente. Busca 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. Verifica que la CKN, la CAK y las horas de inicio activas de tu router local coincidan con los valores que muestra MACsec para Cloud Interconnect.

    3. Elige una de estas opciones:

      • Si los valores no coinciden, consulta el manual de tu router para actualizar los valores en él y, a continuación, comprueba si se puede establecer una conexión MACsec.

      • Si los valores coinciden, pero la sesión de MACsec sigue inactiva en el enlace, continúa con el siguiente paso.

  4. Consulta las métricas para observar los contadores de paquetes de tu conexión de Cloud Interconnect. Para obtener más información sobre cómo ver métricas, consulta Monitorizar conexiones.

    Cuando se habilita el comportamiento de apertura en caso de fallo de MACsec, se incrementan los siguientes contadores:

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

    Cuando el comportamiento de apertura en caso de fallo de MACsec está habilitado, los siguientes contadores no aumentan:

    • 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

    Para saber qué va a ocurrir, haz lo siguiente:

    • Si network/interconnect/link/macsec/received_errors_count aumenta, significa que los paquetes se están retirando en la conexión de Cloud Interconnect de entrada debido a errores. Esto indica que hay una incompatibilidad de protocolo entre tu router on-premise y los routers perimetrales de Google. Consulta los registros de tu router local para solucionar el problema.

    • Si alguno de los siguientes contadores aumenta, ponte en contacto con elGoogle Cloud equipo de Asistencia para obtener más ayuda:

      • network/interconnect/link/macsec/received_dropped_packets_count
      • network/interconnect/link/macsec/send_errors_count
      • network/interconnect/link/macsec/send_dropped_packets_count
    • Si ninguno de los siguientes contadores aumenta, puede indicar que los paquetes se están descartando en la salida de tu router local. Consulta los registros de tu router local para solucionar el problema.

      • 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

Siguientes pasos