1.4 核心交换机路由冗余
核心交换机是整个网络的核心,如果发生致命性的故障,将导致整个局域网络的瘫痪,所造成的损失也是难以估计的。因此,对三层路由采用热备份是提高网络可靠性的必然选择。利用HSRP、VRRP、GLBP协议保证核心设备的负荷分担和热备份,在中心交换机和双汇聚交换机中的某台交换机出现故障时,可以迅速切换三层路由设备和虚拟网关,实现双线路的冗余备份,保证整网稳定性。
1.4.1 核心交换机路由冗余的必要性
大多数中小型网络都是单核心网络,网络中只拥有一台核心交换机,即单核心拓扑结构,如图1-22所示。一旦这台唯一的核心交换机发生硬件或软件故障,那么整个局域网络必然陷入瘫痪,所有跨网段的网络通信都将随之中断。对于有着重要应用和重要业务的网络而言,对网络的可靠性和可用性有着较高的要求,这种由单点故障而导致的系统瘫痪是无法接受的。
图1-22 单核心拓扑结构
虽然通常情况下,作为核心交换机的交换机都采用模块化设置,拥有冗余的电源和风扇(如图1-23所示),基本能够保障交换机运行的稳定。但是,核心交换机却有可能发生以下故障,而导致整个网络或部分网络的瘫痪。
图1-23 交换机冗余部件
图1-24 冗余管理引擎
- 管理引擎硬件故障。模块化交换机都拥有引擎插板(或称为管理模板),主要用于实现三层路由、交换机配置管理、数据转发和路由计算,以及安全策略的配置。换言之,有关路由、安全等策略的配置和运算全部由引擎插板完成。可见,模块化交换机的管理引擎就相当于人的大脑,因此,一旦管理引擎出现故障,交换机就会系统瘫痪,所有的数据转发和路由也将随之而停止。有鉴于此,可以选择支持冗余管理引擎的交换机(如Catalyst 4507R、Catalyst 4510R)作为核心交换机,当其中某个引擎发生故障时,另一个引擎可以继续工作,从而保障网络的稳定。如图1-24所示为安装有两块管理引擎的Catalyst 4507R交换机。
- 系统软件故障。交换机的软件系统与Windows、Linux系统一样,因为设计的原因,可能会存在一定的漏洞,这也为一些黑客提供了可乘之机,他们会利用这些漏洞进行一些攻击。另外,交换机软件本身所存在的这些漏洞,还可能会影响交换机的运转能力,例如交换机在工作中发生的丢包、过载等情况。交换机的系统软件一旦发生故障,即使两个管理引擎的硬件都没有问题,也同样会导致整个网络的通信失败。
- 线卡故障。所谓线卡,是指安装于模块化交换机插槽中的各种业务板卡,用于提供各种网络端口或插槽(通常为2~48个端口),实现与其他网络设备(如交换机、路由器、防火墙、无线接入点等)、网络终端设备(如计算机、打印机等)的连接。核心交换机的线卡一旦发生故障,则连接至该线卡(线卡上的所有插槽或端口)的所有子网都将失去与核心网络连接,从而导致部分网络通信失败。如图1-25所示为模块化交换机中安装的线卡。
- 插槽或模块故障。固定端口交换机往往提供千兆位(GBIC或SFP)或万兆位(XENPAK、X2、XFP或SFP+等)插槽,而模块化交换机的业务板更是提供了大量类似插槽,以适应复杂的网络环境,降低购置成本。因此,交换机之间的互联,以及交换机与服务器或其他设备之间的互连,都不可避免地要使用千兆位或万兆位模块。核心交换机上的某个插槽或模块一旦发生故障,则与之相连接的某个子网将失去与核心网络的连接,从而导致个别网络通信失败。
- 端口故障。端口故障是最为常见的交换机故障之一。作为计算机与网络,或者交换机与其他设备连接的接口,端口故障影响的往往只是一台计算机(当端口直接连接至计算机时),或者连接至该交换机上的计算机(当向上级联端口发生故障时)。端口故障所导致的结果与插槽或模块故障相同。
图1-25 线卡
可见,单核心拓扑结构的可用性和稳定性是比较差的,不能满足大中型网络对稳定性和可用性的需求。
1.4.2 路由冗余链路设计
核心交换机与汇聚层交换机都只有单独一条链路连接,没有冗余的路由,一旦出现传输线路问题,将导致整个区域的网络出现故障,对一些重要的子网络而言,是没有办法接受的。因此,网络环境比较脆弱、存在单点故障的问题,需要对核心交换机等设备进行冗余配置,以更好地适应网络对稳定性和可用性的要求。
1.网状拓扑结构
网状拓扑结构是一种重要的网络结构。在网状拓扑结构中,两节点间的一两条线路或中间节点发生故障,那么,还可以通过许多其他的路径进行通信,因此,网状拓扑的网络稳定性和可靠性非常好,被广泛应用于各种类型的大中型网络。
尽管网状网络拥有易于维修,稳定可靠的绝对优势,但是,由于其安装过程中的布线纷繁复杂,因而非常昂贵。通常,网状拓扑结构会和其他拓扑结构混合使用来形成混合拓扑结构。网状拓扑网络结构大致分为两类,即全网状拓扑结构和半网状拓扑结构。
在全网状拓扑结构中,每个节点与网络中任何其他节点间都有一根线路相连(如图1-26所示)。安装全网状拓扑结构网络的代价是非常高的,但却能产生数量极多的迂回路径,因此如果那些节点中有某个发生了故障,网络信息仍然能够被传送到任何其他的节点。全网状拓扑结构网络通常被用于对网络稳定性和可靠性要求较高的骨干网络。
在半网状拓扑结构网络中,有些节点是以全网状拓扑结构网络的方案进行连接的,但其余的只与该网络中的一两个节点相连(如图1-27所示)。与全网状拓扑结构骨干网络相连的周边网络通常会采用半网状拓扑结构。它与全网状拓扑结构相比,安装起来不会花太大的代价,相应地,产生的迂回线路较少。对网络稳定性和可靠性要求较高的大中型网络,通常采用半网状拓扑结构。
图1-26 全网状拓扑结构
图1-27 半网状拓扑结构
设备通过网络节点间冗余复杂的导线进行连接,网络节点可以为路由器、交换机等设备。在网状拓扑结构中,如果有导线或节点发生故障,还有许多其他的通道可供两个节点间进行通信。对网络中的任何一个节点都通过导线和其他每一个节点进行连接就可产生全网状拓扑结构;而仅对网络中一部分节点采取全网状连接的方案,其余每一个节点仅与网络中一两个其他节点相连,这样形成的网络就是半网状拓扑结构,网络在实际的组建过程中常采用这种结构,它拥有一定的可靠性,而且不算太复杂。
2.冗余路由设计
冗余路由设计思路如下:
- 充分利用现有的网络设备和资源,避免无谓的浪费。
- 充分考虑网络稳定性和可用性需求,并兼顾带宽、实时性的要求。
- 增加一台核心交换机,构建双核心冗余拓扑结构。两台核心交换机之间相互连接,并分别与汇聚交换机、数据中心交换机连接,实现双核心半网状拓扑连接(如图1-28所示)。
双核心架构升级完成后,由于每台汇聚交换机、数据中心交换机都与两台核心交换机分别相互连接,因此,任何一台核心交换机、任何一条链路发生故障,所有通信都会借助路由冗余算法自动转移到另外一台核心交换机,不会影响核心交换机与汇聚交换机的通信。
3.路由冗余协议
热备份路由器协议
热备份路由器协议(Hot Standby Router Protocol,HSRP)的设计目标是支持特定情况下IP流量失败转移而不会引起混乱,并允许主机使用单路由器,以及即使在实际第一跳路由器使用失败的情形下,仍能维护路由器间的连通性。换句话说,当源主机不能动态知道第一跳路由器的IP地址时,HSRP协议能够保护第一跳路由器不出故障。该协议中含有多种路由器,对应一个虚拟路由器。HSRP协议只支持一个路由器代表虚拟路由器实现数据包转发过程。终端主机将它们各自的数据包转发到该虚拟路由器上。
图1-28 双核心网络拓扑设计
负责转发数据包的路由器称之为主动路由器(Active Router)。一旦主动路由器出现故障,HSRP将激活备份路由器(Standby Routers)取代主动路由器(如图1-29所示)。HSRP协议提供了一种决定使用主动路由器还是备份路由器的机制,并指定一个虚拟的IP地址作为网络系统的默认网关地址。如果主动路由器出现故障,备份路由器(Standby Routers)承接主动路由器的所有任务,并且不会导致主机连通中断现象。
图1-29 HSRP
提·示
HSRP运行在UDP上,采用端口号1985。路由器使用它们的实际IP地址转发协议数据包,而并非虚拟地址,正是基于这一点,HSRP路由器间能相互识别。
多热备份路由组
交换机支持MHSRP(Multiple HSRP,多热备份路由组)。作为HSRP的扩展,MHSRP可以在两个或多个HSRP组之间实现负载均衡。如图1-30所示,一半的客户端被配置给Router A,另一半的客户端则被配置为Router B。然后,配置Router A和Router B构建2个HSRP组。对于Group1,Router A是默认活跃路由器,因为它被指定了较高的优先级,Router B则作为备份路由器。同样,对于Group2,Router B是默认活跃路由器,因为它被指定了较高的优先级,Router A则作为备份路由器。在正常运行期间,两个路由器共享IP流量负载。而当其中任何一台路由器无效时,另一台路由器将改变为活跃路由器,并假定故障路由器的包转发功能失效。
图1-30 MHSRP
显然,与HSRP相比,MHSRP具有更高的工作效率。两台核心交换机工作都正常时,可以实现负载均衡;一台核心交换机故障时,另一台可以随时接替其工作。因此,建议在双核心交换机使用MHSRP,而不是HSRP。
虚拟路由冗余协议
在网络中,一般给终端设备指定一个或者多个默认网关(Default Gateway)。如果作为默认网关的3层设备损坏,那么,所有使用该网关主机的通信必然要中断。即便配置了多个默认网关,如不重新启动终端设备,也不能切换到新的网关。采用虚拟路由冗余协议(Virtual Router Redundancy Protocol,VRRP)可以很好地避免静态指定网关的缺陷。
一组VRRP路由器协同工作,共同构成一台虚拟路由器(如图1-31所示)。该虚拟路由器对外表现为一个具有唯一固定IP地址和MAC地址的逻辑路由器。同一VRRP组的路由器有两种角色,即主控路由器和备份路由器。一个VRRP组中有且只有一台主控路由器,一台或多台备份路由器。VRRP协议使用选择策略选出一台作为主控,负责ARP相应和转发IP数据包,组中的其他路由器作为备份的角色处于待命状态。当主控路由器发生故障时,备份路由器能在几秒钟的时延后升级为主控路由器,由于切换迅速且无需改变IP地址和MAC地址,所以对网络用户而言一切都是透明的。
图1-31 VRRP
网关负载均衡协议
网关负载均衡协议(Gateway Load Balancing Protocol,GLBP)不仅提供冗余网关,还在各网关之间提供负载均衡,而HRSP、VRRP都必须选定一个活动路由器,而备用路由器则处于闲置状态。
GLBP可以绑定多个MAC地址到虚拟IP,从而允许客户端选择不同的路由器作为其默认网关,而网关地址仍使用相同的虚拟IP,从而实现一定的冗余。
优先级最高的路由器成为活动路由器,称作Active Virtual Gateway,其他非AVG路由器提供冗余。某路由器被推举为AVG后,和HRSP不同的工作开始了,AVG分配虚拟的MAC地址给其他GLBP组成员。所有的GLBP组中的路由器都转发包,但是,各路由器只负责转发与自己的虚拟MAC地址的相关的数据包(如图1-32所示)。
每个GLBP组中最多有4个虚拟MAC地址,非AVG路由器由AVG按序分配虚拟MAC地址,非AVG路由器也被称作Active Virtual Forwarder(AVF)。
AVF分为两类,即Primary Virtual Forwarder和Secondary Virtual Forwarder。直接由AVG分配虚拟MAC地址的路由器被称作Primary Virtual Forwarder,后续不知道AVG真实IP地址的组成员,只能使用hellos包来识别其身份,然后被分配虚拟MAC地址,此类被称作Secondary Virtual Forwarder。
图1-32 GLBP
如果AVG失效,则推举就会发生,决定哪个AVF替代AVG来分配MAC地址,推举机制依赖于优先级。最多可以配置1024个GLBP组,不同的用户组可以配置成使用不同的组AVG作为其网关。
1.4.3 路由器冗余链路配置示例
HSRP(Hot Standby Router Protocol,热备份路由协议)的目的在于使主机看上去只使用了一个路由器,并且即使在它当前所使用的第一跳路由器失败的情况下仍能够保持路由的连通性。此协议中所涉及到的多路由器都映射为一个虚拟的路由器,保证同时有且只有一个路由器在代表虚拟路由器进行包的发送,而终端则是把数据包发向该虚拟路由器。
1.HSRP默认配置
HSRP的默认配置如表1-9所示。
表1-9 HSRP的默认设置
2.HSRP配置策略
下面是配置HSRP的一些配置策略。
- HSRP v2和HSRPv1相互具有排他性。在一个接口上HSRP v2和HSRPv1彼此不能协作。
- HSRP最多可以在32个VLAN或者路由接口上配置。
- 指定接口必须是三层接口。
▷路由器端口。将一个物理端口配置为三层接口,键入“no switchport”接口配置命令。
▷SVI(Switch Virtual Interface,交换机虚拟接口)。创建一个VLAN接口,使用“interface vlan vlan_id”全局配置指令,也可以使用三层默认接口。
▷三层EtherChannel接口(Port Channel)。使用“interface port-channel port-channel-number”全局配置命令,将以太网接口绑定到Channel组来创建port-channel逻辑接口。
- 所有三层接口都必须分配IP地址。
- 当组号小于256时,HSRP组的版本可以从HSRP v2改变为HSRPv1。
- 当改变某个接口的HSRP版本时,每个HSRP组都要重新配置,因为其拥有了新的虚拟MAC地址。
3.启用HSRP
第1步,进入全局配置模式。
Switch# configure terminal
第2步,指定欲配置HSRP的三层接口,进入接口配置模式。
Switch(config)# interface interface_id
第3步,(可选)在接口上配置HSRP版本。1表示采用HSRP v1,2表示采用HSRP v2。
Switch(config-if)# standby version {1 | 2}
第4步,使用组号和虚拟IP地址创建HSRP组。(可选)group-number,指定该接口上启用的HSRP组号,取值范围为0~255,默认值为0。如果只有一个HSRP组,则不必键入组号。(可选)ip-address,热备份路由接口的虚拟IP地址。必须为这些接口键入至少一个虚拟IP地址,它可以从其他接口学到。Secondary,该IP地址是次热备份路由接口。如果既没有指定作为次备份路由或备份路由,也没有设置优先级,主IP地址将进行比较并把拥有较高IP地址的路由作为活跃路由,下一个较高的作为备份路由。
Switch(config)# standby [group-number] ip [ip-address [secondary]]
第5步,返回特权EXEC模式。
Switch(config)# end
第6步,校验配置。
Switch # show standby [interface_id [group]]
第7步,保存配置。
Switch(config)# copy running-config startup-config
使用“no standby [group-number] ip [ip-address]”接口配置指令来禁用HSRP。
4.配置HSRP优先级
配置策略
在配置HSRP优先级时,应当遵循以下策略:
- 通过指定优先级,可以选择活跃路由和备份路由。当优先权(Preemption)被启用时,拥有较高优先级的路由将变成活跃路由。如果优先级相同,当前活跃路由不会改变。
- 较高的数字(1~255)表示较高的优先级,更有希望变成活跃路由器。
- 当设置优先级(priority)、优先权(preempt)或同时设置两者(both)时,必须指定至少一个关键字(priority、preempt或两者)。
- 如果接口使用standby track命令配置时,设备的优先级可以动态改变,该路由上的其他接口将宕掉(down)。
- 当在接口上第一次启用路由时,没有完整的路由表。如果将其配置为Preempt,那么,该路由将改变为活跃路由,即使它还不能提供适当的路由服务。若欲解决这个问题,可以配置一个延迟时间,以允许路由器有时间更新其路由表。
配置命令
第1步,进入全局配置模式。
Switch# configure terminal
第2步,指定欲配置HSRP优先级的接口,进入接口配置模式。
Switch(config)# interface interface_id
第3步,设置用于选择活跃路由器的优先级。priority取值范围是1~255,默认值为100。数值越高,优先权越高。group-number,(可选)指定命令适用的HSRP组号。preempt,(可选)选择当本地路由比活跃路由拥有较高优先级时,将作为活跃路由进行控制。delay,(可选)设置本地路由延迟接管活跃规则的时间,单位为秒,取值范围为0~3600,默认值为0(接管前没有延迟)。
Switch(config-if)# standby [group-number] priority priority [preempt [delay delay]]
第4步,配置路由器优先权(preempt)。当本地路由器比活跃路由器拥有更高的优先级时,将作为活跃路由器。group-number,(可选)指定命令适用的HSRP组号。Priority,设置或修改组优先级,取值范围为1~255,默认值为100。delay,(可选)设置本地路由延迟接管活跃规则的时间,单位为秒,取值范围为0~3 600,默认值为0(接管前没有延迟)。
Switch(config-if)# standby [group-number] [priority priority] preempt [delay delay]
第5步,配置一个接口来追踪其他接口。一旦其他接口宕掉,那么,该设备的热备份优先级即被降低。group-number,(可选)指定命令适用的HSRP组号。Type number,指定被追踪接口的类型和接口号。interface-priority,(可选)指定当接口宕掉或从备份中恢复时,路由的热备份优先级减少或增加的总值,默认值为0。
Switch(config-if)# standby [group-number] track type number [interface-priority]
第6步,返回特权EXEC模式。
Switch(config-if)# end
第7步,校验配置。
Switch# show running-config
第8步,保存配置。
Switch # copy running-config startup-config
使用“no standby [group-number] priority priority [preempt [delay delay]]”和“no standby[group-number] [priority priority] preempt [delay delay]”接口配置指令,重新配置默认优先级、优先权和延迟值。
使用“no standby [group-number] track type number [interface-priority]”接口配置指令移除追踪。
配置示例
局域网采用双核心架构,以HSRP方式实现路由冗余。核心交换机A作为活跃路由器,优先级设置为110,当追踪接口宕掉后其优先级值减少20。以G7/1接口连接至边缘路由器。核心交换机B作为备份路由器,采用默认优先级100,以G7/1接口连接至边缘路由器(如图1-33所示)。下面,仅以办公楼VLAN接口配置,说明如何配置两台核心交换机,实现HSRP路由冗余。
图1-33 HSRP配置示例
办公楼各VLAN的IP地址规划如表1-10所示。
表1-10 办公楼VLAN与IP地址规划
核心交换机A上有关办公楼所有VLAN的HSRP的配置如下:
Switch_A# configure terminal
Switch_A(config)# interface vlan2
Switch_A(config-if)# ipaddress 10.10.2.1 255.255.255.0
Switch_A(config-if)# standby ip 10.10.2.3
Switch_A(config-if)# standby priority 110
Switch_A(config-if)# standby preempt
Switch_A(config-if)# standby track GigabitEthernet7/1 20
Switch_A(config-if)# exit
Switch_A(config)# interface vlan3
Switch_A(config-if)# ipaddress 10.10.3.1 255.255.255.192
Switch_A(config-if)# standby ip 10.10.3.3
Switch_A(config-if)# standby priority 110
Switch_A(config-if)# standby preempt
Switch_A(config-if)# standby track GigabitEthernet7/1 20
Switch_A(config-if)# exit
Switch_A(config)# interface vlan4
Switch_A(config-if)# ipaddress 10.10.4.1 255.255.255.192
Switch_A(config-if)# standby ip 10.10.4.3
Switch_A(config-if)# standby priority 110
Switch_A(config-if)# standby preempt
Switch_A(config-if)# standby track GigabitEthernet7/1 20
Switch_A(config-if)# exit
Switch_A(config)# interface vlan5
Switch_A(config-if)# ipaddress 10.10.5.1 255.255.255.0
Switch_A(config-if)# standby ip 10.10.5.3
Switch_A(config-if)# standby priority 110
Switch_A(config-if)# standby preempt
Switch_A(config-if)# standby track GigabitEthernet7/1 20
Switch_A(config-if)# exit
Switch_A(config)# interface vlan100
Switch_A(config-if)# ipaddress 10.10.100.1 255.255.255.128
Switch_A(config-if)# standby ip 10.10.100.3
Switch_A(config-if)# standby priority 110
Switch_A(config-if)# standby preempt
Switch_A(config-if)# standby track GigabitEthernet7/1 20
Switch_A(config-if)# end
Switch_A#
核心交换机B上有关办公楼所有VLAN的HSRP的配置如下:
Switch# configure terminal
Switch_B(config)# interface vlan2
Switch_B(config-if)# ipaddress 10.10.2.2 255.255.255.0
Switch_B(config-if)# standby ip 10.10.2.3
Switch_B(config-if)# standby preempt
Switch_B(config-if)# exit
Switch_B(config)# interface vlan3
Switch_B(config-if)# ipaddress 10.10.3.2 255.255.255.192
Switch_B(config-if)# standby ip 10.10.3.3
Switch_B(config-if)# standby preempt
Switch_B(config-if)# exit
Switch_B(config)# interface vlan4
Switch_B(config-if)# ipaddress 10.10.4.2 255.255.255.192
Switch_B(config-if)# standby ip 10.10.4.3
Switch_B(config-if)# standby preempt
Switch_B(config-if)# exit
Switch_B(config)# interface vlan5
Switch_B(config-if)# ipaddress 10.10.5.2 255.255.255.0
Switch_B(config-if)# standby ip 10.10.5.3
Switch_B(config-if)# standby preempt
Switch_B(config-if)# exit
Switch_B(config)# interface vlan100
Switch_B(config-if)# ipaddress 10.10.100.2 255.255.255.128
Switch_B(config-if)# standby ip 10.10.100.3
Switch_B(config-if)# standby preempt
Switch_B(config-if)# end
Switch# show standby
5.配置MHSRP
启用MHSRP负载平衡,配置两个路由器作为活跃路由器,把虚拟路由器作为备份路由器。配置MHSRP时,需要在每个HSRP接口上键入“standby preempt”接口配置指令,以便其他路由器失效后返回。
核心交换机A被配置为1组的活跃路由器,核心交换机B被配置为2组的活跃路由器。核心交换机A的HSRP接口有一个IP地址10.0.0.1,1组的备份优先权是110。核心交换机B的HSRP接口的IP地址是10.0.0.2,2组的备份优先权是110。1组使用虚拟IP地址10.0.0.3,2组使用虚拟IP地址10.0.0.4。
配置核心交换机A:
Switch# configure terminal
Switch(config)# interface gigabitethernet 1/0/1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.0.1 255.255.255.0
Switch(config-if)# standby 1 ip 10.0.0.3
Switch(config-if)# standby 1 priority 110
Switch(config-if)# standby 1 preempt
Switch(config-if)# standby 2 ip 10.0.0.4
Switch(config-if)# standby 2 preempt
Switch(config-if)# end
Switch # end
配置核心交换机B:
Switch# configure terminal
Switch(config)# interface gigabitethernet 1/0/1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.0.1 255.255.255.0
Switch(config-if)# standby 1 ip 10.0.0.3
Switch(config-if)# standby 1 preempt
Switch(config-if)# standby 2 ip 10.0.0.4
Switch(config-if)# standby 2 priority 110
Switch(config-if)# standby 2 preempt
Switch(config-if)# end
Switch# end