我有一个LAN接口和2个WAN接口(2条不同的ADSL线路)的freebsd服务器(ipfw,dhcp,dns)。
WAN接口(re0和re1)被聚合成一个lagg0故障转移(ifconfig_lagg0 =“laggproto failover laggport re0 laggport re1”)。
我想使用的是路由到某些networking的stream量re1,在re1链路断开时故障转移到re0,但仍默认使用re0和故障转移到re1。
可能吗?
谢谢。
[UPDATE]
好的,所以粘合不是一个可能的解决scheme(现在我看到它是显而易见的)。
当其中一条线路上的链路断开时,如何自动更新网关上的路由? 我不在乎是否需要从ipfw切换到pf(我正在计划交换机)。
再次感谢。
这是不可能的,只给出你所描述的configuration。 链路聚合(或称为“绑定”,有时称为)不能提供多个上游提供者之间的负载平衡或故障切换。 除非您遗漏了一些重要的路由和/或IPconfiguration详细信息,否则您目前的configuration似乎没有任何实用的用途。
链路汇聚是严格的第二层(以太网)协议。 当您有多个物理以太网链接到单个上游交换机或主机时,它可以提供负载平衡和/或故障转移。 但是,两个不同的DSL上行链路(即使它们连接到相同的提供商)是两个不同的设备。 如果终止电信环路的路由器/桥接设备(即,插入电话线路的DSL设备)支持相同的协议特定的(例如,T1, DSL等)接合技术。
您的FreeBSD主机不能绑定多个DSL链路,除非您在其中安装提供该function的DSL卡。 即使如此,您的ISP也必须支持DSLAM(DSL线路另一端的设备,电话公司CO)的绑定。
IPstream量的负载均衡和/或故障转移,使用多个上游链路,务必使用路由技术(第3层,IP)进行处理。
公平的说,我可能会过多地忽略你遗漏的细节。 你可以用你的configuration更多的信息来更新你的问题吗?
我可能会误解你的情况,我从来没有用freebsd做过这样的事情,但是…
对lagg的快速检查使其看起来像一个二层冗余机制,其中IP地址在多个接口之间浮动,但IP地址不会改变。
在你的DSL链路上 – 他们是不同的提供者? 如果他们是那么我认为你需要一个三层意识机制。
如果他们是不同的提供商,你将需要做一些你的路由表,以便链接1去一组远程IP地址,其他得到其余的,或者一个接口用于传出的networkingstream量,另一个是用于一切。 通常这是通过小型组织的“策略路由”和大型组织的BGP完成的。
最后,我会考虑pf而不是ipfw。 这是超级复杂,完全真棒。 讨论你在找什么的示例页面
http://www.openbsd.org/faq/pf/pools.html
上面的文章讨论了如何负载均衡输出stream量。
我只看了pf文档一秒钟,但似乎并没有直接在pffunction链接跟踪或ping跟踪机制。
我只需要制作3个pfconfiguration文件 – only.link1,only.link2和balance.links。 然后,确保在平衡链路configuration中不平衡stream量到下一跳(所以到链路1的下一跳的stream量永远不会经过链路2,反之亦然)。 然后,运行一个脚本,对每个接口的下一跳执行pingtesting,如果失败,则将pfconfiguration为另一个接口。 执行vrrp的networking设备通常具有这种function,但内置在设备中并不是被盗用的perl脚本的一部分,但它应该工作得一样。