V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lj0014
V2EX  ›  路由器

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

  •  1
     
  •   lj0014 · 2021-02-23 23:41:30 +08:00 · 1311 次点击
    这是一个创建于 1129 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一、背景
    家里路由器环境是 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 配置的保持一致
    }

    实际使用下来效果非常好,发生故障一两秒即可完成切换。主要分享方案,以上仅是粗略的配置过程。
    12 条回复    2021-03-03 09:20:09 +08:00
    ashong
        1
    ashong  
       2021-02-24 01:20:03 +08:00 via iPhone
    收藏备用,谢谢
    SgtPepper
        2
    SgtPepper  
       2021-02-24 08:40:38 +08:00 via Android
    thx 收藏了
    ThirdFlame
        3
    ThirdFlame  
       2021-02-24 08:44:10 +08:00
    大型网络的网络保护方案 在家庭中的应用。
    huangya
        4
    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
        5
    carrionlee  
       2021-02-24 10:07:23 +08:00
    旁路由的目的之一不就是为了折腾的时候不断网么。。。
    vibbow
        6
    vibbow  
       2021-02-24 10:38:51 +08:00
    直接 ros dhcp 给不同设备下发不同网关就能解决 90%的问题
    fzinfz
        8
    fzinfz  
       2021-02-24 11:47:10 +08:00 via iPhone
    双 ssid+科学上网单独 vlan 就好了
    HawkinsSherpherd
        9
    HawkinsSherpherd  
       2021-02-28 14:11:07 +08:00
    想到一块去了,看到标题时就下意识想到了 VRRP 。
    DopaminePlz
        10
    DopaminePlz  
       2021-03-01 11:25:44 +08:00 via Android
    就差一个 RouterOS 机器了。话说主路由是 OPENWRT 或其它 LINUX 系统应该也可以吧?
    lj0014
        11
    lj0014  
    OP
       2021-03-01 12:38:42 +08:00
    @DopaminePlz 是的
    tankren
        12
    tankren  
       2021-03-03 09:20:09 +08:00
    可惜 pfsense 不支持 vrrp 只有专用 CARP 而且仅适用于 2 个 pfsense 防火墙
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2871 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:08 · PVG 21:08 · LAX 06:08 · JFK 09:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.