13.3. 仮想マシン (VM) のセカンダリーネットワークインターフェイスを Network Observability 用に設定する
OVN-Kubernetes などを介してセカンダリーネットワークに接続された仮想マシンから送信される eBPF エンリッチ化ネットワークフローを検出することで、OpenShift Virtualization 環境のネットワークトラフィックを観測できます。デフォルトの内部 Pod ネットワークに接続されている仮想マシンからのネットワークフローは、Network Observability によって自動的にキャプチャーされます。
手順
次のコマンドを実行して、仮想マシンのランチャー Pod に関する情報を取得します。この情報はステップ 5 で使用します。
$ oc get pod virt-launcher-<vm_name>-<suffix> -n <namespace> -o yamlapiVersion: v1 kind: Pod metadata: annotations: k8s.v1.cni.cncf.io/network-status: |- [{ "name": "ovn-kubernetes", "interface": "eth0", "ips": [ "10.129.2.39" ], "mac": "0a:58:0a:81:02:27", "default": true, "dns": {} }, { "name": "my-vms/l2-network",1 "interface": "podc0f69e19ba2",2 "ips": [3 "10.10.10.15" ], "mac": "02:fb:f8:00:00:12",4 "dns": {} }] name: virt-launcher-fedora-aqua-fowl-13-zr2x9 namespace: my-vms spec: # ... status: # ...-
Web コンソールで、Operators
Installed Operators に移動します。 - NetObserv Operator の Provided APIs 見出しの下で、Flow Collector を選択します。
- cluster を選択し、YAML タブを選択します。
追加のネットワーク調査で調べた情報に基づいて
FlowCollectorを設定します。apiVersion: flows.netobserv.io/v1beta2 kind: FlowCollector metadata: name: cluster spec: agent: ebpf: privileged: true1 processor: advanced: secondaryNetworks: - index:2 - MAC3 name: my-vms/l2-network4 # ...- 1
- セカンダリーインターフェイスのフローが収集されるように、eBPF エージェントが
privilegedモードになっていることを確認します。 - 2
- 仮想マシンランチャー Pod のインデックス作成に使用するフィールドを定義します。セカンダリーインターフェイスのネットワークフローのエンリッチメントを取得するには、
MACアドレスをインデックスフィールドとして使用することを推奨します。Pod 間で MAC アドレスが重複している場合は、IPやInterfaceなどの追加のインデックスフィールドを追加すると、正確なエンリッチメントを取得できます。 - 3
- 追加のネットワーク情報に MAC アドレスがある場合は、フィールドリストに
MACを追加します。 - 4
k8s.v1.cni.cncf.io/network-statusアノテーションで見つかったネットワークの名前を指定します。通常は <namespace>/<network_attachement_definition_name> です。
仮想マシンのトラフィックを観測します。
- Network Traffic ページに移動します。
-
k8s.v1.cni.cncf.io/network-statusアノテーションで見つかった仮想マシンの IP を使用して、Source IP でフィルタリングします。 - エンリッチする必要がある Source フィールドと Destination フィールドの両方を表示し、仮想マシンランチャー Pod と仮想マシンインスタンスを所有者として指定します。