ubuntu 20.04 RK3568网络的优先级设置

1、背景

     硬件使用RK3568 CPU,操作系统采用ubuntu 20.04  Lxqt桌面的版本。硬件上具有一个有线以太网卡,一个wifi网卡,一个5G网卡。由于操作系统默认的网络优先级为有线网卡的最高,5G网卡次之。在一个业务应用中需要5G网卡的连接外网,具有最高的优先级,以太网卡次之,wifi网卡不用,因此不用管优先级。有线以太网卡的IP是使用netplan来配置的。配置ip.ymal文件如下:这个文件中有一个metric的配置,配置值为100,配置的结果是静态路由IP 的metric值为100, 但是不能改变默认的IP 路由metric值,因此达不到效果。

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no 
      addresses: [10.10.26.200/24]
      gateway4: 10.10.26.1
      nameservers:
        addresses: [114.114.114.114, 8.8.8.8]
      routes:
        - to: 0.0.0.0     #路由
          via: 10.10.26.1 #网关
          metric: 200     #优先级 

      从下面可以看出default eth0的默认路由的metric 还是100,没有起作用。因此不能使用netplan来修改路由的优先级。

default via 10.10.26.1 dev eth0 proto static metric 100
2.0.0.0/24 via 10.8.214.161 dev tun0
10.8.0.1 via 10.8.214.161 dev tun0
10.8.214.161 dev tun0 proto kernel scope link src 10.8.214.162
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.2 metric 200
192.168.225.0/24 dev enx92b29a5908c4 proto kernel scope link src 192.168.225.2 metric 101

2、 NetworkManager的配置

        Ubuntu系统中网络管理主要使用NetworkManager来管理,因此需要从这个NetworkManager来入手,配置静态ip, 配置路由的优先级metric。

        先介绍一下背景知识,如果使用NetworkManager来管理网络链接。

要使用nmcli创建一个有线网络连接,可以按照以下步骤进行操作:

  1. 打开终端。

  2. 运行以下命令,以创建一个新的有线网络连接配置:

    nmcli connection add type ethernet con-name ifname [ipv4.method ] [ipv4.addresses ] [ipv4.gateway ] [ipv4.dns ] [ipv4.dns-search ] [ipv6.method ] [ipv6.addresses ] [ipv6.gateway ] [ipv6.dns ] [ipv6.dns-search ]

    其中:

    •  是您想要为这个连接设置的名称。
    •  是网络接口的名称,比如eth0
    •  是IP配置的方法,可以是auto(自动获取)、manual(手动配置)或其他。
    •  是IPv4或IPv6的地址。
    •  是IPv4或IPv6的网关地址。
    •  是IPv4或IPv6的DNS服务器地址,可以使用逗号分隔多个地址。
    •  是DNS搜索域。

    请根据您的实际需求和网络设置在命令中选择要设置的选项。

  3. 运行以下命令,以激活新创建的网络连接:

    nmcli connection up

    其中  是您在第2步中设置的连接名称。

现在,您应该已经成功创建并激活了一个新的有线网络连接。您可以使用nmcli connection show命令列出所有网络连接,以验证新连接已经添加。

      下面是实际操作,创建一个有线以太网的链接,并且修改默认路由的优先级为200。并且激活这个以太网链接eth0-con,特别要说明的时 链接名称con-name与网卡名称ifname不能一样。

firefly@firefly:/etc/NetworkManager/system-connections$ nmcli connection add type ethernet con-name eth0-con ifname eth0
Connection 'eth0-con' (fa53d93a-e876-4653-a568-9817e5d9844c) successfully added.
firefly@firefly:/etc/NetworkManager/system-connections$ sudo vim eth0-con.nmconnection

这里配置固定IP  192.168.0.2 metric=200

firefly@firefly:/etc/NetworkManager/system-connections$ sudo cat eth0-con.nmconnection 
[connection]
id=eth0-con
uuid=fa53d93a-e876-4653-a568-9817e5d9844c
type=ethernet
interface-name=eth0

[ethernet]

[ipv4]
method=manual
address=192.168.0.2/24
gateway=192.168.0.1
dns=8.8.8.8;114.114.114.114
route-metric=200

[ipv6]
addr-gen-mode=stable-privacy
method=auto

firefly@firefly:/etc/NetworkManager/system-connections$ nmcli connection up eth0-con
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
firefly@firefly:/etc/NetworkManager/system-connections$ 

     经过上面的操作后,重启一下设备,可以使用ip route show来看一下。可以看到eth0网口的默认路由优先级为200了,比5G网卡enx92b29a5908c4 路由优先级101小了。因此默认的对外上网通道变成eth0有线网卡。

firefly@firefly:~$ ip rout show
default via 192.168.225.1 dev enx92b29a5908c4 proto dhcp metric 101
default via 192.168.0.1 dev eth0 proto static metric 200
2.0.0.0/24 via 10.8.214.161 dev tun0
10.8.0.1 via 10.8.214.161 dev tun0
10.8.214.161 dev tun0 proto kernel scope link src 10.8.214.162
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.2 metric 200
192.168.225.0/24 dev enx92b29a5908c4 proto kernel scope link src 192.168.225.2 metric 101

你可能感兴趣的:(ubuntu,网络,linux,路由优先级)