CentOS设置双网关后冲突怎么办,如何配置策略路由实现分流?

在现代企业网络架构中,服务器有时需要同时接入两个不同的网络,例如一个用于内部管理,另一个用于对外提供服务,这就需要配置双网关,以确保不同来源或目标的流量能够通过正确的路径进行传输,在CentOS系统中,简单地设置两个默认网关会导致路由冲突,系统只会选择其中一个生效,我们需要借助策略路由来实现精细化的流量控制。

CentOS设置双网关后冲突怎么办,如何配置策略路由实现分流?

场景设定

为了清晰地说明配置过程,我们设定一个典型的双网络环境:

网卡 IP地址 子网掩码 网关 用途
eth0 168.1.10 255.255.0 168.1.1 内网通信
eth1 0.0.10 255.255.0 0.0.1 外网访问

我们的目标是:所有从eth0(内网)发起的流量走168.1.1网关,而其他所有流量(包括从eth1发起的)默认走0.0.1网关。

基础网络配置

确保两个网卡的IP地址已正确配置,可以使用nmcli或编辑配置文件,这里以nmcli为例:

# 配置eth0
nmcli con mod eth0 ipv4.addresses 192.168.1.10/24
nmcli con mod eth0 ipv4.gateway 192.168.1.1 # 临时设置,后续会被策略路由覆盖
nmcli con mod eth0 ipv4.method manual
nmcli con up eth0
# 配置eth1
nmcli con mod eth1 ipv4.addresses 10.0.0.10/24
nmcli con mod eth1 ipv4.gateway 10.0.0.1
nmcli con mod eth1 ipv4.method manual
nmcli con up eth1

系统会有一条默认路由,通常是后配置的或优先级更高的那条,我们需要建立策略路由来覆盖这个默认行为。

实施策略路由

策略路由的核心在于创建独立的路由表,并制定规则来决定何时使用哪张表。

创建新的路由表

Linux系统允许定义多张路由表,我们需要为内网流量创建一张专用表,编辑/etc/iproute2/rt_tables文件,在末尾添加一行:

100 internal

这里100是路由表的ID,internal是表的名称,便于记忆。

CentOS设置双网关后冲突怎么办,如何配置策略路由实现分流?

为新路由表添加规则

我们需要为internal这张表添加路由规则,这些规则指定了内网流量的路径。

# 添加到内网网段的路由,指定从eth0出去
ip route add 192.168.1.0/24 dev eth0 src 192.168.1.10 table internal
# 为internal表添加默认网关
ip route add default via 192.168.1.1 dev eth0 table internal

创建路由策略

我们需要告诉系统:当数据包的源地址是168.1.10时,请查询internal路由表。

# 创建规则,源IP为192.168.1.10的流量使用internal路由表
ip rule add from 192.168.1.10/32 table internal

至此,策略路由已临时生效,你可以使用ip rule listip route show table internal来验证。

配置持久化

上述命令在重启后会失效,为了使配置永久生效,需要在网络脚本中定义。

创建路由文件

eth0网卡创建路由文件/etc/sysconfig/network-scripts/route-eth0如下:

CentOS设置双网关后冲突怎么办,如何配置策略路由实现分流?

168.1.0/24 dev eth0 src 192.168.1.10
default via 192.168.1.1 dev eth0 table internal

创建规则文件

同样为eth0创建规则文件/etc/sysconfig/network-scripts/rule-eth0如下:

from 192.168.1.10/32 table internal

重启网络服务

保存文件后,重启网络服务以加载新配置:

systemctl restart network

即使服务器重启,双网关策略路由也会自动生效,确保了网络流量的正确分离。


相关问答FAQs


A: 因为Linux系统的核心路由表只能有一条默认路由(0.0.0/0),当你在两个配置文件中都设置了GATEWAY,系统在启动时可能会都加载,但最终只有一条会生效,通常是后加载的或度量值(metric)较低的那条,这会导致另一条路径完全无法使用,无法实现流量分流,策略路由通过创建多个路由表和匹配规则,绕过了这个限制,实现了基于源地址等条件的智能路由选择。

Q2: 如何验证特定流量是否真的走了正确的网关?
A: 最直接的方法是使用traceroute(或tracepath)命令,从服务器上发起一个到目标地址的追踪,观察第一跳的IP地址。
要验证内网流量,可以traceroute 192.168.1.20,其第一跳应该是168.1.1,要验证外网流量,可以traceroute www.baidu.com,其第一跳应该是0.0.1,通过这种方式,可以直观地确认策略路由是否按预期工作。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-10 04:35
下一篇 2025-10-10 04:38

相关推荐

  • CentOS如何彻底禁用UDP协议?安全配置步骤详解

    在Linux服务器管理中,协议控制是网络安全的重要环节,CentOS作为广泛使用的服务器操作系统,有时需要根据业务需求禁用UDP协议以防范特定攻击或优化网络策略,本文将详细说明在CentOS系统中禁用UDP协议的方法、注意事项及相关原理,帮助管理员安全、高效地完成配置,禁用UDP协议的适用场景在操作前,需明确禁……

    2025-11-13
    006
  • CentOS7 ifconfig命令无法使用怎么办?

    在CentOS 7系统中,网络配置是系统管理的基础操作之一,ifconfig作为经典的网络配置工具,虽然在新版系统中逐渐被ip命令取代,但因其直观性和广泛的应用场景,仍被许多管理员使用,本文将详细介绍ifconfig在CentOS 7中的使用方法、常见操作及注意事项,帮助用户更好地掌握这一工具,ifconfig……

    2025-11-16
    009
  • CentOS系统CP卡住,是配置问题还是硬件故障?原因解析及解决方法揭晓!

    CentOS系统CP卡住问题分析与解决问题现象在CentOS系统中,我们可能会遇到CPU(Central Processing Unit,中央处理器)卡住的情况,这种现象表现为系统响应缓慢,命令执行停滞,甚至导致整个系统无法正常工作,本文将针对CentOS系统CP卡住的问题进行分析,并提供相应的解决方法,原因分……

    2026-01-21
    006
  • CentOS升级内核后不重启能否立即生效?

    CentOS 作为一款广泛使用的服务器操作系统,其内核的稳定性和性能对系统运行至关重要,随着技术的发展,定期升级内核可以修复安全漏洞、优化性能并支持新的硬件功能,内核升级是一个需要谨慎操作的过程,涉及下载、安装、配置及重启等多个环节,本文将详细介绍 CentOS 内核升级的完整步骤及注意事项,帮助用户顺利完成操……

    2025-12-19
    005

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信