linux服务器要怎样针对IP流量限制

linux服务器要怎样针对IP流量限制,第1张

不是木马,是设置问题,下面是流量的控制方法一、Linux流量控制过程分二种:1、队列控制即QOS,瓶颈处的发送队列的规则控制,常见的有SFQPRIO2、流量控制即带宽控制,队列的排队整形,一般为TBFHTB二、Linux流量控制算法分二种:1、无类算法用于树叶级无分支的队列,例如:SFQ2、分类算法用于多分支的队列,例如:PRIOTBFHTB三、具体实现:1.在网卡上建立以SFQ算法的限流#tcqdiscadddeveth0roothandle1:sfqSFQ参数有perturb(重新调整算法间隔)quantum基本上不需要手工调整:handle1:规定算法编号..可以不用设置由系统指定..#tcqdiscshdeveth0显示算法#tcqddeldeveth0root删除注:默认eht0支持TOS2.在网卡建立以TBF算法的限流#tcqdadddeveth1roothandle1:tbfrate256kbitburst10000latency50ms速率256kbit突发传输10k最大延迟50ms#tc-sqdshdeveth1统计#tcqddeldeveth1root删除3.在网卡建立PRIO#tcqdiscadddeveth0roothandle1:prio#此命令立即创建了类:1:1,1:2,1:3(缺省三个子类)#tcqdiscadddeveth0parent1:1handle10:sfq#tcqdiscadddeveth0parent1:2handle20:tbfrate20kbitbuffer1600limit3000注:此为TBF限速的另一写法,前文有讲解.#tcqdiscadddeveth0parent1:3handle30:sfq4.WEB服务器的流量控制为5Mbps,SMTP流量控制在3Mbps上.而且二者一共不得超过6Mbps,互相之间允许借用带宽#tcqdiscadddeveth0roothandle1:0cbqbandwidth100Mbitavpkt1000cell8#tcclassadddeveth0parent1:0classid1:1cbqbandwidth100Mbitrate6Mbitweight0.6Mbitprio8allot1514cell8maxburst20avpkt1000bounded这部分按惯例设置了根为1:0,并且绑定了类1:1.也就是说整个带宽不能超过6Mbps.#tcclassadddeveth0parent1:1classid1:3cbqbandwidth100Mbitrate5Mbitweight0.5Mbitprio5allot1514cell8maxburst20avpkt1000#tcclassadddeveth0parent1:1classid1:4cbqbandwidth100Mbitrate3Mbitweight0.3Mbitprio5allot1514cell8maxburst20avpkt1000建立了2个类.注意我们如何根据带宽来调整weight参数的.两个类都没有配置成"bounded",但它们都连接到了类1:1上,而1:1设置了"bounded".所以两个类的总带宽不会超过6Mbps.别忘了,同一个CBQ下面的子类的主号码都必须与CBQ自己的号码相一致!#tcqdiscadddeveth0parent1:3handle30:sfq#tcqdiscadddeveth0parent1:4handle40:sfq缺省情况下,两个类都有一个FIFO队列规定.但是我们把它换成SFQ队列,以保证每个数据流都公平对待.#tcfilteradddeveth0parent1:0protocolipprio1u32matchipsport800xffffflowid1:3#tcfilteradddeveth0parent1:0protocolipprio1u32matchipsport250xffffflowid1:46.过滤器过滤示例#tcfilteradddeveth0protocolipparent10:prio1u32matchipdport220xffffflowid10:1在10:节点添加一个过滤规则,优先权1:凡是去往22口(精确匹配)的IP数据包,发送到频道10:1..#tcfilteradddeveth0protocolipparent10:prio1u32matchipsport800xffffflowid10:1在10:节点添加一个过滤规则,优先权1:凡是来自80口(精确匹配)的IP数据包,发送到频道10:1..#tcfilteradddeveth0protocolipparent10:prio2flowid10:2在eth0上的10:节点添加一个过滤规则,它的优先权是2:凡是上二句未匹配的IP数据包,发送到频道10:2..#tcfilteradddeveth0parent10:0protocolipprio1u32matchipdst4.3.2.1/32flowid10:1去往4.3.2.1的包发送到频道10:1其它参数同上例#tcfilteradddeveth0parent10:0protocolipprio1u32matchipsrc1.2.3.4/32flowid10:1来自1.2.3.4的包发到频道10:1#tcfilteradddeveth0protocolipparent10:prio2flowid10:2凡上二句未匹配的包送往10:2#tcfilteradddeveth0parent10:0protocolipprio1u32matchipsrc4.3.2.1/32matchipsport800xffffflowid10:1可连续使用match,匹配来自1.2.3.4的80口的数据包

TC的安装

TC是Linux自带的模块,一般情况下不需要另行安装,可以用 man tc 查看tc 相关命令细节,tc 要求内核 2.4.18 以上

[plain] view plain copy

##注意:64位机器上,先执行下面命令

ln -s /usr/lib64/tc /usr/lib/tc

TC原理介绍

Linux *** 作系统中的流量控制器 TC(Traffic Control) 用于Linux内核的流量控制,它利用队列规定建立处理数据包的队列,并定义队列中的数据包被发送的方式,从而实现对流量的控制。TC 模块实现流量控制功能使用的队列规定分为两类,一类是无类队列规定,另一类是分类队列规定。无类队列规定相对简单,而分类队列规定则引出了分类和过滤器等概念,使其流量控制功能增强。

无类队列规定是对进入网络设备(网卡)的数据流不加区分统一对待的队列规定。使用无类队列规定形成的队列能够接收数据包以及重新编排、延迟或丢弃数据包。这类队列规定形成的队列可以对整个网络设备(网卡)的流量进行整形,但不能细分各种情况。常用的无类队列规定主要有 pfifo_fast(先进先出)、TBF(令牌桶过滤器)、SFQ(随机公平队列)、ID(前向随机丢包)等等。这类队列规定使用的流量整形手段主要是排序、限速和丢包。

分类队列规定是对进入网络设备的数据包根据不同的需求以分类的方式区分对待的队列规定。数据包进入一个分类的队列后,它就需要被送到某一个类中,也就是说需要对数据包做分类处理。对数据包进行分类的工具是过滤器,过滤器会返回一个决定,队列规定就根据这个决定把数据包送入相应的类进行排队。每个子类都可以再次使用它们的过滤器进行进一步的分类。直到不需要进一步分类时,数据包才进入该类包含的队列排队。除了能够包含其他队列规定之外,绝大多数分类的队列规定还能够对流量进行整形。这对于需要同时进行调度(如使用SFQ)和流量控制的场合非常有用。


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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存