歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Netfilter和Netgraph

Netfilter和Netgraph

日期:2017/2/28 15:53:42   编辑:Linux教程
很多的高性能網絡設備都基於BSD系統,而不是Linux。不管什麼操作系統,其協議棧的實現都是大同小異,這裡面做的最統一的估計就是Windows NT的NDIS了,其次是BSD,Linux也許派不上號吧,主要的性能以及功能差異在協議棧上看不出來,主要要看如何擴展以及定制協議棧,Windows的NDIS不談,對於BSD和Linux,我想有必要比較一下Netfilter和Netgraph,結果可想而知,Netgraph比Netfilter更靈活,效率更高。

1.實現

Netfilter
使用NF_HOOK宏將數據包引入協議棧內置的5個HOOK點之一。
Netgraph
使用_p回調函數將數據包引入一張獨立的graph。

2.執行順序和控制

Netfilter
由Netfilter自身來控制單獨HOOK點諸多hook函數的執行,執行順序為該HOOK點各個hook函數的優先級順序。
Netgraph
由Netgraph自身來控制數據包在一張graph中各個Node的游歷,執行順序取決於該graph中各個Node是怎麼連接的。

3.動作的不同

Netfilter
熟知的accept,deny...
Netgraph
取決於該graph中的接收Node的hook的rcvdata回調函數,對於ipfw,還可以skip掉某個或某些rule,當然是不是netgraph的范疇,而是ipf的機制了。
Copyright © Linux教程網 All Rights Reserved