1、多网卡情况下如何调整优先级方案
按照目前公司前辈给出的方案,调整优先级的手段有两种:
<1>.删除默认路由--route del 的方法
<2>.ifmetric源码提供的修改路由表的mteric的值来设置路由的优先级,metric越小优先级越高。
应用层本身多网卡优先级控制的逻辑结合上述两种方法来控制网卡的优先级。对于ppp拨号上网,还要主动添加路由表,而ethenet和wifi再开启udhcpc的时候会添加到默认路由到路由表。
1.1 参考资料
ifmetric-0.3交叉编译移植_ifmetric 交叉编译-CSDN博客
解决多网卡路由的优先级问题_多网卡设置网卡优先级-CSDN博客
Linux路由转发+多网卡配置(route命令)_route add default gw-CSDN博客
Linux 路由表(RIB表、FIB表)、ARP表、MAC表整理 - 知乎
Linux配置路由功能及添加静态路由_linux 静态路由配置文件-CSDN博客
2、Linux中路由表(Routing Table RIT)初解
根据上述提供的手段,只要着力点还是再路由表上。
Destionation Gateway Genmask Flags Metric Ref Use Iface
目标网络地址和网络掩码共同确定本机可以达到的目的网络范围。
通常情况下,目的网络范围包含以下几种情况:
(1) 主机地址:某个特定主机的网络地址;
(2) 子网地址:某个特定子网的网络地址;
(3)默认路由:所有未在路由表中指定的网络地址,用0.0.0.0统一匹配,用于配置默认网关(ubantu虚拟机中默认路由显示为default)
gateway网关地址,0.0.0.0
表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关。
Metric跳数用于指出路由的成本,通常情况下代表:到达目标地址所需要的总路由器个数。IP数据报首部中的TTL字段就是该数据报所能存活的总跳数。
Flag路由表中常见的flag标记有:
U:路由是动态的;
H:目标是一个主机;
G:路由指向网关;
R:恢复动态路由产生的表项;
D:由路由的后台程序动态安装;
M:由路由的后台程序修改;
!: 拒绝路由。
2.1 Linux 路由规则
<1>先看目标ip是否为本地ip,如果是就直接访问本地IP;若果不存在。则去找路由表里是否有需要访问的网段
<2>如果路由表有这个ip则从这个路由的表中的对应的网卡出去;如果路由表中没有要访问的网段,则会找默认路由,也就是网关;
<3>如果网关也没有的话,则就会报错
2.2 route命令
2.2.1 添加临时路由
(1)添加到主机的路由
route add –host 192.168.1.10 dev eth0
route add –host 192.168.1.10 gw 192.168.1.1
(2)添加到网络的路由
route add –net 192.168.2.0 netmask 255.255.255.0 eth0
route add –net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
route add –net 192.168.1.0/24 eth1
(3)添加默认网关
route add default gw 192.168.1.1
(4)删除路由
route del -host 192.168.1.10 dev eth0
2.2.2 添加永久路由
编辑配置文件/etc/rc.local