Newby 问题:使用 TC 限制传入和传出网络速度的脚本的主干是什么?

网络工程 网络 交通
2022-02-19 20:18:08

我是TC/ tc(流量控制)的新手,但我需要限制 docker 容器的传入/传出网络流量的速度。

我读了很多,但我仍然对需要什么感到困惑。

一些帖子提到必须分别限制出口入口速度,有些则没有..

有些帖子使用htb,有些tbf...

有人可以使用 TC 说明设置这些限制的主干吗?

  • 我应该如何订购课程?
  • 我应该注意哪些步骤?
  • 最好使用哪种类型的 qdisc?
1个回答

htb、tbf、cbq 等只是队列的类型。他们处理交通的方式不同。从总体上看,您应该了解基本概念如下(我希望我能正确理解这一点,因为距离我上次使用 TC 已经有 15 年以上的时间了;)):

  • 排队是一种处理或避免拥塞的方法
  • 排队总是发生在egress
  • 排队可以使用不同的算法来实现,这将为您提供不同的流量处理方式/偏好一种而不是另一种,提供更多的公平性等
  • 类被添加到队列中。一个队列可以有多个类。
  • 过滤器用于选择流量/将流量放入类中。

现在对您的问题:

我应该如何订购课程?

通常按层次排列类。你有一个root类,然后你把这个类附加到一个队列中。然后,您可以将其他子类附加到根类,它们都将遵循相同的排队规则。

我应该注意哪些步骤?

  • 创建队列
  • 添加一个根类并将其与队列相关联
  • 将子类添加到根类
  • 添加过滤器以将流量放入类

最好使用哪种类型的 qdisc?

这完全取决于您要排队的流量类型。你想用它有多激进,有多严格,公平等等等等。你应该阅读不同的队列规则,以及一个与另一个相比如何处理流量。曾经有一个非常好的网站 - lartc.org,但我只是尝试打开它......它似乎不再启动和运行了。

检查可以帮助你。

还要检查这个http://intronetworks.cs.luc.edu/1/html/queuing.html