文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>高性能防火墙nf-HiPAC 对比iptables

高性能防火墙nf-HiPAC 对比iptables

时间:2010-03-09  来源:bfz814

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 <size in MB> > /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 that
the iptables userspace modules are located under /lib/iptables you have
to type:

# make nf-hipac KERNEL_DIR=/usr/src/linux IPT_LIB_DIR=/lib/iptables
QUOTE
INST_LIB=false STATIC=false


编译成共享链接库 (libnfhipac dynamically linked). Assuming that
the iptables userspace modules are located under /lib/iptables you have
to 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
相关阅读 更多 +
排行榜 更多 +
试着飞手游下载

试着飞手游下载

休闲益智 下载
血染小镇(功能菜单)中文版下载

血染小镇(功能菜单)中文版下载

飞行射击 下载
泰坦之旅高爆版下载

泰坦之旅高爆版下载

角色扮演 下载