ROS防火墙与服务质量.doc
《ROS防火墙与服务质量.doc》由会员分享,可在线阅读,更多相关《ROS防火墙与服务质量.doc(56页珍藏版)》请在三一办公上搜索。
1、带宽控制总论摘要带宽控制是一组用于控制数据率分配、 延迟变化、 及时传输和确保传递可靠性的机制。MikroTik 的 RouterOS 支持以下的排队规则: PFIFO 包先进先出 BFIFO 字节先进先出 SFQ -随机公平队列 RED 随机早期检测 PCQ 每个连接排队 HTB 分层令牌桶技术要求所需安装包: system所需许可: Level1 (limited to 1 queue) , Level3子菜单级别: /queue技术规范: None硬件使用: significant描述服务质量 (QoS) 指路由器应该优化和整形网络流量。服务质量不像有关限制那样,而是为网络用户提供更多优
2、质的服务。下面列出了 MikroTik 的 RouterOS 流量控制机制的部分功能: 限制确定的IP地址、子网、协议、端口和其它参数的速率 限制点对点的流量 设置一些包流量优先别的包 使用队列突发加快web 浏览速度 定时应用队列。 共享可用流量做到用户平等或负载均衡该队列应用于通过实体接口离开路由器的数据包 (即,队列应用于相关数据流的输出接口),或任何一个3个辅助的虚拟接口 (global-in, global-out, global-total)QoS依靠丢弃包来执行。TCP 协议的情况下,被丢弃的数据包将会不满一个慢的速率,因此无需担心因整形而失去 TCP 的一些信息。用来描述网络应
3、用程序的服务质量水平的主要条件是: qdisc (队列规则) 保存并保留一个数据包队列的算法。它累计数据包,并决定输出数据包顺序 (这意味着排队规则可以对数据包进行重新排序)。Qdisc 还决定在没有空间的情况下丢弃哪些数据包。 CIR (忠于信息速率) - 保证数据速率。这意味着流通率不超过此值应始终送达 MIR (最大信息率) - 将提供最大数据速率路由 Priority 什么样的数据流将按重要的顺序处理。您可以给一些数据流设定优先级,以便在其它一些数据流前处理 Contention Ratio -所定义的数据速率是用户间共享(当某一数据传输率分配到多个用户时)的比率。它是将一些用户集合在
4、一起而进行单个的速度限制。例如,1:4的争用速率(contention ratio)意味着只是4个用户之间共享已分配的数据速率 通过接口发送数据前,它被排队规则(qdisc)处理。每个接口仅一个排队规则,默认情况下,每个物理接口在/queue interface下设置队列规则(虚拟接口没有定义排队规则)。一旦我们将第一个队列 (在 /queue tree或/queue simple里) 添加到一个物理接口,接口默认队列被该队列的HTB 层次结构替换,但一个在/queue interface中为该特定的接口的定义,不再起作用。qdiscs计划和整形 我们可以将排队规则分类,由分类器来影响包流量:
5、 计划 -排队规则只重新安排数据包的算法和丢弃数据包而并不组装数据包。计划程序排队规则是: BFIFO,PFIFO ,SFQ,PCQ (计划程序和整形机) ,RED 整形 整形排队规则同样还执行限制功能。整形有PCQ(计划程序和整形机)和 HTB虚拟接口 在RouterOS中,除实际接口外,有 3个虚拟接口: global-in -通常代表所有输入的接口(入口队列)。请注意附加到global-in的队列,适用于在数据包筛选之前接收路由器的数据流。global-in队列执行在mangle 和 dst-nat之后 global-out -通常表示所有输出的接口(出口队列)。队列附加到一个特定的接口
6、之前队列附加到的应用 global-total -表示一个经历路由器通过所有数据的虚拟接口。当附加一个 qdisc到global-total时, 限制是在两个方向。例如,如果我们设置total-max-limit为 256000,我们将得到上传+下载 = 256 kbps (最大)HTB导论 HTB (层次令牌桶)是一个有益于排队规则的总分类,它基于类采用不同的方法来处理不同类型的数据流。这种队列依靠主要层次令牌桶 (HTB)附加在/queue simple 和 /queue tree中。例如,您可以给一个工作组设置最高的数据传输率,然后在该工作组的成员之间分发数据流HTB队列规则详解:HTB
7、 项目: filter(过滤器) - 对包进行分类的程序。filter负责数据包的分类,以使他们都放入相应的队列规则。所有filter应用于 HTB 的根和直接进入qdiscs分类数据包,而不遍历HTB树。如果一个数据包,不分类为qdiscs的任何一种,它将穿越HTB直接发送出接口,所以没有 HTB 规则将应用于那些数据包 (它表示比HTB管理的任何数据包流优先级更有效)。 level(层) 类在层次结构中的位置。 class(类) 限制数据流到某一速率的算法。它并不存储任何的数据包(此功能只能执行于队列)。类可能包含一个或多个子类 (inner class)或唯一一个 qdisc (leaf
8、 class) 。 inner class(内部类) -具有一个或多个子类附加到它的类。由于inner classes不存储任何数据包,qdiscs 不可以附加到他们(因此,他们的 qdisc 和filter设置被忽略,虽然可能仍会显示在 RouterOS 配置中),所以他们只做数据流整形。优先级设置也会被忽略。 leaf class(叶类)-有父级,但没有子类的所有类。Leaf classes始终位于层次结构level 0 。每个leaf class有且只有一个 qdisc用某一优先级附加到它。 self feed(自馈)-各类活动在其所在的层次结构层的数据包出口(源自HTB树,至接口)。每
9、个level(层)有一个self feed,并由8个self slots组成代表优先级。 self slot(自槽)- 是self feed的元素,对应于每个特定的优先级。每级的每个优先级有一个self slot。作用在同一level(层)具有相同优先级的所有类附加到一个self slot,通过使用它发送出数据包。 active class(活动类)(在某个特定层) - 在给定的层附加到self slot上的类。 inner feed(内馈)-类似于self feed对象,它由inner self slot组成,存在于各自inner class中,每个inner class有一个inner f
10、eed。 inner feed slot(内馈槽)-类似于self slot。每个inner feed由inner slots组成,代表一个优先级。每个类有一个父类并可能有一个或多个子类。没有子类的类,放在level 0,队列保留并调用leaf classes。每个层次结构中的类能够优化和整形数据流。有两个主要的参数引用到整形,有一个列入优先: limit-at 保障一个类的标准速率 (CIR) max-limit 一个类能达到的最大速率 (MIR) priority - 在同一level(层)下,类服务的次序(8 是最低优先级,1为最高)每个HTB 类依赖占用的数据速率可以是下列3状态之一:
11、 green(绿色)-类的实际速率等于或低于limit-at时。这种状态下,这个类在它的level上附加到相应的优先级,可满足其CIR限制,而不管其父类的任何限制。例如,如果我们有一叶类,其limit-at=512000且其父有max-limit=limit-at=128000,该类仍会得到512 kbps !在相同层的所有MIRs和更高层的任何限制前,首先满足特定层的所有 CIRs。 yellow (黄色)-类的实际速率大于limit-at,且等于或小于max-limit (或burst-limit,如果突发限制处于活动状态)。在这种情况,如其父类为绿色状态,类将附加到其父类inner fe
12、ed相同优先级的inner slot上;如父类也是黄色的,依次,可能附加到父类的父类相同的优先级的inner slot。过渡到这种状态,类从它所在层的self feed断开并连接到其父的inner feed。 red (红色)- 类的实际速度超过max-limit (or burst-limit如果突发处于活动状态)。这个类不能借用其父类的速率。注: 像CIRs 总是先于MIRs或更高层其他限制的考量之前得到满足一样,您应该始终确保任何inner class的limit-at属性等于或大于其子类的所有limit-at参数的和。Priorities(优先级) 发送数据包可能发生的情况是,HTB查
13、询其所有self slots的优先级顺序,从最低层的最高优先级开始,直到最高层的最低优先级。每个叶类(包只在附加到各自叶类的qdiscs中存储并排队)直接或通过父类的一条链路最终将连接到某个self slot: 如图所示,叶类在绿色状态一定会比那些黄色的有效优先 (他们从父类中借用了速度),因为他们的优先级是在较低层(level 0)。图中,Leaf1(优先级7)将在Leaf2(优先级8)发送后才发送,虽然它比 Leaf2有更高的优先级。在同样的优先级及相同的状态情况下,HTB用循环复用算法服务这些类。HTB例子 下面是一些HTB 怎样工作的示例。假设以下情况-我们有3种不同的数据流(pack
14、et_mark1、 packet_mark2 和 packet_mark3),标记在 /ip firewall mangle下,现在建立 HTB 层次结构:adminMikroTik queue tree add name=ClassA parent=Local max-limit=2048000adminMikroTik queue tree add name=ClassB parent=ClassA max-limit=1024000adminMikroTik queue tree add name=Leaf1 parent=ClassA max-limit=2048000 . limit
15、-at=1024000 packet-mark=packet_mark1 priority=8adminMikroTik queue tree add name=Leaf2 parent=ClassB max-limit=1024000 . limit-at=256000 packet-mark=packet_mark2 priority=7adminMikroTik queue tree add name=Leaf3 parent=ClassB max-limit=1024000 . limit-at=768000 packet-mark=packet_mark3 priority=8adm
16、inMikroTik queue tree printFlags: X - disabled, I - invalid 0 name=ClassA parent=Local packet-mark= limit-at=0 queue=default priority=8 max-limit=2048000 burst-limit=0 burst-threshold=0 burst-time=0s 1 name=ClassB parent=ClassA packet-mark= limit-at=0 queue=default priority=8 max-limit=1024000 burst
17、-limit=0 burst-threshold=0 burst-time=0s 2 name=Leaf1 parent=ClassA packet-mark=packet_mark1 limit-at=1024000 queue=default priority=8 max-limit=2048000 burst-limit=0 burst-threshold=0 burst-time=0s 3 name=Leaf2 parent=ClassB packet-mark=packet_mark2 limit-at=256000 queue=default priority=7 max-limi
18、t=1024000 burst-limit=0 burst-threshold=0 burst-time=0s 4 name=Leaf3 parent=ClassB packet-mark=packet_mark3 limit-at=768000 queue=default priority=8 max-limit=1024000 burst-limit=0 burst-threshold=0 burst-time=0sadminMikroTik queue tree现在让我们描述一些情况,来使用此 HTB 层次结构。1. 假设数据包已经到达 Leaf1和 Leaf2的情况。因此,Leaf1把
19、自身放到此层(Level 0)的self slot ,priority = 8;Leaf2 依赖于self slot,priority=7;Leaf3 没什么可发送,所以它不执行任何操作。这是一个简单的情况:在Level 0有两个活动类 (Leaf1 和 Leaf2),他们都在绿色的状态,起先,他们按优先级顺序处理,先服务 Leaf2,然后 Leaf1。2. 现在假定 Leaf2 拥有超过 256 kbps的发送速率,因此它需要看一下它的绿色的限制。因状态的改变,它自身连接到其父类 (ClassB)的 inner feed,并以递归方式将自身附加到Level1的优先级 7 的self slot
20、。Leaf1将保持绿色状态-有数据包发送,但他们的速率是低于1Mbps,Leaf3一直没有数据可发送。这是很重要的,要明确 Leaf1 现在有比 Leaf2更高、更有效的优先级(如果它是在绿色的状态),尽管我们用比 Leaf2 低的优先级 (8) 配置了它。因为 Leaf2 已断开本身在Level 0的self feed,而附加到Level 1的self feed并正在从其父 (ClassB) 借用速率。因此,Leaf2的优先级已跳到Level1。请记住最先服务最低层, 层的优先级是先低层后高层,以满足附加类的优先级顺序。3. 考虑 Leaf1 已达到其最大限制,并更改其状态为红色,同时 Le
21、af2 现在用量已超过 1Mbps (且小于 2Mbps),因此它的父类ClassB已向ClassA借并变为黄色。Leaf3 仍未发送的数据包。这种情况显示 Leaf1 已达到其max-limit,不能再从其父 (ClassA) 借用,因此它断开所有self slots和inner slots。Leaf2已递归到达Level 2,因为它从 ClassB借,依次到ClassA借,然可利用的速率并没有足够。Leaf3 仍没有数据包发送,唯一发送的类是 Leaf2。4. 假定 ClassA 达到max-limit (2Mbps) ,这样,ClassB 和 Leaf2 都不可以发送,因为他们只能依靠借
22、用,又因ClassA不能发送而成不可能。但现在,Leaf3有一些数据包发送在这种情况下 Leaf2 是黄色的状态,但它不能借用 (因为ClassB类不能从Class A 借),并且Leaf3是唯一可以发送的类。请注意,即使没有其它类包括其父类能发送, Leaf3都能完好发送,因为它附加在Level 0 self feed。5. 最后,让我们看看发生了什么,如果Leaf1、 Leaf2、 Leaf3、 ClassB 在黄色的状态,并且ClassA 是绿色的。Leaf1从ClassA借、 Leaf2 和 Leaf3从ClassB借,而ClassB反而从ClassA借。现在所有的优先级移到Level
23、 2。如此,Leaf2 上有最高的优先级,而最先受服务。而 Leaf1 和 Leaf3在所在的同一层(2)上有相同的优先级 (8),他们受服务使用循环复用算法。Bursts突发 突发用于短时间内允许更高的数据速率。每个突发时间(burst-time)的1/16时,路由器在最近burst-time上计秒,计算每个类的平均数据速率。如果此时平均数据速率少于突发阈值(burst-threshold),突发被启用并且有效的速率限制 (过渡到红色状态) 设置为突发限制(burst-limit)bps,否则将有效的最大限制落在max-limit上。让我们看看下面的设置: max-limit=256000,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ROS 防火墙 服务质量

链接地址:https://www.31ppt.com/p-2401751.html