http://baoz.net/l7filter/

HiPPIE 最后一次更新是2008年

IPP2P

l7filter

具體的對比轉載開始

轉自: http://blog.chinaunix.net/u/311/showart_463796.html

目前 Linux 有兩種內容匹配模塊,ipp2p 和 l7-filter,兩者功能類似,具體工作原理卻大不相同

ipp2p:
ipp2p 的匹配方式是 per packet match 的原則,會匹配 iptables 規則引導過來的每一個數据包。
ipp2p 的匹配精度很高,每一種應用的匹配都是用具體代碼來實現的。

l7-filter:
l7-filter 的匹配原則是只匹配每一個 connection 的前 10 個包或者前 2048 個字節(可以通過 procfs 修改)。
匹配精度比較低,匹配方式使用的是正則表達式的形式,基于內核級的正則匹配庫是 l7-filter 的創始人 Matthew Strait 通過一個開源的 regexec 庫修改而來的,但比較遺憾的是,有些具體特征用正則表達式是無法寫出來的
比如 QQLive 的規則:
0xfe 0×02 0×05 0×05 0×02
0xfe 0×06 0×00 0×00 0×06
0xfe 0×00 0×80 0×80 0×00
可以看出這樣一個規律:
data[0] = 0xfe
data[1] = data[4]
data[2] = data[3]
由于這種規律無法用正則表達出來(其中還包括 l7-filter 不能識別的 0×00),因此 l7-filter 做不到對這種東西的匹配,但 l7-filter 卻有一個優勢,就是只匹配每個 connection 的前一段數据,匹配到了就不再匹配,這樣就不用對每個數据包都過一遍了。

下面對 ipp2p 和 l7-filter 做一下匹配精度、匹配速度、協議添加等方面的具體對比

名稱                ipp2p                 l7-filter

匹配精度               非常高                   很低

匹配速度         處理每個包的速度很快       處理每個包都非常慢
即使這個連接匹配到了       一旦匹配到就不再匹配
下一個也要繼續匹配         這個連接的其他包

添加協議方便度     每次修改都需要重編模塊      只需修改正則表達式即可

流量控制           不適用于流量控制        由于結合了 conntrack 的
特性所以非常適于流控

當然了,由于源代碼都給我們了,所以完全可以根据 ipp2p 和 l7-filter 的特性,結合兩者的優點開發出一個新的模塊匹配精度高、效率高、添加協議方便、適合做流控的 platinum 模塊來 ^_^

Related posts 相關文章
ipset 是什麼,算是 iptables 的管理工具
More...
使用 iptables 的 hex string 阻擋攻擊
More...
Centos7 服務無法啟動 enable or restart failed
More...
APF = Advanced Policy Firewall 底層是 iptables 的防火牆工具
More...

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。