How do I install and have wicked appear as an option in Yast2>System>Network Settings

Step 7 - Now should see the device and a slave;


Step 8 - Arrow down and TAB to IPv4 and IPv6 CONFIGURATION, both of these need to be disabled and then press OK;

Step 9 - You should now see the new device USBBridge;

Step 10 - Press OK to exit

Remember my device was called br3, so you should now see devices present in the output from nmicli;

nmcli

br3: connected to USBBridge
        "br3"
        bridge, 2E:59:F2:37:BE:3A, sw, mtu 1500

enp0s20u4u1: connected to usb-connection
        "ASIX AX88179"
        ethernet (ax88179_178a), 28:EE:52:01:68:2F, hw, mtu 1500
        master br3

Now use ip a to see both the (in my case enp0s20u4u1 and br3) will be up, it may take a minute or so, or unplug/plug the cable, both will be like below and no ip address;

ip a

20: enp0s20u4u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br3 state UP group default qlen 1000
    link/ether 28:ee:52:01:68:2f brd ff:ff:ff:ff:ff:ff
21: br3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 2e:59:f2:37:be:3a brd ff:ff:ff:ff:ff:ff

NetworkManager works with connection profiles (as does wicked and any other network management software). Connection profile is a collection of settings that are applied to an interface when this interface is activated.

To create bridge you need just one connection profile that defines bridge (and indirectly the virtual interface connected to this bridge). When this profile gets activated, NetworkManager creates the bridge and the interface with the name as listed in this profile.

To connect this bridge to the outside world you (usually) need to “plug” a physical interface into this bridge. To do it you need a second connection profile that makes device a slave of the bridge you create and you need to apply this connection profile to the physical interface.

This last step is what usually causes the confusion. While conceptually wicked and NM work identically, wicked is interface oriented and there is exactly one connection definition for each configured interface. In NM there could be any number of connections (connection profiles) and it is up to you to chose which one to use. When NM decides to activate a physical device (on boot or in other cases) it will try to find connection profile that matches this device. If there are multiple profiles, it will pick one of them, and not necessarily the one you expected.

By default NM will create ephemeral connection with auto-configuration for each wired interface (these are connections Wired connection 1 etc). As soon as as you explicitly apply some other connection to this device this automatic connection is removed, but if you simply create slave connection profile - nothing happens. Automatic connection is still present and is active on the device. You need to explicitly apply slave connection profile or reboot. On reboot NM will see matching connection and use it.

Of course it does. You create bridge, and then you go into Bridged Devices tab and select slave devices for your bridge. And that is where connection definitions for the slave devices get created.

This is connection profile for the bridge slave. This connection profile is restricted to the interface with name enp0s20u6 only.

This is yet another connection that define slave for another bridge. It most likely was created automatically by GUI frontend because you need connection for a bridge slave if you want this bridge to have access to the outside world. This connection is also restricted to the device with MAC address 7C:C2:C6:33:10:D0, NM will not (automatically) apply this connection to any other device.

This is the bride definition for the above slave.

And this is yet another connection profile that defines “normal” interface settings (how it gets IP address etc) and applies to the interface enp0s20u6.

So you have three conflicting connection profiles equally applicable to the same interface. I have no idea which one will be selected by NM on startup.

That is pretty much correct. The enp0s20u6 is not a bridge.

Actually two, because the one defining slave for the correct (at least, the only existing) bridge has autoconnect=false property and so will never be picked up automatically on boot.

And another slave definition refers to a non-existent bridge so we are left with the only valid connection - where enp0s20u6 is just a “normal” interface, not a bridge slave. And bridge is left without connection to the outside world.

A thousand thanks for the detailed and explicit help. I would never have thought to take your step 8!
I am getting a better understanding of the concept and now have achieved your step 10:-

alastair@HP-Z640-1:~> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 70:5a:0f:3a:fa:27 brd ff:ff:ff:ff:ff:ff
    altname enp0s25
    inet 192.168.169.137/25 brd 192.168.169.255 scope global noprefixroute eno1
       valid_lft forever preferred_lft forever
3: enp0s20u6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 7c:c2:c6:33:10:d0 brd ff:ff:ff:ff:ff:ff
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 2e:be:ab:85:75:c9 brd ff:ff:ff:ff:ff:ff

Moving on to creating a new VM, when I reach the final stage of creating a new VM (step 5 in the app) I have the decision to select the network and have the choices Virtual network (default), Bridge device or Macvtap device.

I assume I should use Bridge device and this asks for the Device name, so am I trying to connect to the bridge device but what name should I use; “br0” or “USB-connection”?

This is what I have now:-

eno1: connected to MainEthernet
        "Intel I218-LM"
        ethernet (e1000e), 70:5A:0F:3A:FA:27, hw, mtu 1500
        ip4 default
        inet4 192.168.169.137/25
        route4 default via 192.168.169.129 metric 100
        route4 192.168.169.128/25 metric 100
        route4 192.168.169.128/25 via 192.168.169.129 metric 100

lo: connected (externally) to lo
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
        inet4 127.0.0.1/8
        inet6 ::1/128

br0: connected to USB_Bridge
        "br0"
        bridge, 2E:BE:AB:85:75:C9, sw, mtu 1500

enp0s20u6: connected to USB-connection
        "ASIX AX88179"
        ethernet (ax88179_178a), 7C:C2:C6:33:10:D0, hw, mtu 1500
        master br0

DNS configuration:
        servers: 192.168.169.129
        interface: eno1

So I presume I am trying to connect to br0, the bridge not the master. Am I right?

@Budgie2 correct br0 is selected for a bridge device and e1000 for the driver.

Hi arvidjaar,
Very many thanks explaining the results of my attempts to set up the two connections. My earlier attempts were clearly not correct but your preamble and detailed explanations do help me understand what was going on.

Malcolm has given me detailed steps to help me progress and I have less difficulty with the concepts but still a few gaps in my understanding how it all fits together.

You state “To create bridge you need just one connection profile that defines bridge (and indirectly the virtual interface connected to this bridge).”

So the VM connects to the bridge and then the bridge has a slave connection which connects to the outside world through a defined physical interface, in my case another network port via the USB dongle.

Where I am still confused is that if I have several slaves, ie an additional nic and or a wifi connection and all are connected to the one master bridge, are these slaves selectable from within the VM so there is the one bridge to the VM?

Hi,
I have selected br0 but have no recollection of any references to a driver.
I went ahead with creating my VM but nothing appears on my screen; a console flashes up for a second and then disappears. No VM to talk to!

@Budgie2 One bridge can run multiple virtual machines, I have two, but can have up to four to split out traffic. So if you add another nic you create another bridge device connected to the appropriate interface, eg br1.

It should do it automatically, when selecting and naming as br0.

If using the wizard, check the box marked customize before install, you can go and change settings before the install.

No, they are not selectable. You cannot bridge WiFi at all (with very few exceptions which are not relevant in real life). If you add several physical NICs connected to the same external LAN, only one of them will be used, others will be deactivated by STP (if not, you will have a loop that will effectively freeze both network and your system). If these NICs are connected to different LANs, both may remain active depending on the network topology.

Hi and thanks,
I was too vague in my last post. I had assumed they would all be on different networks, ie subnets. In my case only as far as the network router would they be different. They all converge to the same two wan connections after the L3 switch.

I am not at present contemplating such steps, just trying to get one VM to work but I asked to learn.
Many thanks again.

So Malcolm,
for all the apparently successful VM creations, where are they?
I want to try and clear all the old ones so I can start over but when I do create a new VM the wizard already seems to know about all the previous efforts. I want to flush them all out and when I create a new VM have it start.
I selected the customize option and saw a screen I recognise but have forgotten all the rest. Will press on but clearing out the old unwanted stuff would be good.

@Budgie2 so if you fire up virt-manager or run virsh list --all it will show created vm’s?

For example;

virsh list --all
 Id   Name                       State
-------------------------------------------
 5    node-4_default             running
 -    cowmeleon_node1            shut off
 -    cowmeleon_node2            shut off
 -    cowmeleon_node3            shut off
 -    k3s_airgap_default         shut off
 -    minecraft_server_default   shut off
 -    node-10_default            shut off
 -    node-1_default             shut off
 -    node-2_default             shut off
 -    node-3_default             shut off
 -    node-5_default             shut off
 -    node-6_default             shut off
 -    openindiana_test_default   shut off
 -    RKE2_1_default             shut off
 -    RKE_1_4_9_rke-master       shut off
 -    Windows_10_Pro             shut off
 -    Windows_11_Pro             shut off
 -    worker-1_default           shut off
 -    worker-2_default           shut off
 -    worker-3_default           shut off

Hi Malcolm,
Here is what I have:-

alastair@HP-Z640-1:~> sudo virsh list --all
[sudo] password for root: 
 Id   Name      State
--------------------------
 1    win11     running
 3    win10-5   running
 4    win11-2   running
 -    win10     shut off
 -    win10-2   shut off
 -    win10-3   shut off
 -    win10-4   shut off
 -    win10-6   shut off

I looked at the man page for virsh; 5000+ lines of very reading. Big subject but I did find that virsh only works with a running VM? Is that right. More important there is no delete option that I could see.

I have no idea why some of my earlier creations are still running. I have used virt-manager to stop and remove all the VMs and shall start again. Hopefully some of it will come back to me but meanwhile a rugby match to watch!!!

virsh list
virsh shutdown VM
virsh undefine VM

1 Like

By way of a footnote I am pleased to report that I now have an almost working Windows 10 VM with two network connections so many thanks to all.
I have a few minor issues with the Windows 10 VM but will start a new thread if I need.
Hopefully this will save me the problem of having to dual boot to Windows and losing network connectivity when I return to TW. At some point when I get time I might try and get the Intel firmware fix but failed last time I tried so great to be back with new working TW with VMs.
Rugby not 'till this evening, hence completing the Win 10 VM installation and updates.
Thanks to all once more.
Alastair.

One more question. I have shut down my VM and as I understand it I have two network connections, the one I intended to be the static of fixed IP which I set in the “MainEthernet” configuration above and the other which is a dhcp connection used for the bridge slave connection using usb dongle but is showing as Wired Connection 1 (eno1) on the Networks plasma popup.

My problem is that I have been setting up other devices to use the fixed IP and they were not workingas expected and I see that when I run ip addr my working connection is the USB dhcp connection which is working preferentially so I have:-

alastair@HP-Z640-1:~> ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 70:5a:0f:3a:fa:27 brd ff:ff:ff:ff:ff:ff
    altname enp0s25
    inet 192.168.169.236/25 brd 192.168.169.255 scope global dynamic noprefixroute eno1
       valid_lft 82285sec preferred_lft 82285sec
    inet6 fe80::b63b:a384:18f6:b1aa/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: enp0s20u6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 7c:c2:c6:33:10:d0 brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 2e:be:ab:85:75:c9 brd ff:ff:ff:ff:ff:ff
alastair@HP-Z640-1:~> 

Where eno1 address is from my private subnet dhcp pool. What I had intend in my ignorance was for the static address to be my main connection which I would use on other fixed devices and the USB dongle to be used exclusively for VM where dhcp is preferred. I would also, if possible, have the dhcp address taken from the available addresses in my private subnet.

Is this possible and if so how do I edit my NM to suit please?

@Budgie2 just use nmtui to set eno1 how you want?

The vm br0 will do whatever is needed based on the virtual machine network setup, a raw/dumb device so to speak plugged into a switch.

I tried to read it three times and I still cannot make head or tail of it. You ask about NM but do not show a single line of NM configuration or the current NM status. How are we supposed to guess whether ip addr output agrees with your NM configuration or whether your NM configuration does what you expect? Or what are those mysterious “other devices” you mention?

Hi and apologies. I had been writing carelessly as if it were a continuation of the “conversation” above.

My present problem is that I followed Malcolm’s detailed instructions in thread (18 thro 21). This gave me the result as shown above in post 25 above which I shall quote here:-

alastair@HP-Z640-1:~> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 70:5a:0f:3a:fa:27 brd ff:ff:ff:ff:ff:ff
    altname enp0s25
    inet 192.168.169.137/25 brd 192.168.169.255 scope global noprefixroute eno1
       valid_lft forever preferred_lft forever
3: enp0s20u6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 7c:c2:c6:33:10:d0 brd ff:ff:ff:ff:ff:ff
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 2e:be:ab:85:75:c9 brd ff:ff:ff:ff:ff:ff

The ip address of eno1 is showing the static address I intended for the “MainEthernet” and again quoting from post 25 it I had the result from running nmcli (but did not show the command.) This is what I had then:-

eno1: connected to MainEthernet
        "Intel I218-LM"
        ethernet (e1000e), 70:5A:0F:3A:FA:27, hw, mtu 1500
        ip4 default
        inet4 192.168.169.137/25
        route4 default via 192.168.169.129 metric 100
        route4 192.168.169.128/25 metric 100
        route4 192.168.169.128/25 via 192.168.169.129 metric 100

lo: connected (externally) to lo
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
        inet4 127.0.0.1/8
        inet6 ::1/128

br0: connected to USB_Bridge
        "br0"
        bridge, 2E:BE:AB:85:75:C9, sw, mtu 1500

enp0s20u6: connected to USB-connection
        "ASIX AX88179"
        ethernet (ax88179_178a), 7C:C2:C6:33:10:D0, hw, mtu 1500
        master br0

Which other devices are not relevant other than that they are clients for automounting an explicit nfs connection so client wants the nfs server ip. It was this connection failing which prompted me to look at my connection details and now find that the network connection has now changed to a dhcp address:-

alastair@HP-Z640-1:~> ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 70:5a:0f:3a:fa:27 brd ff:ff:ff:ff:ff:ff
    altname enp0s25
    inet 192.168.169.236/25 brd 192.168.169.255 scope global dynamic noprefixroute eno1
       valid_lft 46578sec preferred_lft 46578sec
    inet6 fe80::b63b:a384:18f6:b1aa/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: enp0s20u6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 7c:c2:c6:33:10:d0 brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 2e:be:ab:85:75:c9 brd ff:ff:ff:ff:ff:ff
alastair@HP-Z640-1:~> 

ie 192.168.169.236 which is from the dhcp pool on my private subnet. My network configuration from nmcli is:-

alastair@HP-Z640-1:~> nmcli
eno1: connected to Wired connection 1
        "Intel I218-LM"
        ethernet (e1000e), 70:5A:0F:3A:FA:27, hw, mtu 1500
        ip4 default
        inet4 192.168.169.236/25
        route4 192.168.169.128/25 metric 100
        route4 default via 192.168.169.129 metric 100
        inet6 fe80::b63b:a384:18f6:b1aa/64
        route6 fe80::/64 metric 1024

lo: connected (externally) to lo
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
        inet4 127.0.0.1/8
        inet6 ::1/128

br0: connected to USB_Bridge
        "br0"
        bridge, 2E:BE:AB:85:75:C9, sw, mtu 1500

enp0s20u6: connected to USB-connection
        "ASIX AX88179"
        ethernet (ax88179_178a), 7C:C2:C6:33:10:D0, hw, mtu 1500
        master br0

DNS configuration:
        servers: 192.168.169.129 192.168.1.1
        interface: eno1

So although the connection is still from the Intel nic device, it is now connecting using a dhcp address.

Where have I erred or what have I missed.