跳转到内容

IPCop 高级 QoS

25% developed
来自维基教科书,开放的书籍,开放的世界

IPCop 的 QoS 附加组件是流行的 IPCop 防火墙的高级 流量整形 附加组件。由 Markus Hoffmann 维护,作为 GPL/Creative Commons 开源 项目。

目前维护着两种 QoS 包,使用两种不同的数据包调度协议:HTB 和 HTSC。

流量整形简介

[编辑 | 编辑源代码]

服务质量 (QoS) 是指构成流量整形的所有不同模块。QoS 试图将所有这些不同的程序和协议整合在一起,以便将时间敏感的网络流量(如 VoIP 和在线游戏)优先于时间不敏感的数据传输(如 P2P 或 FTP 流量)。如果它做得很好,那么您可以在下载/上传大文件的同时进行 VoIP 对话,而不会延迟或出现语音通话中断。

高级 QoS 附加组件有两个版本

  • 分层公平服务曲线调度器 (HFSC) – (QoS 2.5 Ipcop 1.4.8)
  • 分层令牌桶调度器 (HTB) – (QoS_NG)
  1. 先决条件
  2. 安装
  3. 设置类 (对于出站流量)
  4. 设置 ACK
  5. 定义流量
  6. IMQ – 设置入站流量的类和规则
  7. 卸载 QoS 附加组件
  8. 词汇表
  • 限制不需要的/低优先级流量有两种方法
    • 使用第 7 层工具创建指向流量类型的规则,或使用特定端口,然后指定此流量允许的最大带宽。
    • 为允许的流量创建规则,并为它们提供最大带宽(或已知数量),然后限制默认规则的带宽,从而限制所有未知流量。
  • 最大根带宽通常设置为实际带宽的 90%,以减少本地调制解调器或 ISP 端缓冲数据的影響。问题源于请求的数据可以排队(大量排队)以避免数据流中的间隙。虽然这对于大规模的连续传输有效,但混合数据传输会受到影响,因为它们必须“排队”等待发送,导致网络响应缓慢。
  • 端口范围可以输入为 <端口>[空格]-[空格]<端口>。例如:1000 - 2000
  • IP 范围可以输入为 CIDR 表示法地址。例如:192.168.1.0/24
  • 问:在哪里可以下载 IPCOP 的高级 QoS?
  • 问:QoS 的“最大延迟(毫秒)”到底意味着什么?
  • 问:QoS_NG 的“Maxbust”和“Ceilmaxburst”到底意味着什么?
    • 答:Burst : 可以以 ceil 速度突发传输的字节数,超过配置的最大上传速度。应该至少与所有子类的最高突发量一样高

Ceilburst: 可以以“无限”速度突发传输的字节数,换句话说,就是接口可以传输的速度。为了完美地均衡,应该最多等于一个平均数据包。应该至少与所有子类的最高 cburst 一样高。这两个值都可能为空,因为它们将自动计算。

  • 问:QoS(HFSC) 还是 QoS_NG(HTB) 更好?
      • 基于 HFSC 的 QoS 应该更适合 VoIP。分层树方法旨在共享分支或类和规则之间的带宽(想象一棵树,树干是全部带宽,每个分支是占用树干带宽的类/规则)。
      • 基于 HTB 的 QoS_NG 应该更适合第 7 层(例如 P2P)带宽控制。HTB 背后的理念是数据像水流一样流入“桶”。每个桶只能容纳一定量的数据。这些桶按优先级排队,以接收可用带宽。

QoS 对称 128Kbps,OpenVPN 优先

[编辑 | 编辑源代码]

假设

  • RED 出站是 eth0,入站是 imq0
  • GREEN 是 eth1
  • 客户端和服务器位于 GREEN 上
  • VPN 连接访问 GREEN 内网上的服务器
  • 客户端将产生典型的 Web、FTP 等流量
  • VPN 是 RED 上唯一可用的互联网服务

操作

  • 创建 RED 根类 199(eth0) 和 299(imq0),最大带宽设置为 115 Kbps
  • 创建类 100,优先级 1,最小带宽 50 Kbps,延迟 25ms,最大带宽 115 Kbps
  • 创建类 101,优先级 2,最小带宽 50 Kbps,延迟 50ms,最大带宽 115 Kbps
  • 创建类 199,优先级 7,最小带宽 1 Kbps,延迟 500ms,最大带宽 100 Kbps
  • 将 ACK 优先级分配给类 100
  • 创建类 200,优先级 1,最小带宽 50 Kbps,延迟 25ms,最大带宽 115 Kbps
  • 创建类 201,优先级 2,最小带宽 50 Kbps,延迟 50ms,最大带宽 115 Kbps
  • 创建类 299,优先级 7,最小带宽 1 Kbps,延迟 500ms,最大带宽 100 Kbps

此时,所有流量都将在默认类 199 和 299 上以略低的速度传输。

为了确保 VPN(特别是 OpenVPN)流量获得优先级,应添加以下规则

  • 创建一个规则“OpenVPNOut”,接口 eth0,协议 UDP,标记 101,源端口 1194
  • 创建一个规则“OpenVPNIn”,接口 imq0,协议 UDP,标记 201,源端口 1194

此方案将使 OpenVPN 流量比默认流量具有更高的优先级,但是由于 ACK 比其他所有流量具有更高的优先级,因此普通流量仍然可以流动。

查看图表应该可以了解流量

  • 1:100 将显示来自 GREEN 客户端到互联网连接的 ACK 流量
  • 1:101 将显示 VPN 出站流量(端口 1194)
  • 1:199 将显示大量出站流量
  • 2:200 在此配置中将显示很少,因为该规则未使用
  • 2:201 将显示 VPN 入站流量(端口 1194)
  • 2:299 将显示大量入站流量

可以通过添加更多规则来进一步对大量流量进行分类。

华夏公益教科书