Linux软防火墙ACL匹配的优化点

本文涉及的产品
云防火墙,500元 1000GB
简介:
首先,请求不要再诬陷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论坛搞 这个又有点清高,只能心里空自叹了。昨天上海嘉定区雨不算大,中雨水平吧,我没打伞出去搞了一会儿灵感,结果回来跟老婆吵架...唉,如此自己喜欢的好天 气竟然泡汤了,下午雨势稍微大了一些,傍晚还可以,哄好了老婆一起去出去吃饭,闹市区好一个安静,周末晚饭点好一个不用排队!我自己淋着大雨出饭店买泡 芙,看见俩老外手里拿着伞但是没打开却淋着雨,瞬间有一种找到组织的感觉,随性就好,干嘛跟着别人或者大众的路子走啊。我喜欢下雨天,所以下雨天我不会打 伞,如果有人较真儿说为什么看见我打伞了,我会告诉他,我喜欢下雨,可我的手机不喜欢....



 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1673585

相关文章
|
15天前
|
算法 Linux 调度
深入理解Linux内核调度器:从基础到优化####
本文旨在通过剖析Linux操作系统的心脏——内核调度器,为读者揭开其高效管理CPU资源的神秘面纱。不同于传统的摘要概述,本文将直接以一段精简代码片段作为引子,展示一个简化版的任务调度逻辑,随后逐步深入,详细探讨Linux内核调度器的工作原理、关键数据结构、调度算法演变以及性能调优策略,旨在为开发者与系统管理员提供一份实用的技术指南。 ####
54 4
|
4天前
|
缓存 并行计算 Linux
深入解析Linux操作系统的内核优化策略
本文旨在探讨Linux操作系统内核的优化策略,包括内核参数调整、内存管理、CPU调度以及文件系统性能提升等方面。通过对这些关键领域的分析,我们可以理解如何有效地提高Linux系统的性能和稳定性,从而为用户提供更加流畅和高效的计算体验。
13 2
|
17天前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
47 9
|
17天前
|
算法 Unix Linux
深入理解Linux内核调度器:原理与优化
本文探讨了Linux操作系统的心脏——内核调度器(Scheduler)的工作原理,以及如何通过参数调整和代码优化来提高系统性能。不同于常规摘要仅概述内容,本摘要旨在激发读者对Linux内核调度机制深层次运作的兴趣,并简要介绍文章将覆盖的关键话题,如调度算法、实时性增强及节能策略等。
|
20天前
|
机器学习/深度学习 负载均衡 算法
深入探索Linux内核调度机制的优化策略###
本文旨在为读者揭开Linux操作系统中至关重要的一环——CPU调度机制的神秘面纱。通过深入浅出地解析其工作原理,并探讨一系列创新优化策略,本文不仅增强了技术爱好者的理论知识,更为系统管理员和软件开发者提供了实用的性能调优指南,旨在促进系统的高效运行与资源利用最大化。 ###
|
19天前
|
监控 网络协议 算法
Linux内核优化:提升系统性能与稳定性的策略####
本文深入探讨了Linux操作系统内核的优化策略,旨在通过一系列技术手段和最佳实践,显著提升系统的性能、响应速度及稳定性。文章首先概述了Linux内核的核心组件及其在系统中的作用,随后详细阐述了内存管理、进程调度、文件系统优化、网络栈调整及并发控制等关键领域的优化方法。通过实际案例分析,展示了这些优化措施如何有效减少延迟、提高吞吐量,并增强系统的整体健壮性。最终,文章强调了持续监控、定期更新及合理配置对于维持Linux系统长期高效运行的重要性。 ####
|
20天前
|
安全 网络协议 Linux
Linux操作系统的内核升级与优化策略####
【10月更文挑战第29天】 本文深入探讨了Linux操作系统内核升级的重要性,并详细阐述了一系列优化策略,旨在帮助系统管理员和高级用户提升系统的稳定性、安全性和性能。通过实际案例分析,我们展示了如何安全有效地进行内核升级,以及如何利用调优技术充分发挥Linux系统的潜力。 ####
44 1
|
22天前
|
人工智能 算法 大数据
Linux内核中的调度算法演变:从O(1)到CFS的优化之旅###
本文深入探讨了Linux操作系统内核中进程调度算法的发展历程,聚焦于O(1)调度器向完全公平调度器(CFS)的转变。不同于传统摘要对研究背景、方法、结果和结论的概述,本文创新性地采用“技术演进时间线”的形式,简明扼要地勾勒出这一转变背后的关键技术里程碑,旨在为读者提供一个清晰的历史脉络,引领其深入了解Linux调度机制的革新之路。 ###
|
2月前
|
监控 Linux 云计算
Linux操作系统在云计算环境中的实践与优化###
【10月更文挑战第16天】 本文探讨了Linux操作系统在云计算环境中的应用实践,重点分析了其在稳定性、安全性和高效性方面的优势。通过具体案例,阐述了Linux如何支持虚拟化技术、实现资源高效分配以及与其他开源技术的无缝集成。文章还提供了针对Linux系统在云计算中的优化建议,包括内核参数调整、文件系统选择和性能监控工具的应用,旨在帮助读者更好地理解和应用Linux于云计算场景。 ###
43 3
|
15天前
|
存储 运维 Linux
Linux防火墙firewall的使用
CentOS 7 中的 firewalld 是基于 Netfilter 的防火墙服务,支持动态配置,无需重启服务即可生效。它通过区域管理网络流量,每个区域可以设置不同的防火墙规则。默认区域为 public,可以通过命令行工具 firewall-cmd 进行管理和配置。firewalld 提供了丰富的预定义服务和区域,方便用户根据需求进行灵活配置。
35 0