好多时候都担心ros出问题,估计不会有人希望半夜或其他什么不方便的时候被人叫去解决问题,关键是单一的路由一旦出现问题,网络瘫痪导致的损失可能不是大多数人能承受的,最好的解决方法就是双机热备,ros提供了一个非常简便且强大的协议VRRP,全称是虚拟路由冗余协议,这个协议可以最大使用255台路由设备作热备份,在当前路由出现故障时自动切换到备用路由,保证网络的通畅。 使用环境及相关问题: - 官方教程是双线双机备份,下面给出的设置只是双机vrrp的设置。
- 外网双线的原因:9 s% x t* W1 b0 q7 S
+ K2 G" `+ f1 L
- vrrp实际上是一种内网保证策略,它提供的多路由检测都是从内网进行的,保障的也是内网服务的正常提供,并不保障外网线路的正常,鉴于外网故障依然会导致访问问题,所以使用双线是另外的一重保险。
- 如果没有双线,最少也需要两个公网ip:这点主要从可能出现的问题做的要求。单线单ip和单线单账户拨号都可能导致切换后路由无法访问网络的问题,即使用脚本也很难解决。如果不明白,这里提示下,假设下面情况,两台路由做vrrp,都接入交换机,主路由的交换机端口出现问题,造成主路由与内网失去联系,备用路由在与主路由失去联系后自动切换到主路由状态,这时的情况是:原来的路由除了不能访问内网外其他都正常,它并不知道问题出现的位置,所以他依然工作在master状态下,新的备份路由切换到master状态后,问题出现了,它们两个使用了相同的外网ip或外网帐号。当然你可能已经想到了另外的一个解决办法,不过这需要某些设备,这里就不讨论了。: C; A" V. W% t3 y4 G& D
0 M- `$ G7 s5 ]6 B3 c/ t
# s6 q% b2 s' i
VRRP设置步骤: - 每个路由需要单独测试代理上网的设置能够正常工作。
- 假设VRRP的虚拟网关ip是192.168.1.254,所有客户机的网关应设为此ip。
- 主路由:
5 {# T0 Q+ q- {0 C l, p$ H7 | x! p/ D8 U
- /interface vrrp add name="vrrp1" interface=Lan priority=200
- /ip address add address=192.168.1.254/32 interface=vrrp1/ X. p! G6 g# G6 w2 F, y* F
0 ^% U3 i8 K4 l# ~# ?* S
- 副路由:
B) G* D7 B5 r7 x
+ ^. B$ F! i' ^ ?- /interface vrrp add name="vrrp1" interface=Lan priority=100
- /ip address add address=192.168.1.254/32 interface=vrrp18 D$ _9 y q' x; ~$ @
8 B0 N+ r2 n/ {( U
- 选项释义:+ C4 e+ z% s) b/ p% [) E5 T
; V2 i1 k9 K% l. N- Vrrp中的interface是内网网卡的名称。
- priority是优先级,从1-255,数越大级别越高,主路由级别要高于备份路由。如果有一台路由的内网ip也是192.168.1.254,等同于虚拟ip,那么它的优先级默认就是255,也就是最高级,这台设备被称作owner。
- vrid默认是1,可以认为是vrrp组的编号。
- interval:vrrp状态更新间隔,单位秒,默认为1
- preemption-mode:这个选项如果勾选,主路由在恢复正常后会拿回控制权,否则不会。
- authentication:认证选项,联合password可以使用密码。
- version:这个比较特殊,3.30版本没有这个选项,5.6版本存在,具体不知道在哪个版本开始加上的,5.6的默认值是3,支持ipv6协议,但3.30不支持,假设3.30和5.6混合组vrrp,那么5.6的那个这个选项要选择2。
- 同一组的路由vrid、interval、preemption-mod、authentication都必须选择一样的。
- Ip设置中使用了/32,有人说是必须用,官方教程没有特别说明,/24的没有测试。$ h7 Q; G/ C3 J3 y' t" q
Q% y( _ k: W' a3 T; T
+ O) L2 `& O$ y
) I/ ]* q1 [% f* q# V$ G8 X+ B1 U |