简介:本文详细讲解Linux系统下双网卡绑定双网关的配置方法,涵盖网络拓扑设计、策略路由规则设置及故障排查技巧,帮助运维人员实现多网段安全通信。
在复杂网络环境中,双网卡双网关配置是解决多网段隔离通信的核心方案。典型应用场景包括:
网络拓扑示例:
[Server]eth0: 192.168.1.100/24 GW:192.168.1.1 (内网网关)eth1: 10.0.0.100/24 GW:10.0.0.1 (外网网关)
使用nmcli工具进行现代化配置(推荐CentOS 8+/Ubuntu 20.04+):
# 配置eth0(内网)nmcli connection add type ethernet con-name eth0-inner ifname eth0 \ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1# 配置eth1(外网)nmcli connection add type ethernet con-name eth1-outer ifname eth1 \ipv4.method manual ipv4.addresses 10.0.0.100/24 ipv4.gateway 10.0.0.1
传统ifcfg文件配置(RHEL 7/CentOS 7):
# /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0BOOTPROTO=noneONBOOT=yesIPADDR=192.168.1.100NETMASK=255.255.255.0GATEWAY=192.168.1.1# /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth1BOOTPROTO=noneONBOOT=yesIPADDR=10.0.0.100NETMASK=255.255.255.0GATEWAY=10.0.0.1
使用ip route检查默认路由冲突:
ip route show# 典型错误输出(两个默认网关冲突)default via 192.168.1.1 dev eth0default via 10.0.0.1 dev eth1
删除冲突路由的应急方法:
ip route del default via 10.0.0.1 dev eth1
编辑/etc/iproute2/rt_tables:
# 添加自定义表100 inner_net101 outer_net
# 内网路由表配置ip route add 192.168.1.0/24 dev eth0 src 192.168.1.100 table inner_netip route add default via 192.168.1.1 dev eth0 table inner_net# 外网路由表配置ip route add 10.0.0.0/24 dev eth1 src 10.0.0.100 table outer_netip route add default via 10.0.0.1 dev eth1 table outer_net
基于源IP的路由策略:
ip rule add from 192.168.1.100 table inner_netip rule add from 10.0.0.100 table outer_net
基于目的地址的路由(更灵活的方案):
# 访问10.0.0.0/24走外网网关ip rule add to 10.0.0.0/24 table outer_net# 访问内网服务走内网网关ip rule add to 192.168.1.0/24 table inner_net
# 创建mangle规则标记特定流量iptables -t mangle -A PREROUTING -d 10.0.0.0/24 -j MARK --set-mark 1# 基于标记的路由ip rule add fwmark 1 table outer_net
创建/etc/sysconfig/network-scripts/route-eth0和route-eth1文件:
# route-eth0内容192.168.1.0/24 dev eth0 src 192.168.1.100default via 192.168.1.1 dev eth0
配置/etc/modprobe.d/bonding.conf:
alias bond0 bondingoptions bond0 mode=active-backup miimon=100
绑定后策略路由配置:
ip link set eth0 master bond0ip link set eth1 master bond0ip addr add 192.168.1.100/24 dev bond0ip route add default via 192.168.1.1 table inner_net
ip route get 8.8.8.8检查实际路由路径arp -an验证网关MAC地址iptables -L -n -v检查规则tcpdump -i eth0 host 192.168.1.1traceroute -n 8.8.8.8nmap -sn 192.168.1.0/24关键日志位置:
/var/log/messagesjournalctl -u NetworkManagerdmesg | grep eth
监控告警:设置网关状态监控
#!/bin/bashif ! ping -c 2 192.168.1.1 >/dev/null; thenecho "Inner gateway down!" | mail -s "Network Alert" admin@example.comfi
备份恢复:建立配置快照机制
```bash
ip route save > /root/route_backup.txt
ip rule save > /root/rule_backup.txt
ip route restore < /root/route_backup.txt
ip rule restore < /root/rule_backup.txt
```
通过以上系统化配置,可实现稳定的双网卡双网关环境。实际部署时建议先在测试环境验证策略路由规则,逐步过渡到生产环境。定期检查路由表状态(ip route show table all)和网关连通性是保障网络稳定的关键。