家庭网络网关实现故障转移

2021-02-23 23:41:30 +08:00
 lj0014
一、背景
家里路由器环境是 ROS+openwrt,其中 ROS 做主路由,openwrt 做旁路由(默认网关)负责科学上网。本人经常折腾旁路由导致家里间隙性断网,所以经过一番探索实现了默认网关的故障转移

二、实现方案
分别在 ROS 和 openwrt 上配置 VRRP,通过配置会得到一个虚拟 IP,然后将默认网关改为该 IP 即可。
1 、ROS 配置
在 interfaces 菜单添加 vrrp,配置截图如下:




2 、openwrt 配置
使用 keepalived 实现 vrrp,配置文件如下:
keepalived.conf:
global_defs {
router_id VRRP_OPENWRT0218
}
vrrp_instance VI_1 {
state MASTER
interface br-lan
virtual_router_id 51 #必须与 ROS 一致
priority 120 #优先级,openwrt 做主节点,要配置比 ROS 大
advert_int 1
virtual_ipaddress {
192.168.6.8/32 #虚拟 IP 必须与 ROS 配置的保持一致
}

实际使用下来效果非常好,发生故障一两秒即可完成切换。主要分享方案,以上仅是粗略的配置过程。
1999 次点击
所在节点    路由器
14 条回复
ashong
2021-02-24 01:20:03 +08:00
收藏备用,谢谢
SgtPepper
2021-02-24 08:40:38 +08:00
thx 收藏了
ThirdFlame
2021-02-24 08:44:10 +08:00
大型网络的网络保护方案 在家庭中的应用。
huangya
2021-02-24 08:44:29 +08:00
第一次听说这个,贴一下 wiki,以防其他人也要查


虚拟路由器冗余协议(英语:Virtual Router Redundancy Protocol,缩写为 VRRP )是一种网络协议,可以为参与的路由器自动分配可用的 IP 地址。这个协议通过在子网中,自动选取默认网关,来增加路由的可用性和可靠性。

这个协议首先创建了一些虚拟路由器(这是对多个路由器的抽象),例如:主路由器、备路由器,这些路由器作为一个 group 协同工作。虚拟路由器被配置为默认网关,而不是物理路由器。当正在工作的物理路由器(代表着虚拟路由器)发生故障时,另一个物理路由器会自动被选举出来替代它。特定时间内正在转发数据包的物理路由器被称为主路由器。VRRP 提供了路由器状态的信息,而不是该路由器的数据包处理、交换的信息。每一个 VRRP 实例被限制到单一子网内。它不会参与子网外的 IP 路由,也不会以任何方式影响路由表。VRRP 可以通过 IPv4 或者 IPv6 (三层 IP 网),运行在 Ethernet (以太网)、MPLS 和令牌环网络(二层链路网)。

该协议在 IETF ( Internet Engineering Task Force )的 RFC 5798 发布,这是一个开放标准,但是思科提出过一个本质上相同,但是受专利保护的协议。不过思科的 Robert Barr 在 2001 年回复说,他们不会发起专利诉讼,除非有人对思科发起专利诉讼。IBM 同样声明了专利,并且他们的专利可以在 IETF 网站上看到。
carrionlee
2021-02-24 10:07:23 +08:00
旁路由的目的之一不就是为了折腾的时候不断网么。。。
vibbow
2021-02-24 10:38:51 +08:00
直接 ros dhcp 给不同设备下发不同网关就能解决 90%的问题
VersusClyne
2021-02-24 11:41:20 +08:00
fzinfz
2021-02-24 11:47:10 +08:00
双 ssid+科学上网单独 vlan 就好了
HawkinsSherpherd
2021-02-28 14:11:07 +08:00
想到一块去了,看到标题时就下意识想到了 VRRP 。
DopaminePlz
2021-03-01 11:25:44 +08:00
就差一个 RouterOS 机器了。话说主路由是 OPENWRT 或其它 LINUX 系统应该也可以吧?
lj0014
2021-03-01 12:38:42 +08:00
@DopaminePlz 是的
tankren
2021-03-03 09:20:09 +08:00
可惜 pfsense 不支持 vrrp 只有专用 CARP 而且仅适用于 2 个 pfsense 防火墙
fever
231 天前
@lj0014 #28 您好,想请教下 爱快自动故障转移的具体设置 ,看到您说爱快也能实现
lj0014
229 天前
@fever 爱快-流控分流-端口分流,添加一个端口分流,分流方式选下一跳网关,网关选旁路由,源地址选需要翻的内网设备 ip 地址

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/755647

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX