由于公司产品可同时支持4G/5G、WiFi、GigE等多路网络接口。实际使用环境,通常固定1路接入外网,而其余接口接入内网或设置静态IP(4G/5G只能接入外网)。Linux路由优先级默认eth>wlan>usb,如果4G接入外网,同时wifi和eth的路由无法连接外网,系统请求外网连接时,可能将数据包发送到eth或wifi导致连接失败。
因此需要设计路由守护服务,定制与维护系统的路由表。
原理
流程图
判断逻辑
重置路由
配置文件
{
"list":[
{
"name":"eth0",
"metric":"100"
},
{
"name":"eth1",
"metric":"100"
},
... ...
{
"name":"wlan0",
"metric":"600"
},
{
"name":"wwan0",
"metric":"700"
}
]
}
- name:与路由表中的dev/interface对应
- metric:数值越小,优先级排序越高;相同数值,按网卡名排序
Ubuntu 18.04后启用的netplan可以直接设置网卡的路由信息
network:
version: 2
ethernets:
eth0:
dhcp4: yes
dhcp4-overrides:
route-metric: 100
eth1:
dhcp4: yes
dhcp4-overrides:
route-metric: 200