路由优先级由metric值决定,值越小优先级越高。系统优先选择metric低的路由,适用于多网关、多网卡场景,如设置主备线路。可通过ip route命令临时设置metric,或在配置文件中永久设置,如Netplan、ifcfg-eth0等。DHCP会自动分配metric,通常有线网络低于无线。需避免相同metric导致不必要的负载均衡。
在linux中,路由优先级通过metric值来控制。metric值越小,优先级越高。系统根据这个值决定数据包走哪条路由,尤其是在存在多条可达路径的情况下。正确设置metric可以优化网络路径选择,比如在多网卡或多网关环境中指定主备线路。
metric值的作用
metric是一个整数,用于衡量路由的“成本”。内核在构建路由表时,会优先选择metric值较小的路由条目。常见场景包括:
- 多个默认网关时,选择metric低的作为主网关
- 无线和有线网络同时存在时,系统自动为有线分配更低metric
- 多路径冗余中控制主备切换
临时设置metric(重启失效)
使用ip route命令可以临时添加或修改路由的metric值。
例如,添加一个默认路由并指定metric:
ip route add default via 192.168.1.1 dev eth0 metric 100
修改已有路由的metric:
ip route change default via 192.168.1.1 dev eth0 metric 50
查看当前路由表及metric:
ip route show
输出示例:
default via 192.168.1.1 dev eth0 metric 50
default via 192.168.2.1 dev wlan0 metric 600
这里系统会优先使用eth0的网关。
永久设置metric(系统重启后生效)
不同发行版配置方式略有不同,常见方法如下:
编辑/etc/netplan/*.yaml文件,在gateway4或routes中指定metric:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
metric: 100 centos/RHEL/Fedora(使用NetworkManager或network-scripts)
在网卡配置文件中设置,如/etc/sysconfig/network-scripts/ifcfg-eth0:
gateway=192.168.1.1
METRIC=100
或在/etc/sysconfig/network-scripts/route-eth0中指定:
192.168.2.0/24 via 192.168.1.1 dev eth0 metric 200 使用systemd-networkd
在.network文件中配置:
[Route]
Gateway=192.168.1.1
Metric=100
自动metric与DHCP
如果使用DHCP获取IP,系统通常会自动为接口分配metric值。一般规则是:
- 有线网络:metric较低(如100)
- 无线网络:metric较高(如600)
可通过配置阻止DHCP设置metric,或手动覆盖:
dhclient -metric 50 eth0
基本上就这些。关键是理解metric越小优先级越高,并根据使用环境在临时命令或配置文件中合理设置。注意避免多条默认路由metric相同导致负载均衡,若不需要这种行为应明确区分metric值。
以上就是如何在Linux中linux centos ubuntu 路由 gate gateway 接口 default linux ubuntu centos debian 负载均衡
暂无评论内容