找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 13851|回复: 11

[iptables] 可以取代iptables的高性能防火墙nf-HiPAC

[复制链接]
发表于 2005-3-31 18:10:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
nf-HiPAC能十分高效的在linux 2.4的netfilter构架下执行包过滤。它一个用户空间工具,称作“nf-HiPAC”,它被设计为完美兼容'iptables -t filter'。'nf-hipac'和使用相同的钩子钩在linux 2.4核心的网络栈中,'iptables -t filter'也一样做。用户空间的工具能定义每一个规则在一个数组成的分类器中,能随意对某一连接产生作用。最大的优势在于能够兼容iptables,用户能够充分按iptables的语法进行设置。你或许会问:“为什么要使用另外一个包过滤器?”最短最好的回答是:“性能!”iptables,象更多的包过滤,使用一个简单的包分类算法,对线性的穿过一个链中的每一个包在进行匹配(非)一个规则。明显的,这个方法缺乏效率。nf-HiPAC ,提供一个新颖包分类的架构。当查找每一个包的时候使用一个高级算法来减少内存占用。在一个有特别多的规则和高带宽的网络中nf-HiPAC表现十分完美。功能:充分优化以实现适度内存占用和高性能的包分类完全动态:当插入或者删除规则时数据结构没有重建,高速更新成为可能。在规则更新时,只很短暂时间的锁定,包匹配没有锁定。支持64位体系。优化核心用户空间协议(netlink),改良列表速度。libnfhipac: netlink library for kernel-user communication 原始匹配支持: 源/目的 ip in/out 网络界面协议 (udp, tcp, icmp) 包分段 源/目的 端口 (udp, tcp) icmp 类型tcp 标记 ttl 连接状态匹配match negation ("!") iptables 兼容: 语法和语义同iptables十分相似。nf-HiPAC和iptables二者可以同时使用proc文件系统:标准信息# cat /proc/net/nf-hipac/info 限制最大内存使用# echo  > /proc/net/nf-hipac/info 设置nf-hipac优先于iptables调用:# echo nf-hipac-first > /proc/net/nf-hipac/info 设置iptables优先于nf-hipac:# echo iptables-first> /proc/net/nf-hipac/info extended statistics via /proc/net/nf-hipac/statistics/* : 内存使用状态# cat /proc/net/nf-hipac/statistics/mem btree statistics (per hook):# cat /proc/net/nf-hipac/statistics/btree_{input,forward,output} dimtree statistics (per hook):# cat /proc/net/nf-hipac/statistics/dimtree_{input,forward,output} hipac rule statistics (per hook):# cat /proc/net/nf-hipac/statistics/hipac_rules_{input,forward,output} hipac chain statistics:# cat /proc/net/nf-hipac/statistics/hipac_chains安装方法:到这里下载源代码包:http://sourceforge.net/projects/nf-hipac/安装需要环境:linux 2.4.x 内核源代码 iptables 源代码 (可选) wget (可选) 将包解开后,给内核打上补丁,如果你的内核版本小于2.4.20,你需要使用"-F3"选项,2.4.21以上,直接执行:# cd /usr/src/linux# patch -p1 -F3 < /usr/src/nf-hipac-0.8/src/nf-hipac.2.4.21.patch从http://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/v2.4/ 下载抢占式内核补丁,并给内核打上补丁。这个补丁和nf-HiPAC一起应用会提高响应速度。进行编译:编译nf-HiPAC 下面有3 个不同的方法: 编译成静态链接You must have the iptables sources available. Assuming that these are located under /usr/src/iptables you have to type:# make nf-hipac KERNEL_DIR=/usr/src/linux IPT_DIR=/usr/src/iptables STATIC=true  编译成动态链接库 (libnfhipac statically linked). Assuming thatthe iptables userspace modules are located under /lib/iptables you haveto type:# make nf-hipac KERNEL_DIR=/usr/src/linux IPT_LIB_DIR=/lib/iptables

QUOTE
INST_LIB=false STATIC=false
  编译成共享链接库 (libnfhipac dynamically linked). Assuming thatthe iptables userspace modules are located under /lib/iptables you haveto type:

CODE
# make nf-hipac KERNEL_DIR=/usr/src/linux IPT_LIB_DIR=/lib/iptables
INST_LIB=true STATIC=false  编译libnfhipac (optional if you chose 4.1 or 4.2)

CODE
# make lib KERNEL_DIR=/usr/src/linux
安装 nf-HiPAC. We assume here that you want to install nf-HiPAC to /usr/local. There are 2 styles: 只安装(without libnfhipac)

CODE
# make install INST_LIB=false INST_DIR=/usr/local
  安装nf-HiPAC and libnfhipac

CODE
# make install INST_LIB=true INST_DIR=/usr/local
  Compile, install and reboot your patched kernel.

CODE
# cd /usr/src/linux# make dep bzImage modules modules_install# cp /usr/src/linux/arch/`uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e /sa110/arm/`/boot/bzImage /boot# lilo# reboot
routeros
发表于 2005-3-31 20:32:03 | 显示全部楼层
老大就是老大阿。。。又给我们带来新东西了我看他的性能测试,对于小数据包,规则数大于50优势明显中等大小数据包,规则数要大于200才开始有表现大包,要800才出头。。看来实用价值在于小数据包,多规则(>20)的过滤还有才0.8版,稳定性、可靠性还有待考验啊,
routeros
回复

使用道具 举报

发表于 2005-3-31 20:42:57 | 显示全部楼层
不错!!其实同bsd相比较linux在处理小包的性能要比bsd差一些,而处理大包的性能要明显优于bsd。nf-HiPAC 的出现恰好弥补了这个不足。还不太了解具体使用呢。
routeros
回复

使用道具 举报

发表于 2005-3-31 20:46:42 | 显示全部楼层
把它做到Coyote里去。。。?应该不错吧!
routeros
回复

使用道具 举报

发表于 2005-3-31 20:50:23 | 显示全部楼层
那几乎等于完全重做了。
routeros
回复

使用道具 举报

发表于 2005-3-31 20:58:56 | 显示全部楼层
不是说 "nf-HiPAC和iptables二者可以同时使用"吗?可以慢慢迁移啊
routeros
回复

使用道具 举报

发表于 2005-3-31 21:05:15 | 显示全部楼层
似乎可以的。

QUOTE
nf-HiPAC is both syntactically and semantically identical to iptables apart from some specialities described below.
routeros
回复

使用道具 举报

发表于 2005-4-3 11:04:05 | 显示全部楼层
嘿嘿,东西不错,不过需要老大做个示范,嘿嘿。
routeros
回复

使用道具 举报

发表于 2005-4-3 21:27:57 | 显示全部楼层
我已经完全转向2.6内核了.这个东东看来根本用不上.
routeros
回复

使用道具 举报

发表于 2005-4-4 00:43:58 | 显示全部楼层
总体感觉 2.6 内核对于网络应用似乎比 2.4 没有什么改善。这可能也是众多防火墙采用2.4内核的原因吧?
routeros
回复

使用道具 举报

发表于 2005-4-4 00:46:31 | 显示全部楼层
QUOTE
btree statistics (per hook):
这里的 btree 应该就是 “B 树” 吧?
routeros
回复

使用道具 举报

发表于 2005-4-8 20:20:26 | 显示全部楼层
QUOTE (哈啤猫 @ Apr 4 2005, 12:43 AM)
总体感觉 2.6 内核对于网络应用似乎比 2.4 没有什么改善。这可能也是众多防火墙采用2.4内核的原因吧?  
  用2.6我觉得很酷,嘿嘿再说也为了编译方便,因为今后作的其他用途的主机也将全是2.6,有的程序可以直接把编译后的文件传来
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-5-2 19:47 , Processed in 0.054361 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表