HSRP和二层交换机的端口聚合、vlan_端口聚合

HSRP:热备份路由器协议(HSRP:Hot Standby Router Protocol)

热备份路由器协议(HSRP)的设计目标是支持特定情况下 IP 流量失败转移不会引起混乱、并允许主机使用单路由器,以及即使在实际第一跳路由器使用失败的情形下仍能维护路由器间的连通性。换句话说,当源主机不能动态知道第一跳路由器的 IP 地址时,HSRP 协议能够保护第一跳路由器不出故障。该协议中含有多种路由器,对应一个虚拟路由器。HSRP 协议只支持一个路由器代表虚拟路由器实现数据包转发过程。终端主机将它们各自的数据包转发到该虚拟路由器上。

负责转发数据包的路由器称之为主动路由器(Active Router)。一旦主动路由器出现故障,HSRP 将激活备份路由器(Standby Routers)取代主动路由器。HSRP 协议提供了一种决定使用主动路由器还是备份路由器的机制,并指定一个虚拟的 IP 地址作为网络系统的缺省网关地址。如果主动路由器出现故障,备份路由器(Standby Routers)承接主动路由器的所有任务,并且不会导致主机连通中断现象。

HSRP 运行在 UDP 上,采用端口号1985。路由器转发协议数据包的源地址使用的是实际 IP 地址,而并非虚拟地址,正是基于这一点,HSRP 路由器间能相互识别.

HSRP技术在网络中的应用
  随着Internet的日益普及,人们对网络的依赖性也越来越强。这同时对网络的稳定性提出了更高的要求,人们自然想到了基于设备的备份结构,就像在服务器中为提高数据的安全性而采用双硬盘结构一样。路由器是整个网络的核心和心脏,如果路由器发生致命性的故障,将导致本地网络的瘫痪,如果是骨干路由器,影响的范围将更大,所造成的损失也是难以估计的。因此,对路由器采用热备份是提高网络可靠性的必然选择。在一个路由器完全不能工作的情况下,它的全部功能便被系统中的另一个备份路由器完全接管,直至出现问题的路由器恢复正常,这就是热备份路由协议(HotStandbyRouterProtocal),HSRPRFC2281技术要解决的问题。
  
  一、HSRP协议概述
  实现HSRP的条件是系统中有多台路由器,它们组成一个“热备份组”,这个组形成一个虚拟路由器。在任一时刻,一个组内只有一个路由器是活动的,并由它来转发数据包,如果活动路由器发生了故障,将选择一个备份路由器来替代活动路由器,但是在本网络内的主机看来,虚拟路由器没有改变。所以主机仍然保持连接,没有受到故障的影响,这样就较好地解决了路由器切换的问题。
  
  为了减少网络的数据流量,在设置完活动路由器和备份路由器之后,只有活动路由器和备份路由器定时发送HSRP报文。如果活动路由器失效,备份路由器将接管成为活动路由器。如果备份路由器失效或者变成了活动路由器,将有另外的路由器被选为备份路由器。
  
  在实际的一个特定的局域网中,可能有多个热备份组并存或重叠。每个热备份组模仿一个虚拟路由器工作,它有一个Well-known-MAC地址和一个IP地址。该IP地址、组内路由器的接口地址、主机在同一个子网内,但是不能一样。当在一个局域网上有多个热备份组存在时,把主机分布到不同的热备份组,可以使负载得到分担。
  
  二、HSRP的工作原理
  HSRP协议利用一个优先级方案来决定哪个配置了HSRP协议的路由器成为默认的主动路由器。如果一个路由器的优先级设置的比所有其他路由器的优先级高,则该路由器成为主动路由器。路由器的缺省优先级是100,所以如果只设置一个路由器的优先级高于100,则该路由器将成为主动路由器。
  
  通过在设置了HSRP协议的路由器之间广播HSRP优先级,HSRP协议选出当前的主动路由器。当在预先设定的一段时间内主动路由器不能发送hello消息时,优先级最高的备用路由器变为主动路由器。路由器之间的包传输对网络上的所有主机来说都是透明的。
  
  配置了HSRP协议的路由器交换以下三种多点广播消息:
  
  Hello———hello消息通知其他路由器发送路由器的HSRP优先级和状态信息,HSRP路由器默认为每3秒钟发送一个hello消息;
  
  Coup———当一个备用路由器变为一个主动路由器时发送一个coup消息;
  
  Resign———当主动路由器要宕机或者当有优先级更高的路由器发送hello消息时,主动路由器发送一个resign消息。在任一时刻,配置了HSRP协议的路由器都将处于以下六种状态之一:
  
  Initial———HSRP启动时的状态,HSRP还没有运行,一般是在改变配置或端口刚刚启动时进入该状态。
  
  learn———路由器已经得到了虚拟IP地址,但是它既不是活动路由器也不是等待路由器。它一直监听从活动路由器和等待路由器发来的HELLO报文。
  
  Listen———路由器正在监听hello消息。
  
  Speak———在该状态下,路由器定期发送HELLO报文,并且积极参加活动路由器或等待路由器的竞选。
  
  Standby———当主动路由器失效时路由器准备接管包传输功能。
  
  Active———路由器执行包传输功能。
  
  三、本方案的特点:
  1.高度的可靠性,两台路由器之间采用HSRP(热备份冗余协议)协议,来保证两台路由器中的任意一台down掉,或路由器的广域网口down,都会迅速切换到另外一台。如果两条线路均出现问题,就采用路由策略停掉邮政子网业务,启用拨号线路。
  
  2.有效的实现了负载均衡,在STAR-S1924F+上划分出各自的VLAN,储蓄子网VLAN在左侧路由器上的HSRP的优先级较高,默认使用网通的FR线路;邮政系统(办公、报刊、EMS、VOIP等等)子网VLAN在右侧路由器上的HSRP的优先级较高,默认使用联通的FR线路。充分利用了带宽资源,而且实现了负载均衡。
  
  3.充分利用了多以太口路由器在划分多业务网段上的功能,也只有多以太口路由器在HSRP应用中才能实现两个路由器间的负载分担,这是具有四个以太口路由器的极大的优点。
  
  4.在右侧路由器上启用QoS策略,VoIP业务需要较低的延时,所以将VoIP业务设置成较高的优先级。
  
  5.通过在交换机上设置VLAN,有效的控制了两个子网间的安全。
  
  6.不存在单点故障问题。

配置指令:

SW1

switch > enable
switch # configure terminal
switch (config) # hostname sw1
sw1 (config) # vtp domain cisco
sw1 (config) # vtp mode server
sw1 (config) # vtp password cisco
sw1 (config) # exit
sw1 # vlan database
sw1 (vlan) # vlan 2
sw1 (vlan) # vlan 3
sw1 (vlan) # exit
sw1 # configure terminal
sw1 (config) # interface range fastethernet 0/1 - 5
sw1 (config-if) # switchport mode trunk           #设置f0/1-5端口为trunk
sw1 (config-if) # no shutdown
sw1 (config-if) # interface range fastethernet 0/3 - 4
sw1 (config-if) # channel-group 1 mode on          #配置f0/3-4端口为通道模式
sw1 (config-if) # exit
sw1 (config) # spanning-tree vlan 2 root primary   #设置vlan 2跟桥
sw1 (config) # spanning-tree vlan 3 root secondby  #设置vlan 3备用跟桥
sw1 (config) # exit
sw1 #

注意:有二层环的情况,要配置stp协议,防止环路。

SW2

switch > enable
switch # configure terminal
switch (config) # hostname sw 2
sw2 (config) # vtp domain cisco
sw2 (config) # vtp mode server
sw2 (config) # vtp password cisco
sw2 (config) # interface range fastethernet 0/1 - 5
sw2 (config-if) # switchport mode trunk
sw2 (config-if) # no shutdown
sw2 (config-if) # interface range fastethernet 0/3 - 4
sw2 (config-if) # channel-group 1 mode on
sw2 (config-if) # exit
sw2 (config) # spanning-tree vlan 3 root primary  #设置vlan 3跟桥
sw2 (config)# spanning-tree vlan 2 root secondby  #设置vlan 3备用跟桥
sw2 (config) # exit
sw2 #

SW3

switch > enable
switch # configure terminal
switch (config) # hostname sw 3
sw3 (config) # vtp domain cisco
sw3 (config) # vtp mode client
sw3 (config) # vtp password cisco
sw3 (config) # interface range fastethernet 0/1 - 2
sw3 (config-if) # switchport mode trunk
sw3 (config-if) # no shutdown
sw3 (config-if) # interface fastethernet 0/3
sw3 (config-if) # switchport mode access
sw3 (config-if) # switchport access vlan 2
sw3 (config-if) # spanning-tree portfast  #配置sw3的速端口
sw3 (config-if) # interface fastethernet 0/4
sw3 (config-if) # switchport mode access
sw3 (config-if) # switchport access vlan 3
sw3 (config-if) # spanning-tree portfast  #配置sw3的速端口
sw3 (config-if) # exit
sw3 (config) # spanning-tree uplinkfast   #配置sw3的上行速链路
sw3 (config) # spanning-tree vlan3
sw3 (config) # spanning-tree vlan2
sw3 (config) # exit
sw3 #

(注意,速端口只配置在连接终端的交换机上,而上行速链路一般配置在汇聚层和接入层的交换机上)
关于速端口和速链路参看:

portfast
 
  portfast只能用在接入层,也就是说交换机的端口是接HOST的才能起用portfast,如果是接交换机的就一定不能启用,否则会造成新的环路。portfast 能将2层端口立即进行转发状态,回避了监听和学习状态: 正常状态: 阻塞->>监听―>>学习->转发
 
uplinkfast
 
  在STP收敛过程中,一些终端站点可能会不可达,这是基于站点所连接交换机端口的STP状态而定。这打乱网络连接,于是关键是减少STP的收敛时间和网络受影响的时间。 当链路或交换机故障,或STP重新配置后,UplinkFast可以加速选择一个新的根端口。根端口立即进入转发状态,Uplinkfast通过减少最大更新速率来限制突发多播流量。定义了更新分组发送的最大速率,默认为150分组/秒
 
  Uplinkfast对于网络边缘的布线间交换机非常有用。他不适用于骨干设备。UplinkFast在直连链路故障后提供快速的收敛能力,并通过上行链路组在冗余。
 
  配置方法:
 
  Switch(config-if)#spanning-tree uplinkfast
 
  Switch(config)#[no] spanning-tree uplinkfast [max-update-rate max_update_rate]
 
  Switch#show spanning-tree uplinkfast
 
  ①. 背景资料:STP确保了在拓扑变化的情况下没有环路产生,但收敛速度慢。一些实时以及对带宽敏感的网络应用是不能接受的。
 
  ②. STP收敛速度慢的原因是收敛算法需要化时间确定一条可替代的链路,缺省时间是50s,即20s(Blocking→Listening)+15s(Listening→Learning)+15s(Learning→Forwarding)。
 
  ③. 解决的方法是一旦发现了线路down,马上把Blocking的port切换到Forwarding,不要经过Listening和Learning阶段。这就是UplinkFast,切换时间可以在2s~4s。
 
  UplinkFast被设计应用在接入层交换机。一般应用两条上行链路连接到分布层,一条是冗余链路。
 
  ④. UplinkFast激活一个快速重新配置的条件:
 
  A. 在交换机上必须启动了UplinkFast功能;
 
  B. 至少有一个处于Blocking的端口(即有冗余链路);
 
  C. 链路失效必须发生在Root Port上。
 
  ⑤. 交换机启动了UplinkFast后,由于提高了交换机上所有端口的路径开销,所以不适合作为根桥。
 
  The spanning tree port cost and port-VLAN cost of all ports on the switch is increased by 3000.
 
  The spanning tree bridge priority for all VLANs is set to 49152. This makes it unlikely that the switch will become the root switch.
 
  具体来说,一个上行链路组由根端口和除自环端口之外的一组阻断端口组成,上行速链路使交换机上的一个阻断端口几乎立刻进行转发。
 
  ⑥. 很重要的一点就是:上行链路只能配置在接入层交换机上,因为从根端口到其非指定备份端口的快速转发只能在生成树拓扑结构的根端口上被确定性的完成。
 
  ⑦. 配置如下:
 
  set spantree uplinkfast enable (基于SET)
 
  switch(config)uplink-fast
 
  ⑧. 但是用set spantree uplinkfast enable 将会影响到VLAN,并且提高了交换机所有端口的端口开销,使它不容易成为一台根网桥。

SW4

switch > enable
switch # configure terminal
switch (config) # hostname sw 4
sw4 (config) # vtp domain cisco
sw4 (config) # vtp mode client
sw4 (config) # vtp password cisco
sw4 (config) # interface range fastethernet 0/1 - 2
sw4 (config-if) # switchport mode trunk
sw4 (config-if) # no shutdown
sw4 (config-if) # interface fastethernet 0/3
sw4 (config-if) # switchport mode access
sw4 (config-if) # switchport access vlan 2
sw4 (config-if) # spanning-tree portfast   #配置sw3的速端口
sw4 (config-if) # interface fastethernet 0/4
sw4 (config-if) # switchport mode access
sw4 (config-if) # switchport access vlan 3
sw4 (config-if) # spanning tree portfast   #配置sw3的速端口
sw4 (config-if) # exit
sw4 (config) # spanning-tree uplinkfast    #配置sw3的上行速链路
sw4 (config) # spanning-tree vlan3
sw4 (config) # spanning-tree vlan2
sw4 (config) # exit
sw4 #

R1

router > enable
router # configure terminal
router (config) # hostname r1
r1 (config) # interface fastethernet 0/0.1
r1 (config-subif) # ip add 192.168.2.254 255.255.255.0
r1 (config-subif) # encapsulation dot1q 2
r1 (config-subif) # standby 2 ip 192.168.2.1
r1 (config-subif) # standby 2 priority 105  #配置优先级
r1 (config-subif) # standby 2 preempet
r1 (config-subif) # standby 2 track fastethernet 0/1 20 #配置当f0/1出现问题时优先级自动降20
r1 (config-subif) # interface fastethernet 0/0.2
r1 (config-subif) # ip add 192.168.3.254 255.255.255.0
r1 (config-subif) # encapsulation dot1q 3
r1 (config-subif) # standby 3 ip 192.168.3.1    #配置虚拟ip
r1 (config-subif) # standby 3 preempet          #配置抢占
r1 (config-subif) # standby 3 track fastethernet 0/1
r1 (config-if) # interface fastethernet 0/0
r1 (config-if) # no shutdown
r1 (config-if) # interface fastethernet 0/1
r1 (config-if) # ip add 192.168.4.2 255.255.255.0
r1 (config-if) # no shutdown
r1 (config-if) # exit
r1 (config) # exit
r1 #

R2

router > enable
router # configure terminal
router (config) # hostname r2
r2 (config) # interface fastethernet 0/0.1
r2 (config-subif) # ip add 192.168.2.253 255.255.255.0
r2 (config-subif) # encapsulation dot1q 2
r2 (config-subif) # standby 2 ip 192.168.2.1
r2 (config-subif) # standby 2 preempet
r2 (config-subif) # standby 2 track fastethernet 0/1
r2 (config-subif) # interface fastethernet 0/0.2
r2 (config-subif) # ip add 192.168.3.253 255.255.255.0
r2 (config-subif) # encapsulation dot1q 3
r2 (config-subif) # standby 3 priority 105  #配置优先级
r2 (config-subif) # standby 3 preempet
r2 (config-subif) # standby 3 ip 192.168.3.1
r2 (config-subif) # standby 3 track fastethernet 0/1 20  #配置当f0/1出现问题时优先级自动降20
r2 (config-if) # interface fastethernet 0/0
r2 (config-if) # no shutdown
r2 (config-if) # interface fastethernet 0/1
r2 (config-if) # ip add 192.168.5.2 255.255.255.0
r2 (config-if) # no shutdown
r2 (config-if) # exit
r2 (config) # exit
r2 #

R3

router > enable
router # configure terminal
router (config) # hostname r3
r3 (config) # interface thernet 0/0
r3 (config-if) # ip add 192.168.4.1 255.255.255.0
r3 (config-if) # no shutdown
r3 (config) # interface ethernet 0/1
r3 (config-if) # ip add 192.168.5.1 255.255.255.0
r3 (config-if) # no shutdown
r3 (config-if) # exit
r3 (config) # exit
r3 #

 HSRP 运行在 UDP 上,采用端口号1985。路由器转发协议数据包的源地址使用的是实际 IP 地址,而并非虚拟地址,正是基于这一点,HSRP 路由器间能相互识别

另: 

关于三层交换机和二层交换机的端口聚合同样,配好vtp、vlan后,两端连接端口开trunk模式就ok了,如图: