随着网络规模的不断发展,网络流量类型不断增加,网络拥塞,增加转发时延、丢包等,导致业务质量下降甚至不可用情况。要解决这些问题,除了增加网络带宽这样的增加大量网络成本不现实的方法,引入Qos(Quility of Service)技术。
Qos技术可以实现在带宽有限的情况下,对网络流量进行管理,实现不同流量可以获得不同的优先服务。从根本上讲,Qos技术就是想要提高通信质量,提高带宽。减少时延和抖动、降低丢包率。
实验场景:
你是公司的网络管理员。公司网络分成两部分,其中R1与S1在公司总部, R2与S2在公司分部,之间通过专线实现互联。随着网络的发展,内网带宽逐渐增大,而专线的带宽一直没有升级,所以网络中出现了比较严重的重要业务反应较慢,或无法正常使用的情况。 使用QoS的差分服务,你可以调整相应的QoS特性,保证重要的业务数据能更好的发送给目标。 实验中,S3和S4使用NQA相互发送数据,模拟大量数据流的发送。R3、R4 与R5模拟客户端和服务器,测试重要应用是否可以正常使用。
通过NQA分析SLA,模拟数据流量,对具体数据进行分析,在进行Qos服务方法的实施。
本实验介绍四种QoS流量控制方法:
- 配置优先级映射,将不太重要的流量,其DSCP(IP报头字段)优先级映射为BE,不做Qos保证
- 配置流量整形和监管
- 基于队列的拥塞管理与拥塞避免,将不同的流量放入不同的队列,不重要流量放入WFQ队列,高优先级流量放入PQ队列,对队列进行阈值设置。将不重要流量和丢弃模板进行绑定。
- 基于流的拥塞管理与拥塞避免,即使用ACL对流量进行筛选,设置流分类、流行为、流策略,并在接口上应用实现。
基础配置:
步骤一
给所有路由器和交换机S3,S4配置IP地址和掩码。
R1接口S1/0/0的波特率配置为72000,模拟广域网链路因带宽不足出现拥塞的现象(ensp模拟器上启用不了该功能)
波特率:串口通信的数量,即串口通信时每秒钟可以传输多少个二进制位
[R1-Serial1/0/0]baudrate 72000 //配置波特率
IP地址配置略….
步骤二
配置静态路由实现全网互通
[R1]ip route-static 10.0.34.0 255.255.255.0 10.0.12.2
[R2]ip route-static 10.0.145.0 255.255.255.0 10.0.12.1
[R3]ip route-static 0.0.0.0 0.0.0.0 10.0.34.2
[R4]ip route-static 0.0.0.0 0.0.0.0 10.0.145.1
[R5]ip route-static 0.0.0.0 0.0.0.0 10.0.145.1
[S3]ip route-static 0.0.0.0 0.0.0.0 10.0.145.1
[S4]ip route-static 0.0.0.0 0.0.0.0 10.0.34.2
步骤三
配置QNA(使用NQA在网络中产生流量,模拟网络中的数据流量和语音流量)
本实验通过设置NQA测试例中的一些参数来实现两种流量中让任何一种单独存在的情况下
不会产生拥塞,二者共存的情况下回产生拥塞,来模拟实际环境。
网络质量分析NQA(Network Quality Analysis)是一种实时的网络性能探测和统计技术
[S4]nqa-server udpecho 10.0.34.4 6000 //在S4上配置NQA的服务器端,监听的IP地址设为10.0.34.4,UDP端口号为6000
在S3上配置UDP类型的NQA测试例模拟数据流量,其中tos设为28,包大小
为5800字节,包间隔设为1s,周期设为3s,超时设为1s,并开启该测试。
[S3]nqa test-instance admin udp //在NQA源端创建测试例,用户名为admin,实例名udp
[S3-nqa-admin-udp]test-type udp //指定测试类型为udp
[S3-nqa-admin-udp]destination-address ipv4 10.0.34.4 //目的NQA服务器地址10.0.34.4
[S3-nqa-admin-udp]destination-port 6000 //目的端端口号6000
[S3-nqa-admin-udp]datasize 5800 //包大小5800字节
[S3-nqa-admin-udp]interval seconds 1 //包间隔为1s
[S3-nqa-admin-udp]tos 28 //设置tos为28
[S3-nqa-admin-udp]frequency 3 //周期3s
[S3-nqa-admin-udp]timeout 1 //超时1s
[S3-nqa-admin-udp]start now
查看测试结果
[S3]display nqa results test-instance admin udp
1 . Test 2 result The test is finished
Send operation times: 3
Receive response times: 3
Completion:success
RTD OverThresholds number: 0
……
Lost packet ratio: 0 % -->此时不丢包
关闭测试
[S3]nqa test-instance admin udp
[S3-nqa-admin-udp]stop
配置jitter类型的NQA测试例来模拟语音流量,
tos设为46,包大小为90字节,包间隔设为20ms,周期设为3s,超时设为1s,并开启该测试。
[S3]nqa test-instance admin jitter
[S3-nqa-admin-jitter]test-type jitter
[S3-nqa-admin-jitter]destination-address ipv4 10.0.34.4
[S3-nqa-admin-jitter]destination-port 6000
[S3-nqa-admin-jitter]tos 46
[S3-nqa-admin-jitter]datasize 90
[S3-nqa-admin-jitter]interval milliseconds 20
[S3-nqa-admin-jitter]frequency 3
[S3-nqa-admin-jitter]timeout 1
[S3-nqa-admin-jitter]start now
查看Jitter测试结果。
[S3]display nqa results test-instance admin jitter
1 . Test 1 result The test is finished
SendProbe:60
ResponseProbe:60
……
此时不丢包,链路没有产生拥塞。关闭Jitter测试。
[S3]nqa test-instance admin jitter
[S3-nqa-admin-jitter]stop
步骤四
流量控制与服务质量
方法一:配置优先级映射
在R1的接口G0/0/1与s1/0/0上配置信任报文的DSCP的优先级
[R1]interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]trust dscp override //加上override参数,是接下来在R1上配置优先级映射之后,
将DSCP值修改为映射后的值。
[R1-GigabitEthernet0/0/1]interface Serial 1/0/0
[R1-Serial1/0/0]trust dscp
[R1]qos map-table dscp-dscp //配置优先级映射关系,修改默认映射表
[R1-maptbl-dscp-dscp]input 26 output 0 //修改报文优先级为26的映射为0
[R4]ping –tos 26 10.0.34.3 //在R4上使用ping命令产生去往R3的流量,并且将tos设为26。
查看优先级映射信息
[R1]display qos map-table dscp-dscp
方法二 整形与监管
开启S3上的NQA的UDP与jitter测试,模拟公司总部之间72K链路产生拥堵
[S3]nqa test-instance admin udp
[S3-nqa-admin-udp]start now
[S3-nqa-admin-udp]quit
[S3]nqa test-instance admin jitter
[S3-nqa-admin-jitter]start now
[R4]ping -s 700 -c 10 10.0.34.3 //此时在R4上使用ping命令实现模拟去R3的流量,包大小为700字节,发10个包,产生数据
发现此时丢包率特别高,说明链路产生了严重的堵塞,此时R3和R4无法建立正常通信
通过流量监管消除拥塞
[S1]interface GigabitEthernet 0/0/13
[S1-GigabitEthernet0/0/13]Qos lr inbound cir 64 //设置CIR为64kbit/s(CIR,承诺信息速率,即每秒可通过的速率,以bit为单位)
[S1]display qos lr inbound interface GigabitEthernet 0/0/13
GigabitEthernet0/0/13 lr inbound;
Cir:64Kbps,cbs:8000 Byte
测试:
[R4]ping -s 700 -c 10 10.0.34.3 //再次ping验证,此时不丢包
[S3]interface GigabitEthernet0/0/13
[S3-GigabitEthernet0/0/13]undo qos lr outbound //删除S3上的流量整形配置
删除配置之后丢包严重
方法三 基于队列拥塞管理与避免
[R1]drop-profile data //创建wred丢弃模板data
[R1-drop-profile-data]wred dscp //配置基于DSCP优先级进行丢弃
[R1-drop-profile-data]dscp af32 low-limit 50 high-limit 90 discard-percentage 30 //将阀值上限设为90,下限设为50,丢弃概率设为30
[R1]qos queue-profile queue-profile1 // 创建队列模板queue-profile1
[R1-qos-queue-profile-queue-profile1]schedule wfq 3 pq 5 //指定对列的调度算法,设置各自的优先级(pq为优先队列,wfq为加权队列)
[R1-qos-queue-profile-queue-profile1]queue 3 drop-profile data //指定qos的队列配置,将数据流量放入WFQ队列,并和丢弃模板data绑定
[R1]interface Serial 1/0/0
[R1-Serial1/0/0]qos queue-profile queue-profile1 //在R1的S1/0/0上应用队列模板
[R1]display qos queue-profile queue-profile1 //查看配置的队列模板信息
Queue-profile: queue-profile1
Queue Schedule Weight Length(Bytes/Packets) Gts(CIR/CBS)
此时数据流量和语音流量分别使用了QFQ和PQ队列
[R1]display drop-profile data //查看配置的丢弃模板信息
Drop-profile[1]: data
DSCP Low-limit High-limit Discard-percentage
[R1]interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]undo qos queue-profile //删除R1接口S1/0/0上调用的队列模板
方法四 基于流的拥塞管理与避免
现在将R4与分部的客户端R3之间的流量定义为重要流量,以此做Qos保证,使得嘁能够建立正常的通信
[R1]traffic classifier class-ef //创建流分类class-ef
[R1-classifier-class-ef]if-match acl 3001 //匹配ACL3001
[R1-classifier-class-ef]quit
[R1]traffic behavior behavior-ef //创建流行为
[R1-behavior-behavior-ef]queue ef bandwidth 10 //配置队列调度方式为EF,带宽为10kbps
[R1]traffic classifier class-af32 //创建流分类
[R1-classifier-class-af32]if-match dscp af32 //匹配DSCP值为AF32的数据流量
[R1-classifier-class-af32]quit
[R1]traffic behavior behavior-af32 //创建流行为
[R1-behavior-behavior-af32]queue af bandwidth 30 //配置队列调度方式为AF,带宽为30Kbps
[R1-behavior-behavior-af32]drop-profile data //与丢弃模板data绑定
[R1]traffic policy policy-1 //创建流策略policy-1
[R1-trafficpolicy-policy-1]classifier class-ef behavior behavior-ef //关联流分类class-ef
[R1-trafficpolicy-policy-1]classifier class-af32 behavior behavior-af32 //关联流动作behavior-af32
[R1-trafficpolicy-policy-1]quit
[R1]interface Serial 1/0/0
[R1-Serial1/0/0]traffic-policy policy-1 outbound //在R1接口s1/0/0上应用
测试:
[R4]ping -a 10.0.145.4 -s 700 -c 10 10.0.34.3
PING 10.0.34.3: 700 data bytes, press CTRL_C to break
Reply from 10.0.34.3: bytes=700 Sequence=1 ttl=253 time=694 ms
Reply from 10.0.34.3: bytes=700 Sequence=2 ttl=253 time=391 ms
Reply from 10.0.34.3: bytes=700 Sequence=3 ttl=253 time=361 ms
Reply from 10.0.34.3: bytes=700 Sequence=4 ttl=253 time=671 ms
--- 10.0.34.3 ping statistics ---
10 packet(s) transmitted
10 packet(s) received
0.00% packet loss
round-trip min/avg/max = 211/497/694 ms
将R4去往R3的流量设置为EF队列后,现在R4可以与R3建立正常通信。
版权归原作者 妖妖_0 所有, 如有侵权,请联系我们删除。