From c2eac5ae78cf170932eea7ccf8fcd8ac82bf1ad9 Mon Sep 17 00:00:00 2001 From: Robert Bohne Date: Tue, 30 Jun 2026 21:50:25 +0200 Subject: [PATCH] Restructure KubeVirt networking page with OVN-Bridge and Linux-Bridge examples Reorganize the networking page into clear OVN-Bridge vs Linux-Bridge sections, add ClusterUserDefinedNetwork example (OCP 4.19+), consolidate drawio diagrams into a single multi-page file, and update references to OCP 4.22. Co-authored-by: Cursor --- content/README.md | 1 + ...enShift_Virtualization_Networking_0423.png | Bin 0 -> 90140 bytes .../bonding-vlan-localnet-bridge.drawio | 136 ------ content/kubevirt/networking/diagram.drawio | 393 ++++++++++++++++++ content/kubevirt/networking/index.md | 263 +++++------- .../networking/localnet-net-attach-def.yaml | 13 - .../kubevirt/networking/localnet-nncp.yaml | 13 - 7 files changed, 504 insertions(+), 315 deletions(-) create mode 100644 content/kubevirt/networking/318_OpenShift_Virtualization_Networking_0423.png delete mode 100644 content/kubevirt/networking/bonding-vlan-localnet-bridge.drawio create mode 100644 content/kubevirt/networking/diagram.drawio delete mode 100644 content/kubevirt/networking/localnet-net-attach-def.yaml delete mode 100644 content/kubevirt/networking/localnet-nncp.yaml diff --git a/content/README.md b/content/README.md index dcc0a0bc..9e0dfe65 100644 --- a/content/README.md +++ b/content/README.md @@ -24,6 +24,7 @@ and benefit from the expertise shared in this repository. |Date|Headline| |---|---| +|2026-07-03|[Updated KubeVirt networking: OVN-Bridge, Linux-Bridge, ClusterUserDefinedNetwork](kubevirt/networking/)| |2026-05-29|[Updated disconnected installation section](cluster-installation/disconnected/)| |2026-05-26|[Added Hosted Control Plane and tenant networking](cluster-installation/hosted-control-plane/tenant-network/)| |2026-05-05|[Added cluster-installation on STACKIT](cluster-installation/stackit/)| diff --git a/content/kubevirt/networking/318_OpenShift_Virtualization_Networking_0423.png b/content/kubevirt/networking/318_OpenShift_Virtualization_Networking_0423.png new file mode 100644 index 0000000000000000000000000000000000000000..5b455f056792b321c2399e81f8724685e5d3eedd GIT binary patch literal 90140 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/content/kubevirt/networking/diagram.drawio b/content/kubevirt/networking/diagram.drawio new file mode 100644 index 00000000..348f2b9b --- /dev/null +++ b/content/kubevirt/networking/diagram.drawio @@ -0,0 +1,393 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/content/kubevirt/networking/index.md b/content/kubevirt/networking/index.md index c779f91b..2108a5d8 100644 --- a/content/kubevirt/networking/index.md +++ b/content/kubevirt/networking/index.md @@ -2,20 +2,20 @@ title: Networking linktitle: Networking weight: 14100 -description: TBD +description: OpenShift Virtualization networking configuration including bonds, bridges, VLANs, OVS, SR-IOV, and secondary networks for VMs. icon: material/tournament -tags: ['v4.17','cnv', 'kubevirt','ocp-v','networking'] +tags: ['v4.22','cnv', 'kubevirt','ocp-v','networking'] --- # Networking An OpenShift cluster is configured using an overlay software-defined network (SDN) for both the Pod and Service networks. By default, VMs are configured with connectivity to the SDN and have the same features/connectivity as Pod-based applications. -Host-level networking configurations are created and applied using the NMstate operator. This includes the ability to report the current configuration options, such as bonds, bridges, and VLAN tags to help segregate networking resources, as well as apply desired-state configuration for those entities. +Host-level networking is configured for the primary interface during installation (br-0/SDN). All additional networks can be configured via the NMState operator. -* *Source: [Red Hat Architecting OpenShift Virtualization](https://redhatquickcourses.github.io/architect-the-ocpvirt/Red%20Hat%20OpenShift%20Virtualization%20-%20Architecting%20OpenShift%20Virtualization/1/chapter5/section2.html)* +* *Source: [OpenShift Virtualization, 10.1. Networking overview](https://docs.redhat.com/en/documentation/openshift_container_platform/4.22/html/virtualization/networking#virt-networking)* -![network_bond](network_bond.png) +![network_bond](318_OpenShift_Virtualization_Networking_0423.png) ## Bonded NICs for Management and SDN @@ -25,7 +25,13 @@ The initial bond interface, consisting of two adapters bonded together with an I The following is a sample NMstate configuration making use of two adapters on the host to create a bonded interface in the LACP (802.3ad) run mode. The bonds are intended to be used for isolating network traffic for different purposes. This provides the advantage of avoiding noisy neighbor scenarios for some interfaces that may have a large impact, for example a backup for a virtual machine consuming significant network throughput impacting ODF or etcd traffic on a shared interface. -```yaml +!!! warning + + Keep in mind, `NodeNetworkConfigurationPolicy` following not the typical Kubernetes declarative way. If you delete the following `NodeNetworkConfigurationPolicy` the bond1 for example will not be deleted. + + To remove the `bond1` from the nodes, you have to change the `state` from `up` to `absent`. + +```yaml title="Node configuration, for bond1 (LACP)" apiVersion: nmstate.io/v1 kind: NodeNetworkConfigurationPolicy metadata: @@ -35,34 +41,51 @@ metadata: spec: desiredState: interfaces: - - link-aggregation: + - name: bond1 + state: up + type: bond + link-aggregation: mode: 802.3ad port: - enp6s0f0 - enp6s0f1 - name: bond1 - state: up - type: bond ``` -## Example VM Network Configuration +## OVN-Bridge vs Linux-Bridge + +[10.1.3.1. Comparing Linux bridge CNI and OVN-Kubernetes localnet topology](https://docs.redhat.com/en/documentation/openshift_container_platform/4.22/html/virtualization/networking#virt-nw-overview-comparing-localnet-linuxbridge_virt-networking-overview) + +## OVN-Bridge example + +|Component|Version| +|---|---| +|OpenShift|v4.22.1| An example configuration for VM network connectivity is below, note that the bond configuration should be a part of the same NodeNetworkConfigurationPolicy to ensure they are configured together. -```yaml +![](diagram.drawio){ page="physnet-ovs-br1-bond1" } + +```yaml title="Node configuration, for bond1, ovs-bridge (ovs-br1) and localnet (physnet-ovs-br1-bond1)" apiVersion: nmstate.io/v1 kind: NodeNetworkConfigurationPolicy metadata: - name: ovs-br1-vlan-trunk + annotations: + description: Localnet, OVS Bridge and bond1 + name: physnet-ovs-br1-bond1 spec: nodeSelector: node-role.kubernetes.io/worker: '' desiredState: interfaces: + - name: bond1 + state: up + type: bond + link-aggregation: + mode: active-backup + port: + - eth2 + - eth3 - name: ovs-br1 - description: |- - A dedicated OVS bridge with bond2 as a port - allowing all VLANs and untagged traffic type: ovs-bridge state: up bridge: @@ -70,184 +93,118 @@ spec: options: stp: true port: - - name: bond2 + - name: bond1 ovn: bridge-mappings: - - localnet: vlan-2024 - bridge: ovs-br1 - state: present - - localnet: vlan-1993 + - localnet: physnet-ovs-br1-bond1 bridge: ovs-br1 state: present ---- -apiVersion: k8s.cni.cncf.io/v1 -kind: NetworkAttachmentDefinition -metadata: - annotations: - description: VLAN 2024 connection for VMs - name: vlan-2024 - namespace: default -spec: - config: |- - { - "cniVersion": "0.3.1", - "name": "vlan-2024", - "type": "ovn-k8s-cni-overlay", - "topology": "localnet", - "netAttachDefName": "default/vlan-2024", - "vlanID": 2024, - "ipam": {} - } ---- -apiVersion: k8s.cni.cncf.io/v1 -kind: NetworkAttachmentDefinition +``` + +### Project/namespace configuration for OVN-Bridge + +To allow virtual machines to connect to a specific VLAN. + +!!! info + + **Since OpenShift 4.19, `ClusterUserDefinedNetwork` — supports Localnet topology.** + It's not needed anymore to create `NetworkAttachmentDefinitions` by hand. + +```yaml +apiVersion: k8s.ovn.org/v1 +kind: ClusterUserDefinedNetwork metadata: annotations: - description: VLAN 1993 connection for VMs - name: vlan-1993 - namespace: default + description: Localnet, OVS Bridge and bond1 + name: net-default-vlan-10 spec: - config: |- - { - "cniVersion": "0.3.1", - "name": "vlan-1993", - "type": "ovn-k8s-cni-overlay", - "topology": "localnet", - "netAttachDefName": "default/vlan-1993", - "vlanID": 1993, - "ipam": {} - } + namespaceSelector: + matchLabels: + openshift.pub/access-to-vlan: "11" + # kubernetes.io/metadata.name: + network: + localnet: + ipam: + mode: Disabled + mtu: 1500 + physicalNetworkName: physnet-ovs-br1-bond1 + role: Secondary + vlan: + access: + id: 11 + mode: Access + topology: Localnet ``` -## Create a bridge on the main interface +## Linux-Bridge example -All nodes on which the configuration is executed are restarted. +|Component|Version| +|---|---| +|OpenShift|v4.22.1| -```yaml -oc apply -f - < VLAN -> LocalNet & Bridge * Tested with OpenShift 4.17.11 -![bonding-vlan-localnet-bridge](bonding-vlan-localnet-bridge.drawio) +![](diagram.drawio){ page="bonding-vlan-localnet-bridge" } ??? quote "NMState for initial setup / add-node" @@ -346,7 +303,7 @@ oc new-project localnet-demo * Tested with OpenShift 4.18.13 -![bond-balance-slb](bond-balance-slb.drawio) +![](diagram.drawio){ page="bond-balance-slb" } !!! WARNING diff --git a/content/kubevirt/networking/localnet-net-attach-def.yaml b/content/kubevirt/networking/localnet-net-attach-def.yaml deleted file mode 100644 index aa9d4a35..00000000 --- a/content/kubevirt/networking/localnet-net-attach-def.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: k8s.cni.cncf.io/v1 -kind: NetworkAttachmentDefinition -metadata: - name: coe - namespace: localnet-demo -spec: - config: '{ - "name":"localnet-coe", - "type":"ovn-k8s-cni-overlay", - "cniVersion":"0.4.0", - "topology":"localnet", - "netAttachDefName":"localnet-demo/coe" - }' diff --git a/content/kubevirt/networking/localnet-nncp.yaml b/content/kubevirt/networking/localnet-nncp.yaml deleted file mode 100644 index 4ed7e3af..00000000 --- a/content/kubevirt/networking/localnet-nncp.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: nmstate.io/v1 -kind: NodeNetworkConfigurationPolicy -metadata: - name: localnet-coe -spec: - nodeSelector: - node-role.kubernetes.io/worker: '' - desiredState: - ovn: - bridge-mappings: - - localnet: localnet-coe - bridge: br-ex - state: present