使用VRRP实现高性能浮动网关实现秒级自动切换

硬件配置

硬路由ax86u 50.1 按道理来说这里是软路由也行

软路由istore 50.2 这里它做的旁路由模式

浮动网关:50.4

如果宝哥看到的话也可以指导指导我这样做对不对

目标:当你的软路由可能会掉线或者他们之间是分离的时候,你害怕旁路由短线掉网

替代品就是那个浮动网关的插件,但是它有个缺点,就是你手动配置的网关或者你用脚本在dnsmasq.d那个目录下下发给你目标设备的浮动网关,它在你设备本地有arp缓存,所以路由器之间协商好了是一回事,你自己的设备识别到浮动网关的mac是最新的一边的mac是另一回事。

成果:

瞬间秒切,就是我配置在硬路由上的开机启动不太会,用了好多办法才能开机激活keepalived用我那个指定的配置文件

实现原理:

也就是用vrrp这个协议,旁路由用主的,主路由用辅的,一旦旁路由在线就直接滑动过去,一旦掉线这边就滑动过来,无缝连接,不需要ping和url检测

实现工具keepalived

实现过程:

旁路由端

软路由和硬路由安装keepalived,ax86u用那个entware

给它写一个配置文件,如果你的浮动网关不是50.4,自己看着改

cat > /etc/keepalived/keepalived-vip50.conf << ‘EOF’
global_defs {
  router_id ISTORE_VRRP
}

vrrp_instance VI_50 {
  state MASTER
  interface br-lan
  virtual_router_id 50
  priority 150
  advert_int 1

  authentication {
    auth_type PASS
    auth_pass 50vip
  }

  virtual_ipaddress {
    192.168.50.4/24 dev br-lan
  }

  garp_master_delay 1
  garp_master_repeat 3
  garp_master_refresh 10
  garp_master_refresh_repeat 1
}
EOF


sed -i 's/\r$//' /etc/keepalived/keepalived-vip50.conf #去除换行符
#测试命令跑前台 
keepalived -n -l -f /etc/keepalived/keepalived-vip50.conf
#如果不报错 
keepalived -D -f /etc/keepalived/keepalived-vip50.conf
#杀死程序 
killall keepalived 2>/dev/null
#查询程序
ps | grep -E '[k]eepalived'
#开机启动
# 路由界面有一个系统项,里面的那个启动项添加如果不行自己添加核心的命令进去就行

#!/bin/sh
(
  sleep 5
  killall keepalived 2>/dev/null
  /usr/sbin/keepalived -D -f /etc/keepalived/keepalived-vip50.conf
) &

exit 0

主路由端

ax86u为例

安装entware

opkg install keepalived

它的默认配置文件在/opt/etc/init.d/S数字keepalived.conf这个默认的就是

不动它,如果对你的配置文件启动有影响把它的S改为K之类的

新建一个自己的配置文件 和上面一样自己根据自己的浮动网关,以及还有那个interface br0,你如果不是我这个硬路由应该是br-lan,具体不清楚,反正我的硬路由是br0的网桥,双方的那个auth_pass好像就是互相通信密码

cat > /opt/etc/keepalived/keepalived-vip50.conf << 'EOF'
vrrp_instance VI_50 {
    state BACKUP
    interface br0
    virtual_router_id 50
    priority 100
    advert_int 1

    authentication {
        auth_type PASS
        auth_pass 50vip
    }

    virtual_ipaddress {
        192.168.50.4/24 dev br0
    }

    garp_master_delay 1
    garp_master_repeat 3
    garp_master_refresh 10
    garp_master_refresh_repeat 1
}
EOF
#手动启动前端显示调试命令
/opt/sbin/keepalived -n -l -f /opt/etc/keepalived/keepalived-vip50.conf
#核心启动命令
/opt/sbin/keepalived -D -f /opt/etc/keepalived/keepalived-vip50.conf
#你想办法自己在/jffs/scripts/或者/opt/etc/init.d/这些目录下面开机启动即可

win11 cmd监测

arp -a | findstr /i “192.168.50.1 192.168.50.2 192.168.50.4”

你启动或者关闭istore你会发现切换丝滑无缝转变50.4的mac