我有一个 Linux 机器,用于模拟两个节点之间的 WAN 链接。这个 Linux 机器在 eth1 上有两个子接口(eth1:11 和 eth1:12)。我成功地使用 netem / htb 来模拟延迟和带宽限制。但是,这些命令似乎全局应用于 eth1 接口,而不是子接口。是否可以将 qdisc 命令仅应用于特定的子接口?
作为参考,以下是我使用的 tc 命令:
tc qdisc add dev eth1:11 root handle 1:0 htb default 10
tc class add dev eth1:11 parent 1:0 classid 1:10 htb rate 1544kbit
tc qdisc add dev eth1:11 parent 1:10 handle 10:0 netem delay 10ms 2ms 25% distribution normal
答案1
经过大量搜索,我发现子接口无法做到这一点。但是,VLAN 接口可以做到这一点。因此,如果您可以访问 Linux 机器和交换机之间的端口,并且您的交换机支持 VLAN 标记,则可以有效地实现相同类型的设置。将交换机上的端口更改为中继端口,然后从 ethX 创建 VLAN 接口。从那里,您可以使用 tc 来控制每个 VLAN 接口上的流量。