李春平
(广东白云学院大数据与计算机学院,广州 510000)
HSRP(hot standby router protocol)即热备份路由器协议,是思科专有协议,为IPv4 主机提供第一跳冗余。所谓第一跳冗余是指在末节网络中为用户主机提供网关冗余。HSRP 是实现第一跳冗余的专有协议,它的主要原理是将多个三层设备(路由器或三层交换机)关联在一起组成一个虚拟的路由器,用虚拟路由器的IP 充当网关。当有数据包需要转发时,活动的HSRP路由器将承担路由转发功能,向本地网络中的用户主机提供默认网关服务。如果活动路由器不能正常工作时,备用路由器将自动激活,接管活动路由器的角色,用户不需要对主机进行任何配置更改。
在网络中,链路上会承载不同的用户、不同的业务、不同的工作任务形成的数据流量。负载均衡是将这些数据流量均摊到不同的链路单元上操作执行,实现数据流的协同处理,以此提高网络承载能力,增加数据吞吐量,加快响应速度,增强网络的灵活性和可用性。
在不同的RSTP 快速生成树协议类型中,PVST+协议是思科专有协议,它支持在每个VLAN 上启用RSTP,可以为不同的VLAN 组配置2个或更多根交换机,并利用冗余链路实现负载均衡。
以一个中小型局域网为例,该网络按照典型的网络设计原则进行分层。接入层交换机收集来自用户终端的数据流量,并将响应数据流返回给用户。中间通过汇集层交换机进一步汇聚流量,再往上通过核心层交换机连接到边界路由器,边界路由器通过Internet 接入网再连接到外网。中间的汇聚层由具有路由功能的三层交换机担任数据流转发任务。在汇聚交换机上,为了防止单点链路故障,配备了双通道,即由两台三层交换机组成。同时,为了防止环路,需要启用生成树协议。双通道中,采用HSRP热备份协议实现冗余路由,为了提高链路利用率和数据同行效率,双通道可同时工作,承担数据流的传输,实现负载均衡。
网络拓扑由3 台三层交换机、1 台路由器、1台服务器、若干台终端客户机组成,采用以太网形式组网。拓扑设计如图1所示。
图1 网络拓扑图
根据网络拓扑图设计,参照各设备的邻居关系,建立拓扑数据库,如表1所示。
表1 拓扑数据库
网络中VLAN 规划、RSTP 优先级、HSRP参数及状态如表2所示。
表2 VLAN规划及相关参数
路由器及终端客户机配置参数如表3所示。
表3 路由器及终端客户机IP地址参数
2.1.1 VTP的作用
在大型的园区网中,网络拓扑较为复杂,在进行网络规划时,需要将网络进行逻辑分段,根据组织结构或不同功能需求划分不同的VLAN,以方便网络管理和提高网络安全性。由于在接入层和汇聚层涉及到的交换机较多,如果在每台设备上手工去划分VLAN,不仅会给网络工程师带来工作量增加的困扰,同时也可能因配置错误,导致全网地址规划一致性出现冲突。因此,在VLAN 配置时引入VTP 机制,可有效解决这一类问题。
VTP 可以实现VTP 域内VLAN 的同步,以client-server 的模式工作。在服务器上配置的VLAN信息,可以完整地传递给VTP域内的所有处于客户机工作模式的交换机,从而减轻VLAN的重复配置形成的工作量。VTP 服务器维护整个网络上同一个VTP 域的VLAN 的添加和重命名工作,确保配置的一致性。
2.1.2 配置VTP
VTP 的配置主要包括定义VTP 域、版本号、工作模式、密码等。本例中,域名设置为byxy,版本号为2,S1-lcp 交换机工作在服务器模式,S2-lcp、S3-lcp交换机工作在客户机模式,密码统一设置为123456。
(1)S1-lcp交换机作为VTP服务器
S1-lcp(config)#vtp domain byxy
S1-lcp(config)#vtp version 2
S1-lcp(config)#vtp mode server
S1-lcp(config)#vtp password 123456
(2)S2-lcp交换机作为VTP客户端
S2-lcp(config)#vtp domain byxy
S2-lcp(config)#vtp mode client
S2-lcp(config)#vtp password 123456
(3)S3-lcp交换机作为VTP客户端
S3-lcp(config)#vtp domain byxy
S3-lcp(config)#vtp mode client
S3-lcp(config)#vtp password 123456
2.1.3.配置trunk
S1-lcp、S2-lcp、S3-lcp 交换机之间的链路设置为TRUNK 中继链路模式,VLAN 封装格式为dot1q 即802.1q,端口禁止协商,防止链路自动协商为TRUNK模式。
(1)S1-lcp交换机配置
S1-lcp(config)#interfaceerface range f0/23-24
S1-lcp(config-if-range)# switchport trunk encapsulation dot1q
S1-lcp(config-if-range)# switchport mode trunk
S1-lcp(config-if-range)# switchport trunk native vlan 199
S1-lcp(config-if-range)# switchport nonegotiate
(2)S2-lcp交换机配置
S2-lcp(config)#interfaceerface range f0/22,f0/24
S2-lcp(config-if-range)# switchport trunk encapsulation dot1q
S2-lcp(config-if-range)# switchport mode trunk
S2-lcp(config-if-range)# switchport trunk native vlan 199
S2-lcp(config-if-range)# switchport nonegotiate
(3)S3-lcp交换机配置
S3-lcp(config)#interfaceerface range f0/22-23
S3-lcp(config-if-range)#switchport trunk encapsulation dot1q
S3-lcp(config-if-range)# switchport mode trunk
S3-lcp(config-if-range)# switchport trunk native vlan 199
S3-lcp(config-if-range)# switchport nonegotiate
配置完成后,可在交换机里查看端口的TRUNK 模式。使用show interfaceerfaces trunk 命令查看S1-lcp 交换机的端口TRUNK 模式参数与状态如下:
(4)查看端口TRUNK
S1-lcp#show interfaceerfaces trunk
Port Mode Encapsulation Status Native vlan
Fa0/23 on 802.1q trunking 199
Fa0/24 on 802.1q trunking 199
Port Vlans allowed on trunk
Fa0/23 1-1005
Fa0/24 1-1005
2.1.4 VTP服务器上创建VLAN
S1-lcp 交换机已经配置VTP 服务器,作为主控节点,为全网VLAN 创建、修改和重命名提供服务,确保VLAN配置一致性。
S1-lcp(config)#vlan 2
S1-lcp(config-vlan)#name V2
S1-lcp(config-vlan)#exit
S1-lcp(config)#vlan 3
S1-lcp(config-vlan)#name v3
S1-lcp(config-vlan)#exit
S1-lcp(config)#vlan 10
S1-lcp(config-vlan)#name v10
S1-lcp(config-vlan)#exit
S1-lcp(config)#vlan 20
S1-lcp(config-vlan)#name v20
S1-lcp(config-vlan)#exit
其它交换机配置为同一域名内的客户端,自动接受VTP 服务器的VLAN 配置,因此不需要在客户端上做VLAN 配置。在S3-lcp 交换机上检验VTP 状态,显示为byxy 域内的一台客户端。
S3-lcp#show vtp status
VTP Version capable:1 to 3
VTP version running :2
VTP Domain Name:byxy
VTP Pruning Mode:Disabled
VTP Traps Generation:Disabled
Device ID:00D0.BA44.9200
Configuration last modified by 0.0.0.0 at 3-1-93 01:00:53
Feature VLAN:
--------------
VTP Operating Mode:Client
Maximum VLANs supported locally:1005
Number of existing VLANs:9
Configuration Revision:11
MD5 digest: 0x1F 0x75 0xB7 0x77 0x2C 0xC8 0x0B 0xBE 0xF9 0x20 0x16 0xF6 0x8F 0x11 0x8F 0x57
在S3-lcp 交换机上检查VLAN 的摘要信息,显示VLAN2、VLAN3、VLAN10、VLAN20 已经创建好了。
2.1.5 VLAN端口划分
为VLAN 添加接口成员,设置接口模式为访问(access)模式。
(1)S1-lcp交换机配置
S1-lcp(config)#interface f0/1
S1-lcp(config-if)#switchport mode access
S1-lcp(config-if)#switchport access vlan 10
(2)S2-lcp交换机配置
S2-lcp(config)#interface f0/1
S2-lcp(config-if)#switchport mode access
S2-lcp(config-if)#switchport access vlan 20
(3)S3-lcp交换机配置
S3-lcp(config)#interface f0/1
S3-lcp(config-if)#switchport mode access
S3-lcp(config-if)#switchport access vlan 2
S3-lcp(config-if)#exit
S3-lcp(config)#interface f0/2
S3-lcp(config-if)#switchport mode access
S3-lcp(config-if)#switchport access vlan 3
(4)查看VLAN摘要信息
从VLAN 摘要信息里可以看出,VLAN2和VLAN3里已经有活动成员了。
2.1.6 配置SVI
参照前面表2 VLAN 规划及相关参数配置里的内容,配置交换机各个虚拟接口即VLAN 的IP地址和子网掩码参数。
(1)S1-lcp交换机配置
S1-lcp(config)#interface vlan 10
S1-lcp(config-if)#ip address 10.45.12.2 255.255.255.0
S1-lcp(config-if)#exit
S1-lcp(config)#interface vlan 2
S1-lcp(config-if)#exit
S1-lcp(config)#interface vlan 3
S1-lcp(config-if)#ip address 10.45.3.252 255.255.255.0
S1-lcp(config-if)#exit
(2)S2-lcp交换机配置
S2-lcp(config)#interface vlan 20
S2-lcp(config-if)#ip address 10.45.13.2 255.255.255.0
S2-lcp(config-if)#exit
S2-lcp(config)#interface vlan 2
S2-lcp(config-if)#ip address 10.45.2.253 255.255.255.0
S2-lcp(config-if)#exit
S2-lcp(config)#interface vlan 3
S2-lcp(config-if)#ip address 10.45.3.253 255.255.255.0
由于网络拓扑中存在冗余链路,如果不加处理,将导致链路形成环路,容易导致重复帧、MAC 地址表不稳定以及形成广播风暴,从而给网络带来不稳定。生成树协议主要用来防止环路的出现。生成树协议会将网络中的冗余链路修剪成一棵树的形态,将冗余链路上的端口阻塞掉,从而避免环路形成对网络带来的不利影响。当主链路上的端口不能正常工作时,备份端口将自动激活变为转发状态,承担链路中的数据帧转发功能。
2.2.1 配置RSTP
采用RSTP 快速生成树协议,以提高收敛速度。使用spanning-tree vlan vlan-id priority value命令配置的作用是将流量在汇聚层分流。本例中,来自VLAN2的流量将通过S1-lcp转发,来自VLAN3 的流量将通过S2-lcp 转发,从而实现负载均衡。同时,在边缘端口上启用了bpdu 防护,该端口在连接PC 时将立即进入转发状态,当该端口连接到其它交换机上时,该端口将被禁止。具体配置如下:
(1)S1-lcp交换机配置
S1-lcp(config)#spanning-tree mode rapid-pvst
S1-lcp(config)#spanning-tree vlan 2 priority 4096
S1-lcp(config)#spanning-tree vlan 3 priority 8192
S1-lcp(config)#interface f0/1
S1-lcp(config-if)#spanning-tree portfast
S1-lcp(config-if)#spanning-tree bpduguard enable
(2)S2-lcp交换机配置
S2-lcp(config)#spanning-tree mode rapid-pvst
S2-lcp(config)#spanning-tree vlan 2 priority 8192
S2-lcp(config)#spanning-tree vlan 3 priority 4096
S2-lcp(config)#interface f0/1
S2-lcp(config-if)#spanning-tree portfast
S2-lcp(config-if)#spanning-tree bpduguard enable
(3)S3-lcp交换机配置
S3-lcp(config)#spanning-tree mode rapid-pvst
S3-lcp(config)#interface ran f0/1-2
S3-lcp(config-if-range)#spanning-tree portfast
S3-lcp(config-if-range)#spanning-tree bpduguard enable
2.2.2 检验生成树参数及状态
RSTP 中端口状态有禁止(discarding)、学习(learning)和转发(forwarding)3种状态。查看S3-lcp 交换机生成树协议状态,可以看到里面相关端口已经处于转发状态了。
本网络中采用RIPV2 动态路由协议实现全网路由分布与自动更新,具体配置过程如下:
2.3.1 各设备RIPV2协议部署
R1-lcp(config)#router rip
R1-lcp(config-router)#version 2
R1-lcp(config-router)#no auto-summary
R1-lcp(config-router)#network 10.45.0.0
S1-lcp(config)#ip routing
S1-lcp(config)#router rip
S1-lcp(config-router)#version 2
S1-lcp(config-router)#no auto-summary
S1-lcp(config-router)#network 10.45.0.0
S2-lcp(config)#router rip
S2-lcp(config-router)#version 2
S2-lcp(config-router)#no auto-summary
S2-lcp(config-router)#network 10.45.0.0
2.3.2 检查路由协议工作状况
R1-lcp#show ip route rip
10.0.0.0/8 is variably subnetted,8 subnets,2 masks
R 10.45.2.0/24[120/1]via 10.45.13.2,00:00:14,GigabitEthernet0/1
[120/1]via 10.45.12.2,00:00:14,GigabitEthernet0/0
R 10.45.3.0/24[120/1]via 10.45.13.2,00:00:14,GigabitEthernet0/1
[120/1]via 10.45.12.2,00:00:14,GigabitEthernet0/0
S1-lcp#show ip route rip
10.0.0.0/24 is subnetted,5 subnets
R 10.45.4.0[120/1]via 10.45.12.1,00:00:20,Vlan10
R 10.45.13.0[120/1]via 10.45.2.253,00:00:17,Vlan2
[120/1]via 10.45.3.253,00:00:17,Vlan3
[120/1]via 10.45.12.1,00:00:20,Vlan10
S2-lcp#show ip route rip
10.0.0.0/24 is subnetted,5 subnets
R 10.45.4.0[120/1]via 10.45.13.1,00:00:22,Vlan20
R 10.45.12.0[120/1]via 10.45.13.1,00:00:22,Vlan20
[120/1]via 10.45.2.252,00:00:28,Vlan2
[120/1]via 10.45.3.252,00:00:28,Vlan3
通过查看路由表,各设备上的路由表已建立,路由表项中的路由是完备的,工作正常。
采用HSRP协议作为冗余路由,实现第一跳冗余路由备份。具体实现过程如下:
(1)S1-lcp交换机配置
S1-lcp(config)#interface vlan 2
S1-lcp(config-if)#standby 2 ip 10.45.2.254
S1-lcp(config-if)#standby 2 priority 105
S1-lcp(config-if)#standby 2 preempt
S1-lcp(config-if)#standby 2 track FastEthernet0/1
S1-lcp(config)#interface vlan 3
S1-lcp(config-if)#standby 3 ip 10.45.3.254
S1-lcp(config-if)#standby 3 preempt
(2)S2-lcp交换机配置
S2-lcp(config)#interface vlan 2
S2-lcp(config-if)#standby 2 ip 10.45.2.254
S2-lcp(config-if)#standby 2 preempt
S2-lcp(config)#interface vlan 3
S2-lcp(config-if)#standby 3 ip 10.45.3.254
S2-lcp(config-if)#standby 3 priority 105
S2-lcp(config-if)#standby 3 preempt
S2-lcp(config-if)#standby 3 track f0/1
(3)查看standby摘要信息
在S1-lcp、S2-lcp 交换机上分别执行show standby brief 命令,查看standby 摘要信息,在S1-lcp交换机上,Vl2被编入第2组虚拟路由器,其优先级为105,处于活动状态,活动路由器为本地,其IP 地址是10.45.2.252,备用路由器为10.45.2.253,虚拟路由器IP 为10.45.2.254;Vl3被编入第3 组虚拟路由器,其优先级为默认100, 处 于 备 用 状 态, 虚 拟 路 由 器IP 为10.45.3.254。而在S3-lcp交换机上,情况正好相反,Vl2 所在的第2 组虚拟路由器优先级比Vl3所在的第3 组虚拟路由器优先级低,因此第2 组处于备用状态,第3组处于活动状态。
在S1-lcp交换机上,第2组虚拟路由器的优先级为105,第3 组虚拟路由器的优先级为默认值100,Grp2 的优先级比Grp3 的优先级高,因此Grp2 处于活动状态,Grp3 处于备用状态。为了测试链路断开,HSRP 的抢占情况,不妨主动将S1-lcp上的f0/1端口关闭。
(1)f0/1 端口关闭之前,查看S1 的standby摘要信息,显示Grp2 处于活动状态,Grp3 处于备用状态。
(2)f0/1 端口关闭之后,再次查看S1-lcp 的standby摘要信息,显示Grp2和Grp3均处于备用状态。
由于VLAN2 的Grp2 上设置了跟踪f0/1 端口的状态,当f0/1 端口关闭时,这个状态变化会被S1-lcp 捕获到,HSRP 的优先级会发生变化,链路断开将使优先级减10,链路重新恢复优先级加10。测试过程表明,Grp2 的状态变成了Standby,即备用状态。
为了继续验证抢占过程,重新激活f0/1 端口,这个时候Grp2 的优先级重新恢复到了105,变成了活动状态,接管了VLAN2 流量的转发任务。
将PC1 的IP 地址和默认网关分别设置为10.45.2.100和10.45.2.254,PC2的IP地址和默认网关分别设置为10.45.3.100和10.45.3.254。
3.2.1 客户端ARP缓存情况
ARP 缓存的作用是,将主机IP 地址和MAC地址建立映射并暂存,当与外部主机通信时,在数据封装时就不需要通过广播去查询IP 地址对应的MAC 地址,从而提高数据封装和发送的速度。
(1)PC1访问服务器
C:>ping 10.45.4.100
Pinging 10.45.4.100 with 32 bytes of data:
Reply from 10.45.4.100:bytes=32 time<1ms TTL=126
Reply from 10.45.4.100:bytes=32 time<1ms TTL=126
Reply from 10.45.4.100:bytes=32 time<1ms TTL=126
Reply from 10.45.4.100:bytes=32 time<1ms TTL=126
(2)查询ARP缓存情况
C:>arp-a
Internet Address Physical Address Type
10.45.2.253 0090.219e.8d01 dynamic
10.45.2.254 0000.0c07.ac02 dynamic
(3)PC2访问服务器
C:>ping 10.45.4.100
Pinging 10.45.4.100 with 32 bytes of data:
Reply from 10.45.4.100:bytes=32 time<1ms TTL=126
Reply from 10.45.4.100:bytes=32 time<1ms TTL=126
Reply from 10.45.4.100:bytes=32 time<1ms TTL=126
Reply from 10.45.4.100:bytes=32 time=1ms TTL=126
(4)查询ARP缓存情况
C:>arp-a
Internet Address Physical Address Type
10.45.3.252 0001.4204.4902 dynamic
10.45.3.254 0000.0c07.ac03 dynamic
通过查询ARP 缓存,两台PC 机里各有两个映射,其中一个IP 地址是虚拟路由器IP,另一个则是虚拟路由器组中的VLAN的IP。
3.2.2 双通道负载均衡检验分析
(1)由于在RSTP 快速生成树协议中对不同的VLAN 设置了不同的优先级,因此,来自不同VLAN 的流量会沿着不同的通道传输。在PC1上使用tracert 跟踪数据包传输路径:
C:>tracert 10.45.4.100
Tracing route to 10.45.4.100 over a maximum of 30 hops:
1 6 ms 0 ms 0 ms 10.45.2.252
2 0 ms 0 ms 0 ms 10.45.12.1
3 0 ms 1 ms 0 ms 10.45.4.100
Trace complete.
通过tracert 跟踪数据包,不难发现,数据包传输路径为PC1→S3-lcp→S1-lcp→R1-lcp→Server0。由于PC1 被分配在VLAN2,因此在链路不发生故障的情况下,来自VLAN2的流量将沿这条路径传输。
(2)再通过PC2 观察,跟踪数据包传输路径:
C:>tracert 10.45.4.100
Tracing route to 10.45.4.100 over a maximum of 30 hops:
1 0 ms 0 ms 0 ms 10.45.3.253
2 0 ms 0 ms 0 ms 10.45.13.1
3 0 ms 0 ms 0 ms 10.45.4.100
Trace complete.
通过tracert 跟踪数据包,不难发现,数据包传输路径为PC2→S3-lcp→S2-lcp→R1-lcp→Server0。由于PC2被分配在VLAN3,因此在链路不发生故障的情况下,来自VLAN3的流量将沿这条路径传输。
上述两台终端主机向同一个目的主机10.45.4.100 发送探测数据包,由于流量来自不同的VLAN,因此数据包分别沿不同的路径传输,抵达目的地,验证了链路上双通道负载均衡的实现。
在部署企业网络时,通常需要考虑到VLAN规划、备份链路、冗余路由以及负载均衡等问题。在具体实施过程中,可采用VTP 对VLAN及其TRUNK 实现配置统一性管理;采用RSTP快速生成树协议解决冗余链路形成的环路问题,同时利用冗余链路实现负载均衡;采用HSRP实现热备份路由,为用户提供透明的冗余路由服务。仿真实验研究表明,文中综合应用HSRP和RSTP 实现双通道负载均衡,获得了较好的应用效果。在中大型园区网中,可以通过部署多通道实现大流量的负载均衡,增加数据处理能力,减少网络拥塞的发生,提高网络使用效率,保证网络的可用性。