limita a largura de banda da rede para um ip

1

para um aplicativo de gerenciamento de tráfego eu deveria limitar a largura de banda para endereços IP de clientes que para cada ip existem limites diferentes

como pode usar o tc-tbf para um endereço IP específico

ou existe alguma outra solução?

    
por hamedsh 24.08.2010 / 20:01

4 respostas

0

depois de alguns dias eu faço

eu uso-o para o openvpn sobre o freeradius

tc qdisc del dev br0 root
tc qdisc add dev br0 root handle 1: htb
tc class add dev br0 parent 1: classid 1:1 htb rate "LineBandwidth"kbit
tc class add dev br0 parent 1:1 classid 1:10 htb rate "MinUserBand"kbit ceil "MaxUserBand"kbit prio 2       #----- bandwidth and classid
tc filter add dev br0 parent 1:0 prio 2 protocol ip handle 10 fw flowid 1:10                                                        #----- MarkID1 and classId
iptables -t mangle -A POSTROUTING -d "RealUserIP" -j MARK --set-mark 10                                             #----- RealIP and markID1
tc qdisc add dev br0 ingress
tc filter add dev br0 parent ffff: protocol ip handle 50 fw police rate "MinUserBand"kbit mtu 12k burst 10k drop    #----- BandWidth and MarkID2
iptables -t mangle -A PREROUTING -s "RealUserIP" -j MARK --set-mark 50                                                  #----- RealIP and MarkID2
    
por 26.08.2010 / 08:28
4

Para limitar a largura de banda de endereços IP individuais, tenho sido TC com HTB. Aqui estão alguns links úteis:

  • Página inicial: link
  • Guia do usuário: link
  • tcng é uma maneira relativamente fácil de descrever estruturas de controle de tráfego: link

Como um exemplo simples, para limitar a largura de banda de endereços IP individuais armazenados na variável de shell CLIENT_IP, com limitações como as seguintes:

  • nome do dispositivo = eth0
  • largura de banda total disponível / permitida para o dispositivo = 1000kbps até 1500kbps
  • largura de banda padrão (para clientes que não se enquadram em nossos filtros) = 1kbps a 2kbps
  • largura de banda de CLIENT_IP = 100 kbps
  • Largura de banda máxima de CLIENT_IP (se houver mais largura de banda disponível) = 200kbps

Os comandos abaixo seriam suficientes:

tc qdisc add dev eth0 root handle 1: htb default 10

tc class add dev eth0 parent 1: classid 1:1 htb rate 1000kbps ceil 1500kbps 

tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1kbps ceil 2kbps

tc class add dev eth0 parent 1:1 classid 1:11 htb rate 100kbps ceil 200kbps

tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip src ${CLIENT_IP} flowid 1:11
    
por 25.08.2010 / 08:50
1

Semicrelacionada à sua pergunta, limitar a largura de banda de um cliente provavelmente não é a melhor solução, pois precisa ser feita de cliente para cliente. Você pode querer especificar a quantidade máxima de largura de banda que um único cliente pode consumir, em vez de especificar por endereço IP.

Sua melhor aposta será QoS e especificar prioridades diferentes para serviços por tipo de tráfego.

Até onde eu sei, você não pode usar o tc-tbf para um endereço IP específico.

link

Se você está simplesmente tentando melhorar o desempenho, veja este artigo.

link

    
por 24.08.2010 / 20:20
0

Este artigo descreve como você pode usar o iptables para classificar novas conexões: link

Você pode descartar a verificação com estado de NEW e, em vez disso, restringi-la pelo IP de origem.

    
por 25.08.2010 / 02:30