可聚合网络:
语音和视频流量之间共存
带宽缺乏、端到端延迟、抖动延迟、丢包
解决带宽匮乏:
1,更新带宽
2,转发作重要的流量
3,压缩2层
4,压缩3层流
延迟:
1,处理延迟
2,队列延迟
3,串行延迟(8bit转换成一个字节)
4,链路延迟
解决延迟:
1,更新带宽
2,转发重要的流量
3,压缩2层负载
4,压缩ip包头
丢包率:
1,tail drops:超过一定深度队列的数据包被丢弃
1,network audit网络审计
2,business audit商务审计
3,service levels required服务级别
QOS模型分类:
1,尽力而为模型:没有应用QOS服务
2,集成服务模型:应用程序发送程序协议之前,先向网络中发起信令申请服务
3,差分服务模型:对流量进行分类
尽力而为服务
集成服务:有保障、可预期。端到端信令协议。资源预留
1,提供多种服务级别2
2,需要信令协议
3,资源预留协议RSVP
4,使用智能队列
分类:
1,保障速率服务
2,负载控制服务
差分服务:对服务进行分类,不同流量有不同的服务级别
区分服务模型:
在网络边缘对流量分类
DSCP:差分服务代码点:基于每一个数据包的
per-hop behaviors:每跳行为
1,支持各种策略
2,服务和应用分离
3,后向兼容不支持差分服务的节点
4,支持增量部署
DSCP编码地址:
ipv4包头格式:
versionlength tosbyte len id offset ttl proto fcs ipsa ipda data
ip优先级有三个比特。产生八个数值,值越高,优先级越高,只是一个标记方式。
diffserv field:使用ipv4中的tos字段
dscp:使用diffserv field的6bit,用来选举PHB(转发和队列的方法)
per-hop behaviors
1 0 1 1 1 0 DSCP
前三位
000=default(FIFO,tail drop) BE:没有应用差分服务模型
101=expedited forwarding EF
001,010,011,or 100=assured forwarding AF
后三位
000=class selector(IP Precedence) CF
EF:加速转发101110
1,保障最小的转发速率
2,带宽受保障,优先转发
3,带宽分配有管制作用
bits 5 to 7:'101'=5 跟IP的TOS使用一样的
bits 3 to 4:'11'= NO DROP probability
bits 2:'0'
AF:带宽保障100110
1,保障最小的转发速率
DSCP VALUE RANGE:
aaadd0
四类:
af1,af2,af3,af4
class value
af1 001 dd 0
af2 010 dd 0
af3 011 dd 0
af4 100 dd 0
dd值越小被丢弃的可能性越大
af值越大获得的资源越多
CF:XXX000后三位始终为0,与IP tos正好符合
xxx越大获得带宽资源越高
QOS机制:
1,分类:DSCP、MQC
2,标记
3,拥塞管理(队列机制):队列的优先调度;路由器的出接口生效;FIFO/WFQ/CBWFQ/LLQ/PQ/CQ
4,拥塞避免:避免出现tail drop、wred
5,流量管制(限速)与×××;路由器的入接口生效(管制)、路由器的出接口生效(×××)
6,链路有效性:分片、交叉传递、压缩
INPUT INTERFACE:
classify、mark、policing
OUTPUT INTERFACE:
congestion management、mark、congestion avoidance、shaping、policing、compressing、fragmentation and interleaving
QOS实现方式:
1,QOS CLI(重点)
2,auto qos
3,sdm
4,传统QOS命令行:没有统一的模型
QOS CLI:
1,建立模型定义流量分类:CLASS A、CLASS B、CLASS C
定义CLASS MAP,class map没有序列号、大小写敏感、默认是match all
match all:所有条件必须匹配
match any:至少必须匹配一个条件
class-map还可以嵌套
2,构建模块定义策略并指定流量分类到策略
定义POLICY MAP,大小写敏感、最多调用256个class分类、可以嵌套
policy map yy
class xx
bandwidth 1000 保障一兆带宽
class class-default 默认的流量
police 10000
service-policy policy-name 嵌套policy map
3,把策略应用到接口
定义SERVICE POLICY
service-policy {input|output} policy-map-name
分类和标记在链路层的使用
802.1P属于802.1Q标记中的高三位bit(COS)
二层和三层之间的标记位做映射
可以在接口下直接调用rate-limit
int s0/0
rate-limit input|output 。。。
匹配接口MAC地址的ACL
access-list rate-limit 100 XX:XX:XX
PQ
PQ为优先级队列,PQ在发生拥塞时,只有当高优先级的数据全部传完后,才会传送次优先级的数据
但是可以限制每个队列的传输的数据包个数
配置案例:
1,将源IP为20.1.1.0/24的数据放入队列high中
access-list 20 permit 20.1.1.0 0.0.0.255
priority-list 1 protocol ip high list 20
2,将源IP为21.1.1.0/24的数据放入队列medium中
access-list 21 permit 21.1.1.0 0.0.0.255
priority-list 1 protocol ip medium list 21
3,将端口号为TCP 23的数据放入队列normal中
priority-list 1 protocol ip normal tcp 23
4,其他的数据都放入到队列low中
priority-list 1 default low
5,限制每个队列的最大数据包个数
priority-list 1 queue-limit 400 300 200 100
6,应用PQ到接口
int s0/0
priority-group 1
查看PQ参数
show queueing priority
CQ
CQ中有1到16共16个队列,每个队列可以限制可传的数据包总数,但实时数据不能得到保证
当网络发生拥塞时,先传第一个队列中的数据,当传到额定的数据包个数后,再传第二个队列中的数据
0号队列是超级优先级队列,路由器总是先把0号队列中的数据发送完后才处理1到16队列中的数据包
在配置1到16号队列后,用户可以配置每个队列同一时间可以占用接口带宽的比例,相当于限速
配置案例:
1,将源IP为20.1.1.0/24的数据放入队列1中
access-list 20 permit 20.1.1.0 0.0.0.255
queue-list 1 protocol ip 1 list 20
2,将源IP为21.1.1.0/24的数据放入队列2中
access-list 21 permit 21.1.1.0 0.0.0.255
queue-list 1 protocol ip 2 list 21
3,将端口号为TCP 23的数据放入队列3中
queue-list 1 protocol ip 3 tcp 23
4,其他的数据都放入到队列4中
queue-list 1 default 4
5,限制各个队列每次可传的最大字节数。当传到最大字节数后,将转到传递下一个队列
queue-list 1 queue 1 byte-count 100
queue-list 1 queue 2 byte-count 200
queue-list 1 queue 3 byte-count 300
queue-list 1 queue 4 byte-count 400
6,限制各个队列每次可传的最大数据包数。
queue-list 1 queue 1 limit 10
queue-list 1 queue 2 limit 20
queue-list 1 queue 3 limit 30
queue-list 1 queue 4 limit 40
7,应用CQ到接口下
int s0/0
custom-queue-list 1
查看CQ参数
show queueing custom
CBWFQ
系统按照接口所有可用带宽按每个流的IP优先级,公平的分给每一个流
CBWFQ对WFQ进行扩展和优化,就是要为特定的流量划分特定的带宽,让这些特定的流量在分配带宽时,只能从这些划分的特定带宽中分配
配置案例:
1,通过ACL匹配源地址为20.1.1.0/24的流量
access-list 10 permit 20.1.1.0 0.0.0.255
2,通过class-map匹配源地址为20.1.1.0/24的流量
class-map class20
match access-group 10
3,为源地址20.1.1.0/24的流量划分带宽
policy-map policy20
class class20
bandwidth 1000
4,其他所有流量从所有剩余可用带宽中分配
policy-map policy20
class class-default
bandwidth remaining percent 100 使用百分比的方式,必须前面设置带宽的时候也要以百分比方式设置
5,在接口下应用CBWFQ
int s0/0
max-reserved-bandwidth 90 修改接口可用带宽总数
service-policy output policy20
LLQ
LLQ为特定的流量划分特定的带宽,划给特定流量的带宽是绝对能够保证的,无论接口有多繁忙,LLQ中的流量是能够优先传送的,但是这些流量的带宽却不能超过所分配的带宽,如果超过了,也是没关系的,这些超过的流量只有在拥塞时才会被丢弃
配置案例:
1,通过ACL匹配源地址为10.1.1.0/24的流量
access-list 10 permit 10.1.1.0 0.0.0.255
2,通过ACL匹配源地址为20.1.1.0/24的流量
access-list 20 permit 20.1.1.0 0.0.0.255
3,通过class-map匹配源地址为10.1.1.0/24的流量
class-map net10
match access-group 10
4,通过class-map匹配源地址为20.1.1.0/24的流量
class-map net20
match access-group 20
5,使用LLQ分配30 Mbit给源地址为10.1.1.0/24的流量
policy-map band
class net10
priority percent 30 priority为LLQ中的流量分配带宽,percent后的百分比为接口总带宽的百分比
6,使用CBWFQ将剩余可用带宽的50%分配给源地址为20.1.1.0/24的流量
policy-map band
class net20
bandwidth remaining percent 50 remaining percent是从分配给LLQ后剩余带宽分配比例
7,将接口的全部可用带宽该为80Mbit
int s0/0
max-reserved-bandwidth 80
8,应用队列到接口S0/0
int s/0
service-policy output band
只要有CBWFQ,方向只能为out
IP RTP
受RTP保护的数据流,可以在任何流量之前有线传递,即使是LLQ和RTP同时出现的情况下,RTP的流量是优先于LLQ传送的。并不是所有的流量都能受到RTP的保护,只有UDP目标端口号为16384至32767的数据才能得到保护,并且可以随意定义端口号范围
拥塞避免
Tail Drop
当借口发生拥塞时,总是将最后到达的数据包丢弃,直到没有拥塞为止
WRED
当接口发生拥塞时,总是先保证高优先级的重要数据的传递,而丢弃普通的数据
配置:
1,在接口下开启基于IP优先级的WRED
int s0/0
random-detect
2,在接口下开启基于DSCP的WRED
int s0/0
random-detect dscp-based
3,查看WRED
show queueing random-detect
4,配置CBWFQ下的WRED
policy-map WWW
class class-default
bandwidth 100000
random-detect 对所有流量通过命令bandwidth配置了CBWFQ,并通过命令random-detect 开启了基于IP优先级的WRED
WRED-Explicit Congestion Notification
DE