虚拟路由冗余协议 Virtual Router Redundancy Protocol (VRRP)

来源: 作者: 发布时间:2007-04-11

虚拟路由冗余协议 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 :
[admin@MikroTik] ip vrrp> add interface=ether1 vrid=1 priority=255
[admin@MikroTik] 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=""
[admin@MikroTik] 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
[admin@MikroTik] 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
[admin@MikroTik] 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 之优先级
[admin@MikroTik] ip vrrp> add interface=local priority=255
[admin@MikroTik] 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=""
[admin@MikroTik] ip vrrp>
下一步,将虚拟 IP 之址添加到这个 VRRP 项目中
[admin@MikroTik] ip vrrp> address add address=192.168.1.1/24 \
\... virtual-router=vr1
[admin@MikroTik] 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
[admin@MikroTik] ip vrrp>
现在这个之址将出现在 /ip address 列表中:
[admin@MikroTik] 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
[admin@MikroTik] ip address>
配置 Backup VRRP 路由器
现在我们将创建低优先级之路由器之 VRRP 项目 ( 我们可用使用默认之值 100 ), 因此这个路由器将优先选作之一个 backup :
[admin@MikroTik] ip vrrp> add interface=local
[admin@MikroTik] 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=""
[admin@MikroTik] ip vrrp>
现在我们将添加相同之虚拟之址,和 master 节点之添加一样:
这个节点将不会出现在 /ip address 列表中:
[admin@MikroTik] 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
[admin@MikroTik] ip address>
测试:
现在,当我们断掉 master 路由器, backup 将选择 master 状态:
[admin@MikroTik] 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=""
[admin@MikroTik] 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
[admin@MikroTik] ip vrrp>