在CentOS系统中配置双网卡并指定特定网络流量走向,是企业级服务器和网络管理中的常见需求,通过合理配置双网卡,可以实现负载均衡、故障转移、网络隔离或特定服务的流量分离,从而提升系统的稳定性和安全性,本文将详细介绍在CentOS系统中实现双网卡指定流量配置的步骤、原理及注意事项。

双网卡基础配置
在开始配置前,需确保系统已正确识别两块物理网卡,通过ip a或ifconfig命令可以查看当前网卡状态,通常显示为eth0、eth1等名称,若网卡未被识别,需检查驱动加载情况及硬件连接,确认网卡可用后,首先为两块网卡配置静态IP地址,避免因DHCP冲突导致配置混乱,将eth0配置为管理网络,eth1配置为业务网络,编辑对应网卡的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0和ifcfg-eth1,设置BOOTPROTO=static,并指定IPADDR、NETMASK、GATEWAY等参数,注意,两块网卡应处于不同网段,避免路由冲突。
路由策略实现流量指定
默认情况下,CentOS系统的所有流量会通过主网关(通常在eth0上)转发,若需将特定服务的流量(如数据库访问)强制通过eth1,需配置策略路由(Policy-Based Routing, PBR),创建自定义路由表,编辑/etc/iproute2/rt_tables文件,添加一行如100 business,定义名为business的路由表(编号100),为eth1添加默认路由到该表:ip route add default via eth1的网关 dev eth1 table business,通过ip rule add from 特定IP/网段 table business命令,将特定源IP的流量导入business表,若需让服务器IP为168.100.10的流量走eth1,则执行ip rule add from 192.168.100.10 table business。
防火墙与SELinux调整
启用策略路由后,需确保防火墙规则和SELinux策略不阻止流量,使用firewall-cmd命令将自定义路由表添加到防火墙信任区域,或直接关闭firewalld服务(测试环境),对于SELinux,可通过getsebool -a | grep httpd_can_network_connect查看相关布尔值,必要时临时关闭SELinux(setenforce 0)进行测试,生产环境则需编写自定义策略,若两块网卡需要绑定(Bonding)以提高可用性,可配置mode=1(active-backup)模式,确保主网卡故障时自动切换至备用网卡。

持久化配置与故障排查
上述命令在重启后会失效,需通过配置文件持久化,对于RHEL/CentOS 7及以上版本,使用NetworkManager或netctl管理策略路由,创建/etc/sysconfig/network-scripts/route-eth1文件,添加default via eth1网关 dev eth1 table business,并在/etc/sysconfig/network-scripts/rule-eth1中定义规则,故障排查时,通过ip route show table business检查路由表,ip rule show验证规则优先级,tcpdump抓包分析流量实际走向,若出现无法联网问题,检查网关可达性及/etc/resolv.conf中的DNS配置。
相关问答FAQs
Q1:如何验证策略路由是否生效?
A:使用ip route show table business查看自定义路由表是否包含预期路由,并通过ping -I eth1 目标IP测试特定网卡的连通性,结合traceroute命令观察数据包是否按指定路径转发,或使用curl --interface eth1 IP强制指定源接口访问服务。
Q2:双网卡绑定(Bonding)后如何配置策略路由?
A:若两块网卡已绑定为bond0,则需在绑定配置文件中设置IPADDR等参数,后续策略路由直接基于bond0操作,将bond0作为主网卡,eth2作为独立业务网卡,通过ip rule add from 业务IP table business将流量导向eth2,确保绑定模式支持多路径(如mode=4 LACP)以避免冲突。
