É possível limitar a largura de banda de upload por 'IP' usando 'tc', 'htb' e 'iptables'? (Limite de download não é obrigatório)

4

Problema

Eu pesquisei internet como qualquer coisa, mas não consegui encontrar muita coisa sobre a limitação de upload . As soluções fornecidas não estão limitando IP como este a> mas LAN como um todo.

             +-----+
+--------+   |  S  |
| User A |---+  W  |
+--------+   |  I  |
+--------+   |  T  |     +--------+        +----------+
| User B |---+  C  +-----| Router |--------| Internet |
+--------+   |  H  |     +--------+        +----------+
   ....     ... / ...
+--------+   |  H  |
| User N |---+  U  |
+--------+   |  B  |
             +-----+

UserA:172.16.10.2

UserB:172.16.10.3 RouterPrivate:172.16.0.1

UserC:172.16.10.4

Quero limitar apenas upload de 172.16.10.3 & 172.16.10.4 usando tc htb e iptables

O que eu já tentei

altered the script as per my requirement

IF_INET=external

# upload bandwidth limit for interface
BW_MAX=2000

# upload bandwidth limit for 172.16.16.11
BW_CLIENT=900


# first, clear previous settings
tc qdisc del dev ${IF_INET} root

# top-level htb queue discipline; send unclassified data into class 1:10
tc qdisc add dev ${IF_INET} root handle 1: htb default 10

# parent class (wrap everything in this class to allow bandwidth borrowing)
tc class add dev externel parent 1: classid 1:1 htb \
  rate ${BW_MAX}kbit ceil ${BW_MAX}kbit

# two child classes
#

# the default child class
tc class add dev ${IF_INET} parent 1:1 \
  classid 1:10 htb rate $((${BW_MAX} - ${BW_CLIENT}))kbit ceil ${BW_MAX}kbit

# the child class for traffic from 172.16.16.11
tc class add dev ${IF_INET} parent 1:1 \
  classid 1:20 htb rate ${BW_CLIENT}kbit ceil ${BW_MAX}kbit

# classify traffic
tc filter add dev ${IF_INET} parent 1:0 protocol ip prio 1 u32 \
  match ip src 172.16.16.11/32 flowid 1:20

mas isso não funcionará para limitar o upload. Então, qual é a solução?

    
por Adi 11.06.2015 / 16:25

0 respostas