Netzwerkabhängigkeiten analysieren

Auf dieser Seite wird beschrieben, wie Sie den Bericht zu Netzwerkabhängigkeiten in Migration Center generieren und analysieren.

Übersicht

Der Bericht zu Netzwerkabhängigkeiten enthält monatlich aggregierte Daten zu den Verbindungen zu Ihren Servern und Datenbanken. Im Bericht zu Netzwerkabhängigkeiten sehen Sie alle Verbindungen zu den Assets in Ihrer Infrastruktur und die Anzahl der Male, die die Verbindung von Migration Center beobachtet wurde, monatlich zusammengefasst.

Damit Daten zu Netzwerkabhängigkeiten erfasst werden können, muss der Discovery-Client über einen bestimmten Zeitraum ausgeführt werden. Außerdem muss die Synchronisierung der Daten mit Migration Center aktiviert sein. Je länger Sie die Erfassung ausführen, desto mehr Daten hat Migration Center zur Analyse von Statistiken zu Ihren Netzwerkabhängigkeiten. Migration Center ermittelt dann alle Netzwerkverbindungen der gescannten Assets. Die Ziel-Assets in einer Verbindung können Assets in Ihrem Migration Center-Inventar sein, die Sie mit dem Discovery-Client erkannt haben, Assets, die Sie manuell importiert haben, oder sogar unbekannte Assets, die sich außerhalb Ihrer Umgebung befinden.

Der Bericht zu Netzwerkabhängigkeiten ist in folgenden Szenarien nützlich:

  • Erhebung von Daten zu Verbindungen zu Servern und Datenbanken, um Assets zu identifizieren, die zur selben Anwendung gehören
  • Netzwerkverbindungen von Interesse in einer Gruppe von Assets identifizieren, z. B. alle Server, die den MySQL-Standardport verwenden
  • Fehlende Assets in Ihrem Inventar identifizieren

Sie können den Bericht zu Netzwerkabhängigkeiten als CSV-Datei aus dem Migration Center herunterladen. Anschließend können Sie Ihre Analyse mit BigQuery und den von Migration Center bereitgestellten Beispielabfragen oder mit einem beliebigen anderen Drittanbietertool durchführen.

Beschränkungen

  • Wenn Sie Verbindungsdaten in Ihrer Infrastruktur erfassen möchten, müssen Sie den Discovery-Client verwenden.
  • Daten zu Netzwerkverbindungen werden nur mit der Methode „Betriebssystem-Scan“ erhoben. Der vSphere-Scan unterstützt die Erfassung von Netzwerkdaten nicht.

Hinweise

Bericht zu Netzwerkabhängigkeiten erstellen

So erstellen Sie einen Bericht zu Netzwerkabhängigkeiten:

  1. Rufen Sie in der Google Cloud Console die Seite Berichte erstellen auf.

    Zur Seite „Berichte erstellen“

  2. Klicken Sie auf Exporte von Netzwerkabhängigkeiten.

  3. Wählen Sie in der Liste der Gruppen die Gruppen aus, für die Sie den Bericht generieren möchten, und klicken Sie dann auf Exportieren.

  4. Klicken Sie im angezeigten Dialogfeld auf Exportieren.

    Das Erstellen des exportierten Berichts kann bis zu einer Stunde dauern. Nachdem der Bericht generiert wurde, wird die Seite Netzwerkabhängigkeiten geöffnet.

  5. Wenn Sie einen bestimmten Bericht herunterladen möchten, klicken Sie auf Herunterladen.

Bericht zu Netzwerkabhängigkeiten in BigQuery analysieren

In den folgenden Abschnitten finden Sie einige Beispielabfragen, mit denen Sie häufige Szenarien in BigQuery analysieren können. Bevor Sie eine Abfrage ausführen können, müssen Sie Ihre CSV-Datei in BigQuery hochladen.

Für die Nutzung von BigQuery wird Ihnen gemäß den BigQuery-Preisen in Rechnung gestellt.

Assets mit den meisten Verbindungen identifizieren

Mit der folgenden Abfrage lassen sich die Assets mit der größten Anzahl von Verbindungen in der Gruppe ermitteln.

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

Ersetzen Sie Folgendes:

  • PROJECT: das Google Cloud Projekt, in dem Sie die CSV-Datei hochgeladen haben.
  • DATASET: Das BigQuery-Dataset.
  • TABLE: Die BigQuery-Tabelle.

Hier ein Beispiel für die Ausgabe dieser Abfrage:

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

Verbindungen nach Tiefe des Diagramms identifizieren

Mit der folgenden Abfrage lassen sich alle Assets ermitteln, die mit einer bestimmten Anzahl von Zwischenverbindungen mit einem bestimmten Asset verbunden sind. Beispiel:

  • Bei einer Tiefe von 1 werden alle Assets gefunden, die direkt mit dem Haupt-Asset verknüpft sind.
  • Bei einer Tiefe von 2 werden alle Assets gefunden, die direkt mit anderen Assets verbunden sind, die wiederum direkt mit dem Haupt-Asset verbunden sind.
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

Ersetzen Sie Folgendes:

  • MAIN_ASSET: Der Name des Assets, für das Sie die Verbindungen ermitteln möchten.
  • DEPTH: Die Tiefe des Diagramms.

Hier ein Beispiel für die Ausgabe dieser Abfrage:

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

Verbindungen nach IP- und Portbereichen filtern

Mit der folgenden Abfrage können Sie Assets ermitteln, die IP-Adressen und Ports in von Ihnen definierten Bereichen verwenden.

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

Ersetzen Sie Folgendes:

  • PORT_START: Der Startport des Portbereichs, z. B. 0.
  • PORT_END: Der letzte Port des Portbereichs, z. B. 1024.
  • IP_START: Die erste IP-Adresse des Bereichs, z. B. "10.26.0.0".
  • IP_END: Die letzte IP-Adresse des Bereichs, z. B. "10.26.255.255".

Hier ein Beispiel für die Ausgabe dieser Abfrage:

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

Nicht gescannte Assets im Netzwerk identifizieren

Mit der folgenden Abfrage können Sie alle nicht gescannten Assets in Ihrem Netzwerk identifizieren. Ein nicht gescanntes Asset ist eine Verbindung zu einer Remote-IP-Adresse, die keinem Asset in Ihrem Migration Center-Inventar zugeordnet ist. So können Sie möglicherweise fehlende Assets identifizieren, die Sie für Ihre Bewertung scannen müssen.

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

Ersetzen Sie Folgendes:

  • IP_START: Die erste IP-Adresse des Bereichs, z. B. "10.26.0.0".
  • IP_END: Die letzte IP-Adresse des Bereichs, z. B. "10.26.255.255".