DEV Community

S.Mohammad Emami Razavi
S.Mohammad Emami Razavi

Posted on

How to set metric in OS moderated with NetworkManager

Sometimes we want to have several connections at the same time, one to the ethernet (wired lan) and one other to the wireless router, with two different gateways. In this documentation i describe how to make wireless connection prior to ethernet connection in each linux OS using NetworkManager service to moderate network connections. I've tested these instruction in fedora 31 already.

List your connections

 [m.emami@home ~]$ nmcli connection NAME UUID TYPE DEVICE sample1 a16d1a96-2833-4876-a6c2-************ vpn wlp0s20f0u11 bevaght f46ba9ff-1114-4e79-9c8a-************ wifi wlp0s20f0u11 eth1 7648e3eb-c03f-46e9-b24e-************ ethernet enp2s0 
Enter fullscreen mode Exit fullscreen mode

Edit the wireless connection

[m.emami@home ~]$ nmcli connection edit bevaght ===| nmcli interactive connection editor |=== Editing existing '802-11-wireless' connection: 'bevaght' Type 'help' or '?' for available commands. Type 'print' to show all the connection properties. Type 'describe [<setting>.<prop>]' for detailed property description. You may edit the following settings: connection, 802-11-wireless (wifi), 802-11-wireless-security (wifi-sec), 802-1x, ethtool, match, ipv4, ipv6, tc, proxy nmcli> set ipv4.route-metric 10 nmcli> save nmcli> quit 
Enter fullscreen mode Exit fullscreen mode

Edit the ethernet connection

[m.emami@home ~]$ nmcli connection edit eth1 ===| nmcli interactive connection editor |=== Editing existing '802-3-ethernet' connection: 'eth1' Type 'help' or '?' for available commands. Type 'print' to show all the connection properties. Type 'describe [<setting>.<prop>]' for detailed property description. You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy nmcli> set ipv4.route-metric 2000 nmcli> save nmcli> quit 
Enter fullscreen mode Exit fullscreen mode

Restart NetworkManager service

[m.emami@home ~]$ sudo systemctl restart NetworkManager 
Enter fullscreen mode Exit fullscreen mode

Congratulation! routes related to the WiFi connection (named bevaght) are prior to routes related to the Ethernet connection (named eth1)

[m.emami@home ~]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 10 0 0 wlp0s20f0u11 0.0.0.0 192.168.1.1 0.0.0.0 UG 2000 0 0 enp2s0 
Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
dariusz_kowalczykdarton profile image
Dariusz Kowalczyk (Darton)

Restart NetworkManager service is not neccessary.
Use instead:
nmcli connections up bevaght
nmcli connections up eth1