首先。请求不要再诬陷Netfilter。尽管它有一些固有性能损耗,但敬请不要将iptables和Netfilter等同,假设你要抓元凶,请直接说iptables,而不要说成Netfilter!
       iptables真的是弱爆了!

它的ipt_do_table居然是五大元凶之中的一个,假设规则超过了7000,那么它就是之首(其他的元凶是nf_conntrack函数,它们也是Netfilter的HOOK)。iptables低效的原因在于它的ACL规则没有经过预处理。直接使用人类配置的方式和顺序让数据包逐个匹配,就跟在Linux协议栈中路由表没有转换成转发表而直接让数据包运行最长前缀匹配一样!这不是Linux的错,也不是Netfilter的错,而是你的错。

你咋就不试着使用或者改动nf-HiPAC呢?
       ACL的元素匹配能够分为“与”和“或“,一般觉得。与操作在同一条规则内进行,而或操作则表示不同的规则,比方以下的规则:
iptables -A FORWARD -d $ip1 -p tcp -j DROP
iptables -A FORWARD -d $ip2 -p udp -j DROP

当中,ip1和tcp以及ip2和udp就是与操作,而两条规则则是或操作。假设我们进行分组,就会得出同组要串行,不同组可并行操作的结论。

假设将两条规则进行预处理,又一次颠倒分组,我们是否能不按规则而按匹配元素来又一次分组呢?这么做是有理由的。由于匹配元素的数量是固定的,而规则数量则是不固定的。我们必须在海量元素之间能够运行高速的查找算法而不是顺序遍历匹配的算法,因此必须不能让海量元素作为同组元素串行。在ACL匹配过程中,遍历和高速查找都是须要的(前面说过的。同组串行-仅仅能遍历。异组并行-可运行随意算法),可是必须记住的是,不要依照规则将规则分到一个组。而要以匹配元素为分组基准。要知道,人的理解方式和计算机的处理方式是全然不同的,甚至是相反的。
       大多数的防火墙产品(Cisco。华为的暂不说,XXWRT的都有相似的补丁。或许?嗯,好象是真的。尽管我没有亲见。仅仅是猜的...)都对待人工敲进去的ACL规则链都进行了预处理,这事实上也是nf-HiPAC的方式,我之前写过几篇相关的文章。而Linux的iptables并没有不论什么的预处理,这就是它低效的原因,但这样的低效不能归结到Linux或者Netfilter身上,请明悉。
       这个周末有点真又十分假。台风盼了又没来,擦过!我早在几天就对台风登陆报太大的希望,尽管气象台一直吵吵嚷嚷...他们这帮人都是依据历史数据进行大数据分析的,根本就不明确西风带。台风,副高,上海的纬度之间的关系。我前几年分析过这个。仅仅是没有发表,气象论坛的帐号丢了,且级别也不高,在IT论坛搞这个又有点清高,仅仅能心里空自叹了。昨天上海嘉定区雨不算大。中雨水平吧,我没打伞出去搞了一会儿灵感,结果回来跟老婆吵架...唉,如此自己喜欢的好天气居然泡汤了。下午雨势略微大了一些,傍晚还能够,哄好了老婆一起去出去吃饭。闹市区好一个安静。周末晚饭点好一个不用排队。我自己淋着大雨出饭店买泡芙。看见俩老外手里拿着伞可是没打开却淋着雨。瞬间有一种找到组织的感觉,随性就好,干嘛跟着别人或者大众的路子走啊。我喜欢下雨天,所以下雨天我不会打伞,假设有人较真儿说为什么看见我打伞了,我会告诉他。我喜欢下雨。可我的手机不喜欢....

Linux软防火墙ACL匹配的优化点的更多相关文章

  1. Linux安全调优1:CentOS防火墙的设置与优化

    CentOS防火墙的设置与优化 时间:2014-09-11 02:11来源:blog.csdn.net 作者:成长的小虫 的BLOG 举报 点击:4908次 一.设置主机防火墙. 开放: 服务器的:w ...

  2. 高性能Linux服务器 第10章 基于Linux服务器的性能分析与优化

    高性能Linux服务器 第10章    基于Linux服务器的性能分析与优化 作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.但硬件问题.软件问题.网络环境等 ...

  3. 访问控制列表-ACL匹配规则

    1 .ACL匹配机制 首先,小编为大家介绍ACL匹配机制.上一期提到,ACL在匹配报文时遵循“一旦命中即停止匹配”的原则.其实,这句话就是对ACL匹配机制的一个高度的概括.当然,ACL匹配过程中,还存 ...

  4. 15.linux iptables防火墙规则vsftp服务

    一.服务所开启的端口号.          dhcp 67       samba 139 445       http 80  https 443       mysql 3306         ...

  5. 1.linux服务器的性能分析与优化

    [教程主题]:1.linux服务器的性能分析与优化 [课程录制]: 创E [主要内容] [1]影响Linux服务器性能的因素 操作系统级 CPU 目前大部分CPU在同一时间只能运行一个线程,超线程的处 ...

  6. linux关闭防火墙

    查看防火墙状态: sudo service iptables status linux关闭防火墙命令: sudo service iptables stop linux启动防火墙命令: sudo se ...

  7. 网易视频云技术分享:linux软raid的bitmap分析

    网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PAAS服务,在线教育.远程医疗.娱乐秀场.在线 ...

  8. linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制)

    linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制) 发表于2012//07由feng linux 本身的ugo rwx的权限,对于精确的权限控制很是力不从心的,ac ...

  9. 写了个Linux包过滤防火墙

    花几天写了个so easy的Linux包过滤防火墙,估计实际意义不是很大.防火墙包括用户态执行程序和内核模块,内核模块完全可以用iptable代替.由于在编写的过程一开始写的是内核模块所以就直接用上来 ...

随机推荐

  1. sass的用法小结(四)进阶篇

    Sass 的数据类型 Sass 既然有了类似编程语言的功能,自然也就有了简单的数据类型.这里简单的介绍一些 Sass 中的数据类型,因为在后面的讨论中要用到有关的内容. Sass 中主要有六种数据类型 ...

  2. php5权限控制修饰符

    1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直 ...

  3. yii框架原生代码

    http://www.cnblogs.com/duanxz/p/3480254.htm

  4. Python3+Gurobi使用教程(一)

    Gurobi使用教程 1.Gurobi使用的一般框架 from gurobipy import * try: m=Model('modelname') except GurobiError: prin ...

  5. Mysql学习总结(21)——MySQL数据库常见面试题

    1. 如何使用SELECT语句找到你正在运行的服务器的版本并打印出当前数据库的名称? 答:下面的语句的结果会显示服务器的版本和当前的数据库名称 mysql> SELECT VERSION(), ...

  6. 基于Core Text实现的TXT电子书阅读器

    本篇文章的项目地址基于Core Text实现的TXT电子书阅读器. 最近花了一点时间学习了iOS的底层文字处理的框架Core Text.在网上也参考很多资料,具体的资料在文章最后列了出来,有兴趣的可参 ...

  7. Tsinsen A1303. tree(伍一鸣) LCT

    LCT的各种操作... . cut link add mul size rev query 写的效率不够高... BZOJ上似乎TLE. ... A1303. tree(伍一鸣) 时间限制:2.5s  ...

  8. storm trident function函数

    package cn.crxy.trident; import java.util.List; import backtype.storm.Config; import backtype.storm. ...

  9. NSURLConnection和NSRunLoop

    主线程中创建一个NSURLConnection并异步运行 [self performSelectorOnMainThread:@selector(start) withObject:nil waitU ...

  10. UTF8有很明显的特征:如果最高字节为0,则表示一个英文字符(与ASCII完全相同)。如果有2个以上1,表示是首个字节。如果最高位是10,则表示一个中间字节。

    摘自<Qt中的C++技术.pdf> page 33