http://www.pppei.net/blog/post/331

在作流量管理时,这些概念很重要,不要迷失。。

这里再对Limiter 的源地址和目的地址做个说明,因为limiter是被应用在Lan接口的Rule里,相对pfsense来说,用户发往 Lan口的流量为In,pfsense通过Lan口发给用户的流量为OUT,因此限制上传的limiter因该应用在In方向,limiter的参照值应该为“源IP”,下载的Limiter应该应用在OUT方向,因为是转发给用户的所以这个limiter的参数值应该是“目的IP”。

另外,,,,策略路由,还有流控,就在LAN里作就OK了,,,但目前不很清楚它和FLOATING的差别。因为同样都会生效呢。。难道FLOATING规则真的是为了不指定具体出口之类的????

~~~~~~~~~~~~

流量管理

pfsense 有三种流量管理方法。
一是Queue,这种方式适合做QOS(服务质量保证),对数据进行分类,根据不同数据的不同特性,提供不同的服务质量,比如IP电话的语音数据,需要低网络延时,而某用户的下载流量只关心总带宽,这时就可以将ip电话的数据标记出来放到低延时的队列里,下载的流量放到只保证带宽的队列里,网关会用不同的算法转发相应的数据包,达到预定的服务质量。如果要实现对每个IP分别限速,就要为每个ip都建立一个队列,然后将每个IP的数据对应到唯这个队列上;
二是使用Captive portal,这种方式更适合用在无线网络环境中,用户需要打开浏览器输入用户名密码之后才能正常上网,同时为每个用户分配固定的带宽。只要开启了Captive portal,即使关闭了认证,也还是要打开浏览器在弹出的页面上点击确定后才能上网,用在有线环境里太影响用户体验,而且目前Captive portal 只有全局一个实例,2.1版可以针对不同的端口启用不同的实例;
三是使用防火墙的高功特性(这种方法是根据IP地址分别进行限速的)。在防火墙规则中限速有一个缺点,限速和访问控制策略偶合在了一块,失去了灵活性,配置的时候要谨慎一点不然可能会出现限速失效的情况,举个例子,为说明简单这里限速指的是下载限速:
①——-permit tcp any  to host 1.1.1.1 from lan————————
②——-permit any to any and speed limit 2M from Lan——

策略①中没有做流量限制,②中每用户的下载都限制在了2M。防火墙规则匹配是自上到下,匹配成功就不再向下进行,因此去往1.1.1.1的流量匹配了第一条策略,没做限速,第二条规则中的限速也就失效了。

另外再对速度做个说明,同样的策略在第一条上加上限速:
①——-permit tcp any  to host 1.1.1.1 and speed limit at 2M from lan——-
②——-permit any to any and speed limit 2M from Lan——

去往1.1.1.1的流量还会匹配策略①,其它的流量匹配策略②,那么如果用户同时有从1.1.1.1下载的流量和其它从其它地方下载的流量,从1.1.1.1下载.限制在2M,从其它地方下载也被限制在2M,因为是同时产生的流量,所以加起来用户得到了4M带宽。其实结果并不是这样的,在防火墙规则中限速时要先定义limiter,然后在规则中引用。内部是这样实现的,BSD的 PF(packet filter)没有限速功能,定义出来的limiter其实是另一个防火墙实现:IPFW中的组件,这个组件实现了限速,而且这个组件支持PIPE(管道)。PF中将匹配到的下载流量通过PIPE送到IPFW的Limiter中,limiter会根据定义时规定的参照值(源、目的ip,下载参照目的IP),为每个ip生成一个bukket,数据通过bukket的速度是它所属Limiter的速率。回到上面的例子规则 ①②中下载2M的limiter为同一个,同时匹配了两条规则的数据,通过PIPE被送到同一个Limiter中,这个limiter会根据目的ip生成一个BUKKET,这个bukket最大速度2M,用户得到的带宽最大也只是2M。如果规则①中使用了其它limiter比如下载3M的limiter,那么用户最终得到的带宽就是5M了。

  实施方法前边也都说过了,很简单了Firewall ->Traffic Shaper -> limiter 下创建Limiter(需单独为上传下载创建limiter) ,然后在Firewall -> rule->Lan 规则的高级特性 In/Out 中应用limiter。

这里再对Limiter 的源地址和目的地址做个说明,因为limiter是被应用在Lan接口的Rule里,相对pfsense来说,用户发往 Lan口的流量为In,pfsense通过Lan口发给用户的流量为OUT,因此限制上传的limiter因该应用在In方向,limiter的参照值应该为“源IP”,下载的Limiter应该应用在OUT方向,因为是转发给用户的所以这个limiter的参数值应该是“目的IP”。

还有人可能会有疑问应用在Lan口只是转发给用户的速度慢了,从Wan口进来的流量一样不受限制。这种想法是错的,因为TCP有流控机质,UDP的话就要看上层应用的质量了。

在应用了新策略后,之前已经建立的连接是不会受这些规则影响的,可能得不到你想要的效果,需要在Diagnostics->States -> reset status 下清理一下pfsense的状态,中断用户的连接,就能看到效果了。

如果你更习惯在命令行操作,给出一些常用命令,不用和web界面死磕了:

pfctl -sn   #显示nat规则
pfctl -sr   #显示filter规则
pfctl -sa  #显示所有规则
pfctl -ss  #显示防火墙状态
pfctl -F nat #重置防火墙状态(清空NAT状态表)
ipfw pipe show #显示limiter的状态  其中0000x 为limiter的编号 BKT一列就是为每个ip分配的bukket编号

pfsense下的流量管理(转)相关推荐

  1. pfSense book之流量管理

    流量管理 流量管理可以为网络做些什么 硬件限制 ALTQ调度程序类型 使用向导配置ALTQ流量管理器 监控队列 高级定制 限制器 流量管理和××× 疑难解答 流量管理或网络服务质量(QoS)是优先考虑 ...

  2. 在pfSense下设置GoDaddy动态DNS API记录

    家庭用户一般都采用拨号连接到Internet,没有固定的外网地址,如果想从外部提供服务,则必须使用动态DNS等技术.在这种情况下,具有当前IP地址的A记录存储在域的DNS服务器中. 提供商提供动态DN ...

  3. 构建云原生环境下东西向流量管理的最佳实践

    一 不得不说的云原生隔离性 不断创新的技术带来了一系列好处,例如自动化.敏捷性和效率,提高了公司的生产率.但是,随着新技术的到来,漏洞和安全威胁也随之而来. 集装箱化就是这种情况.尽管容器化已经存在了 ...

  4. pfSense book之硬件配置指南

    硬件 最低硬件要求 硬件选择 硬件配置 硬件优化和故障排除 pfSense软件发行版与FreeBSD支持的大多数硬件兼容. pfSense2.4和更高版本与64位(amd64,x86-64)体系硬件架 ...

  5. Pfsense2.34中文版

    Pfsense2.34中文版 来源  https://forum.netgate.com/topic/112076/pfsense2-34%E4%B8%AD%E6%96%87%E7%89%88-%E8 ...

  6. 云原生时代,微服务如何演进?

    简介:云原生时代,微服务和云原生会产生怎样的关系?云原生时代的微服务又有什么特点?当前有哪些比较活跃的微服务项目?阿里巴巴资深技术专家李响从微服务的生命周期.流量治理.编程模型以及可信安全4个方面,分 ...

  7. 新媒体中的淘宝电商运营资源

    做电商运营一直都是很多公司不想放弃的,特别是卖产品的公司,于是各大电商平台也需要专业的电商运营人员来运营,淘宝电商运营平台是其中极具代表性的一个平台,今天来说一下新媒体中的淘宝电商运营该怎么做?分享一 ...

  8. 我该从哪些方向了解云原生领域?

    你好,我是王炜.今天我们一起来看一看该从什么角度了解云原生领域. 说起云原生领域,我相信你首先想到的是大名鼎鼎的 Kubernetes(Kubernetes),Kubernetes 已经成为容器调度的 ...

  9. Slime:让 Istio 服务网格变得更加高效与智能

    Slime 是网易数帆旗下轻舟微服务团队开源的服务网格组件,它是一个为简化云原生而生的智能网格管理器,可以通过服务监控自动感知服务状态智能调整服务治理策略,实现Istio/Envoy的高阶功能. 目前 ...

最新文章

  1. 2020-09-20C++学习笔记之与C语言对比1
  2. matlab中if语句的用法_if语句的基本用法
  3. 蓝桥杯评分标准_蓝桥杯比赛要求
  4. 想捧金饭碗? 修炼这25项技能就够了!
  5. 最简单的模拟U盘病毒(Autorun.inf)
  6. elasticsearch新增_SpringBoot 使用JestClient操作Elasticsearch
  7. 网络协议栈深入分析(四)--套接字内核初始化和创建过程
  8. 我年薪百万,孩子教育花掉一半
  9. 浏览器渲染原理 记录备份
  10. 1. java程序的编译命令_Java中javac、java、javap使用详解(java编译命令)
  11. hibernate使用sql进行查询
  12. 大陆计算机科学家排名,韩家炜、张宏江2位校友在世界顶尖计算机科学家排名中分别位居华人科学家和中国大陆科学家之首...
  13. 【Java】Java语言程序设计(基础篇)全书笔记
  14. SAN海量存储解决方案
  15. swb-2润湿平衡测试仪_自动化测试
  16. android studio导入音乐文件,Android Studio 通过raw 文件夹播放音乐问题
  17. vue3.0 axios 图片上传
  18. 视频教程-清华-尹成老师-Python数据库3.MySQL-Python
  19. VSFTPD搭建过程记录
  20. cross-site tracing XST攻击

热门文章

  1. Ubuntu 16.04/CentOS 6.9安装Apache压力(并发)测试工具ab
  2. OpenWrt:Linux下生成banner
  3. code point,code unit
  4. 2015华为校招机试面试
  5. Oracle %rowtype的用法
  6. 真希望永远用不到这些代码
  7. mysql数据库三大引擎优缺点
  8. 【Tomcat】Tomcat配置与优化(内存、并发、管理)【自己配置】
  9. 利用linux shell自己主动顶贴
  10. Msys2 国内源(2017.3.30)