孙 光 懿
(天津音乐学院图书信息中心,天津市 300171)
随着信息技术与互联网的快速发展,近些年来各高校陆续建设了符合自身发展和需求的校园网以及各类应用系统如邮件系统、人事系统、财务系统、学工系统等,校园管理模式也逐步实现了信息化与数字化,广大师生对校园网的依存感也越来越强.为了保证校园网可以高效、实时的为广大师生提供最优服务,我们采用在校园网出口部署两台思科6509三层交换机,接入层交换机分别与两台三层交换机相连,并在校园网中实施基于HSRP和STP协议[1-3]的网络冗余架构设计方案.应用HSRP协议主要为了实现校园网网关冗余和流量负载均衡,而应用STP协议则为了实现校园网二层链路的冗余,从而可以最大程度的保证广大师生对互联网资源的正常访问.
HSRP协议为思科公司在1994年开发的私有冗余性协议,工作在TCP/IP模型中的网络层,多应用在中小型网络边界设备之间,目前有两个版本HSRPv1和HSRPv2,其主要作用就是保证第一跳路由器能够正常工作.HSRP协议由两个或多个路由器组成一个HSRP组(最多可建16个HSRP组),组内路由器共用一个虚拟IP地址和MAC地址,此虚拟IP地址即为网络中客户端所配置的默认网关地址.HSRP组内活跃路由器[4]和备用路由器只允许存在一个,活跃路由器的选举由路由器优先级决定(各路由器默认优先级为100),组内优先级最高的路由器在抢占工作模式下成为活跃路由器,优先级次之的路由器成为备用路由器,其他路由器则始终处于初始状态.只有当活跃路由器和备用路由器不能正常工作时,其他路由器才可改变此种状态.活跃路由器主要负责转发客户端发送到虚拟IP地址的数据包,并周期性的每隔3S向组内其他路由器发送HELLO消息包.备用路由器虽然不参与数据包的转发,但也周期性的每隔3S向组内其他路由器发送HELLO消息包,默认情况下备用路由器如果在10S内监听不到活跃路由器发送的HELLO消息包,就会认为活跃路由器已发生故障,则备用路由器成为新的活跃路由器.其他路由器只负责对活跃路由器和备用路由器发出的HELLO消息包进行监听.另外为了保证HSRP组的安全性,可以通过启用HSRP协议的认证机制,为组中的所有路由器配置认证字符串来防止未经授权的路由器加入HSRP组.
STP协议属于二层管理协议,是由DEC公司在1995年研发出来的.主要用来在二层冗余链路上识别并防止环路,避免广播风暴、MAC地址飘移等现象的产生,同时还可以进行链路的备份.当启用STP协议以后,网络中的交换机会每隔2秒发送一次 BPDU数据帧,用以交换STP信息、选举根桥、根端口[5-6]、指定端口,创建一个二层冗余链路无环网络,此网络中只存在一条活动链路,并在逻辑上阻塞其余链路.当活动链路发生故障,其余链路中的一条就会成为新的活动链路.
根桥(我们可以把桥看成是交换机)在逻辑上位于生成树结构的中心,拥有最低桥优先级的交换机成为根桥,如果网络中存在桥优先级相同的交换机,那么具有最小MAC地址的交换机将成为根桥,其上所有端口都是指定端口,参与数据帧的收发.根端口也参与数据帧的收发,只存在于非根桥上且只有一个,是非根桥去往根桥开销值最小的端口.开销值的大小取决于链路带宽,带宽越高开销值就越小.如果有多个端口的开销值相同,则比较端口ID,端口ID由优先级和端口号构成,其值最小的成为根端口.指定端口为每条链路上都存在的一个用于收发数据帧的端口,基于去往根桥最低开销选举得出,如果二者开销值相同,那么所在交换机的BID(BID共8个字节:其中桥优先2个字节,MAC地址6个字节.)最小的端口即为指定端口.BPDU数据帧格式如表1所示.
表1 BPDU数据帧格式
校园网共有VLAN204和VLAN205两个网段,并通过租用中国教育网一条千兆出口链路访问互联网.为了实现网络冗余,最大程度的保证广大师生对互联网资源的正常访问,我们把两台思科6509三层交换机SW1和SW2部署在网络出口处,SW1和SW2之间启用HSRP协议,SW1即是校园网VLAN204网段的活跃路由器,又是校园网VLAN205网段的备用路由器,SW2即是校园网VLAN205网段的活跃路由器,又是校园网VLAN204网段的备用路由器,从而实现网关冗余和链路负载均衡.正常情况下,来自VLAN204网段的数据包由三层交换机SW1负责转发,来自VLAN205网段的数据包由三层交换机SW2负责转发.如果SW1出现故障,那么SW2将担负起VLAN204和VLAN205两个网段数据包转发的任务.同理如果SW2出现故障,那么SW1将担负起VLAN204和VLAN205两个网段数据包转发的任务.SW3和SW4为两台接入交换机且均与三层交换机SW1和SW2存在两条上行链路(通过TRUNK相连),当其中一条上行链路出现故障,另一条链路将担负起数据流转发的任务.由于在交换机SW1、SW2、SW3、SW4之间存在多个二层环路,因此有必要在各交换机上启用STP协议,通过在逻辑上阻塞端口来消除校园网中存在的二层环路.路由器R1为中国教育网边界路由器,C1为VLAN204网段所属终端计算机,C2为VLAN205网段所属终端计算机.
有一点需要特别注意,由于STP无法感知HSRP协议的选举过程,其逻辑上阻塞的端口有可能将校园网流量牵引到非优路径上[7-9],从而影响校园网流量转发的效率.举个例子来说,假设VLAN204网段的根桥为SW2,但是其活跃路由器为SW1,那么来自VLAN204网段的数据流量就要先经过SW2,而后再由SW1来进行转发,这显然是不合理的.为了避免这种情况的出现,我们需要将HSRP活跃路由器和STP根桥设置为同一网络设备,使校园网流量直接发送到HSRP活跃路由器,再由其进行数据包的转发.校园网拓扑图如图1所示.
图1 校园网拓扑图
在教育网边界路由器R1上建立LOOPBACK回环接口[10],用于模拟教育网服务器IP地址.校园网中不仅三层交换机SW1与SW2之间通过TRUNK相连,而且接入交换机SW3与SW4也通过TRUNK与两台三层交换机SW1与SW2 相连.终端计算机C1、C2分别与接入交换机SW3与SW4的f0/3接口相连,C1属于校园网VLAN204网段,默认网关为211.68.204.1.C2属于校园网VLAN205网段,默认网关为211.68.205.1.网络设备各端口及IP地址分配方案如图2所示.
图2 网络设备各端口及IP地址分配方案
在三层交换机SW1和SW2上分别配置两个虚拟接口,每个虚拟接口关联一个VLAN,以实现校园网VLAN 204 网段与VLAN 205网段间路由.
(1)配置交换机SW1
SW1(config)#ip routing//开启路由模式
SW1(config)#int f1/0
SW1(config)#no switchport//启用路由模式端口
SW1(config-if)#ip address 211.68.192.2 255.255.255.0
SW1(config-if)#no shut
SW1(config)#int f1/1
SW1(config-if)#sw mo tr //设置端口为TRUNK工作模式,用于与三层交换机SW2互连
SW1(config)#int f1/2
SW1(config-if)#sw mo tr //设置端口为TRUNK工作模式,用于与二层交换机SW3互连
SW1(config)#int f1/3
SW1(config-if)#sw mo tr //设置端口为TRUNK工作模式,用于与二层交换机SW4互连
SW1(config)#int vlan 204
SW1(config-if)#ip add 211.68.204.2 255.255.255.0//设置虚拟接口IP地址
SW1(config-if)#no shut
SW1(config)#int vlan 205
SW1(config-if)#ip add 211.68.205.2 255.255.255.0
SW1(config-if)#no shut
(2)配置交换机SW2
SW2(config)#ip routing
SW2(config)#int f1/0
SW2(config)#no switchport
SW2(config-if)#ip address 211.68.193.2 255.255.255.0
SW2(config-if)#no shut
SW2(config)#int f1/1
SW2(config-if)#sw mo tr //设置端口为TRUNK工作模式,用于与三层交换机SW1互连
SW2(config)#int f1/2
SW2(config-if)#sw mo tr //设置端口为TRUNK工作模式,用于与二层交换机SW4互连
SW2(config)#int f1/3
SW2(config-if)#sw mo tr //设置端口为TRUNK工作模式,用于与二层交换机SW3互连
SW2(config)#int vlan204
SW2(config-if)#ip add 211.68.204.3 255.255.255.0
SW2(config-if)#no shut
SW2(config)#int vlan205
SW2(config-if)#ip add 211.68.205.3 255.255.255.0//设置虚拟接口IP地址
SW2(config-if)#no shut
(3)配置交换机SW3
SW3(config)#no ip routing
SW3(config)#int range f0/0-1
SW3(config-if)#switchport mode trunk
SW3(config)#int f0/3
SW3(config-if)#switchport access vlan 204
(4)配置二层交换机SW4
SW4(config)#no ip routing
SW4(config)#int range f0/0-1
SW4(config-if)#switchport mode trunk
SW4(config)#int f0/3
SW4(config-if)#switchport access vlan 205
(5)配置教育网边缘路由器R1
R1(config)#int loopback4//建立回环接口
R1(config-if)#ip address 211.68.190.3 255.255.255.0//该地址用来模拟教育网服务器IP
R1(config)#int e1/0
R1(config-if)#ip address 211.68.192.1 255.255.255.0///该地址用来与三层交换机SW1互连
R1(config-if)#no shut
R1(config)#int e1/1
R1(config-if)#ip address 211.68.193.1 255.255.255.0///该地址用来与三层交换机SW2互连
R1(config-if)#no shut
由于校园网内使用的IP地址为教育网IP地址,出口链路也由教育网提供,因此无需在三层交换机SW1和SW2上配置NAT地址转换.直接在三层交换机SW1、SW2和教育网边界路由器R1上启用RIP路由协议[11-13],通过宣告网段即可使校园网用户能够正常访问互联网资源.
(1)在交换机SW1上配置RIP协议
SW1(config)#router rip
SW1(config)#network 211.68.192.0
SW1(config)#network 211.68.204.0
SW1(config)#network 211.68.205.0
(2)在交换机SW2上配置RIP协议
SW2(config)#router rip
SW2(config)#network 211.68.193.0
SW2(config)#network 211.68.204.0
SW2(config)#network 211.68.205.0
(3)在路由器R1上配置RIP协议
R1(config)#router rip
R1(config)#network 211.68.192.0
R1(config)#network 211.68.193.0
R1(config)#network 211.68.190.0
4.3.1配置网关冗余
三层交换机SW1和SW2即是HSRP204组的成员又是HSRP205组的成员,为实现网关冗余,组内各设备设置的虚拟IP地址必须相同,此虚拟IP地址即为所属相关网段终端计算机默认网关地址.
(1)配置三层交换机SW1
SW1(config)#intVLAN204
SW1(config-if)#standby 204 ip 211.68.204.1//建立HSRP 204组,虚拟IP地址为211.68.204.1,此地址即为VLAN204网段网关地址
SW1(config)#intVLAN205
SW1(config-if)#standby 205 ip 211.68.205.1 //建立HSRP 205组,虚拟IP地址为211.68.205.1,此地址即为VLAN205网段网关地址
(2)配置三层交换机SW2
SW2(config)#intVLAN204
SW2(config-if)#standby 204 ip 211.68.204.1 //建立HSRP 204组,虚拟IP地址为211.68.204.1,此地址即为VLAN204网段网关地址
SW2(config)#intVLAN205
SW2(config-if)#standby 205 ip 211.68.205.1 //建立HSRP 205组,虚拟IP地址为211.68.205.1,此地址即为VLAN205网段网关地址.
4.3.2配置HSRP优先级
HSRP组内路由器优先级的高低决定组内唯一一台活跃路由器的选举,拥有最高优先级的路由器成为活跃路由器,优先级的取值范围为(0~255),如果出现HSRP组内路由器优先级一致的情况,则比较路由器接口IP地址,哪台路由器接口IP地址最高,哪台路由器就成为活跃路由器.
(1)配置三层交换机SW1
SW1(config-if)#standby 204 priority 200 //三层交换机SW1在HSRP 204组内优先级为200
SW1(config-if)#standby 205 priority 197//三层交换机SW1在HSRP 205组内优先级为197
(2)配置三层交换机SW2
SW2(config-if)#standby 204 priority 197 //三层交换机SW2在HSRP 204组内优先级为197
SW2(config-if)#standby 205 priority 200 //三层交换机SW2在HSRP 205组内优先级为200
4.3.3配置HSRP抢占特性
通过配置抢占特性,可以保证在HSRP组中当活跃路由器发生故障,优先级次之的备用路由器成为新的活跃路由器.拥有最高优先级的原活跃路由器在排除故障以后,总可以成为活跃路由器.如果没有配置抢占特性,排除故障后的原活跃路由器,只能处于备用状态.在HSRP204组中由于SW1优先级最高,因此SW1成为HSRP204组中的活跃路由器,SW2成为HSRP204组中的备用路由器.在HSRP205组中由于SW2优先级最高同理SW2成为HSRP205组中的活跃路由器,SW1成为HSRP205组中的备用路由器.
(1)配置三层交换机SW1
SW1(config-if)#standby 204 preempt
SW1(config-if)#standby 205 preempt
(2)配置三层交换机SW2
SW2(config-if)#standby 204 preempt
SW2(config-if)#standby 205 preempt
4.3.4配置接口跟踪
当三层交换机SW1或SW2的重要接口发生故障时(例如上行链路接口),由于HSRP无法感知到这种变化,SW1仍然是VLAN204网段的活跃路由器,SW2仍然是VLAN205网段的活跃路由器,但是此时校园网部分用户已经无法正常访问互联网资源了.举个例子来说,如果三层交互机SW1的f1/0 接口发生故障,那么SW1至R1的路由将不可达,而来自VLAN204网段用户的数据包仍由SW1来进行转发,这必然会造成校园网VLAN204网段用户无法正常访问互联网资源.为了避免这种情况的发生,我们在HSRP组中启用接口跟踪技术.
(1)配置三层交互机SW1
SW1(config-subif)#standby 204 track f1/0// 当三层交换机SW1 接口f1/0发生故障,SW1在HSRP 204组中的优先级默认降低10,此时备用路由器SW2优先级为197,SW1优先级为190,备用路由器SW2成为HSRP 204组的活跃路由器.
(2)配置三层交互机SW2
SW2(config-subif)#standby 205 track f1/0//当三层交换机SW2接口f1/0发生故障,SW2在HSRP 205组中的优先级默认降低10,此时备用路由器SW1优先级为197,SW2优先级为190,备用路由器SW1成为HSRP 205组的活跃路由器.
4.3.5配置STP[14]
在网络正常情况下,由于三层交换机SW1为VLAN204网段的活跃路由器,SW2为VLAN205网段的活跃路由器,因此我们需要将VLAN204网段的根桥设置为SW1,VLAN205网段的根桥设置为SW2,从而保证活跃路由器和根桥设备的一致性.网桥优先级须设置为4096的倍数,默认优先级为32768.
(1)配置三层交互机SW1
SW1(config)#spanning-tree vlan 204 priority 4096
SW1(config)#spanning-tree vlan 205 priority 12288
(2)配置三层交互机SW2
SW2(config)#spanning-tree vlan 205 priority 4096
SW2(config)#spanning-tree vlan 204 priority 12288
我们以校园网终端计算机C1、C2为例,分别用ping命令和trace命令测试访问教育网服务器地址211.68.190.3的连通性,以及到达此地址的路由过程.
(1)校园网终端计算机C1到教育网服务器IP地址连通性测试
VPCS[1]> ping 211.68.190.3
211.68.190.3 icmp_seq=1 ttl=254 time=93.007 ms
211.68.190.3icmp_seq=2 ttl=254 time=124.003 ms
211.68.190.3icmp_seq=3 ttl=254 time=115.006 ms
VPCS[1]> trace 211.68.190.3
trace to 211.68.190.3, 8 hops max, press Ctrl+C to stop
1 211.68.204.2 62.400 ms 15.600 ms 15.600 ms
2 211.68.192.1 93.600 ms
(2)校园网终端计算机C2到教育网服务器IP地址连通性测试
VPCS[2]> ping 211.68.190.3
211.68.190.3 icmp_seq=1 ttl=254 time=80.007 ms
211.68.190.3icmp_seq=2 ttl=254 time=101.003 ms
211.68.190.3icmp_seq=3 ttl=254 time=124.006 ms
VPCS[2]> trace 211.68.190.3
trace to 211.68.190.3, 8 hops max, press Ctrl+C to stop
1 211.68.205.374.700 ms 13.600 ms 16.500 ms
2 211.68.193.1 83.400 ms
(1)三层交换机SW1上HSRP组工作状态如图3所示.
图3 SW1上HSRP组工作状态
(2)三层交换机SW2上HSRP组工作状态如图4所示.
图4 SW2上HSRP组工作状态
为了节省篇幅我们以校园网VLAN 204网段为例,在各交换机上应用sh spanning-tree valn 204 bri命令查看STP协议工作状态.
(1)三层交换机SW1上STP协议工作状态如图5所示.
图5 SW1上STP协议工作状态
(2)三层交换机SW2上STP协议工作状态如图6所示.
图6 SW2上STP协议工作状态
(3)二层交换机SW3上STP协议工作状态如图7所示.
(4)二层交换机SW4上STP协议工作状态如图8所示.
经测试分析得知,校园网终端计算机C1、C2均能正常访问教育网服务器地址211.68.190.3.HSRP204组的活跃路由器为SW1,备用路由器为SW2.VLAN204网段所属终端计算机访问互联网资源数据包由SW1进行转发;HSRP205组的活跃路由器为SW2,备用路由器为SW1,VLAN205网段所属终端计算机访问互联网资源数据包由SW2进行转发,从而实现了校园网网关冗余和流量负载均衡.VLAN204网段的根桥为SW1,其端口f1/1、f1/2、f1/3均为指定端口,当前三个端口都处于流量转发状态.三层交换机SW2的端口f1/1为根端口,f1/2与f1/3端口为指定端口,当前三个端口也处于流量转发状态.二层交换机SW3的f0/0端口为根端口,f0/3端口为指定端口,二者处于流量转发状态,f0/1端口即不是根端口又不是指定端口,处于阻塞状态.二层交换机SW4的f0/1端口为根端口,处于流量转发状态,f0/0端口即不是根端口又不是指定端口,处于阻塞状态.STP协议通过在逻辑上阻塞以上端口,从而消除了VLAN204网段二层冗余链路中的环路.
图7 SW3上STP协议工作状态
图8 SW4上STP协议工作状态
为模拟网络故障的发生,我们手动关闭三层交换机SW1.经测试发现校园网终端计算机C1、C2仍然能正常访问教育网服务器地址211.68.190.3.SW2成为HSRP204组和HSRP205组的活跃路由器,VLAN204网段与VLAN205网段所属终端计算机访问互联网资源数据包改由SW2进行转发.以终端计算机C1为例,访问教育网服务器地址211.68.190.3要先经SW2进行数据包的转发,再经路由器R1到达目的地址(如图9所示).VLAN204网段的根桥也由SW1变为SW2,其上f1/1、f1/2、f1/3端口均为指定端口,当前三个端口都处于流量转发状态.二层交换机SW3的f0/1端口为根端口, f0/3端口为指定端口,且都处于流量转发状态.二层交换机SW4的f0/0端口为根端口,f0/3端口为指定端口,处于流量转发状态.由此可见,当三层交换机SW1发生故障,并不会影响校园网用户对互联网资源的访问.
图9 终端计算机C1访问教育网服务器路由过程
为了保证校园网能为广大师生提供实时最优服务,在校园网部署网络冗余架构是一个重要环节,本文给出了基于HSRP协议和STP协议实现校园网网络冗余的详细设计方案,并模拟了网络故障,测试后证明此设计方案可行有效.即使有一台三层交换机不能正常工作,也不会对校园网用户访问互联网资源产生影响.