Escolar Documentos
Profissional Documentos
Cultura Documentos
JAISON DALLABONA
LINUX
BLUMENAU
2010 / I
2
1 INTRODUÇÃO
regras de QoS, determinando qual será sua prioridade na rede. A priorização dos serviços
disponíveis poderá ser configurada pelo administrador da rede, conforme demanda exigida.
1.1 PROBLEMA
1.2 JUSTIFICATIVA
1
Kbps é Kilobits Per Second. Taxa de transferência usada em comunicação em série. Mede a quantidade de
kilobits que são transferidos por segundo.
4
condenada, inoperante, diante da demanda requerida. Por exemplo, um cenário que necessite
priorizar um serviço, como uma Virtual Private Network2 (VPN). Qualquer computador da
rede que precisar ter acesso a VPN, e existir regras de QoS com prioridade alta para VPN,
outros aplicativos cederão banda que estão consumindo, para que o tráfego prioritário tenha
privilégios de executar suas tarefas.
Uma rede que precise priorizar largura de banda, necessita de QoS para ter seus
aplicativos garantidos dentre outros menos prioritários. Se não houver QoS, todos os
aplicativos sofrerão para efetuarem comunicação, haverá perdas e lentidão demasiada. Isto
acontece porque o tráfego de rede é First In First Out3 (FIFO). Com isso não há prioridade de
tráfego, não existe QoS. Muitos serviços poderão estar instáveis, inoperantes, não por falta da
largura do link, mas sim por existir outros aplicativos consumindo largura indevida sem
algum tratamento especial para contornar o problema (CARVALHO, 2010).
1.3 OBJETIVOS
2
VPN, Virtual Private Network é uma rede virtual privada , onde o usuário pode se conectar a rede local de
qualquer lugar do mundo, como se estivesse fisicamente conectado na rede local.
3
FIFO, First in First out é um termo utilizado para formar uma fila, enfileiramento de tráfego. O primeiro bit a
entrar é o primeiro a sair sem nenhum tratamento, literalmente é uma fila.
5
É pretensão deste trabalho, melhorar o controle de banda dentro de uma rede, com
custos mínimos e sem a necessidade da compra de novos equipamentos ou licenças de
softwares. Com controle de QoS, evitar-se-ão lentidão e principalmente irá melhorar o
aproveitamento do link, que em muitas vezes encontram-se saturados por não existir controle
do que trafega na rede. Partindo da atual situação, onde o controle é de difícil entendimento
por parte de administradores, objetiva-se possibilitar o controle via Web de forma
transparente na ligação entre scripts, interface Web e ferramentas que farão o controle
desejado pelo administrador, como Traffic Control (TC) que tem por finalidade auxiliar o
controle de tráfego de rede, Queuing Disciplines (qdisc) que auxilia a ordenar o
enfileiramento dos bytes que trafegam na rede, onde um qdisc é a criação de um ou mais links
virtuais ao qual pode-se distribuir a largura de banda desejável para determinado serviço e o
IPROUTE que faz o balanceamento de carga entre links. O conjunto destas ferramentas
possibilita ao administrador configurar e aplicar QoS necessário pela demanda exigida em um
ambiente de rede.
A interface Web do software proposto será o elo de ligação entre o sistema operacional
que aplicará as regras programadas em um script. O script que será gerado através das
informações em que o administrador de rede requisitou via interface Web, gerará um script de
modo que o sistema operacional e as ferramentas de auxílio sejam capazes de interpretá-las e
executá-las fazendo com que as regras de QoS sejam concretizadas, assim tornando o
processo transparente para o administrador que precisará somente informar quais prioridades
e largura de banda desejada em seu ambiente.
Isto justifica a relevância deste trabalho, resolvendo a questão da priorização de
tráfego, que sem sombra de dúvida é uma das mais importantes técnicas em redes para poder-
se gastar menos com contratação de links maiores e muitas vezes, o link tendo maior
capacidade de tráfego de dados. Sabendo controlar o que passa na rede, poderá ter-se um
rendimento maior sem custos elevados.
6
2 FUNDAMENTAÇÃO TEÓRICA
Este capítulo aborda assuntos a serem apresentados nas seções a seguir, tais como o
controle de banda e suas ferramentas, além dos trabalhos correlatos.
Com o crescimento de aplicações exigindo cada vez mais recursos de rede tornou-se
necessário, além de técnicas de redução de congestionamento, o fornecimento por parte das
redes de parâmetros de desempenho com uma determina qualidade que permitirá assim uma
comunicação mais confiável, ou ainda a inviabilidade de sua utilização.
Este tipo de controle se faz necessário porque o TCP/IP4 por si só, não fornece um
controle direto sobre a taxa de transmissão. A princípio, cada host5 transmite pacotes o mais
rápido possível de acordo com a capacidade dos dispositivos e o meio de comunicação
disponível. Este comportamento pode ser problemático quando outros hosts também utilizam
e compartilham o mesmo meio físico, competindo entre si a largura de banda disponível.
Desta forma, um único usuário pode comprometer o desempenho dos demais, caso esteja
ocupando uma grande parcela da capacidade do link durante a comunicação (MOSCHETO,
2010).
Conforme Jucá (2005), através de um roteador firewall6 Linux, o tráfego de download
e upload dos computadores da rede local pode ser controlado definindo-se um qdisc por
dispositivo de rede. A Figura 1 mostra a topologia de rede e controle feito pelo firewall Linux.
4
TCP/IP é um conjunto de protocolos de comunicação entre computadores em rede. Seu nome vem de dois
protocolos: o TCP Transmission Control Protocol - Protocolo de Controle de Transmissão e o IP Internet
Protocol - Protocolo de Interconexão.
5
Host são computadores ou equipamentos integrados a uma rede
6
Firewall é um dispositivo de segurança de rede, permitindo ou negando as transmissões de uma rede a outra.
7
de maior volume. Esta situação pode ser observada com freqüência maior em redes onde o
acesso de Internet é compartilhado sem a utilização de filtros, pois um único usuário pode
facilmente comprometer o acesso dos demais, caso ocupe boa parte da largura de banda ao
realizar downloads de músicas mp37, vídeos e fotos, por exemplo. Um provedor de acesso
também não deve bloquear o uso de ferramentas P2P8 (e alguns clientes farão esta
solicitação), mas precisará evitar este tipo de situação (JUCÁ, 2005, p.234).
Todo tráfego que for requisitado em uma determinada rede sem tratamento de QoS,
será respondido o mais rápido possível conforme largura de banda na rede. Imagine-se uma
rede que possua um link de 2Mb/s, e 50 computadores. Exemplos atuais como prédios,
pequenas empresas, lan houses. Estas redes poderão utilizar qualquer tipo de programa de
acesso à Internet.
Em uma rede liberal, programas como o Emule ou Kazza, que são softwares de
compartilhamento que utilizam protocolo P2P para transferência de dados, poderão causar um
enorme congestionamento. Um único Emule instalado em um computador da rede poderá
abrir dezenas de conexões simultâneas. Com isso, caso algum outro usuário, em outro
computador, deseje visitar algum site, por exemplo, haverá uma máquina estabelecendo uma
conexão, lutando contra outro computador com 60 conexões como um exemplo. Haverá, em
outras palavras, 1 contra 60. Com isso haverá uma grande desvantagem para um dos dois. Isso
ocorre porque, da forma como o Kernel9 Linux trabalha, os pacotes são enfileirados em um
buffer10 e saem na mesma ordem em que chegam. Aumentar o link, ao contrário do que se
pensa, não resolveria o caso, pois só se está dando mais poder de fogo ao usuário do Emule e
se continuaria sendo o 60º da fila (MOTTA, 2010).
7
Mp3 é um formato utilizado para músicas, uma abreviação de MPEG1 Layer-3 e foi criado pelo Instituto
Fraunhofer, que detém a patente e cobra para o seu uso desde 1998
8
P2P ou Peer-to-Peer, é uma arquitetura de sistemas distribuídos caracterizada pela descentralização das
funções na rede, onde cada nodo realiza tanto funções de servidor quanto de cliente. Exemplos de softwares p2p
emule, kazza, shareaza, entre outro.
9
Kernel é entendido como o núcleo do sistema operacional. Ele representa a camada de software mais próxima
do hardware.
10
Buffer é uma região de memória temporária utilizada para escrita e leitura de dados.
9
Bloquear o Emule torna e força o usuário de tal programa a achar uma forma de burlar
o controle.
É esse tipo de problema que acontece em muitas redes, principalmente no ramo
empresarial que necessita de uma demanda de banda enorme e muitas vezes usuários
utilizando softwares que consigam ter êxito na conexão, poderá danificar causar transtornos
na rede toda.
Como exemplo de que o algoritmo Hierarchical Token Bucket 11 (HTB) é muito menos
compreensível que a ferramenta HTB-tools, nas figura 4 e 5 vê-se um exemplo de arquivo de
11
HTB Hierarchical Token Bucket é um algoritmo criado por Martin Devera que implementa controle de
tráfego.
11
requisitados. Será determinado para cada serviço um valor mínimo e máximo. No máximo
poderá atingir o valor que sua classe principal tiver. Um serviço com menos prioridade dentro
do cenário, poderá consumir a largura de banda total predominada, mas caso algum serviço
com maior prioridade seja requisitado, o menos prioritário consequentemente terá sua taxa de
transferência diminuída, mas terá um mínimo de transferência garantida pelo valor mínimo
estabelecido. O algoritmo HTB e as ferramentas de auxílio são responsáveis por este controle
de ajustes das taxas de transmissão. Quem tiver maior prioridade sempre terá maior largura de
banda disponível e velocidade de resposta dos pacotes. Assim que um serviço com prioridade
maior parar de requisitar largura de banda, os serviços que estão sendo utilizados no link irão
aumentar suas taxas até que seja concluído ou que não seja requisitado algum outro serviço
com maior prioridade.
Para configuração do HTB-tools é necessário editar um arquivo de configuração dentro
de um diretório no Linux. Este arquivo é igual à Figura 3 e é o responsável pela configuração.
O software proposto terá uma interface Web, acessível dentro da rede de qualquer
computador que tiver um navegador instalado, ao contrário do HTB-tools que somente pode
ser configurado onde estiver instalado ou através de acesso remoto.
13
3 DESENVOLVIMENTO
forma que poderão ser utilizados posteriormente para balanceamento de carga com algoritmo
como o HTB que já acompanham as distribuições Linux. A base do QoS será a utilização do
algoritmo HTB em conjunto com Iptables para manipular a prioridade do serviço usando o
campo Type of Service (TOS).
Segundo Stato (2009, p. 193), no Linux, o QoS é manipulado através da ferramenta
TC, que faz parte do pacote IPROUTE. Através do TC pode-se criar filas, chamadas qdisc e
suas classes, onde os dados serão classificados e encaminhados para suas respectivas filas. A
marcação do pacote pode ser feita através do próprio TC, usando-se filtros chamados filters.
Estas ferramentas auxiliarão na programação do script. O script será construído
utilizando o algoritmo HTB para que o QoS ocorra. Na Figura 5 há um trecho de código que
demonstra como é feito o script que interagirá com a interface Web proposta. A interface será
o elo de ligação entre o script e as ferramentas que determinarão o QoS. O administrador de
rede consegue adicionar, excluir e editar regras de QoS conforme desejado, através da
interface Web, aplicando as novas regras solicitadas. É o script que chamará as ferramentas e
algoritmos do Linux, aplicando as novas regras de QoS.
Obrigatoriamente todo e qualquer pacote que tiver destino a Internet, terá que passar
pelo gateway Linux conforme a topologia mostrada na Figura 1. Neste caso, se há implantado
um esquema de QoS, toda e qualquer máquina da rede que requisitar algum serviço na
Internet, terá alterações de prioridade conforme o administrador configurou para priorizar o
tráfego essencial na rede.
3.2 ESPECIFICAÇÃO
Tendo em uma visão rápida, será mostrado como funcionará o trabalho ora proposto. A
partir de uma interface Web será possível verificar e executar as configurações para controle
de banda da rede conforme demanda desejada.
O Quadro 1 apresenta os requisitos funcionais previstos para o software e sua
rastreabilidade, ou seja, vinculação com os casos de uso associados.
Requisitos Funcionais Caso de Uso
RF01: O software deve permitir ao usuário cadastrar novos equipamentos na rede. UC01
RF02: O software deve permitir ao usuário configurar largura de banda por UC02
15
serviço de rede
RF03: O software deve permitir ao usuário configurar largura de banda por UC03
equipamento
RF04: O software deve permitir ao usuário configurar prioridade de serviço UC04
RF05: O software deve permitir ao usuário visualizar prioridades aplicadas por UC05
equipamento
RF06: O software deve permitir ao usuário visualizar prioridades aplicadas para a UC06
rede
RF07: O software deve permitir ao usuário visualizar equipamentos ativos na rede UC07
RF08: O software deve permitir ao usuário visualizar o consumo do link UC08
RF09: O software deve permitir ao usuário visualizar largura de banda reservada UC09
por equipamento de rede
Quadro 1: Requisitos funcionais
3.3 MODELAGEM
REFERÊNCIAS BIBLIOGRÁFICAS
MOTTA, F. J. E. Controle de tráfego com TC, HTB e Iptables. São Paulo, 2007.
Disponível em
<http://eriberto.pro.br/wiki/index.php?title=Controle_de_tr%C3%A1fego_com_TC%2C_HT
B_e_Iptables>. Acesso em: 01 abr. 2010.
No Quadro 4 apresenta-se o caso de uso "Configurar largura de banda por serviço de rede".
Nome do Caso de Uso Configurar largura de banda por serviço de rede.
Descrição Administrador acessa a aplicação web, consulta o endereço ip já preenchido
passando os parâmetros que deseja aplicar.
Ator Administrador.
Pré-condição Administrador deve saber quais parâmetros deseja aplicar para o endereço desejado.
Fluxo principal 1. O software requisita os dados para o administrador;
2. Software valida os dados que o administrador digitou.
Cenário – Visualização Software mostra o endereço ip com as regras aplicadas.
Pós-condição Administrador visualizou o endereço ip com regras aplicadas.
Quadro 4 – Descrição do caso de uso UC02