CentOS/RHEL preserve "ip link set" settings


New Member
Jun 27, 2022
Reaction score
Hi All,
I hope you are doing well during these a bit strange times.
I stumbled upon this issue where the only way to configure some of the settings I can do through ip set link command.
This is to do with virtual adapters with VLANs with vf and proto 802.1Q parameters.
This requires bringing down an interface at startup then to break to virtual ports.
Something like this:
ip link set ens2s0f0np0v0 down
ip link set ens2s0f0np0v1 down
ip link set ens2s0f0 vf 0 vlan 200 proto 802.1Q
ip link set ens2s0f0 vf 1 vlan 201 proto 802.1Q
ip link set ens2s0f0np0v0 up
ip link set ens2s0f0np0v1 up
ip link set ens2s0f0 vf 0 trust on
ip link set ens2s0f0 vf 1 trust on

What is the best / safest place to put this in a script? This must be after the whole network stack is up.

You could create a systemd-unit file for it, as type "oneshot" and add those lines to a file to execute.
Description=VLAN adapters
After=network.target network-online.target


Although I think the better option would be to do it this way?
Yes I was looking into doing it via SystemD but it looks like doing it via network-scripts is even cleaner. I haven't seen this done with network-scripts before.
Thank you
I think you could do all of this in NetworkManager.

The thing is when I use the nmcli command the new port looks different.
When I run
nmcli con show the connection created with the commands above look like this
NAME: Wired connection 2, UUID, TYPE: Ethernet, DEVICE: ens2f0v1
but with command nmcli con add type vlan con-name VLAN100 dev ens2f0 id 100
NAME: VLAN100, UUID, TYPE: vlan, DEVICE: ens2f0.100

Not sure what is the difference between this approach and setting it up with SR-IOV VF (virtual function).
I think I found the correct syntax for NMCLI
nmcli con add type ethernet con-name EthernetPF ifname ens2f0
nmcli con modify EthernetPF sriov.total-vfs 3 sriov.autoprobe-drivers false
nmcli con modify EthernetPF sriov.vfs '0 mac=00:11:22:33:44:55 vlans=10, 1 trust=true spoof-check=false'
Last edited:

Members online