科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Linux中用Coyote Linux实现流量控制 (1)

Linux中用Coyote Linux实现流量控制 (1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文主要介绍Linux网络流量控制基本原理和路由软件Coyote Linux,并联系实际网络环境,使用Coyote Linux配置路由服务器,利用TC命令进行不同网络流量需求的控制,实现了专业路由器的流量控制功能。

作者:汤建龙 来源:ahcit.com 2007年10月15日

关键字: 操作系统 控制 实现 Linux

  • 评论
  • 分享微博
  • 分享邮件
 

本文主要介绍Linux网络流量控制基本原理和路由软件Coyote Linux,并联系实际网络环境,使用Coyote Linux配置路由服务器,利用TC命令进行不同网络流量需求的控制,实现了专业路由器的流量控制功能。

1 引言

随着计算机应用的普及和Internet的不断发展,计算机网络更广泛的应用到了各行各业,多台计算机共享宽带上网的情况也变得很普遍。现在对于ADSL来说,大都是开启ADSL Modem的路由功能实现宽带共享,对于一些LAN宽带来讲,一般是使用宽带路由器,但是单独购买宽带路由器也是一笔不小开支,而且对网络也不能进行有效实际地控制和管理。利用淘汰下来的旧电脑来做成专业的宽带路由服务器,并且对连网的计算机进行流量控制或网络管理就成了一些网络管理人员的选择。

2 Coyote Linux路由软件

现在网上有很多制作软件宽带路由器的软件,比如一盘秀、网络神牛、FD Linux、LRP(Linux Router Project Linux路由工程)、FLi4L、Freecso、Coyote Linux等,这些软件有一个共同的特点,都是基于Linux,可以在一张软盘上运行。其中Coyote Linux是一个不错的路由软件,俗称“北美小银狼”,这款路由软件是免费的。它是基于Linux 2.4.29 的系统内核,一台486以上,8M内存以上的普通PC,再加两块网卡就可以稳定运行,支持Ethernet (静态的和动态DHCP), PPPoE, PPP拨号连接等上网方式,支持防火墙和QOS流量控制,支持SSH 2.0远程操作和远程web管理等,功能非常强大,和专业路由器相比毫不逊色。

Coyote Linux软件可以到它的官方网站http://www.CoyoteLinux.com下载,现在最新的版本是Coyote Linux 2.24,它提供了一个在windows下运行的向导程序,解压缩后运行coyote.exe,按照制作向导提示根据自己的实际网络情况设置好参数,最后插入空白软盘就可以制作出一张Coyote Linux路由服务器启动软盘。如果参数设置正确的话,用该软盘启动计算机就成了一台宽带路由服务器,内部的多台计算机就可以通过它共享连入Internet。

3 流量控制的基本原理

Linux操作系统中的流量控制器(Traffic Control)主要是通过在输出端口处建立一个队列来实现流量控制。Linux流量控制的基本原理如图1所示。

图1 Linux流量控制的基本原理

接收包从输入接口(Input Interface)进来后,经过流量限制(Ingress Policing)丢弃不符合规定的数据包,由输入多路分配器(Input De-Multiplexing)进行判断选择:如果接收包的目的是本主机,那么将该包送给上层处理;否则需要进行转发,将接收包交到转发块(Forwarding Block)处理。转发块同时也接收本主机上层(TCP、UDP等)产生的包。转发块通过查看路由表,决定所处理包的下一跳。然后,对包进行排列以便将它们传送到输出接口(Output Interface)。一般我们只能限制网卡发送的数据包,不能限制网卡接收的数据包,所以我们可以通过改变发送次序来控制传输速率。Linux流量控制主要是在输出接口排列时进行处理和实现的。

Linux流量控制主要由三大部分来实现:

◆ 队列规则(Queue Discipline)

无论何时,内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的QDisc(排队规则)把数据包加入队列。然后,内核会尽可能多地从QDisc里面取出数据包,把它们交给网络适配器驱动模块。

◆ 分类(Classes)

某些QDisc(排队规则)可以包含一些类别,不同的类别中可以包含更深入的QDisc(排队规则),通过这些细分的QDisc还可以为进入的队列的数据包排队。通过设置各种类别数据包的离队次序,QDisc可以为设置网络数据流量的优先级。

◆ 过滤器(Filters)

filter用于为数据包分类,决定它们按照何种QDisc进入队列。无论何时数据包进入一个划分子类的类别中,都需要进行分类。分类的方法可以有多种,使用filter(过滤器)就是其中之一。使用filter(过滤器)分类时,内核会调用附属于这个类(class)的所有过滤器,直到返回一个判决。如果没有判决返回,就作进一步的处理,而处理方式和QDisc有关。

因此,Linux流量控制主要分为建立队列、建立分类和建立过滤器三个方面。其基本实现步骤为:

(1) 针对网络物理设备(如以太网卡eth0)绑定一个队列QDisc;

(2) 在该队列上建立分类class;

(3) 为每一分类建立一个基于路由的过滤器filter;

(4) 最后与过滤器相配合,建立特定的路由表。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章