VRRP Configuration Examples
本页提供 MikroTik RouterOS 的基本 VRRP 配置示例,演示如何在两台路由器之间设置主备冗余,包括 IP 地址共享以及故障转移期间 ARP 表的更新。
VRRP 配置示例
基本设置
这是基本的 VRRP 配置示例。
信息
注意
建议在所有实现 VRRP 且使用相同 VRID 的设备上使用相同版本的 RouterOS。

根据此配置,只要主路由器 R1 正常工作,所有发往外部网络的流量都会被导向 R1。但一旦 R1 发生故障,R2 就会接管成为主路由器,并开始处理转发到与 IP(R1) 关联接口的数据包。在此设置中,路由器 "R2" 在 Backup 期间完全处于空闲状态。
配置
R1 配置
/ip/address/add address=192.168.1.10/24 interface=ether1
/interface/vrrp/add interface=ether1 vrid=49 priority=254
/ip/address/add address=192.168.1.1/32 interface=vrrp1
R2 配置
/ip/address/add address=192.168.1.20/24 interface=ether1
/interface/vrrp/add interface=ether1 vrid=49
/ip/address/add address=192.168.1.1/32 interface=vrrp1
测试
首先,检查两台路由器的 VRRP 接口是否具有正确的标志。在路由器 R1 上应如下所示。
/interface/vrrp/print detail
0 RM name="vrrp1" mtu=1500 mac-address=00:00:5E:00:01:31 arp=enabled interface=ether1 vrid=49
priority=254 interval=1 preemption-mode=yes authentication=none password="" on-backup=""
on-master="" version=3 v3-protocol=ipv4
在路由器 R2 上:
/interface/vrrp/print detail
0 B name="vrrp1" mtu=1500 mac-address=00:00:5E:00:01:31 arp=enabled interface=ether1 vrid=49
priority=100 interval=1 preemption-mode=yes authentication=none password=""
on-backup="" on-master="" version=3 v3-protocol=ipv4
如你所见,两台路由器上的 VRRP 接口 MAC 地址完全相同。现在要检查 VRRP 是否正常工作,请尝试从客户端 ping 虚拟地址并检查 ARP 条目:
[admin@client] > /ping 192.168.1.1
192.168.1.1 64 byte ping: ttl=64 time=10 ms
192.168.1.1 64 byte ping: ttl=64 time=8 ms
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 8/9.0/10 ms
现在拔掉路由器 R1 上的 ether1 线缆。R2 将成为 VRRP 主路由器,客户端的 ARP 表不会改变,但流量将开始通过 R2 路由器传输。
信息
如果在使用 VRRP 的同时使用了反向路径过滤,建议将
rp-filter设置为loose,否则 VRRP 接口可能无法访问。
负载分担
在基本配置示例中,R2 在 Backup 状态下完全空闲。这种行为可能被认为是浪费宝贵的资源。在这种情况下,可以将 R2 路由器设置为某些客户端的网关。
此配置的明显优势是建立了负载分担方案。但这样做的话,R2 路由器就不受当前 VRRP 设置的保护了。
要使此设置生效,我们需要两个虚拟路由器。

V1 虚拟路由器的配置将与基本示例中的配置相同 —— R1 是 Master,R2 是 Backup 路由器。在 V2 中,Master 是 R2,Backup 是 R1。
通过这种配置,我们在 R1 和 R2 之间建立了负载分担;此外,我们还通过让两台路由器互为备份创建了一种保护机制。
配置
R1 配置
/ip/address/add address=192.168.1.1/24 interface=ether1
/interface/vrrp/add interface=ether1 vrid=49 priority=254
/interface/vrrp/add interface=ether1 vrid=77
/ip/address/add address=192.168.1.253/32 interface=vrrp1
/ip/address/add address=192.168.1.254/32 interface=vrrp2
R2 配置
/ip/address/add address=192.168.1.2/24 interface=ether1
/interface/vrrp/add interface=ether1 vrid=49
/interface/vrrp/add interface=ether1 vrid=77 priority=254
/ip/address/add address=192.168.1.253/32 interface=vrrp1
/ip/address/add address=192.168.1.254/32 interface=vrrp2
无抢占的 VRRP
每当优先级更高的路由器变为可用时,它就会成为 Master 路由器。有时这并不是期望的行为,可以通过在 VRRP 配置中设置 preemption-mode=no 来关闭。
配置
我们将使用与基本示例相同的设置。唯一的区别是在配置期间设置 preemption-mode=no。通过修改现有配置即可轻松完成:
/interface/vrrp/set [find] preemption-mode=no
测试
尝试关闭 R1 路由器,R2 将成为 Master 路由器,因为在可用路由器中它的优先级最高。
现在重新开启 R1 路由器,你会看到即使 R1 的优先级更高,R2 路由器仍继续作为 Master。