[ 网络协议篇 ] 一篇文章让你掌握神秘的 VRRP(虚拟路由器冗余协议)

Posted _PowerShell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ 网络协议篇 ] 一篇文章让你掌握神秘的 VRRP(虚拟路由器冗余协议)相关的知识,希望对你有一定的参考价值。

[ 网络模型篇 ]大白话告诉你什么是OSI七层模型

[ 网络协议篇 ] 一篇文章让你掌握神秘的 ACL

[ 网络协议篇 ] 一篇文章让你掌握神秘的 NAT

[ 网络协议篇 ] 一篇文章让你掌握神秘的 DHCP(一)

[ 应急响应 ]服务器(电脑)受到攻击该如何处理?(三)

一、引入

网关是一个网络到另一个网络的"关口“是跟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的配置,会理解的更深刻

[ 网络协议篇 ] 一篇文章让你掌握神秘的 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(虚拟路由器冗余协议)的主要内容,如果未能解决你的问题,请参考以下文章

[ 网络协议篇 ] 一篇文章让你掌握神秘的 VRRP(虚拟路由器冗余协议)

[ 网络模型篇 ]大白话告诉你什么是OSI七层模型

[ 网络协议篇 ] 一篇文章让你掌握什么是 HTTPS ?

网络编程

一文让你掌握单元测试的MockStub和Fake

一文让你掌握单元测试的MockStub和Fake