本帖最后由 ImRuYi 于 2024-1-3 02:15 编辑  
 
拓扑描述: 
主路由是Mikrotik RouterOS(后面简称ROS)路由器,不做复杂操作,高稳定性实现上网需求,即使一两年也不需要重启,IP地址为192.168.88.1,做DHCP服务器,兼做DNS备份服务器和备份网关。 
OpenWRT(后面简称OP)是单臂旁挂路由(双网口原理也一样),实现去广告、KX上网等高级操作,IP地址为192.168.88.2,不启用DHCP服务器功能,作为DNS主服务器。(如果用的是虚拟机X86方案,物理软路由原理一样)。不让OpenWRT做主路由是考虑稳定性等各方面原因,如果OpenWRT已经是主路由了,那么就不涉及我描述的问题,可以忽略本文。 
 
目标: 
实现OP和ROS之间的 高可靠。当OpenWRT升级或者故障时,自动切换至ROS,家里的所有客户端都不感知,也不中断业务;当OpenWRT恢复后,自动切换至OP。选择一台PC使用ipconfig /all查看DHCP相关配置,发现DHCP服务器是ROS 192.168.88.1,默认网关是VRRP虚拟IP 192.168.88.8,DNS是192.168.88.8。 
 
   DHCP 已启用 . . . . . . . . . . . : 是 
   自动配置已启用. . . . . . . . . . : 是 
   IPv4 地址 . . . . . . . . . . . . : 192.168.88.80(首选) 
   子网掩码  . . . . . . . . . . . . : 255.255.255.0 
   获得租约的时间  . . . . . . . . . : 2024年1月3日 1:43:22 
   租约过期的时间  . . . . . . . . . : 2024年1月4日 1:43:22 
   默认网关. . . . . . . . . . . . . : 192.168.88.8 
   DHCP 服务器 . . . . . . . . . . . : 192.168.88.1 
   DNS 服务器  . . . . . . . . . . . : 192.168.88.8 
 
 
思路: 
OP和ROS之间通过VRRP协议实现高可靠保障。 
 
实现方案: 
主路由DHCP服务器,在通过DHCP分配IP地址的时候,指定网关为VRRP虚拟下一跳地址192.168.88.8。 
OpenWRT VRRP优先级高于ROS的 VRRP 优先级100,所以OpenWRT的VRRP虚拟网关192.168.88.8活跃,能正常转发流量,可以去广告等高级操作;当OpenWRT故障时,ROS自动升为主,虚拟网关192.168.88.8生效可以转发路由,能正常上网。 
 
ROS上VRRP是默认支持的,创建VRRP接口后使用默认配置即可。状态为B表示Backup,ROS此时为备VRRP状态。 
[ROS@Gateway] > /interface vrrp print  
Flags: B - BACKUP 
Columns: NAME, INTERFACE, MAC-ADDRESS, VRID, PRIORITY, INTERVAL, VERSION, V3-PROT 
OCOL, SYNC-CONNECTION-TRACKING 
#   NAME   INTERFACE  MAC-ADDRESS        VRID  PRIORITY  INTERVAL  V  V3-P  SY 
0 B vrrp1  bridge1    00:00:5E:00:01:33    51       100  1s        2  ipv4  no 
[chongchong@Gateway] > /interface vrrp export  
 
/interface vrrp 
add authentication=simple interface=bridge1 name=vrrp1 version=2 vrid=51 
[ROS@Gateway] >  
 
 
 
OP的VRRP通过安装luci-app-keepalived软件包即可,重点是在设置VRRP Instance。设置的图片在下面,用文字表示: 
名称:随便填写 
状态:选择主设备 
接口:选择br-lan或者自己的指定接口 
Virtual Router Id:必须和ROS的vrid保持一致,默认51即可。 
优先级:这个必须要比ROS的值高,ROS默认值是100,只要大于100即可,我设置的是110。 
Virtual IP Address:在前面IP Address页面创建一个192.168.88.8的虚拟IP地址,在此进行关联即可 
其他选项可以使用默认值。 
 |