关键业务数据包优先发送及其在Cisco路由器中的实现

文章出处:Linux 宝库 作者:linux宝库 发布时间:2007-03-12

  企业对网络性能的需求
  
  在全球信息化进程明显加快,人类社会从工业社会向信息社会演进的今天,企业对网络性能的要求与日俱增。企业要在网络上传输各类数据,包括日常业务数据包、电子文件、数据仓库数据、图形图象数据等,网络管理员开始发现企业有限的网络带宽经常发生网络阻塞和拥挤。一般而言,网络上传输的数据可分为两大类:一类是关键业务数据,另一类是非关键业务数据,网络带宽必须优先满足关键业务数据的传输。也就是说网络设备要能够区分来自不同应用的数据包,然后优先发送来自关键业务的数据包,在网络带宽允许的条件下,再发送来自非关键业务的数据包,从而达到网络有效合理地使用。
  下面以Cisco路由器为例,分析关键业务数据包优先发送的机制。
  
  Cisco路由器中的优先机制
  
  在Cisco路由器优先机制中,优先级别可分为High、Medium、Normal、Low四级,当不同级别的数据包需要同时从一个物理通信口出去,发生抢占带宽时,出现“插队”现象:High优先级别的数据包将优先于其它级别的数据包而被发送,Medium优先级别的数据包将优先于Normal和Low级别的数据包而被发送,依此类推;同级别的数据包发生抢占带宽时,出现“管道”现象:先进先发,后进后发。
  配置时,首先通过路由器配置命令priority-list定义优先组号,定义优先组号有四种方式,如表1:
  
  其次,使用路由器配置命令priority-group设置特定通信口符合某一优先组号。
  示 例
  设有两台Cisco路由器A和B,各有三个以太口e0、e1、e2和一个高速同步串口s0,其连接方式如上图:
  在路由器B上,假设以太口e0的IP地址为98.1.1.1、e1的IP地址为98.1.1.2、e2的IP地址为98.1.1.3,它们分别通过以太网与相应的前置机相连;同步串口s0的IP地址为202.1.1.1;子网掩码全部为255.255.255.0。
  在路由器A上,假设以太口e0的IP地址为98.1.1.11、e1的IP地址为98.1.1.12、e2的IP地址为98.1.1.13,它们分别通过以太网与相应的服务器相连;同步串口s0的IP地址为202.1.1.11;子网掩码全部为255.255.255.0。
  业务应用前置机用于完成该企业的关键业务,它要时时地与业务应用服务器交换数据,该应用模式是基于TCP/IP协议的C/S模式,其端口号是3333。
  telnet前置机用于用telnet命令访问telnet服务器。
  ftp前置机用于用ftp命令从ftp服务器获取文件。
  如此,Router A 和 Router B 的通常配置为:
  Router A:
  Current configuration:
  !
  interface Ethernet0
   ip address 98.1.1.11 255.255.255.0
  !
  interface Ethernet1
   ip address 98.1.1.12 255.255.255.0
  !
  interface Ethernet2
   ip address 98.1.1.13 255.255.255.0
  !
  interface Seria10
   ip address 202.1.1.11 255.255.255.0
  !
  router eigrp 1
  network 98.1.1.0
  network 202.1.1.0
  !
  snmp-server community public RO
  snmp-server community private RW
  !
  end
  Router B:
  Current configuration:
  !
  interface Ethernet0
  ip address 98.1.1.1 255.255.255.0
  !
  interface Ethernet1
   ip address 98.1.1.2 255.255.255.0
  !
  interface Ethernet2
   ip address 98.1.1.3 255.255.255.0
  !
  interface Seria10
   ip address 202.1.1.1 255.255.255.0
  !
  router eigrp 1
  network 98.1.1.0
  network 202.1.1.0
  !
  snmp-server community public RO
  snmp-server community private Rw
  !
  end
  要求:由于DDN专线的速度有限,因此必须使用路由器的优先机制来合理使用DDN。希望把业务应用数据包的优先发送权设为high,telnet数据包的优先权设为medium,ftp数据包的优先权设为low,其它数据包设为normal。下面将通过三个例子来说明满足该要求的各种方法。
  例1:使用Priority-list list-number interface interface-type interface-number {high|medium|normal|low}命令设置数据包的优先级别。为满足上述要求增加如下设置:
  在Router A 和 Router B上分别作如下配置:首先分别对Ethernet0、Ethernet1、Ethernet2、Seria10口配置,加上priority-group 1,然后在公共配置加上:
  Priority-list 1 interface Ethernet 0 high
  Priority-list 1 interface Ethernet 1 medium
  Priority-list 1 interface Ethernet 2 low
  Priority-list 1 default normal
  例2:使用Priority-list list-number protocol protocol-name {high|medium|normal|low}queue-keywork keyword-value 命令设置数据包的优先级别。
  在该命令中,protocol-name 可取下列值之一:arp、bridge、cdp、compressedtcp、ip、llc2、pad、snapshot,这里假设取ip;对应ip,queue-keywork可取下列值之一:fragments、gt、list、lt、tcp、udp、,其中gt、lt是按ip包的大小包来设置,list是按ip访问列表来设置,tcp、udp是按ip端口号来设置,是对所有的ip包来设置,这里假设取tcp,对应tcp,keyword-value是端口号(port number)。为满足上述要求增加如下设置:
  在Router A 和Router B 上分别作如下配置:首先分别对Ethernet0、Ethernet1、Ethernet2、 Seria10口配置,加上priority-group 1,然后在公共配置加上:
  Priority-list 1 protocol ip high tcp 3333
  Priority-list 1 protocol ip medium tcp telnet
  Priority-list 1 protocol ip low tcp ftp
  Priority-list 1 default normal
  例3:使用Priority-list list-number queue_limit high-limit medium-limit normal-limit low-limit命令设置数据包的优先级别。
  该命令比较简单,首先用queue-list按要求定义四个队列,假设队列1是业务应用包、队列2是telnet包、队列4是ftp包、队列3是其它包,这样为满足上述要求增加如下设置:
  在 Router A 和 Router B 上分别作如下配置:首先分别对Ethernet0、Ethernet1、Ethernet2、Seria10口配置,加上priority-group 1,在公共配置加上:
  Priority-list 1 queue_limit 1 2 3 4
  
  概 述
  
  在具体的配置中,由于Cisco IOS 版本的不同,上述路由器的优先机制不见得全部有效,应根据实际测试效果选用不同的优先机制,还可使用不同优先机制的组合来构成更有效的路由器优先机制。