Linux提供了一系列可用于修改和调整网络数据包的工具。Linux社区对修改数据包、应用防火墙策略(如netfilter或更古老的ipchains)以及在Linux上运行着的各种各样的网络服务已经非常熟悉。然而,Linux社区内部却很少有人知道Linux的流量控制子系统已经非常成熟,并且有着强大的功能。在Linux社区外,Linux流量控制的功能更是鲜有人知。
本指南将会介绍 流量控制的思想、 方法以及Linux流量控制的组件。同时会提供一些一般性的指导。 . 这份指南是笔者根据LARTC HOWTO、对各种软件项目的研究,以及在LARTC mailing list上的一些重要主题整理而成的。
对于急于实施Linux流量控制的人,建议直接阅读 Traffic Control using tcng and HTB HOWTO何LARTC HOWTO这两份资料。
这份指南的目标读者应该是那些想要了解Linux流量控制和实施细节的网络管理员或具有一定基础的家庭用户。
本指南的读者应该具有一定的Unix操作经验和基本的IP网络知识。如果读者想要实施流量控制,可能还需要具备给内核打补丁,编译和安装内核的能力。 [1]. For users with newer kernels (2.4.20+, see also 第 5.1 节 “内核版本要求”), however, the ability to install and use software may be all that is required. 如果用户使用的内核版本较高(2.4.20+,参考第 5.1 节 “内核版本要求”),用户就不需要具备编译安装内核的能力。
Broadly speaking, this HOWTO was written with a sophisticated user in mind, 虽然可能有些读者已经有过一些实施Linux流量控制的经验,但我还是假设大多数读者之前并没有实施Linux流量控制的经验。
本文在vim下完成,并使用DocBook(version 4.2) 生成。行文样式由 xsltproc 根据 DocBook XSL 和 LDP XSL 样式表进行控制。生成的文件效果和大多数电子版技术文档相同。
强烈建议入门用户先突击学习一下 tc,大致了解它的语法,最后再来重点关注 tcng。tcng 定义了一种全心的语法来描述流量控制结构,初看起来这种语法很难掌握,但熟练之后用户就能很轻松灵活地更改和应用流量控制结构,而且要比直接使用 tc 方便易懂许多。
当情况允许的时候,我会先描述流量控制系统的行为,同时给出用 tc 或 tcng 实现的例子。但我不会把 tc 和 tcng 的例子都列出来,读者应该能从一种例子中触类旁通知道如何使用另一种方法来完成流量控制。
本手册还有不少没有完成的章节,包括下面的一些内容:
有关 GRED、WRR、PRIO 的介绍和图表。
有一些小节需要补充例子。
有关分类器的更具体的介绍。
一个专门讨论如何计算流量的小节。
A section covering meters.
More details on tcng. 有关 tcng 的更多介绍。
因笔者水平有限,文中难免存在错误和不妥之处,欢迎通过电子邮件发送您的意见、更正或者建议。另外,本手册近作为一份指导性的说明,读者在根据本手册的说明进行操作时务必要小心,笔者不承担根据本手册说明进行操作而造成的任何不良后果。