为了使内核支持 HTB 和 DSMARK,tc 支持 HTB 和 DSMARK,以及tcng 本身,有一些要求。
具体来说,内核和 tc 中对 HTB 的支持是绝对必要的,这样本教程才可能有用(如果您对此有任何疑问,请参考标题)。严格来说,DSMARK 支持是可选的,尽管某些示例(特别是类选择路径,但也可能是其他示例)可能在没有 dsmark 支持的情况下无法运行。
内核要求非常容易满足。内核 2.4.20 及更高版本包含对 HTB 和 dsmark 的支持,因此只需确保在内核配置的 QoS/公平队列部分中启用了这些选项。有关内核配置中要选择的选项的简要摘要,请访问DiffServ 项目内核配置说明。
对于低于 2.4.20 的内核,应将以下包含补丁的 tarball 应用于您的 2.4.17 或更高版本的内核树。
tc 命令是 iproute2 实用程序套件的一部分。有关 iproute2 的通用文档,请参阅 http://linux-ip.net/ 和 iproute2 手册。该软件本身可直接从Alexey Kuznetsov 的 FTP 存档获得,但通常也可以通过 Linux 发行版提供的软件包获得。如果您的发行版可以使用 RPM,您可以下载此 SRPM 并在您自己的系统上编译它。
如果您需要自己编译 iproute2,请使用 此 tarball 中的 tc 补丁,位于 Martin Devera 的 HTB 站点,以便在 tc 中提供对 HTB 的支持。
您的 tc 也需要支持 dsmark,即 diffserv 标记机制。幸运的是,这只是对以下内容的简单更改配置来自 iproute2 源代码包的文件。只需更改TC_CONFIG_DIFFSERV=n为TC_CONFIG_DIFFSERV=y并重新编译。
SRPM 创建了一个支持 dsmark 和 HTB 的 tc 二进制文件,这两个都是本示例所必需的。
对 tcng 的支持是过程中最简单的部分。只需解压 tcng 源代码并运行./configure --no-tcsim然后再编译。
如果您在基于 RPM 的系统上,则可以使用 SPEC 文件,位于tcng/build/tcng.spec为您的发行版构建,或者您可以下载并编译此 SRPM。该 SRPM 生成两个软件包,tcc 和 tcc-devel。您只需要 tcc 即可创建配置。
为了运行 tcc 解析器,您还需要安装 cpp 软件包。tcc 使用 cpp。