iptables的限速測(cè)試總結(jié)-創(chuàng)新互聯(lián)

        iptables的限速測(cè)試總結(jié)

創(chuàng)新互聯(lián)技術(shù)團(tuán)隊(duì)十余年來(lái)致力于為客戶提供做網(wǎng)站、成都做網(wǎng)站成都品牌網(wǎng)站建設(shè)、全網(wǎng)整合營(yíng)銷推廣、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過(guò)多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了上千家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。

一、iptables的簡(jiǎn)介

    iptables是用來(lái)設(shè)置、維護(hù)和檢查L(zhǎng)inux內(nèi)核的IP數(shù)據(jù)包過(guò)濾規(guī)則的。

   iptables在對(duì)信息包進(jìn)行過(guò)濾處理時(shí),是遵循一定的規(guī)則的,這些規(guī)則被存放在信息過(guò)濾表里面,防火墻會(huì)根據(jù)這些表里的規(guī)則對(duì)信息包進(jìn)行相應(yīng)的處理;而在這些信息過(guò)濾表中實(shí)際上是把規(guī)則下放到相應(yīng)的鏈上;iptables就是一個(gè)可以對(duì)這些信息過(guò)濾表進(jìn)行添加、修改、刪除規(guī)則的工具。

   其分為兩個(gè)模塊組成,一個(gè)是netfilter和iptables;netfilter是防火墻的模塊,主要在內(nèi)核空間是一些信息過(guò)濾表;iptables則是管理netfilter的工具。

二、iptables的表和鏈

   iptables主要由3個(gè)表組成,分別是filter、nat、mangle.在每個(gè)表里面會(huì)包含不同的鏈,我們主要是在表里面寫鏈上的定義規(guī)則(策略)

   默認(rèn)一般不指定就是使用filter表,主要包括3個(gè)鏈:INPUT鏈、FORWARD鏈和OUTPUT鏈;

   INPUT主要是用來(lái)處理發(fā)送給自己的包,即數(shù)據(jù)包的目的地址是自己的。通過(guò)定義一些INPUT鏈的規(guī)則去對(duì)這些數(shù)據(jù)包采取一些相應(yīng)的動(dòng)作。

   FORWARD主要是用來(lái)處理通過(guò)自己的數(shù)據(jù)包,即這個(gè)數(shù)據(jù)包通過(guò)自己,但源地址和目的地址都不是自己,針對(duì)這些數(shù)據(jù)包去采取相應(yīng)的動(dòng)作。

   OUTPUT主要是處理自己生成的數(shù)據(jù)包,即源地址是自己的,去通過(guò)鏈上的規(guī)則去采取相應(yīng)的動(dòng)作。

下面簡(jiǎn)單說(shuō)明一下3條鏈之間的關(guān)系:

iptables的限速測(cè)試總結(jié)

   數(shù)據(jù)包來(lái)了先經(jīng)過(guò)判斷,然后選擇是INPUT鏈處理還是FORWARD鏈處理,出去的時(shí)候會(huì)判斷是不是OUTPUT鏈需要處理。

三、iptables鏈上的動(dòng)作

        在鏈上有很多的動(dòng)作可以執(zhí)行,比如ACCEPT、DROP、REJECT

   ACCEPT對(duì)滿足規(guī)則條件的數(shù)據(jù)包允許通過(guò)

   DROP丟棄數(shù)據(jù)包,并且是不返回信息的

   REJECT丟棄數(shù)據(jù)包,返回拒絕的信息

四、iptables的命令參數(shù)說(shuō)明

下面關(guān)于iptables命令的詳細(xì)參數(shù)簡(jiǎn)單說(shuō)明一下:

-t(table)指定表

-A(append)追加,一般將新加的規(guī)則(策略)是追加到表中鏈上的末尾規(guī)則

-I(insert)插入鏈 后面加數(shù)字可以指定講規(guī)則加到相應(yīng)的行,默認(rèn)是所有規(guī)則最前面

-L(list)查看規(guī)則 可以加-n、-v參數(shù)效果查看更明顯

-F(flush)清除所有規(guī)則

-D(delete)刪除某個(gè)規(guī)則 可以指定相應(yīng)鏈上的規(guī)則順序號(hào)去刪除,--line-numbers可以查看

匹配數(shù)據(jù)包的一些條件參數(shù):

-i進(jìn)入的網(wǎng)卡

-o出去的網(wǎng)卡

-s ip源地址IP

-d ip目的地址IP

--dport端口號(hào) 目的端口號(hào)

--sdport端口號(hào) 源端口號(hào)

五、iptables的規(guī)則匹配順序

   數(shù)據(jù)包通過(guò)防火墻的時(shí)候是要順序匹配策略的,從上往下依次匹配,一個(gè)包不符合某條規(guī)則,就會(huì)由后面的規(guī)則來(lái)處理,如果都不符合,就由缺省的策略處理。

六、實(shí)際線下測(cè)試

1)環(huán)境

下面是我自己線下測(cè)試的環(huán)境以及所寫的規(guī)則:

環(huán)境:3臺(tái)redhat6.5(VM虛擬機(jī))

iptables的限速測(cè)試總結(jié)

2)定義的規(guī)則

在開啟iptables的機(jī)器上寫入以下規(guī)則,這樣我們根據(jù)實(shí)際寫的規(guī)則去解釋一下:

#iptables -I FORWARD 1 -p tcp -i eth0 -o eth2 -s 192.168.2.3 -d192.168.3.3 --dport 80 -m limit --limit=500/s --limit-burst=1000 -j ACCEPT

這條規(guī)則是:允許轉(zhuǎn)發(fā)從eth0進(jìn)來(lái)的源IP為192.168.2.3,去訪問(wèn)從eth2出去的目的IP為192.168.3.3的80端口(即http服務(wù))的數(shù)據(jù)包,其中會(huì)對(duì)包的速率做匹配,是每秒轉(zhuǎn)發(fā)500個(gè)包,初始的burst值是1000

#iptables -I FORWARD 2 -p tcp -i eth2 -o eth0 -s 192.168.3.3 -d192.168.2.3 --dport 80 -m limit --limit=500/s --limit-burst=1000 -j ACCEPT

這條規(guī)則是:允許轉(zhuǎn)發(fā)從eth2進(jìn)來(lái)的源IP為192.168.3.3,去訪問(wèn)從eth0出去的目的IP為192.168.2.3的80端口(即http服務(wù))的數(shù)據(jù)包,其中會(huì)對(duì)包的速率做匹配,是每秒轉(zhuǎn)發(fā)500個(gè)包,初始的burst值是1000

#iptables -A FORWARD -p tcp -i eth0 -o eth2 -s 192.168.2.3 -d192.168.3.3 --dport 80 -j DROP

這是對(duì)從eth0進(jìn)來(lái)的源IP為192.168.2.3,并且從eth2出去的目的IP為192.168.3.3的80端口(即http服務(wù))的數(shù)據(jù)包進(jìn)行丟棄

#iptables -A FORWARD -p tcp -i eth2 -o eth0 -s 192.168.3.3 -d192.168.2.3 --dport 80 -j DROP

這是對(duì)從eth2進(jìn)來(lái)的源IP為192.168.3.3,并且從eth0出去的目的IP為192.168.2.3的80端口(即http服務(wù))的數(shù)據(jù)包進(jìn)行丟棄

3)limit的相關(guān)解釋

   其中限速的實(shí)現(xiàn)是依靠limit規(guī)則做限制,兩條規(guī)則(ACCEPT和DROP)相配合實(shí)現(xiàn)的;通過(guò)對(duì)每秒匹配包的個(gè)數(shù)進(jìn)行限制,多余的由后面相應(yīng)的DROP規(guī)則去處理,這樣就實(shí)現(xiàn)了iptables限速

   --limit 500/s表示每秒500次; 1/m 則為每分鐘一次
   --limit-burst 表示允許觸發(fā) limit 限制的大次數(shù) (預(yù)設(shè)5)

   這里的--limit-burst=1000相當(dāng)于說(shuō)最開始我有1000的可以匹配的包去轉(zhuǎn)發(fā),然后我匹配的包的個(gè)數(shù)是根據(jù)--limit=500/s進(jìn)行限制的,也就是每秒限制轉(zhuǎn)發(fā)500個(gè)數(shù)據(jù)包,多余的會(huì)被下面符合要求的DROP規(guī)則去處理,去進(jìn)行丟棄,這樣就實(shí)現(xiàn)了對(duì)數(shù)據(jù)包的限速問(wèn)題。

   這里“l(fā)imit”這個(gè)詞準(zhǔn)確說(shuō),應(yīng)該是“按一定速率去匹配”,至于“限制”還是“放行”是后面 -j 動(dòng)作來(lái)實(shí)現(xiàn)的,limit 僅僅是個(gè) match 模塊,他的功能是匹配,匹配方式是按一定速率.用iptables的limit模塊,目標(biāo)是ACCEPT.當(dāng)你設(shè)置300/s時(shí),它大約每3ms發(fā)出一個(gè)令牌,獲得令牌的包可以發(fā)出去,沒(méi)有獲得令牌的包只能等待下一個(gè)令牌到來(lái),這樣不會(huì)造成一些包丟失,更不會(huì)造成所謂“斷線”的

4)實(shí)際生成規(guī)則展示

   實(shí)際生成的規(guī)則如下,一般寫好的規(guī)則是放在內(nèi)存中的,重啟就會(huì)被清除,可以通過(guò)service iptables save 去保存定義好的規(guī)則,這樣重啟還是會(huì)存在的

iptables的限速測(cè)試總結(jié)

5)測(cè)試數(shù)據(jù)

下面是一些線下測(cè)試限速的結(jié)果,僅供參考,具體以線上實(shí)際穩(wěn)定的速率為準(zhǔn):

測(cè)試命令是通過(guò):wget http://192.168.2.3/filename

羅列一下--limit=1000/s --limit-burst=1000的相關(guān)數(shù)據(jù):

2016-08-2214:49:31 (55.4 MB/s) - “1M” saved [1048576/1048576]

2016-08-2214:49:31 (140 MB/s) - “10M” saved [10485760/10485760]

2016-08-2214:49:33 (23.7 MB/s) - “50M” saved [52428800/52428800]

2016-08-2214:49:36 (40.0 MB/s) - “100M” saved [104857600/104857600]

2016-08-2214:50:05 (34.8 MB/s) - “1G” saved [1073741824/1073741824]

2016-08-2214:52:15 (39.7 MB/s) - “5G” saved [5368709120/5368709120]

2016-08-2214:52:15 (37.4 MB/s) - “1M” saved [1048576/1048576]

2016-08-2214:52:15 (33.4 MB/s) - “10M” saved [10485760/10485760]

2016-08-2214:52:16 (62.5 MB/s) - “50M” saved [52428800/52428800]

2016-08-2214:52:18 (54.6 MB/s) - “100M” saved [104857600/104857600]

2016-08-2214:52:40 (46.9 MB/s) - “1G” saved [1073741824/1073741824]

2016-08-2214:55:02 (36.1 MB/s) - “5G” saved [5368709120/5368709120]

2016-08-2214:55:02 (35.3 MB/s) - “1M” saved [1048576/1048576]

2016-08-2214:55:02 (35.0 MB/s) - “10M” saved [10485760/10485760]

2016-08-2214:55:04 (37.4 MB/s) - “50M” saved [52428800/52428800]

2016-08-2214:55:05 (58.6 MB/s) - “100M” saved [104857600/104857600]

2016-08-2214:55:29 (42.8 MB/s) - “1G” saved [1073741824/1073741824]

2016-08-2214:57:24 (44.6 MB/s) - “5G” saved [5368709120/5368709120]

最后這是我測(cè)試改變相關(guān)參數(shù)后,iptables限速的一些數(shù)據(jù):

iptables的限速測(cè)試總結(jié)

6)分析

通過(guò)對(duì)上面的數(shù)據(jù)分析,可以知道,利用iptables進(jìn)行限速主要是利用率iptables的limit模塊對(duì)數(shù)據(jù)包進(jìn)行匹配處理,從而實(shí)現(xiàn)限速的;--limit=match,這個(gè)是限定了匹配包的速率,換句話說(shuō)就是每秒可以轉(zhuǎn)發(fā)多少個(gè)數(shù)據(jù)包,這是對(duì)iptables做限速的最主要的參數(shù),通過(guò)制定它就基本可以確定要控制的限制速率是多少;--limit-burst是允許觸發(fā) limit 限制的大次數(shù),默認(rèn)預(yù)設(shè)是5;也就是說(shuō)最開始的5個(gè)包會(huì)被直接轉(zhuǎn)發(fā),這時(shí)burst就會(huì)減為0,再來(lái)的包就會(huì)丟給下一條規(guī)則去處理(這里設(shè)定是DROP),直到limit參數(shù)產(chǎn)生新的令牌,才會(huì)繼續(xù)去匹配轉(zhuǎn)發(fā)。

   簡(jiǎn)單來(lái)說(shuō)限速最主要的就是limit和burst,burst是最初有多少令牌可以去轉(zhuǎn)發(fā)包,后面limit會(huì)進(jìn)行按速率匹配,相當(dāng)于按時(shí)間補(bǔ)充令牌數(shù),第一條規(guī)則達(dá)到速率上限就會(huì)把剩下的包丟給下一條規(guī)則去處理,我們下一條和它對(duì)應(yīng)的就是DROP,所以會(huì)把剩下的包丟棄,從而實(shí)現(xiàn)了限速。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章題目:iptables的限速測(cè)試總結(jié)-創(chuàng)新互聯(lián)
路徑分享:http://bm7419.com/article6/gddig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、微信小程序外貿(mào)網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、品牌網(wǎng)站制作網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司