diff --git a/articles/networkmanager-nmcli.asm.xml b/articles/networkmanager-nmcli.asm.xml index cb6866227..f41605fb0 100644 --- a/articles/networkmanager-nmcli.asm.xml +++ b/articles/networkmanager-nmcli.asm.xml @@ -50,6 +50,9 @@ You can start NetworkManager to manage network connections and devices. + + You can start NetworkManager to manage network connections and devices. + You can configure NetworkManager logging and view the NetworkManager logs. @@ -229,6 +232,7 @@ + diff --git a/tasks/networkmanager-nmcli-conf-openvswitch.xml b/tasks/networkmanager-nmcli-conf-openvswitch.xml new file mode 100644 index 000000000..a7e4fa8b9 --- /dev/null +++ b/tasks/networkmanager-nmcli-conf-openvswitch.xml @@ -0,0 +1,113 @@ + + + %entities; +]> + + + + + + + Configuring Open vSwitch using NetworkManager + + + + You can create an external Open vSwitch bridge deployment, bind physical network uplinks, and map host virtual routing ports by using nmcli. + +In SUSE Linux Enterprise Server 16, NetworkManager is the default infrastructure used to manage advanced network topologies, including Open vSwitch (OVS). When deploying OVS bridges for virtualized environments managed by libvirt (such as KVM), specific configuration layouts must be followed to ensure proper integration between the network daemon and the hypervisor layer. +Unlike legacy network setups, the NetworkManager OVS plug-in (NetworkManager-ovs) enforces a strict, multi-layered abstraction model. Review the following constraints before configuring your virtual switches: + + + Explicit Port Layering: Every physical interface or logical interface must be assigned to its own explicitly declared OVS port before it can be attached to an OVS bridge. + + Interface Mapping for Virtualization: When NetworkManager creates an OVS bridge, it does not automatically instantiate a corresponding internal virtual interface matching the bridge's name. + +
Creating an external routing OVS bridge + To deploy an OVS bridge intended for external host management and public KVM guest traffic, proceed as follows: + This procedure assumes a physical uplink interface named eno1 and a target MTU of 1500. + + + + Create the OVS bridge infrastructure: + + &prompt.sudo; nmcli connection add type ovs-bridge conn.interface external con-name external + + + View the list of connections to make sure the profile name you want to use is not already taken: + nmcli connection show + The &nm; creates a profile for each Network Interface Controller (NIC). To connect the NIC to networks with different settings, you must create separate profiles for each network. + + + Define the OVS port structure for the physical uplink: + &prompt.sudo; nmcli connection add type ovs-port conn.interface external-uplink0 controller external + + + Bind the physical interface to the uplink port: + &prompt.sudo; nmcli connection add type ethernet conn.interface eno1 controller external-uplink0 + + + Add the host management port and configure static IPv4 parameters: + &prompt.sudo; nmcli connection add type ovs-port conn.interface port-eetteri1 controller external +&prompt.sudo; nmcli connection add type ovs-interface port-type ovs-port conn.interface eetteri1 controller port-eetteri1 ipv4.method manual ipv4.address 10.191.70.8/24 ipv4.gateway 10.191.70.254 ipv4.dns 10.168.0.1,10.168.0.2 mtu 1500 + + +Expose the bridge named interface to libvirt: +&prompt.sudo; nmcli connection add type ovs-port conn.interface external controller external +&prompt.sudo; nmcli connection add type ovs-interface port-type ovs-port conn.interface external controller external mtu 1500 + + +
+
Creating an isolated internal OVS bridge with jumbo frames +You can deploy an isolated internal cluster fabric (for instance, for inter-VM farming or host NFS access) that utilizes redundant uplinks (enp33s0f0np0 and enp33s0f1np1), VLAN segmentation (VLAN ID 42), and Jumbo Frames (MTU 9000). + + Create the internal OVS bridge container: +&prompt.sudo; nmcli connection add type ovs-bridge conn.interface halan0 con-name halan0 + + Add separate OVS ports for the redundant hardware paths: + &prompt.sudo; nmcli connection add type ovs-port conn.interface halan0-uplink0 controller halan0 +&prompt.sudo; nmcli connection add type ovs-port conn.interface halan0-uplink1 controller halan0 + + Bind the respective physical network cards to those ports: +&prompt.sudo; nmcli connection add type ethernet conn.interface enp33s0f0np0 controller halan0-uplink0 +&prompt.sudo; nmcli connection add type ethernet conn.interface enp33s0f1np1 controller halan0-uplink1 + + Enforce Jumbo Frame requirements on the underlying hardware slaves: +&prompt.sudo; nmcli connection modify ovs-slave-enp33s0f0np0 ethernet.mtu 9000 +&prompt.sudo; nmcli connection modify ovs-slave-enp33s0f1np1 ethernet.mtu 9000 + + Establish a VLAN-tagged internal storage endpoint: +&prompt.sudo; nmcli connection add type ovs-port conn.interface port-internal1 controller halan0 ovs-port.tag 42 +&prompt.sudo; nmcli connection add type ovs-interface port-type ovs-port conn.interface internal1 controller port-internal1 ipv4.method manual ipv4.address 172.16.32.30/24 mtu 9000 + + + Expose the internal bridge infrastructure to libvirt: + &prompt.sudo; nmcli connection add type ovs-port conn.interface halan0 controller halan0 +&prompt.sudo; nmcli connection add type ovs-interface port-type ovs-port conn.interface halan0 controller halan0 mtu 9000 + + +
+
Verifying the open vSwitch topology +To ensure your virtual network components are loaded and map correctly between the NetworkManager database, the Linux kernel, and the OVS subsystem, run the following verification tools. + + + View NetworkManager configurations: + nmcli connection show + + + Verify running Open vSwitch database maps: + &prompt.sudo; ovs-vsctl show + + Verify link state and MTU definitions in the kernel: + ip addr show + +
+
\ No newline at end of file