AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 30457
Accepted
Massimiliano Torromeo
Massimiliano Torromeo
Asked: 2009-06-24 09:09:34 +0800 CST2009-06-24 09:09:34 +0800 CST 2009-06-24 09:09:34 +0800 CST

FreeBSD 负载拆分和故障转移,带有 2 个 WAN(动态路由)

  • 772

我有一台带有一个 LAN 接口和 2 个 WAN 接口(2 条不同的 ADSL 线路)的 freebsd 服务器(ipfw、dhcp、dns)。

WAN 接口(re0 和 re1)聚合为一个 lagg0 故障转移(ifconfig_lagg0="laggproto failover laggport re0 laggport re1")。

我想使用的是将定向到某些网络的流量路由到 re1,当 re1 链接断开时故障转移到 re0,但默认情况下仍使用 re0 和故障转移到 re1。

可能吗?

谢谢。

[更新]

好的,所以粘合不是一个可能的解决方案(现在我看到它很明显)。

当其中一条线路上的链接断开时,如何自动更新网关上的路由?我不在乎是否需要从 ipfw 切换到 pf (无论如何我都在计划切换)。

再次感谢。

routing freebsd failover
  • 2 2 个回答
  • 6385 Views

2 个回答

  • Voted
  1. Best Answer
    Ryan B. Lynch
    2009-06-24T11:56:06+08:002009-06-24T11:56:06+08:00

    这是不可能的,仅考虑您描述的配置。链路聚合(或有时称为“绑定”)无法在多个上游提供商之间提供负载平衡或故障转移。您当前的配置似乎没有任何用处,除非您遗漏了一些重要的路由和/或 IP 配置细节。

    链路聚合严格来说是第 2 层(以太网)协议。当您有多个物理以太网链路到单个上游交换机或主机时,它可以提供负载平衡和/或故障转移。但是两个不同的 DSL 上行链路(即使它们链接到同一个提供商)是两个不同的设备。如果终止电信环路的路由器/网桥设备(即插入电话线的 DSL 盒)支持相同的特定协议(例如,T1、 DSL等)粘合技术。

    您的 FreeBSD 主机无法绑定多个 DSL 链接,除非您在其中安装提供该功能的 DSL 卡。即便如此,您的 ISP 也必须支持他们的 DSLAM(您的 DSL 线路另一端的设备,位于电话公司 CO)的绑定。

    使用多个上行链路的 IP 流量的负载平衡和/或故障转移必须使用路由技术(第 3 层,IP)来处理。

    公平地说,我可能对你遗漏的细节假设太多了。您能否使用有关您的配置的更多信息来更新您的问题?

    • 哪些 IP 地址绑定到 re0、re1 和/或 lagg0?
    • 您是否配置了单个上游网关路由,或者您正在使用更复杂的路由设置(动态路由守护进程、IP 转发/报头重写、基于源 IP 的路由规则等)?
    • 如果您使用的是复杂的路由设置,您能详细描述一下吗?
    • 您的两条 DSL 电话线是否终止于单个设备(AKA 调制解调器、路由器、网桥等),还是每条 DSL 线都有自己的盒子?如果两条线共用一个盒子,你是否将 re0 和 re1 都直接插入该盒子?
    • 您的 DSL 线路是否来自同一个 ISP?如果是这样,您的 ISP 是否支持 DSL 绑定?如果是这样,您当前的服务计划是否设置为绑定?(即,您是否订购了绑定的 DSL 线路,他们是否为您设置了绑定?)
    • 2
  2. chris
    2009-06-24T11:09:56+08:002009-06-24T11:09:56+08:00

    我可能误解了你的情况,我当然从来没有用 freebsd 做过这种事情,但是......

    对滞后的快速检查使它看起来像一个第 2 层冗余机制,其中 IP 地址在多个接口之间浮动,但 IP 地址永远不会改变。

    在您的 DSL 链接上——它们是不同的提供商吗?如果是,那么我认为您需要一个第 3 层感知机制。

    如果它们发送给不同的提供商,您将需要对路由表进行一些处理,以便链接 1 进入一组远程 IP 地址,而另一个获得其余的,或者可能一个接口用于传出 Web 流量,另一个是用于其他一切。通常这是通过小型组织的“策略路由”和大型组织的 BGP 来完成的。

    最后,我会研究 pf 而不是 ipfw。它超级复杂,非常棒。讨论您正在寻找的内容的示例页面

    http://www.openbsd.org/faq/pf/pools.html

    上面的文章讨论了如何对传出流量进行负载平衡。

    我只看了 pf 文档一秒钟,但似乎 pf 功能中没有直接的链接跟踪或 ping 跟踪机制。

    我只需制作 3 个 pf 配置文件——only.link1、only.link2 和 balance.links。然后,确保在平衡链接配置中,您不会平衡到下一跳的流量(因此到链接 1 的下一跳的流量永远不会通过链接 2,反之亦然)。然后,运行一个脚本,对每个接口的下一跳进行 ping 测试,如果失败,则将 pf 配置专门切换到另一个接口。执行 vrrp 的网络设备通常具有此类功能,但内置于设备中不是作为被破解的 perl 脚本的一部分,但它应该可以正常工作。

    • 1

相关问题

  • 我如何告诉 OS X 的 Bonjour/ZeroConf 实现哪个网络用于 mdns?

  • 到服务器的局域网连接以某种方式弄乱了路由器[关闭]

  • 如何将我的浏览器指向我机器上的特定 NIC

  • Linux TC/策略路由工具

  • 如何为独立于主网关的 VPN 网关设置路由?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve