En esta página, se describe cómo generar y analizar el informe de dependencias de red en el Centro de migración.
Descripción general
El informe de dependencias de red brinda datos agregados diarios sobre la conexiones a servidores y bases de datos. El informe de dependencias de red permite ver todas las conexiones a los recursos en tu infraestructura y la cantidad de conexiones por día.
Para recopilar los datos de las dependencias de red, debes dejar que la cliente de descubrimiento se ejecutará por varios días y habilitará la sincronización de datos con Migration Center. Luego, el cliente de descubrimiento identifica todas las conexiones de red de los recursos analizados. Los recursos de destino de la conexión pueden ser cualquier recurso en el inventario del Centro de migraciones que descubriste con el de descubrimiento o que importaste manualmente recurso desconocido.
El informe de dependencias de red es útil en las siguientes situaciones:
- Recopilar datos sobre conexiones a servidores y bases de datos. para identificar 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 que faltan en tu inventario
Puedes descargar el informe de dependencias de red como un archivo CSV desde de Google Cloud. Luego, puedes realizar tu análisis con BigQuery y las consultas de muestra que proporciona Migration Center, o usar cualquier otra herramienta de terceros.
Limitaciones
- Para recopilar datos de conexión en tu infraestructura, usa el de descubrimiento.
- Los datos de conexiones de red se recopilan solo 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 conocer con el cliente de descubrimiento.
Antes de analizar el informe de dependencias de red con BigQuery, haz lo siguiente:
- Aprende a hacer lo siguiente: importar datos locales a BigQuery.
- Obtén más información para ejecutar consultas.
Cómo generar el informe de dependencias de red
Para generar un informe de dependencias de red, sigue estos pasos:
Ve a la página Catálogo de informes.
Haz clic en Informe de dependencias de red.
En la lista de grupos, selecciona los grupos para los que deseas generar el informe y, luego, haz clic en Exportar.
En el cuadro de diálogo que aparece, selecciona la cantidad de días que quieres. para exportar los datos, desde un mínimo de 10 hasta 90, y luego haz clic Exportar.
Después de que se genere el archivo, haz clic en Descargar.
Cómo analizar 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 poder ejecutar una consulta, debes subir tu archivo CSV a BigQuery.
Para usar BigQuery, se te factura según los precios de BigQuery.
Identificar los recursos con más conexiones
La siguiente consulta es útil para identificar los activos que tienen la mayor la 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
: Es el proyecto de 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 resultado de ejemplo de esta consulta:
LocalVMName | TotalCount |
---|---|
VM-x5ua3o2w | 9970 |
VM-glg5np3w | 9763 |
VM-q3z4zfp8 | 9557 |
VM‐2nnsrt37 | 9372 |
VM-1oah56hn | 9350 |
Identificar conexiones según la profundidad de un gráfico
La siguiente consulta es útil para identificar todos los recursos que se conectan con a una determinada con una cantidad específica de conexiones intermedias. Por ejemplo:
- Con una profundidad de gráfico igual a 1, encontrarás todos los activos directamente conectados al activo principal.
- Con una profundidad de grafo igual a 2, encontrarás todos los recursos directamente conectados a otros recursos, que a su vez están directamente conectados 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
: El nombre del recurso para el que deseas para identificar las conexiones.DEPTH
: La profundidad del gráfico.
El siguiente es un resultado de ejemplo de esta consulta:
LocalVMName | Conexiones |
---|---|
VM-lv8s148f | VM-2z8wp3ey, VM-66rq2x2y, VM-94uwyy8h, VM-ccgmqqmb, VM-ctqddf0u, VM-og4n77lb, ... |
Filtrar conexiones por IP y rangos de puertos
La siguiente consulta te permite identificar 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 ejemplo0
.PORT_END
: El puerto final del rango de puertos. por ejemplo1024
.IP_START
: la dirección IP inicial del rango. por ejemplo"10.26.0.0"
.IP_END
: La dirección IP final del rango. por ejemplo"10.26.255.255"
.
El siguiente es un resultado de muestra de esta consulta:
Día | LocalVMName | LocalAssetID | LocalGroups | LocalIP | LocalPort | Protocolo | LocalProcessName | RemoteVMName | RemoteAssetID | RemoteGroups | RemoteIP | RemotePort | ConnectionCount |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2024-04-18 | 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 | |
2024-04-18 | 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 | |
2024-04-19 | 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 sin analizar en la red
La siguiente consulta te permite identificar los recursos que no se analizaron en tu red. Un recurso sin analizar es una conexión a una dirección IP remota que no está asociada a ningún recurso de 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
: La dirección IP final del rango. Por ejemplo,"10.26.255.255"
.