此问题/实验是使用 Cisco 网络硬件创建的。我在其他地方问过这个问题没有回应。
我是 QoS 的新手,但最近几天我一直在研究,并且学到了很多东西。但是,我仍然无法完成我想要的任务。我正在尝试配置 QoS 以将两类流量优先于所有其他类型的流量(第一类将比第二类具有更高的优先级)。为了测试这个理论和我的配置,我设置了两台路由器、一台交换机和两台 PC。这是我使用的拓扑图...(我使用的是真实硬件,数据包跟踪器仅演示拓扑)
我的目标是让所有三台 PC 同时 ping R2,并使 PC0 具有最简单/最快的传输。我在 R1 和 R2 之间设置了一个阻塞点,这样我就可以测试并确保我的 PC0 数据包最不可能被丢弃。我将 R1-R2 链路配置为 10mbps、mtu 500,并将“输入”和“输出”的保持队列配置为 10 个数据包。然后我让 R1 ping R2 与大 ICMP 数据包和 R2 ping R1 也与大 ICMP 数据包。这个想法是 R1 的 ping、R2 的 ping 和 PC2 的 ping 都是常规流量,应该是队列已满时丢弃的流量。PC0 的 ping 不应该/很少被丢弃。
这是我的配置示例...
R1 配置
ip access-list extended class1-out_acl
permit ip 192.168.1.0 0.0.0.255 any
deny ip any any
ip access-list extended class2-out_acl
permit ip 192.168.2.0 0.0.0.255 any
deny ip any any
ip access-list extended class1-in_acl
permit ip any 192.168.1.0 0.0.0.255
deny ip any any
ip access-list extended class2-in_acl
permit ip any 192.168.2.0 0.0.0.255
deny ip any any
class-map match-all class1-out
match access-group name class1-out_acl
class-map match-all class2-out
match access-group name class2-out_acl
class-map match-all class1-in
match access-group name class1-in_acl
class-map match-all class2-in
match access-group name class2-in_acl
policy-map QOS-OUT
class class1-out
priority percent 20
set precedence 5
class class2-out
priority percent 20
set precedence 3
class class-default
fair-queue
random-detect
set precedence 0
policy-map QOS-IN
class class1-in
police 2000000 400000 400000 conform-action transmit exceed-action drop violate-action drop
class class2-in
police 2000000 400000 400000 conform-action transmit exceed-action drop violate-action drop
class class-default
police 5000000 1000000 1000000 conform-action transmit exceed-action drop violate-action drop
control-plane
service-policy input QOS-IN
interface GigabitEthernet0/1
mtu 500
speed 10
hold-queue 10 in
hold-queue 10 out
service-policy output QOS-OUT
除了 ACL 之外,R2 的配置完全相同。class1-out 的 ACL 变为 class1-in 的 ACL,反之亦然。这同样适用于 class2-in 和 class2-out ACL。这样做是为了让 class1 流量“优先”往返。
我将 PC0 和 PC3 设置为以 5000 大小的 ping ping R2 300 次(在此测试期间未使用 PC1)。我将 R1 设置为 ping R2,使用 5000 次大小的 ping 大约 15000 次,R2 ping R1 也是如此。
在测试过程中,两个路由器和两个 PC 都在丢弃数据包(正如我所料,PC0 丢弃数据包有点惊讶)。当我的测试完成时,我发现 PC2 的结果最好,平均 9 毫秒下降了 5%,而 PC0 下降了 10%,平均 11 毫秒。
我运行 [show policy-map interface] 并且我的 class1 数据包被从洪水中挑选出来,但它们似乎没有任何优先级。使用此命令,我还注意到所有数据包都被归类为 IP 优先级 0(例行程序)。这很奇怪,因为我将 class1 设置为 5。
正如我之前提到的,我是 QoS 的新手,所以我确定我在某个地方犯了错误。另外,有人可以解释一下设置“警察”值时要使用的好方法/策略吗?我稍微随意地选择了这些数字。
一旦我解决了任何配置错误,我的基本问题是……是否有一个标准或策略我可以遵循来“匹配”我的输入和输出服务策略,以便为流量类提供相同级别的 QoS。参考我上面的例子,我试图在出口接口上为 class1 使用 20% 的优先级百分比,同时还为 class1 将输入接口控制为 2mbps(10mbps 的 20%)。这是我尝试“排列”链接以使用相同的流量优先级(输入和输出)。我希望我可以对输入和输出服务策略都使用一个百分比,但我的研究让我认为这是不可能的。