QUOTE:原帖由 liubinbj 于 2006-6-4 16:56 发表
其实这个模块也很老拉!以前叫什么ftp_contrack,其他一些协议也有类似的contrack模块,反正就是需要分析数据包了,会慢一些,每个连接都有一个跟踪记录文件,流量大容易出错,不知道现在还是不是测试状态。
ip_conntrack_ftp 是用于本机的
ip_nat_ftp 是用于 NAT 的
不知你接触过 PIX 没有?是否见过 fixup protocol ftp 21 这样的配置语句?
至于“每个连接都有一个跟踪记录文件”,这是不对的,在实现 NAT 的时候,有一个 NAT 表,这些连接都记录在同一个表了,而非“每个连接都有一个跟踪记录文件”,且要实现 NAT,就要维护这个状态,conntrack 是必然的
这个模块虽然老,但严格遵守 RFC959 标准,因此很稳定,并不容易出错,也不是测试状态
至于速度吗,会慢一些,但比你在 iptables 里插入 3000+ 条 rules 后去进行过滤快多了
若对性能方面有兴趣,不妨看一下 iptables 和 netfilter 的代码(不过真的很庞大),了解一下 netfilter 是如何对数据包进行过滤的,iptables 又是如何做规则注册的,怎么维护规则链表,以及规则如何遍历的,如果一定要用 C 来实现,记住不要去实现原先用 perl 写的脚本而仍然调用 iptables,要自己去写类似 ipitables 的用户态程序,若感兴趣可以研究一下 libipq
btw: 看了不少 liubinbj 兄的贴子,从说话语气来看,应该年纪不大吧?