概要

Datadog で NetFlow Monitoring を使用すると、NetFlow 対応デバイスからのフローレコードを視覚化して監視することができます。

NetFlow Monitoring ページには、上位送信元、宛先、プロトコル、送信元ポート、宛先ポート、デバイス傾向のタブが表示されています。

インストール

ネットワークデバイスモニタリングで NetFlow Monitoring を使用するには、Agent のバージョン 7.45 以降を使用していることを確認してください。

注: NetFlow データの送信には、ネットワークデバイスモニタリングからのメトリクス収集の構成は必須ではありませんが、この追加データを使用してデバイス名、モデル、ベンダー、インバウンド/アウトバウンドインターフェイス名などの情報でフローレコードをリッチ化できるため、強く推奨されています。

構成

NetFlow、jFlow、sFlow、または IPFIX トラフィックを Agent NetFlow サーバーに送信するようにデバイスを構成するには、Datadog Agent がインストールされている IP アドレスに、具体的には flow_typeport を指定してトラフィックを送信するようにデバイスを構成する必要があります。

NetFlow を有効にするために、Agent コンフィグレーションファイル datadog.yaml を編集します。

network_devices:
  netflow:
    enabled: true
    listeners:
      - flow_type: netflow9   # 選択肢: netflow5、netflow9、ipfix、sflow5
        port: 2055            # デバイスを同じポート番号に構成する必要があります
      - flow_type: netflow5
        port: 2056
      - flow_type: ipfix
        port: 4739
      - flow_type: sflow5
        port: 6343

変更内容を保存したら、Agent を再起動します。

集計

Datadog Agent は、NetFlow から受信したデータを自動的に集約し、送信されるレコードの数を抑えながら、情報の大部分を維持します。デフォルトでは、sourcedestination addressportprotocol など同じ識別子を持つフローの記録が 5 分ごとに集約されます。また、Datadog Agent は短期間しか使用されないポート (エフェメラルポート) を検出して除去することが可能です。その結果、port:* と表示されるフローが確認されることがあります。

リッチ化

NetFlow データは Datadog のバックエンドにより処理され、デバイスおよびインターフェイスから利用できるメタデータでリッチ化されます。リッチ化は、NetFlow エクスポーターの IP とインターフェイスインデックスに基づいて行われます。再利用されたプライベート IP が競合する可能性に対し、曖昧性を解消するため、Agent コンフィギュレーションファイルごとに異なる namespace を構成することができます (network_devices.namespace の設定を使用します)。

NetFlow エクスポーターの IP がデバイスの IP の 1 つではあるが、SNMP インテグレーションで構成されたものではない場合、Datadog はエクスポーターの IP が属するデバイスの特定を試み、一意で一致する場合に限り、その情報で NetFlow データをリッチ化します。

クラウドプロバイダーの IP アドレスの拡張

Datadog は、IPv4 アドレスに対してパブリッククラウドプロバイダーのサービスとリージョンの情報を付加し、特定のサービスやリージョンからのフローレコードをフィルタリングできるようにします。

クラウドプロバイダー名、地域、サービスで拡張された NetFlow IP

ポートの拡張

Datadog は、NetFlow のポートに対して IANA (Internet Assigned Numbers Authority) のデータを使用してよく知られたポートマッピング (例:5432 の Postgres や 443 の HTTPS) を解決します。これは、NetFlow でソースや宛先のアプリケーション名を検索する際に確認できます。

@destination.application_name でフィルタリングされた NetFlow ページで、HTTPS などのポート名を表示しています。

カスタムポートの拡張

また、特定のポートで実行されているカスタムサービスがある場合など、ポートやプロトコルを特定のアプリケーションにマッピングする独自のカスタム拡張を追加することも可能です。これにより、ネットワークエンジニアやそのチームが、人間が読みやすい名前で NetFlow データを解釈し、クエリを実行しやすくなります。

NetFlow の Configuration タブで Add Enrichment をクリックし、カスタム拡張を含む CSV ファイルをアップロードします。

NetFlow 構成タブの New Enrichment Mapping モーダル

視覚化

NetFlow モニタリングによって収集されたデータは、NetFlow ページからアクセスできます。リスト内のフローにカーソルを合わせると、ホスト、ポッド、コンテナに関する追加情報が表示され、関連するネットワーク接続にアクセスできます。

NetFlow を送信するデバイスから集計されたフローにカーソルを合わせると、関連するネットワーク接続情報にアクセスできます。

NetFlow モニターを作成する際は、デバイスの観点から送信元 IP または宛先 IP に関して以下のフィールドを考慮する必要があります。これらのフィールドは、ネットワークトラフィックのパターンを理解し、パフォーマンスとセキュリティの最適化に役立ちます。

インターフェイス情報

以下のフィールドは、入力インターフェイスと出力インターフェイスに関する詳細を表します。

フィールド名フィールドの説明
Egress Interface Alias出力インターフェイスのエイリアス。
Egress Interface Index出力インターフェイスのインデックス。
Egress Interface Name出力インターフェイスの名前。
Ingress Interface Alias入力インターフェイスのエイリアス。
Ingress Interface Index入力インターフェイスのインデックス。
Ingress Interface Name入力インターフェイスの名前。

デバイス情報

以下のフィールドは、NetFlow レコードを生成するデバイスに関する詳細を表します。

フィールド名フィールドの説明
Device IP拡張のために NDM 内のデバイスにマッピングされる IP アドレス。
Exporter IPNetFlow パケットの送信元の IP アドレス。
Device Modelデバイスのモデル。
Device Nameデバイスの名前。
Device Namespaceデバイスのネームスペース。
Device Vendorデバイスのベンダー。

フローの詳細

以下のフィールドは、ネットワークフローの特性を表します。

フィールド名フィールドの説明
方向フローがインバウンドかアウトバウンドかを示します。
Start Time送信元 IP と宛先 IP 間で最初に送信されたネットワークパケットのタイムスタンプ。
End Time送信元 IP と宛先 IP 間で最後に送信されたネットワークパケットのタイムスタンプ。
Ether TypeEthernet フレームのカプセル化の種類 (IPv4 または IPv6)。
Flow TypeNetFlow データのフォーマットの種類 (IPFIX、sFlow5、NetFlow5、NetFlow9、または不明) 。
IP Protocol通信に使用されるプロトコル (例: ICMP、TCP、UDP など)。
Next Hop IPネットワークパス上の次のホップの IP アドレス。
TCP Flagフローの期間中に観測されたすべての TCP フラグの合計。
Bytes転送されたバイト数の総計。
Packets転送されたパケット数の総計。

フィールドに加え、すぐに使えるファセットを活用して、NetFlow の宛先および送信元 IP アドレスに基づくトラフィックパターンの分析を始めることができます。

NetFlow 宛先 IP ファセット

Facet Nameファセットの説明
Destination AS Domain宛先 IP が属する自律システム (AS) に関連付けられたドメイン。
Destination AS Name宛先 IP が属する自律システム (AS) の名称。
Destination AS Number宛先 IP が属する自律システム (AS) に割り当てられた番号。
Destination AS Route宛先 IP が属する自律システム (AS) に関連するルート情報。
Destination AS Type宛先 IP が属する自律システム (AS) の種類 (トランジット、カスタマー、ピアなど) 。
Destination Application Name宛先 IP に関連するアプリケーションの名称。
Destination City Name宛先 IP に関連する都市の名称。
Destination Cloud Provider Name宛先 IP に関連するクラウドプロバイダーの名称。
Destination Cloud Provider Region宛先 IP に関連するクラウドプロバイダーの地域。
Destination Cloud Provider Service宛先 IP に関連するクラウドプロバイダーが提供するサービス。
Destination Continent Code宛先 IP に関連する大陸のコード。
Destination Continent Name宛先 IP に関連する大陸の名称。
Destination Country ISO Code宛先 IP に関連する国を表す ISO コード。
Destination Country Name宛先 IP に関連する国の名称。
Destination IP宛先 IP アドレス。
Destination Latitude宛先 IP に関連する緯度座標。
Destination Longitude宛先 IP に関連する経度座標。
Destination MAC宛先 IP に関連するメディアアクセス制御 (MAC) アドレス。
Destination Mask宛先 IP に関連するサブネットマスク。
Destination Port宛先ポート番号。
Destination Subdivision ISO Code宛先 IP に関連する行政区画 (州や県など) を表す ISO コード。
Destination Subdivision Name宛先 IP に関連する行政区画 (州や県など) の名称。
Destination Timezone宛先 IP に関連するタイムゾーン。

NetFlow 送信元 IP ファセット

Facet Nameファセットの説明
Source AS Domain送信元 IP が属する自律システム (AS) に関連付けられたドメイン。
Source AS Name送信元 IP が属する自律システム (AS) の名称。
Source AS Number送信元 IP が属する自律システム (AS) に割り当てられた番号。
Source AS Route送信元 IP が属する自律システム (AS) に関連するルート情報。
Source AS Type送信元 IP が属する自律システム (AS) の種類 (トランジット、カスタマー、ピアなど) 。
Source Application Name送信元 IP に関連するアプリケーションの名称。
Source City Name送信元 IP に関連する都市の名称。
Source Cloud Provider Name送信元 IP に関連するクラウドプロバイダーの名称。
Source Cloud Provider Region送信元 IP に関連するクラウドプロバイダーの地域。
Source Cloud Provider Service送信元 IP に関連するクラウドプロバイダーが提供するサービス。
Source Continent Code送信元 IP に関連する大陸のコード。
Source Continent Name送信元 IP に関連する大陸の名称。
Source Country ISO Code送信元 IP に関連する国を表す ISO コード。
Source Country Name送信元 IP に関連する国の名称。
Source IP送信元 IP アドレス。
Source Latitude送信元 IP に関連する緯度座標。
Source Longitude送信元 IP に関連する経度座標。
Source MAC送信元 IP に関連するメディアアクセス制御 (MAC) アドレス。
Source Mask送信元 IP に関連するサブネットマスク。
Source Port送信元ポート番号。
Source Subdivision ISO Code送信元 IP に関連する行政区画 (州や県など) を表す ISO コード。
Source Subdivision Name送信元 IP に関連する行政区画 (州や県など) の名称。
Source Timezone送信元 IP に関連するタイムゾーン。

これらのキーフィールドを監視し、NetFlow イベントを分析するためのファセットを使用することで、組織は自社のネットワークインフラストラクチャーの可視化を強化し、パフォーマンスを最適化し、セキュリティ態勢を向上させることができます。

NetFlow データを使用してダッシュボードを作成する

このデータはダッシュボードやノートブックでも利用可能で、他のデータソースとの正確なクエリや相関分析を行うことができます。NetFlow データを使用してダッシュボードを作成する際には、Graph your data (データをグラフ化) セクションでソースとして NetFlow を選択します。

NetFlow データを使用してダッシュボードを作成する

サンプリングレート

NetFlow のサンプリングレートは、デフォルトでバイトおよびパケットの計算に考慮されます。表示されるバイトおよびパケットの値は、サンプリングレートが適用された計算結果です。さらに、ダッシュボードやノートブックで Bytes (Adjusted) (@adjusted_bytes) および Packets (Adjusted) (@adjusted_packets) をクエリして、これらのデータを可視化することができます。

デバイスから送信された生のバイト/パケット (サンプル) を可視化するには、ダッシュボードやノートブックで Bytes (Sampled) (@bytes) および Packets (Sampled) (@packets) をクエリします。

保持

NetFlow データはデフォルトで 30 日間保持され、15 日、30 日、60 日、90 日の保持オプションも提供されています。

NetFlow データをさらに長期間保持したい場合は、アカウント担当者にお問い合わせください。

トラブルシューティング

NetFlow パケットのドロップ

NetFlow パケットのドロップは、1 秒あたりの NetFlow パケット数が非常に多い場合 (通常は 50,000 以上) に発生します。以下の手順により、NetFlow パケットのドロップを特定し、緩和することができます。

パケットのドロップの特定

netstat -s コマンドを使用して、ドロップされた UDP パケットがあるかどうかを確認します。

    netstat -s

緩和手順

  1. NetFlow リスナーの数を増やす

以下のような構成を使用して、NetFlow リスナーの数を増やします。 Datadog は、ワーカーの数をシステム内の CPU コアの数に合わせることを推奨しています。

      netflow:
        enabled: true
        listeners:
          - flow_type: netflow9
            port: 2055
            workers: 4 # 4 個の CPU
  1. UDP キューの長さを増やす (Linux のみ)

システムの UDP キューの長さを調整することで、NetFlow パケットの大量処理に対応できるようにします。以下のコマンドを実行して、UDP 受信バッファのサイズを 25MB に増やします。

    sudo sysctl -w net.core.rmem_max=26214400
    sudo sysctl -w net.core.rmem_default=26214400
  1. 構成の永続化 (Linux のみ)

これらの変更を恒久化するには、次の行を /etc/sysctl.conf ファイルに追加します。

    net.core.rmem_max=26214400
    net.core.rmem_default=26214400

その他の参考資料