Назад | Перейти на главную страницу

HTB.init / tc за NAT

У меня есть Ubuntu 10, который я пытаюсь настроить как маршрутизатор с ограничением пропускной способности.

Машина имеет один интерфейс WAN, eth0 и два интерфейса LAN, eth1 и eth2. NAT настраивается с помощью MASQUERADE, как описано в Интернет-соединение.

Меня больше всего интересует формирование исходящего трафика от интерфейсов LAN - в конце концов, я хотел бы получить жесткое ограничение на 768 Кбит / с для каждого интерфейса LAN (а не ограничение на eth0, объединенное для всех интерфейсов).

Я установил HTB.init, и перебирая примеры, попытался настроить это на eth1, поместив три файла в / etc / sysconfig / htb:

/ и т.д. / sysconfig / HTB / eth1

DEFAULT=30
R2Q=100

/etc/sysconfig/htb/eth1-2.root

RATE=768Kbps
BURST=15k

/etc/sysconfig/htb/eth1-2:30.dfl

RATE=768Kbps
CEIL=788Kbps
BURST=15k
LEAF=sfq

Я могу /etc/init.d/htb start и /etc/init.d/htb stats и видеть информацию, которая / кажется / предполагает, что это работает ... но когда я пытаюсь вытащить большой файл через интерфейс WAN, формируется четкое не действует.

Какие-либо предложения? Я предполагаю, что это как-то связано с тем, где формирование попадает в цепочку NAT, но я действительно не знаю, с чего начать устранение неполадок.

---- Обновить:

Вот мой вывод списка /etc/init.d/htb, кажется, имеет смысл - скорость по умолчанию для eth1 составляет 768 Кбит / с?

### eth0: queueing disciplines

qdisc htb 1: root refcnt 2 r2q 100 default 30 direct_packets_stat 0
qdisc sfq 30: parent 1:30 limit 127p quantum 1514b perturb 10sec 

### eth0: traffic classes

class htb 1:2 root rate 768000bit ceil 768000bit burst 1599b cburst 1599b 
class htb 1:30 parent 1:2 leaf 30: prio 0 rate 6144Kbit ceil 6144Kbit burst 15Kb cburst 1598b 

### eth0: filtering rules

filter parent 1: protocol ip pref 100 u32 
filter parent 1: protocol ip pref 100 u32 fh 800: ht divisor 1 
filter parent 1: protocol ip pref 100 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:30 
  match 00000000/00000000 at 12
  match 00000000/00000000 at 16

### eth1: queueing disciplines

qdisc htb 1: root refcnt 2 r2q 100 default 30 direct_packets_stat 0
qdisc sfq 30: parent 1:30 limit 127p quantum 1514b perturb 10sec 

### eth1: traffic classes

class htb 1:2 root rate 768000bit ceil 768000bit burst 1599b cburst 1599b 
class htb 1:30 parent 1:2 leaf 30: prio 0 rate 6144Kbit ceil 6144Kbit burst 15Kb cburst 1598b 

Должен сказать, мне было действительно трудно понять это при скоростях, превышающих 100 Мбит. В моем случае я хотел сформировать до 2 Гбит / с

В конце концов я адаптировал сценарий, который нашел работу. Вот он, адаптируйте его под свои нужды. В частности, вам нужно настроить скорость на что-то действительное. тс понимает мбит. Таким образом, вам нужно ввести что-то вроде 768 Кбит или что-то, что он может правильно интерпретировать.

#!/bin/sh
#
# Incoming traffic control
#
DEV=eth0
RATE="2000mbit"

tc qdisc del dev $DEV root
tc qdisc add dev $DEV root handle 1: htb default 10
tc class add dev $DEV parent 1: classid 1:1 htb rate ${RATE} burst 15k
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${RATE} ceil ${RATE} burst 15k
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10

echo;echo "tc configuration for $DEV:"
tc qdisc show dev $DEV
tc class show dev $DEV

#
# Outgoing traffic control
#
DEV=eth2
tc qdisc del dev $DEV root
tc qdisc add dev $DEV root handle 1: htb default 10
tc class add dev $DEV parent 1: classid 1:1 htb rate ${RATE} burst 15k
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${RATE} ceil ${RATE} burst 15k
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10

echo;echo "tc configuration for $DEV:"
tc qdisc show dev $DEV
tc class show dev $DEV

Попробуйте добавить это (используя свой IP) в eth1-2: 30.dfl

RULE=192.168.0.0/24