多网络设备存在时,如何配置其上网优先级?

2022年06月23日 15:38    发布者:武汉万象奥科
常见的上网外设有有线以太网、WIFI、4G/5G等接口,一块硬件主板经常会搭载多种网络访问硬件资源。如何配置不同网络外设的使用优先级呢?本文将为您介绍Linux系统下的常用配置方法。测试环境:HDG2L-IOT评估套件,搭载双千兆网、4G CAT1模组;运行Ubuntu系统,内核版本5.10 。具体操作步骤见下文。
https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=Y2ZjOGQ1MjBmNjRhZmM5ZTdkMDk0Y2YzMDU5YjM5ZmMsMTY1NTk2Nzg5MTkxOQ==
图1 HDG2L-IOT套件1、获取IP地址
网络设备获取IP地址。固定IP模式下略过此步骤,自动IP模式下执行以下操作。

[*]将以太网,wifi连接上网络
[*]使用udhcpc -i eth0 -q命令,让以太自动寻找IP
[*]进入到/home/wifi目录,执行wifi.sh,让wifi接入路由器;一路千兆网口与路由器保持正常连接。
2、查看路由信息表
使用route命令查看路由信息,可以看到以太网eth0和wifi网络wlan0的路由信息都自动生成了,而且存在两个默认网关。如果访问外网,系统会根据路由缓存信息和速度最优的原则,通过速度更快的网关进行访问。
https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=OWY2NThhNDdiYzYyYzRjYWQ4MDQ0MWY4NGYwZjdjOWUsMTY1NTk2Nzg5MTkxOQ==
图2 路由表3、修改网关优先级
Linux系统支持对默认网关的优先级进行设置,这时需要用到mteric这个参数。当系统中有多个默认网关时,数据包会通过metric更低的接口传输,通常情况下,默认的metric都为0,所以优先级是相同的。
配置网关优先级即配置网络设备的metric值,下面我们就为eth0和wlan0分别设置优先级。

[*]首先将metric值为0的默认网关删除:
https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=ZDliZGZlOWUyZmZiNjQzMjM1OGNlOGQwNWY5ZWZhZWYsMTY1NTk2Nzg5MTkxOQ==

[*]然后重新设置默认网关和metric:
https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=ZGE2NTQ1MjFjMjVlNzRjNDg0ZGFkOGRjNzZkNzU5NzEsMTY1NTk2Nzg5MTkxOQ==

[*]最后使用route命令查看网关,可以看到wifi的wlan0和以太eth0的metric 的值分别为10和20,配置优先级成功。
https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=MjJjMmIwOWZmMzUwN2NiM2JjYzY1MDRjNzViN2M4MTMsMTY1NTk2Nzg5MTkxOQ==
图3 优先级配置4、验证优先级
验证优先级的方法有很多,此处提供一个较为简单易用的方法。
使用ping 114.114.114.114 -I wlan0和ping 114.114.114.114 -I eth0命令可以分别获取wlan0、eth0的网络延时,使用ping 114.114.114.114 可以获取当前默认上网设备的网络延时,两者的值进行对比可验证配置结论。
注意:此方法有局限性,wlan0、eth0的网络延时接近时不可使用此方法。