2. 要求

为了使内核支持 HTB 和 DSMARKtc 支持 HTB 和 DSMARK,以及tcng 本身,有一些要求。

具体来说,内核和 tc 中对 HTB 的支持是绝对必要的,这样本教程才可能有用(如果您对此有任何疑问,请参考标题)。严格来说,DSMARK 支持是可选的,尽管某些示例(特别是类选择路径,但也可能是其他示例)可能在没有 dsmark 支持的情况下无法运行。

2.1. 内核要求

内核要求非常容易满足。内核 2.4.20 及更高版本包含对 HTB 和 dsmark 的支持,因此只需确保在内核配置的 QoS/公平队列部分中启用了这些选项。有关内核配置中要选择的选项的简要摘要,请访问DiffServ 项目内核配置说明

对于低于 2.4.20 的内核,应将以下包含补丁的 tarball 应用于您的 2.4.17 或更高版本的内核树。

2.2. tc 要求

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=nTC_CONFIG_DIFFSERV=y并重新编译。

SRPM 创建了一个支持 dsmark 和 HTB 的 tc 二进制文件,这两个都是本示例所必需的。

2.3. tcng 要求

tcng 的支持是过程中最简单的部分。只需解压 tcng 源代码并运行./configure --no-tcsim然后再编译。

如果您在基于 RPM 的系统上,则可以使用 SPEC 文件,位于tcng/build/tcng.spec为您的发行版构建,或者您可以下载并编译此 SRPM。该 SRPM 生成两个软件包,tcc 和 tcc-devel。您只需要 tcc 即可创建配置。

为了运行 tcc 解析器,您还需要安装 cpp 软件包。tcc 使用 cpp。