iptables系列四
iptables系列之常用扩展模块
iptables
-s,-d
-s IP,NET
172.16.0.0/16,172.16.100.7
-m iprange
This matches on a given arbitrary range of IP addresses.
-m iprange
--src-range
--dst-range
iptables -t filter -A INPUT -p tcp -m iprange --src-range 172.16.100.3-172.16.100.100 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
-m connlimit :连接数限制
[!] --connlimit-above n 连接数的上限
允许您限制每个服务器的并行连接数量,客户端地址(或客户端地址块)。
同一个地址允许同时发起多少个连接。
iptables -t filter -A INPUT -d 172.16.1.3 -p tcp 90 -m connlimit ! --connlimit-above 2 -j ACCEPT
服务器的cpu,内存,网卡带宽有限。瞬间涌入大量的请求,后面的请求就是等待。
流量控制
ip,tc 流量整形 reshape
流量控制
流量控制是对已经成功分类的具体流量执行的一种管制行为,这控制行为从实施特性上大致可分为两种:流量监管(policing),事实上就是限速,如果可能它将超过限定速率的流量丢弃,或者重标记流量行为,流量整形(shaping)事实上就是尽量最大努力缓存并平滑流量。
接入速率(Access Rate):
是指物理接口的接入速率
认购速率(traffic contract):
认购流量也叫“契约流量”,所谓契约流量就是指用户花钱在ISP(Internet服务供应商)处购买的网络流速,这个速度是指ISP在任何时候都应该为用户保障的速率。通常它还有一个名称叫CIR(承诺信息速率CommittedInformation Rate)。
理解流量控制中的监管(限速)行为:
如图5所示,为流量的监管前后的示意图,可清晰的看出,没有被监管之前的流量,在限定速率之上的那部分,在执行监管这后,流量的波峰被丢弃,流量监管这种行为仅仅是对超过限定速率的流量进行丢弃或者重标记流量(一般重标记会降级流量的优先程度),不对流量做缓存,所以不会为那些没有超过限定的流量造成更大的延迟。更直接的讲流量监管实际上是一种限速行为,超额部分被丢弃的流量会引发重传。
理解流量控制中的整形(缓存)行为:
流量整形与流量监管有着不同的实质,流量整形是将超过限额的流量进行缓存,然后基于特定的策略和规则来传递这部分缓存的流量,达到平滑流量的效果。如图6所示,超过整形速率之上的流量在被实施流量整形后,这部分超额流量将以换回更大的转发延迟为代价来得到发送,而不是丢弃,所以在图6的环境中虚线所示的流量就是被整形后的流量,可看出它更加的平滑,但是在时间轴上的转发延迟将更大。
tc:令牌桶机制
令牌桶算法是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。典型情况下,令牌桶算法用来控制发送到网络上的数据的数目,并允许突发数据的发送。 大小固定的令牌桶可自行以恒定的速率源源不断地产生令牌。如果令牌不被消耗,或者被消耗的速度小于产生的速度,令牌就会不断地增多,直到把桶填满。后面再产生的令牌就会从桶中溢出。最后桶中可以保存的最大令牌数永远不会超过桶的大小。 传送到令牌桶的数据包需要消耗令牌。不同大小的数据包,消耗的令牌数量不一样。 令牌桶这种控制机制基于令牌桶中是否存在令牌来指示什么时候可以发送流量。令牌桶中的每一个令牌都代表一个字节。如果令牌桶中存在令牌,则允许发送流量;而如果令牌桶中不存在令牌,则不允许发送流量。因此,如果突发门限被合理地配置并且令牌桶中有足够的令牌,那么流量就可以以峰值速率发送。
-m limit
此模块匹配使用令牌桶筛选器的有限速率。规则使用此扩展将匹配到该限制(除非'!'使用标志。它可以与日志目标结合使用有限的日志记录,如。
--limit rate :
最大平均匹配率:指定为一个数字,用一个可选的“/second”,“/minute”,“/hour”,或“/day”的后缀,默认是3/hour。
--limit-burst number
最大初始数据包数匹配:这个数字得到接受每一个时间达不到上述规定的限制,这个数字最多,默认为5。
iptables -t filter -I INPUT -d 172.16.1.3 -p tcp --dport 22 -m limit --limit 3/minute --limit-burst 3 -j ACCEPT
iptables -t filter -A INPUT -d 172.16.1.3 -p icmp --icmp-type 8 -j ACCPET
iptables -t filter -A INPUT -d 172.16.1.3 -p icmp --icmp-type 8 -m limit --limit=1/second --limit-burst=4 -j ACCEPT
-m string
--algo {bm|kmp}
--string "string"
iptables -I OUTPUT -s 172.16.1.3 -m string --algo kmp --string "nihao" -j REJECT
-j lOG
--log-prefix "string"
iptables -t -I INPUT -d 172.16.1.3 -p icmp --icmp-type 8 -j LOG --log-prefix "--firewall log for icmp"
注意:防止磁盘IO,修改写入的速率。
- java并发编程学习:用 Semaphore (信号量)控制并发资源
- java并发编程学习: ThreadLocal使用及原理
- 使用Autofac IOC组织多项目应用程序
- 国内首个“人工智能与变革管理研究院”成立
- 解决WordPress缩略图插件timthumb不支持站外图片的问题
- 让 http 2来得更猛烈些吧
- SQL Server 2008基于策略的管理
- centos系统安装Python
- rpc框架之 thrift连接池实现
- .NET Core全新路线图
- jboss eap 6.2+ 版本中 加密datasource密码等敏感信息
- WordPress自定义栏目运用实例II:添加文章Meta标签(keywords /description)
- 《Deep Learning with Python》第一章 1.1 人工智能、机器学习和深度学习
- boost::function的用法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PAT (Basic Level) Practice (中文)1013 数素数 (20 分)
- PAT (Basic Level) Practice (中文)1041 考试座位号 (15 分)
- 《Java 面试问题 一 Spring 、SpringMVC 、Mybatis》
- SAP Spartacus里的product carousel控件的实现cx-product-carousel
- PAT (Basic Level) Practice (中文)1014 福尔摩斯的约会 (20 分)
- 《数据结构与算法_插入排序》
- UGL之标准位图
- Linux(Centos7.X ) 配置Java 环境变量
- CNS图表复现05—免疫细胞亚群再分类
- PAT (Basic Level) Practice (中文)1015 德才论 (25 分)
- 前端下载二进制流文件
- element-ui 表格打印
- PAT (Basic Level) Practice (中文)1016 部分A+B (15 分)
- 【Linux_Shell 脚本编程学习笔记二、打印菜单】
- PAT (Basic Level) Practice (中文)1017 A除以B (20 分)