如何配置双网关实现冗余?服务器高可用网络设置方案

在服务器上配置两个网关(也称为默认网关)通常是为了实现以下目的之一:

服务器配置两个网关

  1. 多宿主 (Multihoming): 服务器连接到两个不同的网络(一个内部专用网络和一个外部互联网网络),需要为每个网络接口配置相应的网关。
  2. 冗余/高可用性: 确保在一个网关或连接该网关的网络路径失效时,服务器仍然可以通过另一个网关访问外部网络。
  3. 负载均衡: 将出站流量分散到两个网关(虽然仅靠操作系统级别的双网关配置通常难以实现真正的负载均衡,需要更复杂的路由策略或设备)。

重要概念:

  • 默认网关: 是当目标IP地址不在服务器本地任何子网内时,数据包会被发送到的下一跳路由器。
  • 路由表: 操作系统使用路由表来决定如何转发数据包,表中包含目标网络、子网掩码、网关(下一跳)和优先级(Metric)等信息。
  • Metric (跃点数/优先级): 这是关键!当存在多个可能的路由(包括多个默认路由)时,系统会选择Metric值最低的路由,如果Metric相同,行为可能因操作系统而异(可能轮询,也可能只使用第一个)。

配置方法(核心思路):

配置双网关的核心在于避免配置两个Metric相同的默认路由,因为这会导致不可预测的行为(如路由震荡、连接不稳定),通常采用以下两种策略之一:

🛠 策略一:主备网关(冗余/高可用)

这是最常见和推荐的配置方式,适用于冗余场景。

服务器配置两个网关

  1. 为每个网络接口配置IP地址和子网掩码。
  2. 设置主默认网关: 在主要网络接口(如 eth0)上配置你首选的网关地址,并赋予它一个较低的Metric值(100)。
  3. 设置备用默认网关: 在另一个网络接口(如 eth1)上配置备用网关地址,并赋予它一个较高的Metric值(200)。
  4. 路由表行为:
    • 系统总是优先使用Metric低的默认路由(主网关)。
    • 当主网关失效(或到主网关的链路失效)时,操作系统会检测到(通常通过ARP或路由协议,但简单静态配置可能需要依赖上层协议或手动超时),并将该路由标记为失效。
    • 系统自动切换到Metric次低的默认路由(备用网关)。
    • 当主网关恢复后,系统会自动切回主网关(因为它的Metric更低)。

配置示例 (Linux – 使用 ip route):

# 清除可能存在的旧默认路由 (谨慎操作!)
sudo ip route del default
# 添加主默认网关 (eth0), metric 100
sudo ip route add default via 192.168.1.1 dev eth0 metric 100
# 添加备用默认网关 (eth1), metric 200
sudo ip route add default via 10.0.0.1 dev eth1 metric 200

配置示例 (Windows – 使用 PowerShell):

# 获取接口索引 (Idx)
Get-NetAdapter | ft Name, InterfaceIndex
# 添加主默认网关 (接口索引 12), metric 100
New-NetRoute -DestinationPrefix "0.0.0.0/0" -InterfaceIndex 12 -NextHop 192.168.1.1 -RouteMetric 100
# 添加备用默认网关 (接口索引 15), metric 200
New-NetRoute -DestinationPrefix "0.0.0.0/0" -InterfaceIndex 15 -NextHop 10.0.0.1 -RouteMetric 200

🧪 策略二:基于策略的路由(高级负载均衡/特定路径)

这适用于更复杂的场景,

  • 想让特定来源IP或目标IP的流量走特定网关。
  • 实现更接近负载均衡的效果(需要精心设计策略)。
  • 服务器同时是不同网络的重要节点(如多宿主)。

这种方法不依赖于默认路由的Metric,而是创建额外的路由表和路由规则 (policy rules)。

服务器配置两个网关

  1. 创建自定义路由表: table_wan1, table_wan2。
  2. 在每个路由表中设置默认网关:
    • 在 table_wan1 中添加默认网关指向网关1。
    • 在 table_wan2 中添加默认网关指向网关2。
  3. 定义路由规则: 告诉系统什么类型的流量应该查询哪个路由表,规则可以基于:
    • 来源IP地址 (src): 服务器上不同服务绑定的不同IP走不同出口。
    • 来源端口 (sport): 不太常用。
    • 目标IP地址 (dst): 访问特定目标网络走特定网关。
    • 防火墙标记 (fwmark): 最灵活,配合iptables/nftables标记数据包。
  4. 系统行为:
    • 数据包进入网络栈。
    • 系统根据定义的路由规则匹配该数据包。
    • 匹配到规则后,系统去查询规则指定的路由表来决定下一跳(网关)。
    • 如果没有匹配任何策略规则,则回落到主路由表 (main table) 中的默认路由(如果存在)。

配置示例 (Linux – 简化版, 基于来源IP):

# 创建自定义路由表 (通常在 /etc/iproute2/rt_tables 中定义名字和编号)
echo "200 wan1" | sudo tee -a /etc/iproute2/rt_tables
echo "201 wan2" | sudo tee -a /etc/iproute2/rt_tables
# 清空自定义表 (可选)
sudo ip route flush table wan1
sudo ip route flush table wan2
# 在 wan1 表中添加默认网关 (假设 eth0 连接网关1)
sudo ip route add default via 192.168.1.1 dev eth0 table wan1
# 在 wan2 表中添加默认网关 (假设 eth1 连接网关2)
sudo ip route add default via 10.0.0.1 dev eth1 table wan2
# 添加路由规则:来自服务器IP 192.168.1.100 的流量查表 wan1
sudo ip rule add from 192.168.1.100 lookup wan1
# 添加路由规则:来自服务器IP 10.0.0.100 的流量查表 wan2
sudo ip rule add from 10.0.0.100 lookup wan2
# (可选) 在主路由表设置一个低Metric默认路由作为最终回退
sudo ip route add default via 192.168.1.1 dev eth0 metric 100

⚠ 关键注意事项

  1. 避免Metric冲突: 在策略一中,绝对不能让两个默认路由具有相同的Metric值(除非你确切知道你的操作系统如何处理这种情况,通常不建议)。
  2. 网关可达性: 服务器必须能直接到达配置的网关IP(即网关IP必须在服务器对应接口的本地子网内)。
  3. 网关配置: 网关路由器本身也需要正确配置,知道如何将返回流量路由回你的服务器(通常需要静态路由或动态路由协议)。
  4. 防火墙 (Security Groups/ACLs): 确保服务器和网关上的防火墙规则允许必要的流量通过两个接口和网关。
  5. ARP/邻居表: 服务器需要能够解析网关的MAC地址,确保ARP正常工作。
  6. 测试: 配置后务必测试!
    • 使用 ping 和 traceroute/tracert 检查到不同目标(特别是公网地址)的路径。
    • 测试主备切换:手动禁用主接口或模拟主网关故障,观察流量是否切换到备用网关,恢复后是否切回。
    • 对于策略路由,测试不同来源IP或目标IP是否走了预期的路径。
  7. 持久化: 上述命令行配置通常在重启后会丢失。必须将配置写入操作系统的网络配置文件(如Linux的/etc/network/interfaces, /etc/sysconfig/network-scripts/ifcfg-*, netplan YAML;Windows的GUI设置或PowerShell脚本+任务计划)或使用网络管理工具(如NetworkManager)进行持久化配置。📌
  8. DNS: 确保DNS设置正确,如果两个网络使用不同的DNS服务器,考虑在/etc/resolv.conf (Linux) 或网卡属性 (Windows) 中正确配置DNS服务器地址和顺序,或者使用DNS策略。
  9. 应用绑定: 如果使用策略路由(基于源IP),需要让特定的应用程序或服务绑定到特定的服务器IP地址上,才能利用不同的网关出口。
  • 对于简单的主备冗余,使用策略一(主备网关 + 不同Metric) 是最直接有效的方法,配置相对简单,易于理解和管理。
  • 对于更复杂的流量工程、基于源/目的的路由或负载均衡需求,需要使用策略二(基于策略的路由),这提供了最大的灵活性,但配置和管理也更复杂。
  • 永远注意Metric值,避免默认路由冲突。
  • 彻底测试连通性、路径和故障切换。
  • 持久化你的配置。
  • 考虑DNS和防火墙设置。

选择哪种策略取决于你的具体需求(冗余、负载均衡、特定路径控制)以及对网络管理复杂度的接受程度,在实施前务必规划清楚。🛡

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/291347.html

赞 (0)
上一篇 2026年2月11日 13:19
下一篇 2026年2月11日 13:24

相关推荐

  • 服务器远程无法访问网站怎么办?服务器远程连接失败排查方法

    服务器远程不可以访问网站——这是企业运维中高频出现的“断连危机”,核心原因往往不在网络带宽或服务器宕机,而在于远程访问链路中的某环节点配置失当或策略阻断,根据酷番云2023年对2,187起客户故障的归因分析,6%的“无法远程访问”问题源于防火墙规则误配、安全组策略过严或远程服务未正确监听端口,而非硬件故障,以下……

    2026年4月13日
    03242
  • 服务器老报错网站自动关闭怎么办,服务器频繁宕机原因

    服务器频繁报错导致网站自动关闭,核心症结在于资源耗尽或安全机制触发,必须通过监控预警、资源扩容及安全加固三位一体的策略进行根治,而非简单重启,当网站在毫无预兆的情况下自动关闭,且伴随服务器报错日志时,绝大多数情况并非服务器硬件物理损坏,而是资源瓶颈或安全防御机制在起作用,服务器为了自我保护,在检测到 CPU 占……

    2026年5月1日
    04345
  • 服务器间切换快捷键怎么设置?快速掌握服务器间切换的快捷键技巧?

    在现代云计算、DevOps以及大规模系统运维场景中,多服务器环境已成为常态,无论是开发人员管理多分支代码仓库、运维工程师监控与操作多台服务器,还是测试团队在多环境(测试、预发、生产)间切换执行任务,高效切换服务器成为提升工作效率的关键,而“服务器间切换快捷键”正是解决这一问题的核心工具,通过预设的按键组合,快速……

    2026年1月13日
    03540
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 服务器怎么部署多个SSL证书,一个IP能部署多个SSL证书吗

    在单台服务器上部署多个SSL证书不仅是完全可行的,更是现代企业多站点架构中实现安全隔离与合规管理的标准实践,核心技术在于利用服务器名称指示(SNI)技术,它允许服务器在同一个IP地址和端口上根据客户端请求的域名来返回对应的数字证书, 这一机制打破了传统“一个IP对应一个证书”的限制,使得企业能够以极低的成本在单……

    2026年3月8日
    03594

发表回复

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