Linux多网卡路由基础
在Linux系统中,多网卡配置常用于实现网络冗余、负载均衡或流量分离,正确配置多网卡路由,需理解Linux的路由表机制、策略路由以及网络接口的优先级设置,本文将从基础概念、配置步骤到高级应用,系统介绍Linux多网卡路由的实践方法。

多网卡路由的核心概念
Linux的路由表决定了数据包的转发路径,默认通过route -n或ip route show命令可查看,多网卡环境下,系统默认根据目标IP地址匹配路由表,若存在多个网关,可能需要手动干预路由策略。
关键术语包括:
- 源IP路由:根据数据包的源IP地址选择出口网卡,适用于多出口场景。
- 策略路由:基于自定义规则(如端口、协议)选择路由,而非仅依赖目标IP。
- 网关优先级:通过
metric值定义网关的优先级,metric越小,优先级越高。
基础配置步骤
网卡与IP配置
假设系统有两块网卡:eth0(连接内网,IP 192.168.1.100/24)和eth1(连接外网,IP 10.0.0.1/24),首先确保网卡已激活并配置IP:
sudo ip addr add 192.168.1.100/24 dev eth0 sudo ip link set eth0 up sudo ip addr add 10.0.0.1/24 dev eth1 sudo ip link set eth1 up
添加默认路由
为不同网卡设置默认网关,并指定metric值:
sudo ip route add default via 192.168.1.1 dev eth0 metric 100 # 内网默认路由,优先级较低 sudo ip route add default via 10.0.0.254 dev eth1 metric 50 # 外网默认路由,优先级较高
系统优先通过eth1访问外网,若eth1故障,自动切换至eth0。

验证路由配置
使用ip route show查看路由表,或ping测试连通性:
ping -I eth1 8.8.8.8 # 强制从eth1发包,验证外网路由
高级路由策略
基于源IP的路由
若需特定IP通过指定网卡访问网络,可添加静态路由:
sudo ip route add 172.16.0.0/24 via 192.168.1.1 dev eth0 # 目标网段172.16.0.0/24走eth0
策略路由(Policy-Based Routing)
通过ip rule添加自定义规则,实现更灵活的路由控制,为端口8080的流量指定eth0:
sudo ip rule add from 192.168.1.100/32 port 8080 lookup 100 # 匹配源IP和端口的规则 sudo ip route add default via 192.168.1.1 dev eth0 table 100 # 在表100中定义路由
负载均衡与冗余
使用multipath路由实现多网卡负载均衡:
sudo ip route add default nexthop dev eth0 nexthop dev eth1 # eth0和eth1同时承担负载
常见问题与解决方案
路由冲突
若多网卡默认路由metric值相同,可能导致路由不稳定,需确保优先级高的metric值更小。

网卡切换延迟
默认依赖内核路由缓存,切换网卡后可能需要清除缓存:
sudo ip route flush cache
永久配置
修改/etc/network/interfaces(Debian/Ubuntu)或/etc/sysconfig/network-scripts/(CentOS),添加metric和up route命令,确保重启后配置生效。
Linux多网卡路由配置需结合网络需求灵活选择基础路由或策略路由,通过合理设置metric、静态路由及策略规则,可实现高可用、负载均衡及精细化流量管理,实际操作中,建议先测试环境验证路由逻辑,避免生产网络故障,掌握这些技术,能有效提升网络的稳定性和灵活性。

















