1、CAR
只能对IP流量限速。
CAR不支持快速以太网信道(fast etherchannel)。
CAR不支持隧道接口。
CAR不支持ISDN PRI接口。
案例1:
对IP优先级为3的出站流量进行限速:
interface serial 1
ip addr 10.0.0.1 255.255.255.252
rate-limit output access-group rate-limit 1 20000000 24000 32000 conform-action transmit exceed-action drop
access-list rate-limit 1 3
案例2:
对IP DSCP值为1的出站流量进行限速:
interface serial 1
ip addr 10.0.0.1 255.255.255.252
rate-limit output dscp 1 20000000 24000 32000 conform-action transmit exceed-action drop
对匹配192.168.0.0/24的出站流量进行限速:
interface serial 1
ip addr 10.0.0.1 255.255.255.252
rate-limit output access-group 1 20000000 24000 32000 conform-action transmit exceed-action drop
access-list 1 permit 192.168.0.0 0.0.0.255
monitor CAR
一些辅助性的命令:
show access-list rate-limit //查看限速ACL
show interface seiral 0/1 rate-limit //查看接口的限速信息
2、IP Precedence and IP DSCP Marking
ip prec占用了TOS字段的3个位(即有8个值);而IP DSCP占用了TOS字段的6个位(即有64个值)。因此后者相当于前者的扩展,但是不能同时设置这两种值,如果同时设置了这两种值,那么只有IP DSCP的值生效。
COS VALUE MARKING
COS是基于2层的标记方式,可以设置8个值对帧进行分类,路由器能够识别帧头部中的COS值并对数据包进行分类。
QOS GROUP VALUE MARKING
还可以把组ID和数据包进行关联,这种分类方式只能对进站的数据包进行分类,而不能对出站的数据包进行分类,可以设置100个组ID。
3、configuring class-based packet marking
配置基于分类的数据包标记的步骤如下:
定义class map:
router(config)#class-map [match-all|match-any] {map-name}
定义匹配语句:
router(config-cmap)#{condition}
match access-group {ACL}
match protocol {protocol}
match input-interface {interface}
match qos-group {group id}
match destination-address {mac mac-address}
match source-address {mac mac-address}
match ip {dscp dscp}
match ip {precedence precedence}
match class-map {map-name}
match vlan {vlan-id}
设置policy map
router(config)#policy-map {policy-name}
调用class map
router(config-pmap-c)#{action}
set ip {precedence precedence}
set ip {dscp dscp}
set qos-group {group id}
set cos {cos}
案例1:
把来自192.168.10.0/24的出站telnet流量的IP优先级设置为5,其他的出站流量的IP优先级设置为1:
access-list 133 permit tcp 192.168.10.0 0.0.0.255 any eq telnet
class-map match-all telnet
match access-group 133
policy-map xxxx
class telnet
set ip precedence 3
class class-default
set ip precedence 1
int s0/1
ip addr 10.0.0.1 255.255.255.252
service-policy output xxxx
verifying the class-based packet marking feature
一些辅助命令
show policy-map [policy-name] //查看policy map
show policy-map interface serial 0/1 //查看接口的policy-map信息
4、NBAR(Network-based application recognition)
基于网络的应用程序识别(NBAR)可以对使用动态分配TCP/UDP端口号的应用程序和HTTP流量等进行分类,在使用NBAR的时候要先启用CEF特性。
数据包描述语言模块(PDLM)从路由器的闪存里加载,用于在不使用新的CISCO IOS软件,或重启路由器的情况下对新的协议或应用程序进行识别。
限制:
NBAR不能在以下几种逻辑接口上使用:
快速以太网信道。
使用了隧道或加密技术的接口。
SVI。
拨号接口。
多链路PPP(MLP)
NBAR不支持多于24个的并发URL,HOST或MIME的匹配类型。
不支持超过400字节的URL匹配。
不支持非IP流量。
不支持组播或其他非CEF的交换模式。
不支持被分片的数据包。
不支持源自或去往运行NBAR的路由器的IP流量。
配置NBAR:
启用CEF特性
ip cef
把流量分类,定义class map
class-map [match-all|match-any] {map-name}
定义NBAR要匹配的协议:
match protocol {protocol}
设置policy map
policy-map {policy name}
调用class map
class {class-map}
设置策略
{action}
把策略应用在接口上
service-policy {input|output} {policy-map}
案例1:
用NBAR识别BitTorrent程序流量
a、加载bittorrent.pdlm到路由器闪存里:
ip nbar pdlm flash://bittorrent.pdlm
b、定义class map,识别bittorrent程序流量,并对进站的bittorrent程序流量做出丢弃策略:
ip cef
class-map bittorrent
match protocol bittorrent
policy-map drop-bittorrent
class bittorrent
drop
interface serial 0
ip addr 192.168.0.1 255.255.255.0
service-policy input drop-bittorrent
案例2:
用NBAR对进站的HTTP流量下载进行限速,速率为100Kbps,下载的图像格式包括jpg,jpeg和gif
ip cef
class-map match-all HTTP
match protocol http url "*.jpeg|*.jpg"
match protocol http url "*.gif"
policy-map xxxx
class HTTP
policy 100000 conform-action transmit exceed-action drop
interface serial 0/1
ip addr 10.0.0.1 255.255.255.252
service-policy input xxxx
案例3:
用NBAR来防止红色代码(code red)和尼姆达(nimda)蠕虫病毒:
ip cef
class-map match-all DENY-ATTACK
match protocol http url "*.ida*"
match protocol http url "*cmd.exe*"
match protocol http url "*root.exe*"
match protocol http url "*readme.eml*"
policy-map xxxx
class DENY-ATTACK
drop
interface serial 0/1
ip addr 10.0.0.1 255.255.255.252
service-policy input xxxx
verifying traffic policy configuration
show class-map [map-name] //查看流量分类信息
show policy-map [policy-name] //查看policy map
show policy-map interface [interface] //查看接口的policy map信息
show ip nbar pdlm //显示NBAR所使用的PDLM
show ip nbar port-map //显示NBAR使用的协议到端口号的映射信息