linux – HTB的最小速率和默认类问题

linux – HTB的最小速率和默认类问题,第1张

概述我对我正在使用的HTB结构有些怀疑. 我的目标是限制本地网络中用户的下载和上传速度. 网络的每个用户都有一个域名的个人列表,其域名的上下速度不能超过. 这意味着user1可以将他在slashdot.org上的访问限制为下载时限制为8KB,上传时限制为3KB,而user2可以在slashdot.org上限制访问4KB和1KB. 现在我设置了一个非常好的iptables / tc对,但是在很小的范围内 我对我正在使用的HTB结构有些怀疑.

我的目标是限制本地网络中用户的下载和上传速度.
网络的每个用户都有一个域名的个人列表,其域名的上下速度不能超过.@H_301_4@

这意味着user1可以将他在slashdot.org上的访问限制为下载时限制为8KB,上传时限制为3KB,而user2可以在slashdot.org上限制访问4KB和1KB.@H_301_4@

现在我设置了一个非常好的iptables / tc对,但是在很小的范围内,同时使用2个或3个虚拟主机(不幸的是,我无法执行实际大小测试).@H_301_4@

这是我目前的结构(我只会在局域网的出口处显示一个,上传的那个只是这个的“副本”)@H_301_4@

接口上附有HTB qdisc(句柄2 :),默认流量类为FFFF类.@H_301_4@

直接在HTB qdisc下的根类2:1具有速率和上限DOWNlink容量.@H_301_4@

默认类别2:FFFF为2:1的子级,速率为1kbsp,下行链路容量为ceil.@H_301_4@

然后,当某个域中存在对用户的新限制时,会动态添加其他类,添加新的tc类以控制其域中的下载速度.@H_301_4@

现在,这就是我做的:@H_301_4@

创建一个具有唯一ID的新tc类(取自数据库,而不是此处的点),作为父类2:1,速率值为1bps,ceil值设置为有限的下载速度.@H_301_4@

这是tc命令:@H_301_4@

-------------- BEGIN SCRIPT --------------DOWNlink=800## Setting up the static tc qdisc and class$tc qdisc add dev $LAN_IFACE root handle 2: htb default 0xFFFF# Main class so the default class can borrow banDWith from the others$tc class replace dev $LAN_IFACE parent 0x2: classID 0x2:0x1 htb rate $DOWNlink ceil $DOWNlinkkbps# add the default class of class ID 2:a under the main class of classID 2:1$tc class replace dev $LAN_IFACE parent 0x2:0x1 classID 0x2:0xFFFF htb rate 1kbps ceil $DOWNlinkkbps prio 0# add to the leaf class 2:10 for default traffic a sfq qdisc$tc qdisc add dev $LAN_IFACE parent 0x2:0xFFFF handle 0xFFFF: sfq perturb 10## The dynamic part called each time a new restriction for a couple domain/user is added$tc class replace dev $LAN_IFACE parent 0x2:0x1 classID 0x2:0x$IDHex htb rate 1bps ceil $speedDownkbps prio 1# Add the sfq at the leaf class 2:1$ID$tc qdisc add dev $LAN_IFACE parent 0x2:0x$IDHex handle 0x$IDHex: sfq perturb 10# $ID is the mark added by iptables for this couple domain/user$tc filter replace dev $LAN_IFACE parent 0x2:0 protocol ip prio 3 handle 0x$ID fw flowID 0x2:0x$IDHex-------------- END SCRIPT --------------

所有正常流量(没有速度限制)应该转到默认类,并且受限制的流量应该发送到其对应的tc类.@H_301_4@

我怀疑的重点是使用默认类和限制类的最小1bps速率.我无法控制将要创建的受限类的数量,并且我不希望限制类的总速率超过其中一个根类.@H_301_4@

另一点,我添加了prio 0的默认值,以及prio 1的限制类,所以如果默认类应该借用(几乎总是根据其非常慢的速率),这个类将在另一个受限域之前提供.但是,如果我将默认类的ceil保持为根类之一,那么这些域名不会挨饿吗?@H_301_4@

如何才能成功地允许用户为非限制使用保持良好的交互性和带宽,同时限制几个域/用户的速度?@H_301_4@

我也想知道默认类是否有用,因为如果我没有;为htb qdisc指定一个默认类,那么与过滤器不匹配的数据包将以硬件速度出列. (但是这里再次让受限制的阶级挨饿?)@H_301_4@

我是tc和网络QoS的新手,所以任何建议,评论家(建设性的;)都会受到欢迎.@H_301_4@

文森特.@H_301_4@解决方法 由于您没有包含分类器,因此很难扣除每个类中您确切含义的流量.
例如,传出的http或ssh流量对于交互性非常重要,传入的http不是那么多.

我会保证每个服务的某些带宽,说:我对传入的httpd流量有x kbps,并且它在用户之间平均分配.如果您有10个或100个用户,这是公平的.“如果您在每个服务中都有高优先级用户或低优先级用户,则需要为他们提供其他类和分类器.@H_301_4@

(另外我希望你知道你只能塑造来自接口的传出流量,而不是传入.这意味着如果你想限制上行链路,你必须使用到互联网的传出接口或使用Intermediate Queuing Device. lartc.组织指南是一个非常好的资源.)@H_301_4@ 总结

以上是内存溢出为你收集整理的linux – HTB的最小速率和默认类问题全部内容,希望文章能够帮你解决linux – HTB的最小速率和默认类问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1046259.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存