HTB.init / tc por trás do NAT

4

Eu tenho uma caixa do Ubuntu 10 que estou tentando configurar como um roteador de modelagem de largura de banda.

A máquina possui uma interface WAN, eth0 e duas interfaces LAN, eth1 e eth2. O NAT é configurado usando o MASQUERADE, conforme descrito em InternetConnectionSharing .

Estou mais preocupado em moldar o tráfego de saída das interfaces LAN - no final, gostaria de ter um limite de 768 Kbps por LAN (em vez de um limite em eth0 agrupado em todas as interfaces ).

Eu instalei o HTB.init e, seguindo os exemplos, tentei configurar isso na eth1 colocando três arquivos em / etc / sysconfig / htb:

/ etc / 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

Eu posso /etc/init.d/htb start e /etc/init.d/htb stats e ver informações que / parece / sugerir que está funcionando ... mas quando eu tento puxar um arquivo grande através da interface WAN a modelagem claramente não está em vigor.

Alguma sugestão? Meu palpite é que tem algo a ver com o local em que a modelagem está na cadeia de NAT, mas eu realmente não tenho ideia de por onde começar a solução de problemas.

---- Atualização:

Aqui está minha saída da lista /etc/init.d/htb, parece fazer sentido - a taxa padrão para eth1 é 768Kbps?

### 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 
    
por Ben K. 28.01.2011 / 05:03

2 respostas

0

Tente adicionar isso (usando seu IP) a eth1-2: 30.dfl

RULE=192.168.0.0/24
    
por 28.01.2011 / 10:52
0

Eu tenho que dizer, eu achei isso muito difícil de descobrir com velocidades superiores a 100Mbit. No meu caso eu queria moldar a 2Gbit / s

No final, eu adaptei um script e encontrei esse trabalho. Aqui está, adapte-o às suas necessidades. Especificamente, você precisará ajustar a taxa para algo válido. tc entende mbit. Então você precisa colocar algo como 768kbit ou algo que possa interpretar corretamente.

#!/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
    
por 17.05.2017 / 01:45