我们有一个服务提供商(我们不能改变提供商),他在我们的两个位置之间为我们提供了“地铁以太网”式的连接。在每一端,我们插入提供商交换机上的以太网端口,他们来回传送帧。我们从他们那里获得了一定的带宽,他们正在丢弃在带宽上突发的数据包。
我很确定让我们不超过他们的限制并避免丢包的一个好方法是让我们调整我们的流量以适应限制。我想我已经非常接近理解如何做到这一点,但它非常复杂。我们在连接的每一侧都有一个 Cisco Catalyst 3560X。
如果我想将隧道中的流量整形到 50 Mbps,看起来正确的(也许只是?)方法是在我们每个 3560 上用于链接的端口的出口队列上使用整形。我们不需要标记或分类任何流量,我们只想将所有流量都调整到 50 Mbps。这是现在的示例端口配置:
interface GigabitEthernet0/1
speed auto 10 100
spanning-tree portfast disable
我知道我想mls qos
在全局配置模式下进行。然后我应该看到这样的东西:
[Switch name]# show mls qos int gig0/1 queueing
GigabitEthernet0/1
Egress Priority Queue : disabled
Shaped queue weights (absolute) : 25 0 0 0
Shared queue weights : 25 25 25 25
The port bandwidth limit : 100 (Operational Bandwidth:100.0)
The port is mapped to qset : 1
到目前为止,我的理解如下,请随时纠正我:
- 所有流量都将是 CoS 0/未标记,因此默认情况下将进入出口队列 2。
- 出口队列 2 与队列 3 和 4 平均共享带宽,忽略队列 1 的权重。
- 出口队列 1 的形状为接口带宽的 1/25,因此在本例中为 4 Mbps。
所以我知道队列 2 - 4 每个都保证 33% 的带宽(33 Mbps,对吗?),队列 1 的形状为 4 Mbps。我的第一个问题是:
使用这种默认配置,如果只使用队列 2,它会获得多少带宽?100 Mbps?如果所有队列都被充分利用,队列 1 将有 4 Mbps,队列 2 - 4 每个将有 32 Mbps (100 - 4 = 96/3 = 32)?
现在真正的问题是:
要将所有未分类的出口流量调整为 50 Mbps,我是否可以直接进入有
srr-queue bandwidth shape 0 2 0 0
问题的接口并完成?
似乎无法保证队列共享和整形限制,因此如果要避免任何超过 50 Mbps 的突发,我可能需要在出口队列上将其整形到标称 45 Mbps。我可以通过srr-queue bandwidth limit 90
结合上述塑形跑步来做到这一点吗?改为使用是否相同:
srr-queue bandwidth shape 0 1 0 0
srr-queue bandwidth limit 45
那个形状会排队 2 到 45 Mbps(在 100 Mbps 接口上)吗?
一旦我明白了这一点,我猜我的下一站是整理缓冲区分配和阈值,以便我的整形尽可能少地丢弃数据包,对吧?如有必要,这可以是一个单独的问题,但实际上到目前为止,这似乎更有意义。