netlea 发表于 2005-6-13 21:40:25

关于利用RouterOS的VRRP来配置路由器热备份(原著)

原文请下载附件(原文命令行比较清楚),附件中附有连接图,经过本人编写及测试效果,觉得对企业有很大的作用!

作者:Netlea

   有时候为了保证我们网络的稳定性和可靠性,可能会申请两条出口链路或用一条出口链路接防火墙后接两台RouterOS做热备份路由,当主路由器(ROS A )功能出现故障时, VRRP(虚拟路由器冗余协议, RFC2338)由另外一个路由器(ROS B )来接管相应的工作。通过设置虚拟路由器为缺省路由器,用户在路由器发生故障时可以继续通信。
如图所示的配置, 利用同一个以太网中的两台路由器设置一台虚拟路由器。 在实际运行中, 两台路由器中的任一台成为主路由器, 该主路由器模拟虚拟路由器。备份路由器监控主由器状态。一旦主路由器出现故障影响网络运行, 备份路由器立即进入主路由器状态以模拟虚拟路由器。
IP地址被分配给虚拟路由器。 指定虚拟路由器IP地址为缺省路由器的服务器将不会觉察主路由器的切换而继续进行正常通信。

http://mrtg.nsitp.com/jpg001/ros.jpg

利用RouterOS的VRRP设置如下:

下面这个例子展示如何配置图中所示两个路由器之上的VRRP。路由器一定有初始配置:接口(LAN)配置为有效,主及备份路由器接口(LAN)有适当的IP地址(注意两个路由器接口中的任意一个都应该有一个IP地址),路由表被正确设置(它至少应该有一个默认路由)。SRC-NAT也应该在之前正确配置。
我们假设接口(LAN)10.10.10.0/24网络连接到局部的所有的VRRP主和备份路由器上。
我们要设置好主VRRP路由器的LAN口IP为10.10.10.1/24
及设置好备份VRRP备份路由器的LAN口IP为10.10.10.2/24
完成以上设置后,测试主或备份RouterOS的路由器的LAN口网关都可以上网。
下面我们将要配置由VRRP模拟虚拟路由器生成网关为10.10.10.3/24给客户机或三层交换机连接及上网



第一,配置Master VRRP路由器(主路由器)

首先,我们应该在这个路由器上创建一个VRRP路由,假设这个路由器的优先级是255,因为它应该是首选的路由器
注:优先级(整数:0..255;默认:100)-当前节点的优先级(值越大表示优先级越高)255-RFC要求拥有赋值IP地址给主路由器的优先级是255
下面的interval(即是时间间隔的意思)(整数:0..255;默认:1)-VRRP每秒更新时间间隔。定义聚集的Master以何种频度发送VRRP广告数据包。即其中备份路由器超过1秒钟后收不到主路由器具广告数据包时,备份路由器将接替主路由器的工作。

ip vrrp> add interface=LAN priority=255
ip vrrp> print
Flags: X - disabled, I - invalid, M - master, B - backup
0   M name=\"vr1\" interface=LAN vrid=1 priority=255 interval=1
    preemption-mode=yes authentication=none password=\"\" on-backup=\"\"
    on-master=\"\"

ip vrrp>

注:LAN是你的LAN卡名称即本地网卡


接下来,虚拟IP地址应该被添加到这个VRRP路由中
ip vrrp> address add address=10.10.10.3/24 \\
\\... virtual-router=vr1
ip vrrp> address print
Flags: X - disabled, A - active
#   ADDRESS         NETWORK       BROADCAST   VIRTUAL-ROUTER
0   10.10.10.3/24   10.10.10.0       10.10.10.255   vr1

ip vrrp>


现在这个地址应该出现在/IP地址列表中:
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         WAN
1   10.10.10.1/24   10.10.10.0       10.10.10.255   LAN
2 D 10.10.10.3/24   10.10.10.0       10.10.10.255   LAN

ip address>




第二,配置备份 VRRP路由器
现在我们创建具有低优先级的VRRP路由(我们可以使用默认值100),这个路由器将会作为首选路由器的后备。

ip vrrp> add interface=LAN
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 vrrp> address add address=10.10.10.3/24 \\
\\... virtual-router=vr1
ip vrrp> address print
Flags: X - disabled, A - active
#   ADDRESS             NETWORK       BROADCAST   VIRTUAL-ROUTER
0   10.10.10.3/24   10.10.10.0   10.10.10.255   vr1

ip vrrp>


注意,这个地址将不会出现在/ip地址列表中:
ip address> print
Flags: X - disabled, I - invalid, D - dynamic
#   ADDRESS             NETWORK       BROADCAST   INTERFACE
0   10.0.0.100/24   10.0.0.0         10.0.0.255      WAN
1   10.10.10.2/24   10.10.10.0   10.10.10.255   LAN

ip address>




第三,测试我们配置后的成果

现在,我们将断开master(主)路由(我们测试时可以断开LAN口的网线来测试),这时其中一个备份路由将切换成master状态,即内网会经过备份路由器来上网,当主VRRP路由器恢复后,备份路由器的工作将恢复后主路由器来接替:

ip vrrp> print
Flags: X - disabled, I - invalid, M - master, B - backup
0   M name=\"vr1\" interface=LAN 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.0.0.100/24   10.0.0.0      10.0.0.255         WAN
1   10.10.10.2/24   10.10.10.0   10.10.10.255       LAN
2 D 10.10.10.3/24   10.10.10.0   10.10.10.255       LAN

ip vrrp>


经过多次测试,可能是RouterOS的版本原因(2.8.27),主Vrrp路由器死机后(断线测试)后,大概0.4秒后自动由备份Vrrp路由器接替工作,当我恢复主路由器后,发现线路还是经过备份Vrrp路由器出Internet,大概20分钟左右主Vrrp路由器才接替工作,此测试PC是一直PING着电信的DNS的,可能有数据流量的原因吧,所以路由表没有及时切换过来,些期间请不要断开备份路由器来维修及检测,大家可以用Tracert命令查看它的路由方向,但我试过用其它台没有数据流量的PC在主Vrrp路由器自动恢复后,测试路由方向还是自动走向主Vrrp路由器,有数据流量的PC走备份Vrrp的路由器,所以要它完全恢复还是等主Vrrp路由器恢复20分钟后,大家才有共同路由

[ 本帖最后由 netlea2 于 2005-9-9 11:31 AM 编辑 ]

wghs02 发表于 2005-6-13 21:56:36

hao!

心想事成 发表于 2005-6-13 22:02:24

支持原创!论坛现在就是需要这样的,要形成钻研技术的氛围,而不是老问问题。

zhanghui 发表于 2005-6-14 08:07:03

QUOTE(wsgtrsys @ Jun 13 2005, 10:02 PM)
支持原创!论坛现在就是需要这样的,要形成钻研技术的氛围,而不是老问问题。
51152



能不能提供一个加精的功能?

猫王 发表于 2005-6-14 08:59:57

要是能够看到图就更好了

netlea 发表于 2005-6-14 09:08:57

QUOTE(猫王 @ Jun 14 2005, 08:59 AM)
要是能够看到图就更好了
51195




有啊,看看我的原文就可以看到啊,你下载附件吧

猫王 发表于 2005-6-14 09:26:04

看到了谢谢 偶现在就是使用的两台26搞的这个,现在有一天down了,不过是备用的呵呵

netlea 发表于 2005-6-14 09:38:46

你带多少台机啊,不过做个这样的热机备份,自动化操作也不错的选择
我是用三层交换机带1000台以上机器才用到它啊
呵呵

soft_route 发表于 2005-6-14 11:31:51

又学到新东西!顶!

netlea 发表于 2005-6-14 19:48:56

经过今天多次测试,可能是RouterOS的版本原因(2.8.27),主Vrrp路由器死机后(断线测试)后,大概0.4秒后自动由备份Vrrp路由器接替工作,当我恢复主路由器后,发现线路还是经过备份Vrrp路由器出Internet,大概20分钟左右主Vrrp路由器才接替工作,此测试PC是一直PING着电信的DNS的,可能有数据流量的原因吧,所以路由表没有及时切换过来,些期间请不要断开备份路由器来维修及检测,大家可以用Tracert命令查看它的路由方向,但我试过用其它台没有数据流量的PC在主Vrrp路由器自动恢复后,测试路由方向还是自动走向主Vrrp路由器,有数据流量的PC走备份Vrrp的路由器,所以要它完全恢复还是等主Vrrp路由器恢复20分钟后,大家才有共同路由。


在原文里我也更改加上我测试后的问题总结!

bow 发表于 2005-6-14 21:05:22

还要考虑arp表更新的时间。
另外vrrp还要结合脚本。才能完全的生效。

netlea 发表于 2005-6-14 21:21:53

QUOTE(bow @ Jun 14 2005, 09:05 PM)
还要考虑arp表更新的时间。
另外vrrp还要结合脚本。才能完全的生效。
51259




刚查看过官方文件,好像没有提到Arp和Vrrp之间相关的文件,
从测试现在Vrrp已经生效了,从主路由器切换到备份路由器只使用0.4秒的时间,但从备份路由恢复到主路由时间大概有20分钟时间,但不影响使用。

如果Bow兄有找到如Arp表的更新时间及Vrrp结合脚本的好办法来解决从备份路由器恢复到主路由器的时间,那就更好了.

bow 发表于 2005-6-14 22:05:26

在客户端arp表时需要跟新。因为网关的ip没有变,但mac地址变了。

在只有一个外网ip的情况下,要用脚本来公用一个ip

主备路由不只在死机时才切换。外网网卡实效或是线路实效也要用脚本切换。

ycfei 发表于 2005-6-15 04:09:01

支持啊....

anbownr 发表于 2005-6-15 20:47:48

支持原创!!!!
页: [1] 2 3 4 5
查看完整版本: 关于利用RouterOS的VRRP来配置路由器热备份(原著)