设为首页 收藏本站
查看: 718|回复: 0

[经验分享] 1、基于CISCO路由器的QOS

[复制链接]

尚未签到

发表于 2018-7-13 11:37:15 | 显示全部楼层 |阅读模式
  1、QOS模型
  尽力而为服务模型(Best-effort)
  集成服务模型(Integrated Services)
  差分服务模型(Differentiated Services)
  2、差分服务模型结构
  3、分类与标记
  标记可以使用IP包头中TOS的高三位(IP优先级)或高六位(DSCP)做标记。
  在R1上将ICMP流量的优先级设置为2,将HTTP流量的DSCP值设置为AF22,其他没匹配到的流量优先级设置为1,在ISP上查看标记是否生效。
  ISP配置如下:
  ip http server
  access-list 100 permit ip any any dscp af22
  access-list 100 permit ip any any precedence 1
  access-list 100 permit ip any any precedence 2
  interface FastEthernet2/0
  service-policy input MARK
  R1配置如下:
  access-list 110 permit icmp any any
  access-list 120 permit tcp any any eq www
  class-map match-all ICMP
  match access-group 110
  class-map match-all WWW
  match access-group 120
  policy-map MARK
  class ICMP
  set precedence 2
  class WWW
  set dscp af22

  class>  set precedence 1
  interface FastEthernet2/0
  service-policy input MARK
  TEST上的测试命令
  ping 33.1.1.1
  telnet 33.1.1.1 80
  查看命令
  show ip access-lists

  show>  show policy-map
  show policy-map interface s0/1
  4、队列技术(拥塞管理)
  队列技术应用于接口的出方向,一个接口只能使用一种队列技术。
  路由器的接口上有一个软件队列和一个硬件队列。数据包先进入软队列,然后使用队列技术对数据包进行调度进入硬件队列,硬件队列始终采用先进先出的方式发送数据包。
  常用的队列技术:FIFO、PQ、CQ、WFQ、LLQ都是CLI工具,而CBWFQ是MQC工具。
  先进先出队列(FIFO)
  优先级队列(PQ)
  自定义队里(CQ)
  加权公平队列(WFQ)
  低延时队列(LLQ)
  实时传输队列(RTP PQ):
  基于类加权公平队列(CBWFQ)
  队列技术三大组件:分类组件、插入丢弃组件、调度组件
  先进先出队列(FIFO)
  默认时:当接口的速度大于2.048Mbps是,路由器采用FIFO进行调度。
  优先级队列(PQ)
  队列数:高、中、普通、低共4个队列
  分类:根据事先分类放入不同队列
  插入丢弃:可以设置队列长度,队列满后,数据包将被尾丢弃
  调度:按照高、中、普通、低的顺序调度,只用高优先级的队列为空才会调度中优先级,依次类推。
  优点:保证高优先数据包优先转发
  缺点:高优先队列不为空,低优先级队列永远得不到转发
  指定不符合任何类型的数据包将进入的队列(默认normal)
  priority-list 1 default high
  根据数据包的入口分类并将其放入到某个队列
  priority-list 1 interface serial 0/0 high
  根据数据包的协议类型分类并将其放入到某个队列
  priority-list 1 protocol ip high tcp telnet
  指定各队列的大小
  priority-list 1 queue-limit 10 10 10 10
  在接口上应用队列
  priority-group 1
  =================================================================
  R1
  =================================================================
  priority-list 1 interface FastEthernet2/0 high
  priority-list 1 protocol ip normal tcp www
  priority-list 1 default low
  priority-list 1 queue-limit 10 20 30 40
  interface Serial0/1
  priority-group 1
  查看接口上的队列
  show int s0/1
  查看队列配置
  show queueing priority
  测试队列是否生效
  debug priority
  show queueing interface s0/1
  自定义队列(CQ)
  队列数:CQ有17个队列,其中队列0为优先级队列。只有队列0为空,才为其他队列服务。
  分类:根据事先分类放入不同队列
  插入丢弃:可以设置队列长度,队列满后,数据包将被尾丢弃
  调度:为第1个队列转发一定字节数的数据包后,就转为为第2个队列转发,依次轮询
  优点:保证每个队列都有被服务的机会
  指定不符合任何类型的数据包将进入的队列(默认队列1)
  queue-list 1 default 1
  根据数据包的入口分类并将其放入到某个队列
  queue-list 1 interface serial 0/0 1
  根据数据包的协议类型分类并将其放入到某个队列
  queue-list 1 protocol ip 1 tcp telnet
  指定每次轮询时各队列被转发的数据包字节数
  queue-list 1 queue 1 byte-count 100
  指定各队列的大小
  queue-list 1 queue 1 limit 100
  指定优先级队列(例如此时为2,则队列0和1都是优先级队列)
  queue-list 1 lowest-custom 2
  在接口上应用队列
  custom-queue-list 1
  =================================================================
  R1
  =================================================================
  queue-list 1 interface FastEthernet2/0 2
  queue-list 1 protocol ip 3 tcp www
  queue-list 1 queue 1 byte-count 100 limit 100
  queue-list 1 queue 2 byte-count 200 limit 200
  queue-list 1 queue 3 byte-count 300 limit 300
  queue-list 1 lowest-custom 4
  interface Serial0/1
  custom-queue-list 1
  查看接口上的队列
  show int s0/1
  查看队列配置
  show queueing custom
  测试队列是否生效
  debug custom-queue
  show queueing interface s0/1
  加权公平队列(WFQ)
  默认时:当接口的速度小于2.048Mbps时,路由器采用WFQ进行调度。
  分类:具有相同协议类型,源IP,目的IP,源端口,目的端口,TOS值的数据包看成一个流,同一个流的数据包将放到一个队列中。
  插入丢弃:队列满后,数据包将执行WFQ丢弃,丢弃最差完成时间的数据包
  调度:先调度最快能转发完毕的数据包,包的大小采用虚拟包大小(虚拟包大小=实际包大小/(IP优先级+1))
  优点:优先级越高、包越小的数据包优先得到转发
  WFQ丢弃机制:(丢弃最差完成时间的数据包)
  HQO(Hold Queue Out Limit):整个WFQ系统所能存放的最大数据包数量,这个值为各队列之和。
  CDT(Congestive Discard Threshold):WFQ丢弃机制的门限值,当各队列数据包数量之和达到CDT就开始丢弃数据包。
  =================================================================
  R1
  =================================================================
  interface Serial0/1
  fair-queue 512 64(指定CDT为512,最大会话数为64)
  hold-queue 1500 out(指定HQO为1500)
  查看接口上的队列
  show int s0/1
  基于类的加权公平队列(CBWFQ)
  分类:允许自定义类,把数据放入不同队列,最多可以定义64个类,不匹配分类的数据放到系统默认类class-default中
  插入丢弃:可以设置队列长度,队列满后,数据包将被尾丢弃
  调度:对每个队列保留指明带宽,每个队列默认采用FIFO调度,但也可以结合WFQ调度。如何保证带宽及各队列数据包如何被调度到硬件队列无从知晓。
  优点:保证流量的最小带宽,而不是限制最多带宽
  =================================================================
  R1
  =================================================================
  access-list 1 permit 192.168.1.100
  access-list 2 permit 192.168.1.1
  class-map match-all 100
  match access-group 1
  class-map match-all 1
  match access-group 2
  policy-map MARK
  class 100
  bandwidth 500
  class 1
  bandwidth 500
  interface Serial0/1
  service-policy output MARK
  查看命令

  show>  show policy-map
  show policy-map interface s0/1
  低延时队列(LLQ)
  LLQ配置类似CBWFQ,调度机制类似PQ。LLQ通常和CBWFQ一起使用。
  =================================================================
  R1
  =================================================================

  class-map match-any>  match ip precedence 5

  class-map match-all>  match protocol telnet

  class-map match-any>  match protocol http
  match protocol ftp
  policy-map MY-POLICY

  >  bandwidth 512

  >  bandwidth 128
  queue-limit 128

  >  priority 128
  interface Serial0/0
  bandwidth 1024
  service-policy output MY-POLICY
  这个例子中结合使用了LLQ和CBWFQ。
  CLASS-MAP3使用LLQ,保证带宽为128kbps,优先于CLASS-MAP1,CLASS-MAP2转发
  CLASS-MAP1,CLASS-MAP2使用WFQ,保证带宽分别为512kbps,128kbps。
  查看命令

  show>  show policy-map
  show policy-map interface s0/0
  RTP优先队列
  RTP优先队列是一种解决语音服务质量的简单技术,期原理就是将承载语音的RTP数据包送入优先级队列使其得到优先转发。
  RTP识别语音的UDP数据包端口,这些数据包通常使用16384~32767的偶数端口发送。
  RTP优先队列可以和前面的任何一种队列包括FIFO、PQ、CQ、WFQ、CBWFQ、LLQ结合使用,但是它的优先级是最高的。即使RTP和LLQ一起使用,RTP的优先级也比LLQ高。
  interface Serial0/0
  ip rtp priority 16384 16383 256
  16384最低UDP端口号,16383端口增量,带宽256kbps
  5、拥塞避免
  随机早期预检测(RED)
  给队列设定两个门限值:最小门限和最大门限,当队列的平均长度小于最小门限时,不丢弃数据包;
  当队列的平均长度在最小门限和最大门限之间时,RED开始随机丢弃数据包;当队列的平均长度大于最高门限时,丢弃尾部所有的数据包。
  加权随机早期预检测(WRED)
  WRED和RED的原理一样,但是WRED可以根据不同的IP优先级或DSCP值,设定不同的最小门限、最大门限和丢弃概率,从而对不同优先级的数据包提供不同的丢弃特性。
  WRED不能和PQ、CQ、WFQ队列同时使用。
  配置基于IP Precedence的WRED
  random-detect
  根据IP优先级设置数据包的最小门限值、最大门限值、丢弃数据包的丢弃概率(该例中概率应该为1/10)
  random-detect precedence 1 10 20 10
  配置基于DSCP的WRED
  random-detect dscp-based
  根据DSCP设置数据包的最小门限值、最大门限值、丢弃数据包的丢弃概率(该例中概率应该为1/10)
  random-detect dscp af22 10 20 10
  设置计算队列平均长度的权重因子(默认值为9)
  random-detect exponential-weighting-constant 9
  查看WRED队列配置
  show queueing int s0/0
  基于流的加权随机早期预检测(FB-WRED)
  WRED中,只用TCP流会对丢包做出反应并降低速率;而UDP等非自适应流并不会对丢包做出反应,因此UDP等非自适应流在拥塞时发送分组的速率将比自适应流高得多。
  FB-WRED对WRED除了改进,他对占用队列资源多余公平份额的流将得到惩罚。
  FB-WRED根据流和IP优先级(或者DSCP值)把到达的数据包放到不同的队列中,并且计算每个活动流的公平队列资源份额(队列长度/活动流的数目),
  对于占用队列资源多余公平份额的流将得到惩罚。方法是通过降低队列的WRED最大门限值来加大分组的丢弃概率。
  新的最大门限值=最小门限值+{(最大门限值-最小门限值)/ 2}
  配置FB-WRED(必须先配置WRED)
  random-detect flow
  设置平均深度因素(即放大因子,默认值为4)
  random-detect flow average-depth-factor 4
  设置基于流的WRED的数据流数目
  random-detect flow count 32
  查看WRED队列配置
  show queueing int s0/0
  基于类的加权随机早期预检测(CB-WRED)
  CB-WRED可以和CBWFQ、Shaping结合,而不能与FB-WRED、LLQ、Policing结合。
  class-map match-any HTTP-FTP
  match protocol http
  match protocol ftp
  policy-map MY-POLICY

  >  bandwidth 512
  random-detect
  random-detect precedence 0   20    30    10
  interface Serial0/0
  bandwidth 1024
  service-policy output MY-POLICY
  此例启用基于优先级的WRED与CBWFQ结合。
  查看命令

  show>  show policy-map
  show policy-map int s0/0
  6、流量整形(Shaping)
  流量整形的目的是平滑流量,流量整形会把超出规定速率的数据缓冲起来,不是丢弃,链路的平均流量速率较大,但会造成数据的延时加大或延时抖动。
  令牌桶的相关名词:
  CIR:承诺信息速率,单位bps
  PRI:承诺信息速率,单位bps
  Bc:正常突发量的大小,单位为字节
  Be:超额突发量的大小,单位为字节
  Tc: 时间间隔
  CIR=Bc/Tc
  当个令牌桶,桶的大小为Bc+Be;
  令牌以CIR的速率添加到令牌桶中;
  当数据包要转发出去,如果无法从令牌桶中获取足够的令牌,就将数据包缓存起来,都有足够的令牌在发送。数据包发送的平均速率不超过CIR,但某时刻可以一超过CIR的速率Bc+Be发送。
  GTS通用流量整形实在软件队列之前又增加一个队列来实施,这一队列采用的是WFQ。GTS可以与FIFO、PQ、CQ、WFQ配合使用。
  CLI配置法
  interface Serial0/1
  traffic-shape rate 8000 1500 1000 1000
  MQC配置法
  access-list 100 permit icmp any any
  class-map match-all ICMP
  match access-group 100
  policy-map TEST
  class ICMP
  shape average 8000 1000 1000
  interface Serial0/1
  service-policy output TEST
  查看命令
  show traffic-shape
  show traffic-shape statistics
  7、流量监管(Policing)
  流量监管可以应用在接口的出和入两个方向上。分为单桶单速双色、双桶单速三色、双桶双速三色。
  流量监管的目的是限速,流量监管会把超出规定速率的丢弃或者标记便于后继的路由器进行处理,链路的流量速率有较大起伏,整体平均带宽低,但是不会造成数据包延时增加。
  令牌桶的相关名词:
  CIR:承诺信息速率,单位bps
  PRI:承诺信息速率,单位bps
  Bc:正常突发量的大小,单位为字节
  Be:超额突发量的大小,单位为字节
  Tc: 时间间隔
  CIR=Bc/Tc
  单桶单速双色
  单个令牌桶,桶的大小为Be,而不是Bc+Be;
  令牌以CIR的速率添加到令牌桶中;
  当数据包要转发出去,如果可以从令牌桶中获取足够的令牌,则成为Conforn,此时桶内的令牌数为之前的令牌数减去数据包的大小;如果如法从令牌桶中获取足够的令牌,则成为Exceed,此时桶内的令牌数不变。
  CLI配置法
  interface Serial0/1
  rate-limit output 8000 1500 2000 conform-action transmit exceed-action drop
  MQC配置法
  access-list 100 permit icmp any any
  class-map match-all ICMP
  match access-group 100
  policy-map TEST
  class ICMP
  police cir 8000 bc 1500 be 1000
  conform-action transmit
  exceed-action drop
  interface Serial0/1
  service-policy input TEST
  查看命令

  show>  show policy-map
  show policy-map int s0/0
  双桶单速三色
  两个令牌桶,TB1的大小为Bc,TB2的大小为Be;
  令牌以CIR的速率添加到令牌桶中TB1中,当TB1满后,令牌溢出到TB2中。
  当数据包要转发出去,如果可以从令牌桶TB1中获取足够的令牌,则成为Conforn,此时TB1的令牌数为之前的令牌数减去数据包的大小,TB2的令牌数不变;
  当数据包要转发出去,如果无法从令牌桶TB1中获取足够的令牌,但能从令牌桶TB2中获取足够的令牌,则成为Exceed,此时TB1的令牌数不变,TB2的令牌数为之前的令牌数减去数据包的大小;
  当数据包要转发出去,如果无法从令牌桶TB1中获取足够的令牌,也无法从令牌桶TB2中获取足够的令牌,则成为Violate,此时TB1、TB2的令牌数不变。
  access-list 100 permit icmp any any
  class-map match-all ICMP
  match access-group 100
  policy-map TEST
  class ICMP
  police cir 8000 bc 1500 be 1000
  conform-action transmit
  exceed-action drop
  violate-action drop
  interface Serial0/1
  service-policy input TEST
  查看命令

  show>  show policy-map
  show policy-map int s0/0
  双桶双速三色
  两个令牌桶,TB1的大小为Be,TB2的大小为Bc;
  令牌以PIR的速率添加到令牌桶中TB1中,以CIR的速率添加到令牌桶中TB2中,PIR>=CIR;
  当数据包要转发出去,如果可以从令牌桶TB1中获取足够的令牌,也可以从令牌桶TB2中获取足够的令牌,则成为Conforn,此时TB1的令牌数为之前的令牌数减去数据包的大小,TB2的令牌数也为之前的令牌数减去数据包的大小;
  当数据包要转发出去,如果可以从令牌桶TB1中获取足够的令牌,但不能从令牌桶TB2中获取足够的令牌,则成为Exceed,此时TB1的令牌数为之前的令牌数减去数据包的大小,TB2的令牌数不变;
  当数据包要转发出去,如果无法从令牌桶TB1中获取足够的令牌,也无法从令牌桶TB2中获取足够的令牌,则成为Violate,此时TB1、TB2的令牌数不变。
  access-list 100 permit icmp any any
  class-map match-all ICMP
  match access-group 100
  policy-map TEST
  class ICMP
  police cir 8000 bc 1500 pir 8000 be 1500
  conform-action transmit
  exceed-action drop
  violate-action drop
  interface Serial0/1
  service-policy input TEST
  查看命令

  show>  show policy-map
  show policy-map int s0/0

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-536765-1-1.html 上篇帖子: 升级Cisco IOS及备份 下篇帖子: cisco netflow配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表