Cómo analizar las dependencias de red

En esta página, se describe cómo generar y analizar el informe de dependencias de red en Migration Center.

Descripción general

El informe de dependencias de red proporciona datos agregados mensuales sobre las conexiones a tus servidores y bases de datos. El informe de dependencias de la red te permite ver todas las conexiones a los activos de tu infraestructura y la cantidad de veces que Migration Center observa la conexión, agregada mensualmente.

Para recopilar datos de dependencias de red, deja que el cliente de descubrimiento se ejecute durante un período y habilita la sincronización de los datos con Migration Center. Cuanto más tiempo ejecutes la recopilación, más datos tendrá Migration Center para analizar las estadísticas sobre las dependencias de tu red. Luego, Migration Center identifica todas las conexiones de red de los activos analizados. Los recursos de destino en una conexión pueden ser recursos de tu inventario de Migration Center que descubriste con el cliente de descubrimiento, recursos que importaste de forma manual o incluso recursos desconocidos que son externos a tu entorno.

El informe de dependencias de red es útil en las siguientes situaciones:

  • Recopila datos sobre las conexiones a servidores y bases de datos para identificar los recursos que pertenecen a la misma aplicación.
  • Identificar las conexiones de red de interés dentro de un grupo de recursos, como todos los servidores que usan el puerto estándar de MySQL
  • Cómo identificar los recursos faltantes en tu inventario

Puedes descargar el informe de dependencias de red como un archivo CSV desde Migration Center. Luego, puedes realizar tu análisis con BigQuery y las consultas de muestra que proporciona Migration Center, o bien usar cualquier otra herramienta de terceros.

Limitaciones

  • Para recopilar datos de conexión en tu infraestructura, debes usar el cliente de detección.
  • Los datos de las conexiones de red solo se recopilan con el método de análisis del SO. El análisis de vSphere no admite la recopilación de datos de red.

Antes de comenzar

  • Antes de crear un informe de dependencias de red, debes tener habilitada la recopilación de datos de rendimiento con el cliente de detección.

  • Antes de analizar el informe de dependencias de red con BigQuery, haz lo siguiente:

Genera el informe de dependencias de red

Para generar un informe de dependencias de red, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Crear informes.

    Ir a Crear informes

  2. Haz clic en Exportaciones de dependencias de red.

  3. En la lista de grupos, selecciona aquellos para los que deseas generar el informe y, luego, haz clic en Exportar.

  4. En el cuadro de diálogo que aparece, haz clic en Exportar.

    El informe exportado puede tardar hasta una hora en generarse. Una vez que se genere el informe, se abrirá la página Dependencias de red.

  5. Para descargar un informe específico, haz clic en Descargar.

Analiza el informe de dependencias de red en BigQuery

En las siguientes secciones, se proporcionan algunas consultas de muestra para analizar situaciones comunes en BigQuery. Antes de ejecutar una consulta, debes subir tu archivo CSV a BigQuery.

Para usar BigQuery, se te facturará según los precios de BigQuery.

Identifica los recursos con más conexiones

La siguiente consulta es útil para identificar los activos que tienen la mayor cantidad de conexiones en el grupo.

SELECT
 LocalVMName, SUM(ConnectionCount) as TotalCount
FROM
 PROJECT.DATASET.TABLE
GROUP BY ALL
ORDER BY TotalCount DESC

Reemplaza lo siguiente:

  • PROJECT: El proyecto Google Cloud en el que subiste el archivo CSV.
  • DATASET: Es el conjunto de datos de BigQuery.
  • TABLE: Es la tabla de BigQuery.

El siguiente es un ejemplo del resultado de esta búsqueda:

LocalVMName TotalCount
VM-x5ua3o2w 9970
VM-glg5np3w 9763
VM-q3z4zfp8 9557
VM-2nnsrt37 9372
VM-1oah56hn 9350

Identifica las conexiones según la profundidad del gráfico

La siguiente consulta es útil para identificar todos los activos que se conectan a uno determinado con una cantidad específica de conexiones intermedias. Por ejemplo:

  • Con una profundidad de gráfico igual a 1, encuentras todos los activos conectados directamente al activo principal.
  • Con una profundidad del gráfico igual a 2, encuentras todos los recursos conectados directamente a otros recursos, que, a su vez, están conectados directamente al recurso principal.
DECLARE
 local_vm_name STRING DEFAULT MAIN_ASSET;
DECLARE
 depth INT64 DEFAULT DEPTH;
CREATE TEMP FUNCTION
 recursiveConnections(localVmName STRING,
   connectionsArray ARRAY<STRING>,
   depth INT64)
 RETURNS STRING
 LANGUAGE js AS r"""
 const connections = connectionsArray.map(connection => connection.split('|||'))
   .filter(connectionTuple => connectionTuple[1] !== 'Unscanned Device');
 const connectedAssets = new Set([localVmName]);
 for (let i = 0; i < depth; i++) {
   const currentSet = new Set(connectedAssets);
   for (const connection of connections) {
     /* Look for connections where the asset is the local asset */
     if (currentSet.has(connection[0])) {
       connectedAssets.add(connection[1]);
     }
     /* Look for connections where the asset is the remote asset */
     if (currentSet.has(connection[1])) {
       connectedAssets.add(connection[0]);
     }
   }
 }
 connectedAssets.delete(localVmName);
 return Array.from(connectedAssets).sort().join(', ');
""";
SELECT
 local_vm_name AS LocalVMName,
 recursiveConnections(local_vm_name,
   ARRAY_AGG(CONCAT(LocalVMName, '|||', RemoteVMName)),
   depth) AS Connections
FROM
 PROJECT.DATASET.TABLE

Reemplaza lo siguiente:

  • MAIN_ASSET: Es el nombre del activo para el que deseas identificar las conexiones.
  • DEPTH: Es la profundidad del gráfico.

El siguiente es un ejemplo del resultado de esta búsqueda:

LocalVMName Conexiones
VM-lv8s148f VM-2z8wp3ey,
VM-66rq2x2y,
VM-94uwyy8h,
VM-ccgmqqmb,
VM-ctqddf0u,
VM-og4n77lb,
...

Filtra las conexiones por rangos de IP y puertos

La siguiente consulta te permite identificar los recursos que usan direcciones IP y puertos en los rangos que definas.

CREATE TEMP FUNCTION
 ipBetween(value STRING,
   low STRING,
   high STRING) AS ( NET.IPV4_TO_INT64(NET.IP_FROM_STRING(value)) BETWEEN NET.IPV4_TO_INT64(NET.IP_FROM_STRING(low))
   AND NET.IPV4_TO_INT64(NET.IP_FROM_STRING(high)) );
SELECT
 *
FROM
 PROJECT.DATASET.TABLE
WHERE
 ((LocalPort BETWEEN PORT_START
     AND PORT_END)
   OR (RemotePort BETWEEN PORT_START
     AND PORT_END))
 AND (ipBetween(LocalIP,
     IP_START,
     IP_END)
   OR ipBetween(RemoteIP,
     IP_START,
     IP_END))

Reemplaza lo siguiente:

  • PORT_START: Es el puerto inicial del rango de puertos, por ejemplo, 0.
  • PORT_END: Es el puerto final del rango de puertos, por ejemplo, 1024.
  • IP_START: Es la dirección IP inicial del rango, por ejemplo, "10.26.0.0".
  • IP_END: Es la dirección IP final del rango, por ejemplo, "10.26.255.255".

El siguiente es un ejemplo del resultado de esta búsqueda:

SampleRange LocalVMName LocalAssetID LocalGroups LocalIP LocalPort Protocolo LocalProcessName RemoteVMName RemoteAssetID RemoteGroups RemoteIP RemotePort ConnectionCount
2025-06-02T05:59:53Z-2025-06-02T05:59:53Z VM-0lf60off projects/982941055174/locations/us-central1/assets/0lf60off Grupo 1 10.0.45.138 272 tcp Bash VM-0spdofr9 projects/982941055174/locations/us-central1/assets/0spdofr9 144.35.88.1 272 499
2025-07-02T05:59:53Z-2025-07-02T05:59:53Z VM-goa5uxhi projects/982941055174/locations/us-central1/assets/goa5uxhi Grupo 3 10.187.175.82 781 tcp Bash VM-27i5d2uj projects/982941055174/locations/us-central1/assets/27i5d2uj 22.99.72.109 781 980
2025-08-02T05:59:53Z-2025-08-02T05:59:53Z VM-7vwy31hg projects/982941055174/locations/us-central1/assets/7vwy31hg Grupo 1 10.58.166.132 21 tcp Bash VM-2gq0fl37 projects/982941055174/locations/us-central1/assets/2gq0fl37 147.19.84.135 21 514

Identifica los recursos no analizados en la red

La siguiente búsqueda te permite identificar cualquier activo no analizado en tu red. Un recurso no analizado es una conexión a una dirección IP remota que no está asociada a ningún recurso en tu inventario de Migration Center. Esto te permite identificar los recursos que podrían faltar y que debes analizar para tu evaluación.

CREATE TEMP FUNCTION
 ipBetween(value STRING,
   low STRING,
   high STRING) AS ( NET.IPV4_TO_INT64(NET.IP_FROM_STRING(value)) BETWEEN NET.IPV4_TO_INT64(NET.IP_FROM_STRING(low))
   AND NET.IPV4_TO_INT64(NET.IP_FROM_STRING(high)) );
SELECT
 STRING_AGG(LocalIP, ', ') AS LocalIPs,
 RemoteIP
FROM
 PROJECT.DATASET.TABLE
WHERE
 RemoteVMName = 'Unscanned Device'
 AND ipBetween(LocalIP,
   IP_START,
   IP_END)
 AND ipBetween(RemoteIP,
   IP_START,
   IP_END)
GROUP BY
 RemoteIP

Reemplaza lo siguiente:

  • IP_START: Es la dirección IP inicial del rango, por ejemplo, "10.26.0.0".
  • IP_END: Es la dirección IP final del rango, por ejemplo, "10.26.255.255".