Controle de Tráfego :: Admirável Mundo Novo




Muito Bem Vindo

Prezado Leitor, a proposta desse Blog é compartilhar conhecimento com as pessoas que trabalham com Linux, Asterisk, OpenSER, e com tecnologia de voz sobre a rede IP em geral, através de tutoriais, dicas, howto, notícias entre outros assuntos.

Atente para termo de uso do conteúdo do blog no rodapé da página.

terça-feira, 10 de março de 2009

Controle de Tráfego





Controle de Tráfego e QoS


Tudo na vida surge quando nós nos defrontamos com um problema real a resolver.

Deparei-me com o seguinte problema no meu acesso a Internet banda larga caseiro: Eu estava falando na minha linha GVT/VONO quando resolvi baixar o arquivo de 200MB da Internet. O que foi que aconteceu quando o arquivo começou a ser baixado?

Isso mesmo que você imaginou. O tráfego do download saturou completamente o meu link ADSL Telefônica atingindo o topo da banda fazendo com que faltasse banda para o meu tráfego de voz oriunda da minha ligação IP.

Daí apareceu a necessidade de um mecanismo que pudesse controlar a largura de banda do meu acesso Internet em função do tipo de porta e também do protocolo UDP e TCP no meu roteador Linux.

O jeito foi pesquisar uma solução pra isso na Internet.

Foi assim que cheguei ao HOWTO “Linux Advanced Routing & Traffic Control” e ao artigo do Brown Traffic Control, contudo eles estavam em inglês, tentei ver se o encontrava em português, mas não encontrei. Foi então que resolvi dar a minha contribuição à comunidade Linux Brasil fazendo uma tradução da parte que me interessava dos mesmos, pensando justamente no fato que muitas pessoas como eu, já tiveram se deparado com esse problema.

Esse howto parece ser escrito quando das primeiras versões do Kernel Linux 2.2.x e parece também que sofreu poucas atualizações. Contudo, ele ainda serve como base para aqueles que ainda não tem um conhecimento sólido de controle de tráfego na rede IP.

Ele serve, portanto, como ponta-pé inicial na conquista desse conhecimento. No entanto, como um primeiro contacto sobre a disciplina, eu recomendo primeiramente a leitura do artigo do Brown, pois ele aborda de forma didática os conceitos e definições do controle de tráfego.

A controle de tráfego é a disciplina intimamente relacionada com a garantia de qualidade de serviço (QoS) no mundo da pilha TCP/IP. Portanto, é um tema de suma importância atualmente no mundo Internet.

A tradução aqui só contempla as partes dos dois documentos que aborda o controle de tráfego, no entanto, o primeiro howto completo engloba também roteamento avançado e dinâmico.

Gostaria de solicitar aos amigos leitores a gentileza de reportar equívocos eventuais encontrados ao longo dos capítulos justamente para torná-lo melhor. Favor, sintam-se a vontade para fazê-los, o importante é que ele seja melhorado constantemente.



Os capítulos do HowTo que foram traduzidos e que estão presentes aqui, são:


9. Disciplinas Enfileiramento para Gerenciamento de Banda

9.1. Filas e Disciplinas de Enfileiramento explicadas
9.2. Disciplinas de Enfileiramento Classless Simples

9.2.1. pfifo_fast
9.2.2. Filtro Token Bucket
9.2.3. Stochastic Fairness Queueing

9.3. Conselho para qual fila usar quando
9.4. Terminologia
9.5. Disciplinas de Enfileiramento Classful

9.5.1. Fluxo dentro de qdiscs & classes classful
9.5.2. A família qdisc: roots, handles, siblings e parents
9.5.3. A qdisc PRIO
9.5.4. A famosa qdisc CBQ
9.5.5. Hierarchical Token Bucket

9.6. Classificação de pacotes com filtros

9.6.1. Alguns exemplos simples de filtragem
9.6.2. Todos os comandos de filtragem que você normalmente precisará

9.7. O Dispositivo de Enfileiramento Intermediário (IMQ)

9.7.1. Configuração Exemplo

10. Compartilhamento de Carga sobre Múltiplas interfaces

10.1. Advertências
10.2. Outras possibilidades

11. Netfilter & iproute - marcação de pacotes
12. Filtros Avançado para (re-)Classificação de pacotes

12.1. O Classificador u32

12.1.1. Seletor U32
12.1.2. Seletores Gerais
12.1.3. Seletores Específicos

12.2. O Classificador route
12.3. Filtros de Policiamento

12.3.1. Formas de policiar
12.3.2. Ações Overlimit
12.3.3. Exemplos

12.4. Colocando filtros em Hash para filtragem pesada muito veloz
12.5. Filtragem de Tráfego IPv6

12.5.1. Como conseguir que os 'tc filter's no IPv6 não funcionem?
12.5.2. Marcando pacotes IPv6 usando o ip6tables
12.5.3. Usando o seletor u32 para bater com pacote IPv6

13. Parâmetros de rede no Kernel

13.1. Filtragem de Caminho Reverso
13.2. Parâmetros Obscuros

13.2.1. ipv4 Genérico
13.2.2. Parâmetros Por Dispositivo
13.2.3. Policiamento de Vizinhança
13.2.4. Parâmetros de Roteamento

14. Disciplinas Enfileiramento Avançadas & Menos Comum

14.1. bfifo/pfifo

14.1.1. Parâmetros & Uso

14.2. Algoritmo Clark-Shenker-Zhang (CSZ)
14.3. DSMARK

14.3.1. Introdução
14.3.2. Com que Dsmark está relacionado?
14.3.3. Orientações para Serviços Diferenciados
14.3.4. Trabalhando com Dsmark
14.3.5. Como Funciona SCH_DSMARK
14.3.6. Filtro TC_INDEX

14.4. Ingress qdisc

14.4.1. Parâmetros & Uso

14.5. Random Early Detection (RED)
14.6. Random Early Detection Genérico
14.7. Emulação VC/ATM
14.8. Weighted Round Robin (WRR)

15. Cookbook (Receitas de Bolo)

15.1. Rodando múltiplos sites com diferentes SLAs
15.2. Protegendo seu host de SYN floods
15.3. Limitação de Taxa ICMP pra evitar dDoS
15.4. Priorizando tráfego interativo
15.5. Fazendo cache-web Transparente usando o netfilter, iproute2, ipchains e squid

15.5.1. Diagrama de Fluxo de Tráfego após implementação

15.6. Contornando os problemas ‘Path MTU Discovery’ com ajustes por rota MTU

15.6.1. Solução

15.7. Contornando os problemas ‘Path MTU Discovery’ com MSS Clamping (para ADSL, cable, e usuários PPPoE & PPtP)
15.8. O Mais Moderno Condicionador de Tráfego: Low Latency, Fast Up & Downloads

15.8.1. Por que isso não funciona bem por padrão
15.8.2. O script real (CBQ)
15.8.3. O script real (HTB)

15.9. Limitando Taxa a único host ou máscara de rede
15.10. Exemplo de uma solução full nat com QoS

15.10.1. Comecemos otimizando aquela banda escassa
15.10.2. Classificação de pacotes
15.10.3. Melhorando nossa instalação
15.10.4. Fazendo tudo subir no boot


Artigo Controle de Tráfego por Martin A. Brown.








Autores Originais dos textos:

Bert Hubert (Netherlabs BV)
bert.hubert@netherlabs.nl

Thomas Graf (Autor de Seção)
tgraf@suug.ch

Gregory Maxwell (Autor de Seção)
greg@linuxpower.cx

Remco van Mook (Autor de Seção)
remco@virtu.nl

Martijn van Oosterhout (Autor de Seção)
kleptog@cupid.suninternet.com

Paul B Schroeder (Autor de Seção)
paulsch@us.ibm.com

Jasper Spaans (Autor de Seção)
jasper@spaans.ds9a.nl

Pedro Larroy (Autor de Seção)
piotr@member.fsf.org










Nenhum comentário:




Creative Commons License
Admirável Mundo Novo: Tudo Sobre Asterisk, OpenSER, Linux e Tecnologias de Voz sobre IP
by Cléviton Mendes de Araújo is licensed under a Creative Commons Atribuição 2.5 Brasil License.