热备份路由选择协议(HSRP)

一、HSRP的相关概念

1、HSRP的原理

1.1、HSRP概述

HSRP(Host Standby Routing Protocol,热备份路由选择协议)是Cisco私有的一种协议,它确保了当网络边缘设备或接入链路出现故障时,用户通信能迅速并透明的修复,以此为IP网络提供冗余性。通过应用HSRP,可使网络的正常运行时间接近100%。从而保障网络的可靠性要求。

HSRP为IP网络提供了容错和增强的路由选择功能。通过使用一个虚拟IP地址和虚拟MAC地址,LAN网络上的两台或者多台路由器可以作为一台虚拟路由器对外提供服务。HSRP使用组内Cisco路由器能互相监视对方的运行状态:

※虚拟路由器组的成员通过HSRP消息不断地交换状态信息。

※如果其中一台出现故障,另一台可接替他继续完成路由功能。

1.2、HSRP组成员

HSRP备份组由一台活跃路由器、一台备份路由器、一台虚拟路由器和其他路由器组成。

各个路由器的功能如下:

活跃路由器:转发发送到虚拟路由器的数据包。组中的另一台路由器被选为备份路由器。活跃路由器通过发送Hello消息来承担和保持他活跃的角色。

备份路由器:监视HSRP组的运行状态,并且当活跃路由器不能运行的时,迅速承担起转发数据包的责任。备份路由器也传输Hello消息,告知组中所有路由器备份路由器的角色和状态变化。

虚拟路由器:向最终用户提供一台可以连续工作的路由器。虚拟路由器配有它自己的IP地址和MAC地址。但并不实际转发数据包。

HSRP备份组:可以包含其他路由器。这些路由器监视Hello消息,但不做应答。这些路由器转发任何经由他们的数据包,但并不转发经由虚拟路由器的数据包

1.3、HSRP的具体工作原理

HSRP组内的每个路由器都有指定的优先级(priority),用于衡量路由器在活跃路由器选择中的优先程度。默认优先级是100,他是用户配置中的可选项,可以使0~255内的任何值。组中最高优先级的路由器将成为活跃路由器。

活跃HSRP路由器通过HSRP组成员的优先级的设定而确定。如下图

活跃路由器替代虚拟路由器对数据流进行相应。如果末端主机发送了一个数据包到虚拟路由器的MAC地址,那么,活跃路由器将接受并处理这个数据包。如果末端主机对虚拟路由器的IP地址发送ARP解析请求,那么,活跃路由器将使用虚拟路由器的MAC地址进行应答。

如上图所示,路由器A的优先级为200,路由器B的优先级为150(默认优先级为100)。路由器A承担活跃路由器的角色,并且转发所有到达自动生成的HSRP虚拟MAC的数据帧。

选择活跃路由器和备份路由器时,如果优先级相同,IP地址大的路由器获胜。(例如:两台路由器HSRP优先级都是100,一台路由器位于此LAN网段的端口的IP地址是10.1.1.2,另一台路由器位于此LAN网段的端口的IP地址是10.1.1.3,则IP地址为10.1.1.3的路由器会成为活跃路由器)。

运行HSRP的设备会发送和接收基于用户数据报协议(UDP  1985)的组播Hello包,已检测路由器故障,并确定活跃路由器和备份路由器。一个组内的HSRP路由器会从活跃路由器那里学到Hello间隔,保持时间(Hold Time)和虚拟IP地址。

1.4、虚拟MAC地址

ARP在IP地址和MAC地址之间建立了一种关联。每台三层交换机都维护者一个地址解析表。三层交换机在试图联系某个设备之前,先检查其ARP缓存,已确定这个地址是否已经被解析。虚拟路由器的IP地址和相应的MAC地址维持在HSRP组中的每台三层交换机的ARP表中。

虚拟路由器所用的MAC地址由三部分组成:

厂商编码—MAC地址的前三个字节,代表着厂商。

HSRP编码(虚拟MAC地址)—HSRP编码总是“07.ac”。

组好(HSRP组号)——MAC地址的最后一个字节是组的标识号。(例如:组号47转换成十六进制为2f,他将构成MAC地址的最后一个字节)

也可以使用下面命令显示每个HSRP组的虚拟IP地址和MAC地址:

1.5、HSRP消息

HSRP中的所有路由器都发送或接收HSRP消息。这些消息用来决定和维护组内的路由器角色。HSRP消息封装在UDP数据包中的数据部分,使用UDP端口号1985。2、HSRP的状态

2、HSRP的状态

HSRP配置的路由器有六种状态,分别如下:

初始状态、学习状态、监听状态、发言状态、备份状态、活跃状态。

并不是所有的HSRP路由器都经历所有状态。例如,不是备份路由器或者活跃路由器的路由器,就不会有备份状态和活跃状态。

2.1、HSRP六种状态

a、初始状态:所有路由器都从初始状态开始。这是一种起始状态,同时表明HSRP还没有运行。配置发生变化或一个端口第一次启用时,就进入该状态。

b、学习状态:路由器等待来自活跃路由器的消息。这时,路由器还没有看到来自活跃路由器的Hello消息,也没有学习到虚拟路由器的IP地址。

c、监听状态:路由器知道了虚拟路由器的IP地址,但它既不是活跃路由器,也不是备份路由器。这时,路由器监听来自活跃路由器和备份路由器的Hello消息。除活跃路由器和备份路由器之外的路由器都保持监听状态。

d、发言状态:路由器周期性的发送Hello消息,并参与活跃路由器或备份路由器的竞选。路由器在获得虚拟路由器的IP地址之前,不能进入发言状态。

e、备份状态:路由器是成为下一个活跃路由器的候选设备,并且它也能周期性的发送Hello消息。在一个组中只有一台备份路由器。

f、活跃状态:在活跃状态,路由器负责转发发送到备份组的虚拟MAC地址的数据包。活跃路由器周期的发送Hello消息。在一个组中,必须有且只有一台活跃路由器。

2.2、HSRP计时器

HSRP使用两个计时器:Hello间隔计时器和保持时间计时器。任何状态的HSRP路由器都会在Hello间隔计时器超时后生成Hello包。默认的Hello间隔是3s,默认的保持时间是10s。

未配置计时器的路由器会从活跃路由器或备份路由器学到这些计时器的值。活跃路由器上配置的计时器值会覆盖其他路由器上的计时器设定值。同一个SHRP组内的路由器应该使用相同的计时器值。通常,保持时间会大于或等于Hello间隔的三倍,并且保持时间的取值必须大于Hello间隔。

默认的HSRP计时器适用于大多数的LAN网段。

3、HSRP与VRRP的区别

HSRP是Cisco私有的协议。VRRP是IETF制定的一种路由备份冗余协议,实现原理和过程与HSRP基本相同。
VRRP和HSRP的一个主要区别表现在安全方面。VRRP允许彩玉VRRP组的设备间建立认证机制。另一个主要区别是:VRRP中只有三种状态——初始状态(initialize)、主状态(Master)、备份状态(Backup),而HSRP有六种状态。另外,在报文类型、报文格式格式和通过TCP而非UDP发送报文方面也有所不同。

二、课后实验

随着公司的发展,对网络的要求越来越高,为了保障网络的稳定性与可靠性,公司决定搭建两台核心交换机做双机热备,同时为了充分利用资源,还要实现vlan的负载均衡,并且便于设备的管理。

实现思路:

1、  核心交换机配置VTP服务;

2、  交换机之间接口全部配置为Trunk模式;

3、  在SW1和SW2上配置HSRP;

4、  配置DHCP服务;

5、  R2配置ACL与NAT;

6、  使用静态路由与默认路由进行选路。

7、  提高链路的负载均衡及冗余。

实验要求:

1、  vlan进行统一管理;

2、  SW1为vlan10、20的负载,SW2为vlan30、40的负载;

3、  客户机均使用自动获取IP地址;

4、  客户端均可以ping通R1的地址

5、  验证SW1关机后,是否能够正常通讯

实验拓扑:

实验命令与解释

SW1#en               \\进入特权模式

SW1#vlan da           \\进入vlan数据库模式

SW1(vlan)#vtp do ww    \\创建名叫ww的VTP域

SW1(vlan)#vtp ser       \\设置为VTP服务器模式

SW1(vlan)#vlan 10       \\创建vlan 10

SW1(vlan)#vlan 20

SW1(vlan)#vlan 30

SW1(vlan)#vlan 40

SW1(vlan)#exit          \\返回上一级模式

SW1#conf t             \\进入全局配置模式

SW1(config)#int vlan 10   \\进入vlan10接口

SW1(config-if)#ip add 192.168.10.1 255.255.255.0   \\配置vlan 10 IP地址

SW1(config-if)#no sh                           \\开启

SW1(config-if)#stan 10 ip 192.168.10.254          \\配置HSRP虚拟IP地址

SW1(config-if)#stan 10 pri 150                   \\配置优先级为150

SW1(config-if)#stan 10 pre                      \\配置占先权

SW1(config-if)#stan 10 tr f0/0 100         \\配置端口跟踪,端口不通后,减100优先权

SW1(config-if)#standby 10 timers 2 8       \\配置Hello消息,2s是Hello,8是保持时间

SW1(config-if)#int vlan 20

SW1(config-if)#ip add 192.168.20.1 255.255.255.0

SW1(config-if)#no sh

SW1(config-if)#stan 20 ip 192.168.20.254

SW1(config-if)#stan pri 150

SW1(config-if)#stan 20 pre

SW1(config-if)#standby 10 tr f0/0 100

SW1(config-if)#int vlan 30

SW1(config-if)#ip add 192.168.30.1 255.255.255.0

SW1(config-if)#no sh

SW1(config-if)#stan 30 ip 192.168.30.254

SW1(config-if)#stan 30 pre

SW1(config-if)#int vlan 40

SW1(config-if)#ip add 192.168.40.1 255.255.255.0

SW1(config-if)#no sh

SW1(config-if)#stan 40 ip 192.168.40.254

SW1(config-if)#stan 40 pre

SW1(config-if)#int r f0/1 -2                \\进入1至2接口

SW1(config-if-range)#sw mo tr             \\配置端口为Trunk模式

SW1(config-if-range)#channel-group 1 mo on  \\配置链路负载(端口聚合)

SW1(config-if-range)#no sh                \\开启端口

SW1(config-if-range)#int r f0/5 -8           \\进入5至8接口

SW1(config-if-range)#sw mo tr             \\配置端口为Trunk模式

SW1(config-if-range)#no sh                \\开启端口

SW1(config-if-range)#int f0/0              \\进入f0/0接口

SW1(config-if)#no sw                     \\关闭交换接口模式

SW1(config-if)#ip add 192.168.1.2 255.255.255.0

SW1(config-if)#exit

SW1(config)#ip dhcp pool vlan10            \\创建DHCP地址池名称

SW1(dhcp-config)#netw 192.168.10.0 255.255.255.0    \\地址池分配的地址段

SW1(dhcp-config)#defa 192.168.10.254              \\默认网关地址

SW1(dhcp-config)#dns 8.8.8.8                     \\DNS服务器地址

SW1(config-if)#exit

SW1(config)#ip dhcp pool vlan20

SW1(dhcp-config)#netw 192.168.20.0 255.255.255.0

SW1(dhcp-config)#defa 192.168.20.254

SW1(dhcp-config)#dns 8.8.8.8

SW1(config-if)#exit

SW1(config)#ip dhcp pool vlan30

SW1(dhcp-config)#netw 192.168.30.0 255.255.255.0

SW1(dhcp-config)#defa 192.168.30.254

SW1(dhcp-config)#dns 8.8.8.8

SW1(config-if)#exit

SW1(config)#ip dhcp pool vlan40

SW1(dhcp-config)#netw 192.168.40.0 255.255.255.0

SW1(dhcp-config)#defa 192.168.40.254

SW1(dhcp-config)#dns 8.8.8.8

SW1(config)#spanning-tree vlan 10 root primary       \\指定为vlan10的根网桥

SW1(config)#spanning-tree vlan 20 root primary

SW1(config)#spanning-tree vlan 30 root secondary      \\指定为vlan30的辅助

SW1(config)#spanning-tree vlan 40 root secondary

SW1(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.1       \\配置默认路由

SW2#en

SW2#vlan da

SW2(vlan)#vtp do ww

SW2(vlan)#vtp cl

SW2(vlan)#vtp client

SW2(vlan)#exit

SW2#conf t

SW2(config)#int r f0/1 -2

SW2(config-if-range)#sw mo tr

SW2(config-if-range)#channel-group 1 mo on

SW2(config-if-range)#no sh

SW2(config-if-range)#int r f0/5 -8

SW2(config-if-range)#sw mo tr

SW2(config-if-range)#no sh

SW2(config-if-range)#exit

SW2(config)#int vlan 10   \\进入vlan10接口

SW2(config-if)#ip add 192.168.10.2 255.255.255.0

SW2(config-if)#no sh

SW2(config-if)#stan 10 ip 192.168.10.254

SW2(config-if)#stan 10 pre

SW2(config-if)#standby 10 timers 2 8

SW2(config-if)#int vlan 20

SW2(config-if)#ip add 192.168.20.1 255.255.255.0

SW2(config-if)#no sh

SW2(config-if)#stan 20 ip 192.168.20.254

SW2(config-if)#stan 20 pre

SW2(config-if)#int vlan 30

SW2(config-if)#ip add 192.168.30.1 255.255.255.0

SW2(config-if)#no sh

SW2(config-if)#stan 30 ip 192.168.30.254

SW2(config-if)#stan 30 pri 150

SW2(config-if)#stan 30 pre

SW2(config-if)#stan 30 tr f0/0 100

SW2(config-if)#int vlan 40

SW2(config-if)#ip add 192.168.40.1 255.255.255.0

SW2(config-if)#no sh

SW2(config-if)#stan 40 ip 192.168.40.254

SW2(config-if)#stan 30 pri 150

SW2(config-if)#stan 40 pre

SW2(config-if)#stan 40 tr f0/0 100

SW1(config-if-range)#int f0/0

SW1(config-if)#no sw

SW1(config-if)#ip add 192.168.0.2 255.255.255.0

SW2(config-if)#exit

SW2(config)#ip dhcp pool vlan10

SW2(dhcp-config)#netw 192.168.10.0 255.255.255.0

SW2(dhcp-config)#defa 192.168.10.254

SW2(dhcp-config)#dns 8.8.8.8

SW2(config-if)#exit

SW2(config)#ip dhcp pool vlan20

SW2(dhcp-config)#netw 192.168.20.0 255.255.255.0

SW2(dhcp-config)#defa 192.168.20.254

SW2(dhcp-config)#dns 8.8.8.8

SW2(config-if)#exit

SW2(config)#ip dhcp pool vlan30

SW2(dhcp-config)#netw 192.168.30.0 255.255.255.0

SW2(dhcp-config)#defa 192.168.30.254

SW2(dhcp-config)#dns 8.8.8.8

SW2(config-if)#exit

SW2(config)#ip dhcp pool vlan40

SW2(dhcp-config)#netw 192.168.40.0 255.255.255.0

SW2(dhcp-config)#defa 192.168.40.254

SW2(dhcp-config)#dns 8.8.8.8

SW2(config)#spanning-tree vlan 10 root secondary

SW2(config)#spanning-tree vlan 20 root secondary

SW2(config)#spanning-tree vlan 30 root primary

SW2(config)#spanning-tree vlan 40 root primary

SW2(config)#ip route 0.0.0.0 0.0.0.0 192.168.0.1

SW3#en

SW3#vlan da

SW3(vlan)#vtp do ww

SW3(vlan)#vtp client

SW3(vlan)#exit

SW3#conf t

SW3(config)#int r f0/0 -1

SW3(config-if-range)#sw mo tr

SW3(config-if-range)#no sh

SW3(config-if-range)#int f0/5

SW3(config-if)#sw ac vlan 10

SW3(config-if)#no sh

(SW3至SW6交换机均使用SW3命令即可完成配置,唯一不同是f0/5加入的VLAN号更改一下)

R2#conf t

R2(config)#int f0/0

R2(config-if)#ip add 192.168.1.1 255.255.255.0     \\接口配置IP地址

R2(config-if)#ip nat inside             \\配置为内部NAT接口

R2(config-if)#no sh

R2(config-if)#int f1/0

R2(config-if)#ip add 192.168.0.1 255.255.255.0

R2(config-if)#ip nat inside

R2(config-if)#no sh

R2(config-if)#int f2/0

R2(config-if)#ip add 169.239.123.241 255.255.255.248

R2(config-if)#ip nat outside             \\配置为外部NAT 接口

R2(config-if)#no sh

R2(config-if)#exit

R2(config)#ip access-list ex test        \\创建命名ACL

R2(config-ext-nacl)#per ip 192.168.10.0 0.0.0.255 any          \\允许192.168.10.0网段访问所有地址(此处可用子网划分简化以下命令)

R2(config-ext-nacl)#per ip 192.168.20.0 0.0.0.255 any

R2(config-ext-nacl)#per ip 192.168.30.0 0.0.0.255 any

R2(config-ext-nacl)#per ip 192.168.40.0 0.0.0.255 any

R2(config-ext-nacl)#exit

R2(config)#ip nat inside source list test int f2/0 ov              \\将名为test的ACL转为f2/0接口上的地址

R2(config)#ip  route 0.0.0.0 0.0.0.0 169.239.123.242        \\配置默认路由

R2(config)#ip route 192.168.10.0 255.255.255.0 192.168.1.2 1   \\静态路由加浮动路由

R2(config)#ip route 192.168.20.0 255.255.255.0 192.168.1.2 1

R2(config)#ip route 192.168.30.0 255.255.255.0 192.168.1.2 2

R2(config)#ip route 192.168.40.0 255.255.255.0 192.168.1.2 2

R2(config)#ip route 192.168.10.0 255.255.255.0 192.168.0.2 2

R2(config)#ip route 192.168.20.0 255.255.255.0 192.168.0.2 2

R2(config)#ip route 192.168.30.0 255.255.255.0 192.168.0.2 1

R2(config)#ip route 192.168.40.0 255.255.255.0 192.168.0.2 1

(此处静态路由有多钟方式可根据自己喜好自行更改,以下内容为经过子网划分的路由:

ip route 192.168.0.0 255.255.192.0 192.168.1.2 1

ip route 192.168.0.0 255.255.192.0 192.168.0.2 2)

R1#conf t

R1(config)#int f0/0

R1(config-if)#ip add 169.239.123.242 255.255.255.248

R1(config-if)#no sh

R1(config-if)#exit

R1(config)#ip route 0.0.0.0 0.0.0.0 169.239.123.241

实验验证:

客户机自动获取IP地址;

按照指定路径进行转发数据包,vlan40使用SW2进行转发,vlan10使用SW1进行转发;

使用不同客户机ping  R1

查看HSRP备份状态;

SW1查看HSRP备份状态

SW2查看HSRP备份状态

转载于:https://blog.51cto.com/daijiehao/2171450

HSRP双机热备工作原理与配置相关推荐

  1. mySQL双机冗余_MySQL双机热备实现原理

    双机热备是应用于服务器的一种解决方案,其构造思想是主机和从机通过TCP/IP网络连接,正常情况下主机处于工作状态,从机处于监视状态,一旦从机发现主机异常,从机将会在很短的时间之内代替主机,完全实现主机 ...

  2. Windows 2003双机热备之二RAID配置

    免责声明: 本文档所提供的内容为我工作小组实际操作记录,涉及的软件和硬件会与各现场情况不同,如因查看此文档而造成的一切后果我小组不承担任何责任.同时也不对文档的内容做任何承诺和保证.本文档仅用于信息参 ...

  3. 双机热备_什么是高可用双机热备?双机热备概念原理详解

    双机热备是什么意思?为什么要用双机热备?双机热备有哪些种类?包含了哪些双机热备软件?下面就来简单地说说. 什么是双机热备? 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务. ...

  4. 华为防火墙实现双机热备配置详解

    一提到防火墙,一般都会想到企业的边界设备,是内网用户与互联网的必经之路.防火墙承载了非常多的功能,比如:安全规则.IPS.文件类型过滤.内容过滤.应用层过滤等.也正是因为防火墙如此的重要,如果防火墙一 ...

  5. 华为防火墙VRRP双机热备的配置

    双机热备 概念 一.华为双机热备的两种模式 二.相关术语 三.配置 概念 双机热备特指基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国内使用较多,故得名双机热备,双机高可用按工作中的切 ...

  6. 防火墙双机热备三大协议(VRRP-VGMP-HRP)原理

    防火墙双机热备技术 双机热备概述: 为什么需要要双机热备? 解决单点故障,实现业务的平滑过渡(会话表需要同步的) 双机热备的两种部署方式: 主备方式 负载分担分时. 防火墙双机热备产生的原因,详细内容 ...

  7. 配置华为防火墙双机热备

    Web配置防火墙双机热备: 命令行配置防火墙双机热备: FW1 [FW1]int g1/0/1 //进入接口 [FW1-GigabitEthernet1/0/1]vrrp vrid 1 virtual ...

  8. 双机热备、双机互备、双机双工之间的区别

    双机热备.双机互备.双机双工之间的区别 双机热备=主机+备机 简单理解:主要应用运行于主机,备机即备用机器 备机不工作,主机出现故障时备机接管主机的所有工作 备机不运行应用,处于等待状态 两台serv ...

  9. ¤转 Mysql双机热备实现

    ★预备知识 : 1.双机热备 对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说. 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服 ...

最新文章

  1. 学习Kotlin(五)函数与Lambda表达式
  2. Join的加强版CountDownLatch
  3. CommonJS,AMD,CMD,ES6,require 和 import 详解
  4. 参数名称 java_java – 具有重要名称的WSDL中的参数名称
  5. 女生做程序员压力大吗?
  6. FLask框架AJAX操作
  7. Could not find a version that satisfies the requirement PyQt5-Qt5>=5.15.2 (from pyqt5) (from version
  8. QListview获取Item内容变化信号及内容
  9. bugzilla dbd-mysql_如何在CentOS 7上安装Bugzilla 5.0.x
  10. Python爬虫 刷博客访问量
  11. 清除html页打印的页眉,删除html中的页眉和页脚以打印页面
  12. unity第三人称射击游戏_在游戏上第3部分完美的信息游戏
  13. 常见对儿童的精神虐待行为及原因分析
  14. 【名单回顾】中国计算机学会NOI Online能力测试入门组获得前25%证书名单(北京地区小学组)
  15. 北京理工大学-嵩天python语言程序设计-8-程序设计方法学
  16. Python爬虫爬取Ajax加载的百度图库
  17. WAS 6.1 的类加载
  18. EAS 销售出库单上的部门 显示规则
  19. Flink迟到数据输出到测输出流
  20. git submodule用法(超简单体验)

热门文章

  1. 数据即代码:元驱动编程
  2. Python基础学习四 函数
  3. 使用 ASMCMD 工具管理ASM目录及文件
  4. Android典型界面设计(3)——访网易新闻实现双导航tab切换
  5. Android Bundle类,通过bundle实现在两个activity之间的通讯
  6. 图像处理之基础---仿射变换
  7. java视频教程不同阶段看哪些
  8. 画风清奇!看看大佬怎么玩Python
  9. MySQL【案例讲解】分组查询
  10. MySQL高级 - 内存优化 - InnoDB内存优化