Linux tc를 사용하여 대역폭 제한을 설정하는 방법

Linux tc를 사용하여 대역폭 제한을 설정하는 방법

내 Linux 라우터에서:

  1. 인터페이스 eth1의 총 대역폭은 1gbit입니다.
  2. 1140kbit를 GroupA로, 150kbit를 GroupB로 나누고 싶습니다.
  3. 사용자 10.10.10.158, 10.10.21.5, 10.10.21.6을 그룹B로 설정
  4. 사용자당 대역폭은 128kbit를 초과하지 않습니다.
  5. 그리고 3명의 사용자의 총 대역폭은 150kbit를 초과하지 않습니다.

제가 설정한 내용은 다음과 같습니다.

sudo tc qdisc del dev eth1 root 2>/dev/null

sudo tc qdisc add dev eth1 root handle 1: htb default 2
sudo tc class add dev eth1 parent 1: classid 1:1 htb rate 1gbit ceil 1gbit
sudo tc class add dev eth1 parent 1:1 classid 1:2 htb rate 10kbps ceil 10kbps

sudo tc class add dev eth1 parent 1:1 classid 1:10 htb rate 1140kbit ceil 1140kbit
sudo tc class add dev eth1 parent 1:1 classid 1:20 htb rate 128kbit ceil 128kbit

sudo tc class add dev eth1 parent 1:20 classid 1:21 htb rate 128kbit ceil 128kbit
sudo tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 10.10.10.158/32 flowid 1:21

sudo tc class add dev eth1 parent 1:20 classid 1:22 htb rate 128kbit ceil 128kbit
sudo tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 10.10.21.5/32 flowid 1:22

sudo tc class add dev eth1 parent 1:20 classid 1:23 htb rate 128kbit ceil 128kbit
sudo tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 10.10.21.6/32 flowid 1:23

그런데 3명의 사용자에 대한 총 대역폭은 약 376kbit인 것으로 나타났습니다. 목표를 달성하려면 어떻게 해야 합니까?

관련 정보