IPTables六—— IPTable规则优化IPSet

六、IPSet

iptables在进行包过滤的时候,对每个数据包都过滤一遍iptables中的规则。假设我们有如下三条规则:

-s 1.1.1.1 -p tcp accpet

-s 2.2.2.2 -p tcp accpet

-s 3.3.3.3 -p tcp accpet

那么当一个数据包源地址是3.3.3.3的时候,它首先去匹配第一条规则,不匹配再匹配第二条,最后在第三条匹配中了。想一想如果我有类似的100条规则呢?内核最差的情况是不是对一个数据包需要做100个规则匹配,这是相当没有效率的事情。在上述的例子中,其动作都是一样的能不能把这三条规则总结成一条规则呢 ?有那就是IPSet,它将多条iptable规则富集到一个ip set里,这个ip set使用hash或者图来组织,在netfilter过滤的时候,采用hash或者图方式规则运算进行查找,比原来的iptable一个顺序的规则查找方法运算速度提升很多,特别是规则条目很多的时候。

1、IPSet支持的匹配集

1.1 bitmap

支持bitmap:ip bimap:ip,mac和bitmap:port

支持hash:ip,hash:net ,hash:ip,port,net hash:ip,port,ip hash:net,port hash:net,if

支持list

2、使用例子:

针对上例,我们使用如下方法设置ipset

IPSet -N zxy_set hash:ip  hashsize 256 maxelem 1024

IPSet add zxy_set 1.1.1.1

IPSet add zxy_set 2.2.2.2

IPSet add zxy_set 3.3.3.3

Iptable -I INPUT -m set --match-set zxy_set src -p tcp -j Accept

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 语法:ipset [ OPTIONS ] COMMAND [ COMMAND-OPTIONS ]COMMANDS ...
    老夫刘某阅读 3,060评论 0 0
  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,752评论 24 1,002
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,845评论 18 139
  • 入冬以来,随着雾霾天气的加重,有关污染的报道、评论、说说见诸各报端,这是一个言论自由的时代,大家畅所欲言,而这种“...
    端阳月阅读 380评论 0 0
  • 2017/10/26 周四 奇迹感恩日记 奇迹 1. 今天我很开心。早上在宏燕的豪宅醒来,打开门窗,一片鸟语花香。...
    木易江鳥阅读 214评论 0 0