Analyser les dépendances réseau

Cette page explique comment générer et analyser le rapport sur les dépendances réseau dans Migration Center.

Présentation

Le rapport sur les dépendances réseau fournit des données agrégées mensuelles sur les connexions à vos serveurs et bases de données. Le rapport sur les dépendances réseau vous permet de voir toutes les connexions aux composants de votre infrastructure, ainsi que le nombre de fois où la connexion est observée par Migration Center, agrégé mensuellement.

Pour collecter des données sur les dépendances réseau, laissez le client de découverte s'exécuter pendant un certain temps et activez la synchronisation des données avec Migration Center. Plus vous exécutez la collecte longtemps, plus Migration Center dispose de données pour analyser les insights sur les dépendances de votre réseau. Migration Center identifie ensuite toutes les connexions réseau à partir des ressources analysées. Les composants cibles d'une connexion peuvent être des composants de votre inventaire Migration Center que vous avez découverts avec le client de découverte, des composants que vous avez importés manuellement ou même des composants inconnus externes à votre environnement.

Le rapport sur les dépendances réseau est utile dans les scénarios suivants :

  • Collecte de données sur les connexions aux serveurs et aux bases de données, pour identifier les composants appartenant à la même application
  • Identifier les connexions réseau d'intérêt dans un groupe d'assets, comme tous les serveurs utilisant le port MySQL standard
  • Identifier les composants manquants dans votre inventaire

Vous pouvez télécharger le rapport sur les dépendances réseau au format CSV depuis Migration Center. Vous pouvez ensuite effectuer votre analyse à l'aide de BigQuery et des exemples de requêtes fournis par Migration Center, ou utiliser tout autre outil tiers.

Limites

  • Pour collecter des données de connexion dans votre infrastructure, vous devez utiliser le client Discovery.
  • Les données de connexion réseau ne sont collectées qu'avec la méthode d'analyse de l'OS. L'analyse vSphere n'est pas compatible avec la collecte de données réseau.

Avant de commencer

  • Avant de créer un rapport sur les dépendances réseau, vous devez avoir configuré la collecte des performances avec le client Discovery.

  • Avant d'analyser le rapport sur les dépendances réseau avec BigQuery, procédez comme suit :

Générer le rapport sur les dépendances réseau

Pour générer un rapport sur les dépendances réseau, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Créer des rapports.

    Accéder à "Créer des rapports"

  2. Cliquez sur Exportations des dépendances réseau.

  3. Dans la liste des groupes, sélectionnez ceux pour lesquels vous souhaitez générer le rapport, puis cliquez sur Exporter.

  4. Dans la boîte de dialogue qui s'affiche, cliquez sur Exporter.

    La création du rapport exporté peut prendre jusqu'à une heure. Une fois votre rapport généré, la page Dépendances réseau s'ouvre.

  5. Pour télécharger un rapport spécifique, cliquez sur Télécharger.

Analyser le rapport sur les dépendances réseau dans BigQuery

Les sections suivantes vous fournissent des exemples de requêtes pour analyser des scénarios courants dans BigQuery. Avant de pouvoir exécuter une requête, vous devez importer votre fichier CSV dans BigQuery.

Pour utiliser BigQuery, vous êtes facturé selon les tarifs de BigQuery.

Identifier les composants avec le plus de connexions

La requête suivante est utile pour identifier les composants qui comportent le plus grand nombre de connexions dans le groupe.

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

Remplacez les éléments suivants :

  • PROJECT : projet Google Cloud dans lequel vous avez importé le fichier CSV.
  • DATASET : ensemble de données BigQuery.
  • TABLE : table BigQuery.

Voici un exemple de résultat de cette requête :

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

Identifier les connexions par profondeur du graphique

La requête suivante est utile pour identifier tous les composants qui se connectent à un composant donné avec un nombre spécifique de connexions intermédiaires. Exemple :

  • Avec une profondeur de graphique égale à 1, vous trouverez tous les composants directement associés au composant principal.
  • Avec une profondeur de graphique égale à 2, vous trouverez tous les composants directement connectés à d'autres composants, qui sont eux-mêmes directement connectés au composant 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

Remplacez les éléments suivants :

  • MAIN_ASSET : nom du composant pour lequel vous souhaitez identifier les connexions.
  • DEPTH : profondeur du graphique.

Voici un exemple de résultat de cette requête :

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

Filtrer les connexions par plages d'adresses IP et de ports

La requête suivante vous permet d'identifier les composants qui utilisent des adresses IP et des ports dans des plages que vous définissez.

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))

Remplacez les éléments suivants :

  • PORT_START : port initial de la plage de ports, par exemple 0.
  • PORT_END : port final de la plage de ports, par exemple 1024.
  • IP_START : adresse IP initiale de la plage, par exemple "10.26.0.0".
  • IP_END : adresse IP finale de la plage, par exemple "10.26.255.255".

Voici un exemple de résultat de cette requête :

SampleRange LocalVMName LocalAssetID LocalGroups LocalIP LocalPort Protocole 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 Groupe 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 Groupe 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 Groupe 1 10.58.166.132 21 tcp bash VM-2gq0fl37 projects/982941055174/locations/us-central1/assets/2gq0fl37 147.19.84.135 21 514

Identifier les composants non analysés du réseau

La requête suivante vous permet d'identifier les composants non analysés de votre réseau. Un composant non analysé est une connexion à une adresse IP distante qui n'est associée à aucun composant de votre inventaire du centre de migration. Cela vous permet d'identifier les composants potentiellement manquants que vous devez analyser pour votre évaluation.

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

Remplacez les éléments suivants :

  • IP_START : adresse IP initiale de la plage, par exemple "10.26.0.0".
  • IP_END : adresse IP finale de la plage, par exemple "10.26.255.255".