Controle de banda (Qos) no modem Dlink DSL 2640T

Publicado por Renato Félix de Almeida em 01/08/2008

[ Hits: 50.568 ]

 


Controle de banda (Qos) no modem Dlink DSL 2640T



Olá amigos, na minha primeira dica no Viva o Linux vou mostrar uma forma de fazer controle de banda utilizando o modem Dlink DSL 2640T. Este modem é muito utilizado por clientes Oi Velox, pois é o que vem com a promoção Oi Wi-fi. Trata-se de um modem com roteador sem fio.

Ao adquirir este modem pesquisei na internet os recursos do mesmo e fiquei bem interessado no controle de banda (Qos), pois a internet em casa é compartilhada com 3 pessoas e às vezes fica impossível navegar por causa dos programas p2p.

Assim que adquiri o modem parti para a configuração. Ele vem com um CD de instalação que faz umas perguntas básicas e configura todo o sistema. Depois de configurado eu fiquei com o seguinte cenário:

1) velocidade de conexão contrata com a OI Velox: 1M

2) máquinas que utilizam a conexão: 3 notebooks com rede Wi-Fi e endereços IP fixos definidos pelo servidor DHCP.

Bom, a idéia do controle de banda era dividir a conexão em partes iguais (340k para cada máquina) de forma que quando a rede estivesse ociosa, fosse possível uma máquina utilizar o limite da conexão.

Depois de perder 2 dias tentando configurar o controle de banda via interface web do modem e não obtendo sucesso, resolvi entrar em contato com o suporte técnico da DLink.

Aí veio a minha decepção: o atendente me informou como controlar banda para as 4 portas ethernet. Falei com ele que já sabia fazer isso com a rede cabeada, mas na verdade o que eu queria era fazer um controle de banda para rede sem fio. A resposta foi curta e grossa:

"Não tem como fazer controle de banda para rede sem fio, o modem não dá suporte"

Decepção total, pois um dos principais motivos da compra deste modem foi o controle de banda, e também em momento algum era informado essa situação de controle de banda apenas para rede cabeada.

Antes de desistir resolvi dar uma estudada no modem e para minha surpresa descobri que ele utiliza uma versão do Linux conhecida como MontaVista. Aí acendeu aquela luzinha em cima da minha cabeça:

"Se roda o Linux, basta fazer controle de banda como se faz no próprio Linux!"

Aí vem a pergunta:

- Como fazer?

Abaixo a resposta:

1 - acesse o modem via telnet (ao contrário do que os atendentes da Dlink falam, não é necessário acessar via rede cabeada; pode ser via rede sem fio mesmo). No Ubuntu 8.04 abra um terminal e digite: "telnet". No Windows XP clique em iniciar > executar, digite cmd e depois telnet.

2 - digite o (letra Ô) para abrir uma conexão e quando solicitado digite o endereço ip do modem. Para descobrir o endereço ip do modem no Ubuntu 8.04, abra um terminal e digite "ifconfig". Verifique nas opções do adaptador de rede sem fio o gateway, este é o endereço do modem. No Windows XP clique em Iniciar > Executar, digite cmd e ipconfig /all. Verifique nas opções do adaptador de rede sem fio o gateway, este é o endereço do modem.

3 - digite, quando solicitado, o login e a senha. Este login e senha podem variar. Nos modens vendidos pela Oi o login é TMAR#DLKT20060313 e a senha é DLKT20060313. Caso esta senha não funcione, verifique no manual do seu modem qual é a senha correta.

4 - depois de acessar o terminal do Linux você já pode configurar normalmente o controle de banda utilizando o TC. Vou dar um exemplo abaixo para a minha rede:

tc qdisc del dev wlan0 root
tc qdisc add dev wlan0 root handle 1: htb
tc qdisc add dev wlan0 parent 1: classid 1:1 rate 340kbit ceil 1024kbit
tc qdisc add dev wlan0 parent 1: classid 1:2 rate 340kbit ceil 1024kbit
tc qdisc add dev wlan0 parent 1: classid 1:3 rate 340kbit ceil 1024kbit
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.1 flowid 1:1
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.2 flowid 1:2
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.3 flowid 1:3
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.1 flowid 1:1
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.2 flowid 1:2
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.3 flowid 1:3

Este script fará o controle de banda conforme descrito acima. Vale lembrar que é necessário configurar o modem para o servidor DHCP definir ips fixos para as 3 máquinas através do mac address.

Outro fato importante é que o controle de banda neste modem não acontece de imediato, então para testar é bom você colocar dois downloads grandes nas máquinas para dar um tempo para o controle entrar em ação.

É isso aí...

Abraços,
Renato

Outras dicas deste autor

Sensor Biométrico no Notebook Megaware Black Purple

Resolvendo erro de atualização do firmware do modem DSL2640t

Leitura recomendada

Bloqueio de streaming de áudio e vídeo no Squid

Alternativas Open Source

4 redes P2P em 1 programa: Kazaa, Ares, OpenFT e Gnutella

Aprimorando a Segurança no uso do Skype

Ubuntu 11.04 - Placa wireless parou de funcionar com o kernel 2.6.39.x?

  

Comentários
[1] Comentário enviado por rogeriojlle em 04/08/2008 - 22:29h

Esse modem é bastante popular mesmo, aqui em SC as operadoras não oferecem nenhum hardware de brinde, é popular por ser o modem "de grife" mais barato mesmo.
Daqui a pouco alguém vai postar uma dica de como alterar a firmware e fazer algo semelhante a que o pessoal da wirelessrouter fazem nos AP's deles.

http://wirelessrouter.com.br/

Ps: não estou ganhando cachê nem desconto, só achei o produto interessante

[2] Comentário enviado por everthonvs em 08/08/2008 - 22:11h

Excelente dica! Só um detalhe, quando tentei executar a sua seqüencia de comandos via telnet, eu tava obtendo o seguinte erro:
Error: Qdisc "rate" is classless

Só consegui fazer as disciplinas de fila passarem quando adicionei um pequeno detalhe às suas disciplinas de fila: coloquei "htb" antes do "rate", ficando assim:

# Deleta as Disciplinas de Fila
tc qdisc del dev wlan0 root
# Cria uma Disciplina de Fila Raiz
tc qdisc add dev wlan0 root handle 1: htb
# Cria Sub-disciplinas da Raiz
tc qdisc add dev wlan0 parent 1: classid 1:1 htb rate 340kbit ceil 1024kbit
tc qdisc add dev wlan0 parent 1: classid 1:2 htb rate 340kbit ceil 1024kbit
tc qdisc add dev wlan0 parent 1: classid 1:3 htb rate 340kbit ceil 1024kbit
# Filtra os Pacotes, aplicando os Rótulos de Classe (downstream)
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.1 flowid 1:1
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.2 flowid 1:2
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.3 flowid 1:3
# Filtra os Pacotes, aplicando os Rótulos de Classe (upstream)
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.1 flowid 1:1
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.2 flowid 1:2
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.3 flowid 1:3

[3] Comentário enviado por everthonvs em 08/08/2008 - 22:19h

ah, uma dúvida: como eu faria se eu tivesse dois usuários na interface wlan0 e um na eth0? teria como definir regras pra dividir igualitariamente a banda entre os três, mesmo estando em interfaces de rede diferentes?

outra coisa, teria como definir prioridades para protocolos, tipo dar preferência a HTTP em relação aos demais? eu nunca mexi com QoS via HTB, mas acho que seria algo como:

# Cria Sub-classes para Dividir o Uso da Banda de um Usuário "HTTP 50%, Resto 50%"
tc class add dev wlan0 parent 1:1 classid 1:11 htb rate 170kbit ceil 1024kbit
tc class add dev wlan0 parent 1:1 classid 1:12 htb rate 170kbit ceil 1024kbit
# Filtra os Pacotes, aplicando os Rótulos de Protocolo (downstream)
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.1 match ip dport 80 0xffff flowid 1:11
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.1 flowid 1:12
# Filtra os Pacotes, aplicando os Rótulos de Protocolo (upstream)
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.1 match ip sport 80 0xffff flowid 1:11
tc filter add dev wlan0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.1 flowid 1:12

OBS.: cheguei a isso lendo o tutorial sobre controle de banda com o HTB em http://br-linux.org/tutoriais/001794.html , mas nem sei se é isso mesmo... se alguém tiver experiência com HTB, teria como disponibilizar um script para esse fim???

[4] Comentário enviado por wjnanet em 12/08/2009 - 14:52h

Alguém sabe como aplicar QOS para melhorar a qualidade da conversa no skype, utilizando o Dlink 2640-T ?

[5] Comentário enviado por canaman em 14/02/2011 - 15:58h

Olá, meu modem é um DSL-2640B e ele não tem o comando 'tc'. Alguém tem alguma ideia? Seria possível enviar o binário para o modem?

[6] Comentário enviado por canaman em 14/02/2011 - 17:07h

achei o TC. Depois de logar no telnet, basta dar um sh que abre o shell

[7] Comentário enviado por zhenei em 21/09/2011 - 21:17h

Como faço para configurar a banda das 4 portas ethernet do Dsl 2640b? Me ajudem pois pago o Velox sozinho e o pessoal fica ocupando a conexão com download.

[8] Comentário enviado por RockerZ em 14/11/2015 - 02:43h


Peço desculpas por ter que reviver um tópico tão antigo, mas após muitas pesquisas a unica página da web que encontrei com uma solução(ao menos alternativa) pro meu 2640b foi essa. Além do que foi dito eu queria saber se tem como ao invés de definir limites de conexão, definir por prioridade, por ex: Enquanto minha rede é usada ela garante 50% do total da banda, os outros 50% ficam divididos em 25% para mais outros dois usuários. Quando eu me ausentar do PC e não usar a internet ficam os dois com 50% cada, já ao ficar uma só pessoa conectada ela garante toda banda. Bom seria se tivesse um programa pra agilizar o processo, talvez eu até faça uma hora caso consiga o que quero. O tópico é antigo mas eu acredito que alguém saiba me responder. Agradeço a quem puder ajudar. Fico no aguardo.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts