本來上周末想實現乙個cisco風格的linux版本acl,也就是說將rule繫結在inte***ce上而不是hook點,然而發現net_device的private data非常不好用,就把半拉子工作仍在那裡了...其實即使實現了cisco風格的acl,還是基於netfilter實現的,然而forward上的ruleset就簡單多了,變成了下面這個樣子:
static unsigned int
ipt_hook(unsigned int hook,
struct sk_buff *skb,
const struct net_device *in,
const struct net_device *out,
int (*okfn)(struct sk_buff *))
這樣效率的提供就不依賴iptables規則的配置順序了,如果該介面上沒有配置ruleset,則直接就accept了,將inte***ce從普通match提公升到了乙個ruleset宿主的位置。
cisco以介面的入站和出站方向控制所有流量,而netfilter則在協議棧的5個位置控制所有流量,介面對於它來講僅僅是乙個match。無論在配置,在理解還是在效率上,cisco的方式都更勝一籌,這一點上,cisco真正的將使用者配置介面和內部實現相分離了,實際上,cisco ios的內部實現估計也是類似netfiler的那種。netfilter就很不同,它的實現和iptables使用者介面(ipt只是netfilter的使用者介面之一,很多其它機制也是netfilter實現的,比如ipvs等)基本是一致的,初學者不得不徹底理解這5個hook,理解chain,table等概念才能寫出正確高效的規則。ipt的使用者無法集中精力去針對資料報做規則,不得不花費大量時間和精力來擺平ipt的chain,table,順序之間的關係......
VC實現xp風格
1 24 xpstyle.manifest 下面檔案其實是乙個xml檔案,開啟記事本,複製上面的內容,然後存檔,檔名任意,這裡我存為xpstyle.manifest。name xp style manifest processorarchitecture x86 version 1.0.0.0 ty...
VC 實現XP風格
要在你的應用程式中實現xp風格,你要做的第一件事情是建立乙個manifest檔案 其實是乙個xml檔案 下面列出了 新建乙個文字檔案,然後儲存為xpstyle.manifest。這裡我們放在res資料夾中,也可以放在編譯目錄下。我們要做的就是把它整合到資源檔案中,這樣編譯後生成.res檔案,link...
linux核心編碼風格
linux核心編碼風格 linus torvalds 這是一篇描述linux 核心編碼風格的短小文件。編碼風格是個人化的,而且我不想將自己的意見強加在任何人身上,但是編碼風格卻和我必須要維護的東西是密切相關的。至少,你可以考慮這點的觀點。首先,我建議列印乙份關於 gnu編碼標準 的影印件。我並不期望...