[ 网络协议篇 ] 一篇文章让你掌握神秘的 VRRP(虚拟路由器冗余协议)
Posted _PowerShell
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ 网络协议篇 ] 一篇文章让你掌握神秘的 VRRP(虚拟路由器冗余协议)相关的知识,希望对你有一定的参考价值。
一、引入
网关是一个网络到另一个网络的"关口“是跟PC在同网段的三层设备的接口。
如果网关出现故障,则内网设备无法访问外网
网关单点故障,导致网络中断
VRRP功能:网关备份防止由于局域网网关单点故障而导致的网络中断。
简单一个例子体会一下VRRP:
备份组:
一个虚拟网关一个备份组(有一组网关接口)(编号1-254)
虚拟IP地址:
还没有用过的,同网段的,地址
PC网关如果写的真实IP,那么网管就是固定的,无法使用虚拟网关协议
PC网关写虚拟网关
角色:
一组两个网关的地位是不相等的(角色之分)
Master(主):承担真正的转发工作
Backup(备):主donw掉的时候变成master(接收数据)
如果一个备份组中有三台,那么选一个主,两个备(备里面再选一个主,一个备)
主备选择:
(优先级0-255)(255虚拟IP就是真实IP)(0断开)
优先级大的为主(默认100)
优先级同,IP地址大的为主
基本思想:
①将多个三层设备的接口加入到一 个VRRP备份组中,用虚拟IP地址代表这一组网关;
②仅由master接口承担网关 的转发功能;
③当master接口出现故障时, 会在backup接口中重新选取1个作为master接口;
④只要VRRP备份组中仍有1个接口正常工作, 网络对外通信就不会中断。
⑤VRRP优先级最高的成为master接口(优先级相同时,IP地址大的成为master)。
配置:
vrrp vrid 10 virtual-ip 10.0.0.254 设置虚拟IP
vrrp vrid 10 priority 101 设置优先级
display vrrp verbose 查看备份小组
二、概念:
VRRP (Virtual Router Redundancy Protocol )虚拟路由器冗余协议。
1. 作用:
其目的是利用备份机制来提高路由器(三层以太网交换机)与外界连接的可靠性。
VRRP协议将系统中多台路由器组成VRRP组,该组中拥有一个虚拟缺省网关地址。
但在任何时刻,一个组内只有控制虚拟网关地址的路由器是活动路由器( Master ),由它来转发数据包。
如果活动路由器发生了故障,它将选择一个优先权最高的冗余备份路由器( Backup )来替代活动路由器。
由于网络内的终端配置了VRRP虚拟网关地址,发生故障时,虚拟路由器没有改变,主机仍然保持连接,网络将不会受到单点故障的影响。
2. 相关术语
虚拟路由器:由一个Master路由器和多个Backup路由器组成。主机将虚拟路由器
当作默认网关。
VRID:虚拟路由器的标识。有相同VRID的一组路由器构成一个虚拟路由器。
Master路由器:虚拟路由器中承担报文转发任务的路由器。
Backup路由器:Master路由器出现故障时,能够代替Master路由器工作的路由器。
虚拟IP地址:虚拟路由器的IP地址。一个虚拟路由器可以拥有一个或多个IP地址。
IP地址拥有者:接口IP地址与虚拟IP地址相同的路由器被称为IP地址拥有者。
虚拟MAC地址:一个虚拟路由器拥有一个虚拟MAC地址。 虚拟MAC地址的格式为00-00-5E-00-01-VRID。通常情况下,虚拟路由器回应ARP请求使用的是虚拟MAC地址,只有虚拟路由器做特殊配置的时候,才回应接口的真实MAC地址。
优先级: VRRP根据优先级来确定虚拟路由器中每台路由器的地位。(越大越优先)
三、优点
1.链路备份 (网关备份),简化网络管理。(负载分担)
在具有多播或广播能力的局域网(如以太网)中,借助VRRP能在某台设备出现故障时仍然提供高可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,而无需修改动态路由协议、路由发现协议等配置信息,也无需修改主机的默认网关配置。
2.适应性强。VRRP报文封装在IP报文(网络层协议)中,支持各种上层协议。
3.网络开销小。VRRP只定义了一种报文:VRRP通告报文,
并且只有处于Master状态的路由器可以发送VRRP报文。
四、报文格式
VRRP只定义了一种报文格式,及通告(advertisement) 报文,它被封装在IP头部,IP头部的协议号为112,报文的目的IP地址值是组播地址224.0.0.18。
版本:对VRRPv2来说,值恒为2。类型:恒为1(只有一种报文)
虚拟路由器ID (VRID):取值范围1-255,属于同一个VRRP组的路由器使用相同VRID。
优先级:0-255,越大越优先。在华为路由器上,缺省为100
IP地址个数:VRRP组中虚拟IP的个数。
认证类型:0:无认证1:明文认证2: MD5认证(一般没有用)
通告间隔:VRRP报文发送的时间间隔,缺省为1s
IP地址:VRRP虚拟IP地址
认证数据:进行认证时,填充相应数据。
五、状态机(三种)
1. Initialize (初始状态)
在接口配置完VRRP后,接口是down的(人为关闭或没接线缆)。停留在initialize
接口UP后,若优先级为255 (实际IP地址和虚拟路由器IP地址相同), 转换为Master
优先级不为255,则进入Backup状态
2. Backup (备份状态)
备份路由器不会参与数据转发操作,但是会实时监控主路由器的状态,并随时准备接替它的工作。
Master_ Ader Interval:Master路由器周期发送VRRP报文时间间隔,缺省1s(可改)
Master_ Down_ Timer:此时间内没有收到来自Master的VRRP报文,Backup路由器认为Master失效。(失效时间=三倍通告时间+偏移时间)
报文到达时,此时间被重置。= 3x Master_ Ader_ Interval+ Skew_ _time
Skew_ time:一个偏移时间,Skew_ _time= ((256-vrrp优先级)x Master_ Ader_ Interva)/256
【偏移时间=((255-优先级)X 通告时间)/256】
优先级越大,越早认为主路由器失效
3. Master (主状态)
主路由器承担数据转发操作,周期性发送VRRP报文,缺省为1s。
Master路由器的选举:
根据优先级选举: 0-255, 越大越优先。0和255不能直接配置。
当路由器的接口IP地址与VRRP虚拟IP地址相同,优先级将自动变成255,成为Master。也称为IP地址拥有者。
0出现在Master路由器主动放弃Master角色时。(不需要等超时时间)
例如当接口的VRRP配置被手工删除时,Master路由器会立即发送一个优先级为0的VRRP报文,用来通知网络中的Backup路由器。
抢占时延:
如果激活抢占功能(就是设置抢占延时),并将状态切换到Master。
设置为10 备就需要等待10s才能抢占主。(从主失效时间算起)
抢占延时有什么好处:我是主,你是备 但是突然某一时刻,我要转发的数据量特别多,我的vrrp报文没有成功发出来,并且超过了,超时时间,这个时候如果没有配置抢占时延,你就会立刻成为主(但是我并没有出现故障)
你抢占过去之后,你会发vrrp报文,我的优先级更高,我又会立刻抢回来,这个时候你的接口会立刻down掉,往你那边的数据就发不出去,(为了避免这种状态可以设置抢占时延)
缺省未激活了抢占状态,延时时间为0s,也就是立即抢占。
六、举例说明基本配置
说明:
这五种情况的配置是很常见的情况,本文给出的是其中的核心配置
如果需要按照文中给出的拓扑完成练习,需要自行完成IP,接口,等配置
情况一:网关为路由器
R1:
[R1-Ethernet0/0/1]ip add 10.0.0.253 24 配置物理接口IP
[R1-Ethernet0/0/1]vrrp vrid 1 virtual-ip 10.0.0.254 配置虚拟IP 不需要掩码(同网段)
[R1-Ethernet0/0/1]vrrp vrid 1 priority 120 设置主(配置优先级)(默认100 设大一点)
[R1-Ethernet0/0/1]vrrp vrid 1 preempt-mode timer delay 10 设置抢占时延
R2:
[R2-Ethernet0/0/1]ip add 10.0.0.252 24 配置物理地址
[R2-Ethernet0/0/1]vrrp vrid 1 virtual-ip 10.0.0.254 配置虚拟IP 不需要掩码(同网段)
[R2-Ethernet0/0/1]vrrp vrid 1 preempt-mode timer delay 10 设置抢占时延
为了验证:配置好其他的IP
R3设置环回口10.10.10.10 tracert 10.10.10.10(发现走的左边)
情况二:网关为交换机
SW1:傻瓜式交换机(啥都不用配置)
SW2:
[ SW2] vlan batch 10 20
[ SW2-GigabitEthernet0/0/2] port link-type access
[ SW2-GigabitEthernet0/0/2] port default vlan 10
[ SW2-Vlanif10] ip add 10.0.0.253 24
[ SW2-Vlanif10] vrrp vrid 1 virtual-ip 10.0.0.254
[ SW2-Vlanif10] vrrp vrid 1 priority 120 设置主(配置优先级)(默认100 设大一点)
[ SW2-Vlanif10] vrrp vrid 1 preempt-mode timer delay 10 设置抢占时延
SW3:
[ SW3] vlan batch 10 20
[ SW3-GigabitEthernet0/0/2] port link-type access
[ SW3-GigabitEthernet0/0/2] port default vlan 20
[ SW3-Vlanif20] ip add 10.0.0.254 24
[ SW3-Vlanif10] vrrp vrid 1 preempt-mode timer delay 10 设置抢占时延
情况三:交换机做网关,多个VLAN
下面的配置中,SW2做网关的虚拟接口是VLAN if10。SW3做网关的虚拟接口是VLAN if20。
和PC1,PC2配置的VLAN不矛盾。
关键点:sw2 g0/0/2配trunk口 sw3 g0/0/2配trunk口
sw1 e0/0/1配trunk口 e0/0/2配trunk口
这个时候SW1就不能做傻瓜式交换机了
SW1:
[SW1]vlan batch 10 20
[SW1-Ethernet0/0/1] port link-type trunk
[SW1-Ethernet0/0/1] port trunk allow-pass vlan 10 20
[SW1-Ethernet0/0/2] port link-type trunk
[SW1-Ethernet0/0/2] port trunk allow-pass vlan 10 20
[SW1-Ethernet0/0/3] port link-type access
[SW1-Ethernet0/0/3] port default vlan 10
[SW1-Ethernet0/0/4] port link-type access
[SW1-Ethernet0/0/4] port default vlan 20
SW2:
[ SW2] vlan batch 10 20
[ SW2-GigabitEthernet0/0/2] port link-type trunk
[ SW2-GigabitEthernet0/0/2] port trunk allow-pass vlan 10 20
[ SW2-Vlanif10] ip add 10.0.0.253 24
[ SW2-Vlanif10] vrrp vrid 1 virtual-ip 10.0.0.254
[ SW2-Vlanif10] vrrp vrid 1 priority 120 设置主(配置优先级)(默认100 设大一点)
[ SW2-Vlanif10] vrrp vrid 1 preempt-mode timer delay 10 设置抢占时延
SW3:
[ SW3] vlan batch 10 20
[ SW2-GigabitEthernet0/0/2] port link-type trunk
[ SW2-GigabitEthernet0/0/2] port trunk allow-pass vlan 10 20
[ SW3-Vlanif20] ip add 10.0.0.254 24
[ SW3-Vlanif10] vrrp vrid 1 preempt-mode timer delay 10 设置抢占时延
情况四:为了实现负载分担:多个vrrp组
SW2、SW3:
[SW2-Vlanif20] ip add 10.0.1.253 24
[SW2-Vlanif20] vrrp vrid 2 virtual-ip 10.0.1.254
[SW2-Vlanif20] vrrp vrid 1 preempt-mode timer delay 10
[SW3-Vlanif20] ip add 10.0.1.254 24 物理IP做虚拟IP直接 (就不需要设置优先级了)
[SW3-Vlanif20] vrrp vrid 2 virtual-ip 10.0.1.254
[SW3-Vlanif20] vrrp vrid 1 preempt-mode timer delay 10
如果将交换机23换成路由器,那么路由器进入子接口(单臂路由)(子接口里面做vrrp)
情况五:vrrp中DHCP的配置:
vrrp中配DHCP这是很常见的
关键点:在配置dhcp地址池网管列表时,网关可以写多个,最多8个。
对比DHCP的配置,会理解的更深刻
R3:
[ R3 ] dhcp enable
[ R3 ] ip pool 0.0
[ R3 ] ip pool
[R3-ip-pool-0.0] gateway-list 10.0.0.254 10.0.0.253 10.0.0.252(最多可写八个网关)
[R3-ip-pool-0.0] network 10.0.0.0 mask 2 4
[ R3] dhcp enable
[ R3] ip pool 0.0
[ R3] ip pool
[R3-ip-pool-0.0] gateway-list 10.0.0.254 10.0.0.253 10.0.0.252(最多可写八个网关)
[R3-ip-pool-0.0] network 10.0.0.0 mask 2 4
[ R3-Ethernet0/0/0] dhcp select globa 1
[ R3- Ethernet0/0/1] dhcp select globa 1
SW2、SW3:
[ SW2 ] dhcp enable
[ SW2-Vlanif10] dhcp select relay
[SW2-Vlanif10] dhcp relay server-ip 10.0.13.3
[SW3-Vlani f10] dhcp select relay
[SW3-Vlanif10]dhcp relay server-ip 10.0.23.3
[ SW2-Vlanif20] dhcp select relay
[SW2-Vlanif20] dhcp relay server-ip 10.0.13.3
[SW3-Vlanif20] dhcp select relay
[SW3-Vlanif20] dhcp relay server-ip 10.0.23.3
6. 监视上行链路
产生背景:
当R1的G0/0/0接C或R1出现故障时,R2能通VRRP报文感知该变化,并实现主备切换
但是如果R1的G0/0/1接口或上行链路出现问题,缺省时VRRP是无法感知的,R1的G0/0/0接C 依然处于Master状态,数据还是会经过R1,但是R1丢失了与外网的连通性,数据包丢弃。
原理:
在R1上部署监视(track) 功能,通过此功能监视上行接口,当此接口为down时,会自动将VRRP优先级减去一个值。
只能感知网关以下链路的变化,无法感知上行链路的变化
监视上行链路 就可以了 监视接口
只要接口是好的 就正常的转发数据
接口为down就将优先级减去一个值(减去之后成为备)
配置:
[ SW2-Vlanif10 ]vrrp vrid 1 track interface g0/0/1 reduced 30
监视 上行链路 接口 减少30
要等一段时间生效(抢占时延)
以上是关于[ 网络协议篇 ] 一篇文章让你掌握神秘的 VRRP(虚拟路由器冗余协议)的主要内容,如果未能解决你的问题,请参考以下文章