虚拟路由冗余协议 Virtual Router Redundancy Protocol (VRRP)
虚拟路由冗余协议 Virtual Router Redundancy Protocol (VRRP)概要:
虚拟路由冗余协议 Virtual Router Redundancy Protocol (VRRP) , VRRP 协议是保证访问一些资源不会中断,即通过多台路由器组成一个网关集合,如果其中一台路由器出现故障,会自动启用另外一台。两个或多个路由器建立起一个动态的虚拟集合,每一个路由器都可以参与处理数据,这个集合最大不能超过 255 个虚拟路由器 ( 可参考虚拟路由协议 ) 。一般现在的路由器都支持该协议。
规格
需要功能包 : system
软件等级 : Level1
操作路径 : /ip vrrp
相关协议和标准 : VRRP , AH , HMAC-MD5-96 within ESP and AH
属性
虚拟路由冗余协议是一种为路由提供高效率的路由选择协议。一个或多个 IP 地址可以分配到一个虚拟路由上,一个虚拟路由节点应该具备以下状态:
MASTER 状态 , 一个节点回答所有的请求给相应请求的 IP 地址。仅只有一个 MASTER 路由器在虚拟路由中。每隔一段时间这个主节点发出 VRRP 广播包给所有 backup 路由器。
BACKUP 状态 , VRRP 路由器监视 Master 路由器的状态。它不会回答任何来至相应 IP 地址的请求,当 MASTER 路由器无法工作时(假设至少三次 VRRP 数据连接丢失),选择过程发生,新的 MASTER 会根据优先级产生。
VRRP Routers
操作路径 : /ip vrrp
属性描述
name ( 名称 ) ? VRRP 名称
interface ( 名称 ) ? 选择那个接口( interface )在 VRRP 上运行。
vrid ( 整型 : 0-255; 默认 : 1 ) ? 虚拟路由的身份号 ( 必须是在接口( interface )上是唯一的 )
priority ( 整型 : 1-255; 默认 : 100 ) ? 当前节点的优先级 ( 高的数值代表高的优先级 )
interval ( 整型 : 1-255; 默认 : 1 ) ? VRRP 更新间隔秒数。定义 MASTER 经过多少时间未向 VRRP 集合节点发出广播数据。
preemption-mode (yes | no; 默认 : yes ) ? 是否启用优先模式。
no ? 一个 backup 节点在当前的 master 失效之前,是不会选择 master ,即使该 backup 的优先高于当前 master 的 级别
yes ? 该节点总是拥有最高优先级。
authentication (none | simple | ah; 默认 : none ) ? 使用 VRRP 的广播数据包的验证方法
none ? 没有验证
simple ? 纯文本的验证
ah ? 验证标题使用 HMAC-MD5-96 算法
password ( 文本 ; 默认 : "" ) ? 需要验证时的密码,不使用验证时可以被忽略。 8 位字符长文本字符串(为纯文本验证方式); 16 位字符长文本字符串(为需要 128 位 key 的 AH 验证)
on-backup ( 名称 ; 默认 : "" ) ? 当节点为 backup 状态时执行的脚步
on-master ( 名称 ; 默认 : "" ) - 当节点为 master 状态时执行的脚步
注:
所有同一个集合的节点,必须使相同的 vrid , interval , preemption-mode , authentication 和 password .
第 255 的优先级被保留为真正的虚拟路由的主机 IP 地址。
添加一个 VRRP 事例在 ether1 的接口上,一个虚拟路由的 vrid 设置为 1 ,因为是 虚拟路由的主机,所有 优先级为 255 :
ip vrrp> add interface=ether1 vrid=1 priority=255
ip vrrp> print
Flags: X - disabled, I - invalid, M - master, B - backup
0 I name="vr1" interface=ether1 vrid=1 priority=255 interval=1
preemption-mode=yes authentication=none password="" on-backup=""
on-master=""
ip vrrp>
虚拟 IP 地址
操作路径 : /ip vrrp address
属性描述
address ( IP 地址 ) ? IP 地址适用于虚拟路由 belongs to the virtual router
network ( IP 地址 ) ? IP 地址的子网掩码 address of the network
broadcast ( IP 地址 ) ? IP 地址广播段
virtual-router ( 名称 ) - VRRP 路由的名称
Notes
虚拟 IP 地址应与每个节点的虚拟路由器相同。
在 vr1 VRRP 路由器上添加虚拟地址 192.168.1.1/24 :
admin@MikroTik] ip vrrp> address add address=192.168.1.1/24 \
\... virtual-router=vr1
ip vrrp> address print
Flags: X - disabled, A - active
# ADDRESS NETWORK BROADCAST VIRUAL-ROUTER
0 192.168.1.1/24 192.168.1.0 192.168.1.255 vr1
ip vrrp>
一个简单的 VRRP 事例
让我们假设,我们有一个 192.168.1.0/24 的网络,且我们需要为它提供高效率的 Internet 连接。这个网络将作 NAT ,我们连接了两个不同的 ISP ,并且他们其中的一个优先选取(如:速度最快)。
这个例子在上面的图解中显示了如何用两个路由器配置 VRRP. 这两个路由器被初始化为以下:接口以启用,每一个接口都配置了相应的 IP 地址;路由表设置正确(应至少有一个默认路由); SRC-NAT 或伪装应配置。如何设置这些配置,看各自的说明手册。
我们将假设这个接口的网段 192.168.1.0/24 以连接,并在 VRRP 路由器上命名为 local
配置 Master VRRP 路由器
首先将创建一个 VRRP 项,我们将这个路由器设置为优先选取,使用 255 的优先级
ip vrrp> add interface=local priority=255
ip vrrp> print
Flags: X - disabled, I - invalid, M - master, B - backup
0 M name="vr1" interface=local vrid=1 priority=255 interval=1
preemption-mode=yes authentication=none password="" on-backup=""
on-master=""
ip vrrp>
下一步,将虚拟 IP 地址添加到这个 VRRP 项目中
ip vrrp> address add address=192.168.1.1/24 \
\... virtual-router=vr1
ip vrrp> address print
Flags: X - disabled, A - active
# ADDRESS NETWORK BROADCAST VIRTUAL-ROUTER
0 192.168.1.1/24 192.168.1.0 192.168.1.255 vr1
ip vrrp>
现在这个地址将出现在 /ip address 列表中:
ip address> print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 10.0.0 .1/24 10.0.0 .0 10.0.0 .255 public
1 192.168.1.2/24 192.168.1.0 192.168.1.255 local
2 D 192.168.1.1/24 192.168.1.0 192.168.1.255 local
ip address>
配置 Backup VRRP 路由器
现在我们将创建低优先级的路由器的 VRRP 项目 ( 我们可用使用默认的值 100 ), 因此这个路由器将优先选作的一个 backup :
ip vrrp> add interface=local
ip vrrp> print
Flags: X - disabled, I - invalid, M - master, B - backup
0 B name="vr1" interface=local vrid=1 priority=100 interval=1
preemption-mode=yes authentication=none password="" on-backup=""
on-master=""
ip vrrp>
现在我们将添加相同的虚拟地址,和 master 节点的添加一样:
这个节点将不会出现在 /ip address 列表中:
ip address> print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 10.1.0 .1/24 10.0.0 .0 10.0.0 .255 public
1 192.168.1.3/24 192.168.1.0 192.168.1.255 local
ip address>
测试:
现在,当我们断掉 master 路由器, backup 将选择 master 状态:
ip vrrp> print
Flags: X - disabled, I - invalid, M - master, B - backup
0 M name="vr1" interface=local vrid=1 priority=100 interval=1
preemption-mode=yes authentication=none password="" on-backup=""
on-master=""
ip vrrp> /ip address print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 10.1.0 .1/24 10.0.0 .0 10.0.0 .255 public
1 192.168.1.3/24 192.168.1.0 192.168.1.255 local
2 D 192.168.1.1/24 192.168.1.0 192.168.1.255 local
ip vrrp> 有恒心啊。羡慕 翻译不错~ 技术上说出来一些东西
VRRP不是广播的,是组播!
努力吧,支持你的! 好帖,我会认真学习的 搞不懂,做个标记先!
好贴
终于看到到了想要的东西,现在看不太明白,先收起来,慢慢研究 好像只是一次翻译 强我顶 (求助)RouterOS的VRRP来配置路由器热备份和防火墙的问题(求助)RouterOS的VRRP来配置路由器热备份和防火墙的问题
按照VRRP的教程配置双机热备份成功。
但是当我导入配置好的防火墙后发现VRRP热备份失效(在2台机器上的VRRP都显示master)。
我的主ROS IP为192.168.1.2 备份ROS IP为192.168.1.3 虚拟IP为192.168.1.4
防火墙规则如下:(请大大们帮忙看看是哪里的问题)
/ ip firewall
set input name="input" policy=accept comment=""
set forward name="forward" policy=accept comment=""
set output name="output" policy=accept comment=""
add name="virus" policy=none comment=""
/ ip firewall rule forward
add connection-state=invalid action=drop comment="Drop invalid connections" \
disabled=no
add connection-state=established action=accept comment="Established \
connections" disabled=no
add connection-state=related action=accept comment="Related connections" \
disabled=no
add action=jump jump-target=virus comment="!!! Check for well-known viruses \
!!!" disabled=no
add protocol=udp action=accept comment="UDP" disabled=no
add protocol=icmp limit-count=50 limit-burst=2 limit-time=5s action=accept \
comment="Allow limited pings" disabled=no
add protocol=icmp action=drop comment="Drop excess pings" disabled=no
/ ip firewall rule input
add connection-state=invalid action=drop comment="Drop invalid connections" \
disabled=no
add tcp-options=non-syn-only connection-state=established action=accept \
comment="Accept established connections" disabled=no
add connection-state=related action=accept comment="Accept related \
connections" disabled=no
add action=jump jump-target=virus comment="!!! Check for well-known viruses \
!!!" disabled=no
add protocol=udp action=accept comment="UDP" disabled=no
add protocol=icmp limit-count=50 limit-burst=2 limit-time=5s action=accept \
comment="Allow limited pings" disabled=no
add protocol=icmp action=drop comment="Drop excess pings" disabled=no
add dst-address=:22 protocol=tcp action=accept comment="SSH for demo \
purposes" disabled=no
add dst-address=:23 protocol=tcp action=accept comment="Telnet for demo \
purposes" disabled=no
add dst-address=:80 protocol=tcp action=accept comment="http for demo \
purposes" disabled=no
add dst-address=:3987 protocol=tcp action=accept comment="winbox for demo \
purposes" disabled=no
add action=drop log=yes comment="Log and drop everything else" disabled=no
/ ip firewall rule virus
add dst-address=:135-139 protocol=tcp action=drop comment="Drop Blaster Worm" \
disabled=no
add dst-address=:135-139 protocol=udp action=drop comment="Drop Messenger \
Worm" disabled=no
add dst-address=:445 protocol=tcp action=drop comment="Drop Blaster Worm" \
disabled=no
add dst-address=:445 protocol=udp action=drop comment="Drop Blaster Worm" \
disabled=no
add dst-address=:593 protocol=tcp action=drop comment="________" disabled=no
add dst-address=:1024-1030 protocol=tcp action=drop comment="________" \
disabled=no
add dst-address=:1080 protocol=tcp action=drop comment="Drop MyDoom" \
disabled=no
add dst-address=:1214 protocol=tcp action=drop comment="________" disabled=no
add dst-address=:1363 protocol=tcp action=drop comment="ndm requester" \
disabled=no
add dst-address=:1364 protocol=tcp action=drop comment="ndm server" \
disabled=no
add dst-address=:1368 protocol=tcp action=drop comment="screen cast" \
disabled=no
add dst-address=:1373 protocol=tcp action=drop comment="hromgrafx" \
disabled=no
add dst-address=:1377 protocol=tcp action=drop comment="cichlid" disabled=no
add dst-address=:1433-1434 protocol=tcp action=drop comment="Worm" \
disabled=no
add dst-address=:2745 protocol=tcp action=drop comment="Bagle Virus" \
disabled=no
add dst-address=:2283 protocol=tcp action=drop comment="Drop Dumaru.Y" \
disabled=no
add dst-address=:2535 protocol=tcp action=drop comment="Drop Beagle" \
disabled=no
add dst-address=:2745 protocol=tcp action=drop comment="Drop Beagle.C-K" \
disabled=no
add dst-address=:3127-3128 protocol=tcp action=drop comment="Drop MyDoom" \
disabled=no
add dst-address=:3410 protocol=tcp action=drop comment="Drop Backdoor \
OptixPro" disabled=no
add dst-address=:4444 protocol=tcp action=drop comment="Worm" disabled=no
add dst-address=:4444 protocol=udp action=drop comment="Worm" disabled=no
add dst-address=:5554 protocol=tcp action=drop comment="Drop Sasser" \
disabled=no
add dst-address=:8866 protocol=tcp action=drop comment="Drop Beagle.B" \
disabled=no
add dst-address=:9898 protocol=tcp action=drop comment="Drop Dabber.A-B" \
disabled=no
add dst-address=:10000 protocol=tcp action=drop comment="Drop Dumaru.Y" \
disabled=no
add dst-address=:10080 protocol=tcp action=drop comment="Drop MyDoom.B" \
disabled=no
add dst-address=:12345 protocol=tcp action=drop comment="Drop NetBus" \
disabled=no
add dst-address=:17300 protocol=tcp action=drop comment="Drop Kuang2" \
disabled=no
add dst-address=:27374 protocol=tcp action=drop comment="Drop SubSeven" \
disabled=no
add dst-address=:65506 protocol=tcp action=drop comment="Drop PhatBot, \
Agobot, Gaobot" disabled=no 好东西啊,研究研究 太强了 8错 怎么跟OSPF里面的DR和BDR这么相识? 顶,不错。