我正在尝试使用 Cisco 877 在我的 DSL 线路上建立并运行一个相当简单的 QoS 策略。我的目标很简单 - 确保实时和管理功能(如 RTP 和 SSH)无论拥塞如何都能正常工作,然后确保 HTTP、FTP、SMTP 等协议在拥塞时得到良好的响应,并在繁忙时限制 bittorrent 等功能。
我尝试应用下面的配置,但似乎没有效果。如果我下载几个 ubuntu torrent,并通过 HTTP 下载一个大文件,HTTP 下载速度会变得非常慢,而 torrent 则能以 300kbps+ 的速度继续下载。它似乎唯一的效果是上游 bittorrent 速度减慢到大约 0.1kbps。
我的理解是,我需要在 ATM 子接口上应用出站策略,并在 VLAN 上应用入站策略,这样路由器才知道如何处理双向流动的不同数据包。我尝试在 ATM 子接口上添加仅限警察的入站策略,但同样,这似乎没有什么区别。Bittorrent 传入流量横扫一切。
奇怪的是,无论我如何尝试配置它,我都无法让数据包排队策略在 ATM0.1 接口上显示出站。入站策略显示正常。
有任何想法吗?
class-map match-any BESTEFFORT
match protocol http
match protocol secure-http
match protocol icmp
match protocol secure-imap
match protocol smtp
match protocol ipsec
match protocol dns
class-map match-any REALTIME
match protocol rtp
match protocol rtcp
match protocol sip
match protocol ssh
class-map match-any SCAVENGER
match protocol bittorrent
!
!
policy-map Packet-Queueing
class REALTIME
priority 400
class BESTEFFORT
bandwidth percent 50
random-detect
class SCAVENGER
bandwidth percent 5
random-detect
class class-default
fair-queue
random-detect
!
policy-map Input-Police
class SCAVENGER
police rate 8000 bps
conform-action transmit
exceed-action drop
!
policy-map Packet-Tagging
class REALTIME
set precedence 5
class BESTEFFORT
set precedence 4
class SCAVENGER
set precedence 0
!
!
interface ATM0
description ATM ADSL Interface
no ip address
no ip redirects
no ip unreachables
no ip proxy-arp
no atm ilmi-keepalive
dsl operating-mode adsl2
dsl enable-training-log
!
!
interface ATM0.1 point-to-point
pvc 0/38
vbr-rt 886 886
encapsulation aal5mux ppp dialer
dialer pool-member 1
service-policy in Input-Police
!
interface Vlan1
description internal private VLAN
ip address 192.168.0.1 255.255.255.0
no ip redirects
no ip unreachables
no ip proxy-arp
ip flow ingress
ip nat inside
ip virtual-reassembly
ip route-cache same-interface
ip tcp adjust-mss 1452
service-policy input Packet-Tagging
hold-queue 100 out
!
答案1
您遇到的根本问题是,入站方向(进入路由器)的 QoS 对于控制流向您的方向的流量相对无用。
拥塞发生在路由器所连接的 ISP 设备的出口处。该 ISP 接口未应用相关 QoS - 它肯定是一个 FIFO 队列。因此,如果 bittorrent 端点发送数据的速度比 HTTP 端点快,则 bittorrent 在经典 FIFO 队列中获胜,并且您的 HTTP 下载将处于停滞状态。
这是几乎每个家庭网络设置中都存在的一个常见问题。Bittorrent 不仅会轻易限制 SSH 或 RTP 流量,还会限制 VoIP 流量。
使用 Bittorrent 软件的内置速率限制将上传和下载速度限制在低于可用速率。
答案2
您可以对 bittorrent 的传出速率进行限制,但这可能需要:
(i) 使用可以使用可预测源端口的 bittorrent 客户端。至少可以通过为此目的编写的补丁进行传输。
(ii)使用 vlan1 上的传入服务策略将这些数据包标记为 ip 优先级 1 或其他
(iii) 如果发生其他事情,请采取一些措施,使得传出的 IP 优先级为 1 的数据包受到相当糟糕的处理。
至于传出策略,我不确定。如果你放弃传入策略,是否可以启用传出策略?当我第一次设置时,我收到奇怪的消息,说在虚拟接口存在的情况下无法启用传出策略。对同事和我自己有用的两件事是:
(i) 启用传出服务策略,然后从接口配置菜单中使用“do copy run start”。这对我来说很有效,因为当我输入“exit”时,它会抱怨并删除该策略,但启动配置已将其设置好,重新启动后即可使其正常工作。
或者同事做了什么:
(ii)在其他地方编辑配置并执行“复制 tftp 启动”或类似操作。然后重新启动。
这可能是一种愚蠢的做法,但我们中的一些人遇到了问题。它可能特定于特定软件或平台:我能够在带有 ADSL 接口的 2821 路由器上应用策略,没有任何问题。