备战中级网络工程师
目录
vrrp(虚拟路由冗余技术)
为什么会出现vrrp?
两个角色
选举流程
基本原理
VRRP 的两个定时器
VRRP 的主备切换
主备切换的条件
VRRP 主备回切
认证方式
冗余路由器
冗余核心交换机
vrrp(虚拟路由冗余技术)
我们先看一个百度的网络拓扑,分析下面拓扑存在的问题;
针对上面这个拓扑来说,如果上面的核心路由器出现故障,那么下面的所有pc将面临无法访问网络的问题;
为什么会出现vrrp?
为解决单出口路由器出故障而导致的局域网内pc无法与Internet通信的问题,使用vrrp技术可以把多个三层设备虚拟成一个逻辑上的三层设备(路由器或者三层交换机),让他们使用同一个虚拟网关,这样其中一个出现故障,另一个立马接替故障机继续工作;这样会使得两个三层设备会被虚拟成一个如下图:
两个角色
1.Master:响应针对VIP的ARP request报文,承担转发主要数据的角色,并定期发送vrrp报文。
2.Backup:备份设备,实时监听,一旦知道master出问题,就接替主设备工作;
选举流程
两台设备运行之后,相互发送vrrp的通告报文
- 先比较优先级,优先级大的优先
- 优先级相同则比较接口地址,ip地址大优先
基本原理
vrrp中的master和backup节点会配置一个虚拟IP地址,但是只有master节点才会响应arp请求,返回一个虚拟的mac地址,那么其它节点在访问虚拟ip的时候都会访问master节点。
如果master节点宕机,backup设备节点会切换成master节点,同时发送免费arp,告诉网络中其它设备,虚拟ip最新的mac地址是自己,那么后续网络设备在访问虚拟ip的时候都会访问新的master节点。
VRRP 的两个定时器
ADVER_INTERVAL 定时器: Master 路由器发送 VRRP 通告报文时间周 期,缺省值为 1 秒。每隔 1S 发送一次 VRRP 报文, 用于通告其它路由器, Master 还存活着。
MASTER_DOWN 定时器:Backup 设备监听该定时器超时后,会变为 Master 状态。 Backup 在 3S 后还木有收到 Master 通告的 VRRP 报文,就 认为 Master 路由器故障了,然后该路由器就转换为master。
VRRP 的主备切换
我们前面提到了 VRRP 组中分为 Master 路由器和 Backup 路由器,即主路由器和备份路由器, 很明显的, 当主路由器故障之后, 就由备份路由器来负责网络中流量的转发。
那么,虚拟路由器是通过什么来确定 Master 路由器故障的呢?
通过报文的交互, Master 会周期性的发送 VRRP 报文,该报文用于维持 Master 路由器的 Master 状态,如果 3S 后,也就是 Master_down 定时器超 时后, Backup 路由器还没有收到该报文, 就会认为 Master 路由器失效了, 那么 Backup 路由器就可以进入到 Master 状态。 但是如果网络中存在多台 Backup 路 由器,那么它们之间就会进行 Master 路由器的选举,由优先级最高的那台路由 器来成为 Master 路由器。
主备切换的条件
也就是发生主备切换的场景,如果 Master 路由器打算退出 VRRP 组, 那 么它发送优先级为 0 的 VRRP 报文, 这时就会发生主备切换; 除此之外, 如果 Master 路由器发生了故障,或者链路异常, Backup 路由器在 Master_down 定时器超时后也没有收到 VRRP 报文,也会发生主备切换。
VRRP 主备回切
值得注意的是, VRRP 中, Master 路由器的身份是可以被抢占的。
如果故障了的 Master 路由器恢复了正常, 那么它就可以把 Master 路由器的 身份抢占回来。
认证方式
明文认证
MD5认证
冗余路由器
核心代码:
int g0/0/0
[R1-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.10.1 ###设置虚拟ip
[R1-GigabitEthernet0/0/0]vrrp vrid 1 priority 120 ### 设置优先级为120(默认为100)
[R1-GigabitEthernet0/0/0]vrrp vrid 1 preempt-mode timer delay 5 ###设置抢占时间为5s(默认0秒)
[R1-GigabitEthernet0/0/0]vrrp vrid 1 track int g0/0/1 reduce 30 ###跟踪上下接口(出了问题就降低当前路由器优先级 30)
[R1-GigabitEthernet0/0/0]q
冗余核心交换机
核心代码:
核心交换机配置结果:
现在开始模拟,core1交换机的的上行接口出现故障;
然后我们紧接着查看core2 的状态,可见core并不是立即从backup状态切换为master,他会有一段时间的等待,原因是:vrrp内部有一个计时器master-down-time,在这个计时器结束后才会主备切换;
等待一段时间后在查看core2 状态:
状态没有改变。回顾配置,查找错误,发现我在core1 上并没有配置监视上行端口活跃状态,所以上行端口down掉,主备交换机也没有切换,在没有配置监视上行端口的情况下,只有core1 故障关闭掉core 2 才会切换master状态;
那么如何让core随时监视着上行端口呢?在core1上添加以下命令:
vrrp vrid 10 track int g0/0/1 reduce 30
###跟踪上行端口状态,一旦出故障就降低交换机的优先级30
成功;