mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 12:46:18 +01:00
92 lines
3.4 KiB
Plaintext
92 lines
3.4 KiB
Plaintext
// Module included in the following assemblies:
|
|
//
|
|
// * observability/network_observability/network-observability-secondary-networks.adoc
|
|
|
|
:_mod-docs-content-type: PROCEDURE
|
|
[id="network-observability-virtualization-config_{context}"]
|
|
= Configuring virtual machine (VM) secondary network interfaces for Network Observability
|
|
|
|
[role="_abstract"]
|
|
Configure the `FlowCollector` to monitor VM secondary network traffic by setting the eBPF agent to `privileged` mode and defining the indexing for secondary networks, enabling the capture and enrichment of flows from {VirtProductName}.
|
|
|
|
Network flows coming from VMs that are connected to the default internal pod network are automatically captured by network observability.
|
|
|
|
.Procedure
|
|
. Get information about the virtual machine launcher pod by running the following command. This information is used in Step 5:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc get pod virt-launcher-<vm_name>-<suffix> -n <namespace> -o yaml
|
|
----
|
|
+
|
|
[source,yaml]
|
|
----
|
|
apiVersion: 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:
|
|
# ...
|
|
----
|
|
<1> The name of the secondary network.
|
|
<2> The network interface name of the secondary network.
|
|
<3> The list of IPs used by the secondary network.
|
|
<4> The MAC address used for secondary network.
|
|
|
|
. In the web console, navigate to *Ecosystem* -> *Installed Operators*.
|
|
. Under the *Provided APIs* heading for the *NetObserv Operator*, select *Flow Collector*.
|
|
. Select *cluster* and then select the *YAML* tab.
|
|
. Configure `FlowCollector` based on the information you found from the additional network investigation:
|
|
+
|
|
[source,yaml]
|
|
----
|
|
apiVersion: flows.netobserv.io/v1beta2
|
|
kind: FlowCollector
|
|
metadata:
|
|
name: cluster
|
|
spec:
|
|
agent:
|
|
ebpf:
|
|
privileged: true \ <1>
|
|
processor:
|
|
advanced:
|
|
secondaryNetworks:
|
|
- index: \ <2>
|
|
- MAC \ <3>
|
|
name: my-vms/l2-network \ <4>
|
|
# ...
|
|
----
|
|
<1> Ensure that the eBPF agent is in `privileged` mode so that flows are collected for secondary interfaces.
|
|
<2> Define the fields to use for indexing the virtual machine launcher pods. It is recommended to use the `MAC` address as the indexing field to get network flows enrichment for secondary interfaces. If you have overlapping MAC address between pods, then additional indexing fields, such as `IP` and `Interface`, could be added to have accurate enrichment.
|
|
<3> If your additional network information has a MAC address, add `MAC` to the field list.
|
|
<4> Specify the name of the network found in the `k8s.v1.cni.cncf.io/network-status` annotation. Usually <namespace>/<network_attachement_definition_name>.
|
|
|
|
. Observe VM traffic:
|
|
.. Navigate to the *Network Traffic* page.
|
|
.. Filter by *Source* IP using your virtual machine IP found in `k8s.v1.cni.cncf.io/network-status` annotation.
|
|
.. View both *Source* and *Destination* fields, which should be enriched, and identify the VM launcher pods and the VM instance as owners.
|