简介:本文详细阐述Linux系统下双网卡双网关的配置方法,涵盖静态路由、策略路由及防火墙规则设置,帮助用户实现多网段同时访问与流量隔离。
在复杂网络环境中,企业服务器常需同时连接内网(如192.168.1.0/24)和外网(如10.0.0.0/8),或连接多个不同运营商网络以实现负载均衡和故障冗余。典型场景包括:
传统单网卡单网关配置无法满足此类需求,而双网卡双网关方案通过精确路由控制,可实现:
iproute2、iptables、net-tools
[内网交换机]---(eth0)---[Linux服务器]---(eth1)---[外网路由器]192.168.1.0/24 10.0.0.10/24 10.0.0.1/24
使用nmcli或手动配置/etc/sysconfig/network-scripts/(RHEL系)或/etc/netplan/(Ubuntu系):
# 配置eth0(内网)nmcli connection modify eth0 ipv4.addresses 192.168.1.10/24nmcli connection modify eth0 ipv4.gateway 192.168.1.1nmcli connection modify eth0 ipv4.method manual# 配置eth1(外网)nmcli connection modify eth1 ipv4.addresses 10.0.0.10/24nmcli connection modify eth1 ipv4.gateway 10.0.0.1nmcli connection modify eth1 ipv4.method manual
问题:直接配置双网关会导致路由冲突,系统默认使用最后一个配置的网关。
解决方案:
ip route add 192.168.1.0/24 dev eth0 src 192.168.1.10ip route add 10.0.0.0/24 dev eth1 src 10.0.0.10ip route add default via 192.168.1.1 dev eth0 # 默认走内网
局限性:无法灵活控制特定流量走向
通过ip rule实现基于源地址、目的地址或标记的路由决策。
编辑/etc/iproute2/rt_tables:
100 outer_net200 inner_net
# 外网路由表ip route add 10.0.0.0/24 dev eth1 src 10.0.0.10 table outer_netip route add default via 10.0.0.1 dev eth1 table outer_net# 内网路由表ip route add 192.168.1.0/24 dev eth0 src 192.168.1.10 table inner_netip route add default via 192.168.1.1 dev eth0 table inner_net
# 基于源地址的策略ip rule add from 10.0.0.10 lookup outer_netip rule add from 192.168.1.10 lookup inner_net# 或基于目的地址的策略ip rule add to 8.8.8.8 lookup outer_net
通过iptables的MARK目标标记数据包,再结合策略路由:
# 标记外网流量iptables -t mangle -A PREROUTING -i eth1 -j MARK --set-mark 1# 基于标记的路由ip rule add fwmark 1 lookup outer_net
/etc/rc.local或创建systemd服务routes和routing-policy配置/etc/network/if-up.d/脚本
# 查看路由表ip route show table mainip route show table outer_net# 查看路由策略ip rule show# 测试连通性ping -I eth0 192.168.1.1ping -I eth1 10.0.0.1traceroute 8.8.8.8 # 观察路径
现象:部分流量丢失或走错网关
解决:
ip route get诊断具体流量走向/etc/resolv.conf是否绑定正确网卡现象:跨网段通信失败
解决:
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arparptables控制ARP响应ip route add persistent缓存路由
net.ipv4.conf.all.rp_filter=0 # 关闭反向路径过滤net.ipv4.ip_forward=1 # 启用IP转发(如需)
iftop、nload监控各网卡流量双网卡双网关配置的核心在于精确控制路由决策点。对于更复杂的需求(如多ISP负载均衡),可进一步研究:
正确配置后,系统可实现:
建议在实际部署前在测试环境验证所有路由规则,并制定详细的回滚方案。