-
Notifications
You must be signed in to change notification settings - Fork 1.8k
OSDOCS-10877: Virtualization in Network Observability #83105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
// 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 | ||
You can observe network traffic on an OpenShift Virtualization setup by identifying eBPF-enriched network flows coming from VMs that are connected to secondary networks, such as through OVN-Kubernetes. 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 *Operators* -> *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: | ||
# ... | ||
ebpf: | ||
privileged: true <1> | ||
processor: | ||
advanced: | ||
secondaryNetworks: | ||
- index: <2> | ||
- MAC <3> | ||
name: my-vms/l2-network <4> | ||
# ... | ||
---- | ||
<.> Ensure that the eBPF agent is in `privileged` mode so that flows are collected for secondary interfaces. | ||
<.> 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. | ||
<.> If your additional network information has a MAC address, add `MAC` to the field list. | ||
<.> 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. | ||
skrthomas marked this conversation as resolved.
Show resolved
Hide resolved
|
||
.. View both *Source* and *Destination* fields, which should be enriched, and identify the VM launcher pods and the VM instance as owners. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
:_mod-docs-content-type: ASSEMBLY | ||
[id="network-observability-secondary-networks"] | ||
= Secondary networks | ||
include::_attributes/common-attributes.adoc[] | ||
:context: network-observability-secondary-networks | ||
|
||
toc::[] | ||
You can configure the Network Observability Operator to collect and enrich network flow data from secondary networks, such as SR-IOV and OVN-Kubernetes. | ||
|
||
// Note to tech review: | ||
// Is the existing SR-IOV example we have, "Configuring monitoring for SR-IOV interface traffic", an example of secondary network? If so, it is not through a VM, right? | ||
|
||
[discrete] | ||
[id="network-observability-secondary-network-prerequisites_{context}"] | ||
== Prerequisites | ||
* Access to an {product-title} cluster with an additional network interface, such as a secondary interface or an L2 network. | ||
|
||
include::modules/network-observability-SRIOV-configuration.adoc[leveloffset=+1] | ||
|
||
[role="_additional-resources"] | ||
.Additional resources | ||
*xref:../../networking/hardware_networks/configuring-sriov-device.adoc#cnf-creating-an-additional-sriov-network-with-vrf-plug-in_configuring-sriov-device[Creating an additional SR-IOV network attachment with the CNI VRF plugin]. | ||
|
||
include::modules/network-observability-virtualization-configuration.adoc[leveloffset=+1] |
Uh oh!
There was an error while loading. Please reload this page.