420 likes | 537 Views
Suporte a QoS em Roteadores FreeBSD. Clarissa Marquezan Lisandro Zambenedetti Granville Ricardo Vianna Rodrigo Sanger Alves Tiago Fioreze Universidade Federal do Rio Grande do Sul. Qualidade de Serviço em Redes IP. Introdução Disciplinas de filas Protocolos RSVP DiffServ AltQ
E N D
Suporte a QoS em Roteadores FreeBSD Clarissa MarquezanLisandro Zambenedetti GranvilleRicardo ViannaRodrigo Sanger AlvesTiago Fioreze Universidade Federal do Rio Grande do Sul
Qualidade de Serviço em Redes IP • Introdução • Disciplinas de filas • Protocolos • RSVP • DiffServ • AltQ • Características • Comandos • Disciplinadores de Fila: • PRIQ (Priority Queueing) • CBQ (Class Based Queuing) • Atividades
Introdução • O que é? (do ponto de vista da rede) • Capacidade de fornecer melhores serviços para determinados fluxos de uma rede. • Arquitetura de QoS básica • QoS implantada dentro de um dispositivos (através de filas, escalonadores, conformadores de tráfego, etc.) • Técnicas de sinalização para coordenar o QoS fim-a-fim no caminho completo dos fluxos • Políticas, gerenciamento e funcionalidades de contabilização para controle e administração de QoS
Introdução Rede conectada 3. Gerente 2. Sinalização Servidor Rede conectada 1. QoS dentro dos dispositivos
Disciplinas de filas • Para tratar congestionamento (maior fluxo de entrada do que de saída em um roteador) é necessário o uso de filas (controle de congestionamento) • De acordo com o funcionamento de cada fila (algoritmo de filas) tem-se a definição de disciplinas de filas diferentes
Disciplinas de filas • First Come First Served (FCFS) = First In First Out (FIFO) • Os primeiros pacotes a chegarem serão despachados em primeiro lugar, independentemente do tipo do pacote • Não existe priorização, pois todos os pacotes são tratados da mesma forma • Não existe proteção contra aplicações mal comportadas (que geram, por exemplo, fluxos que congestionam a rede) • Implementado na interface de entrada ou saída (preferencialmente) • É o algoritmo padrão de qualquer roteador, e não exigem nenhuma parametrização.
Disciplinas de filas • Priority Queuing (PQ) • Garante que tráfegos importantes receberão tratamento especial • Cada interface de saída implementa várias filas diferentes • Cada pacote é colocado em uma fila diferente, de acordo com a prioridade do pacote • As filas de mais alta prioridade são atentidas enquanto existir tráfego
Alta Classificação Média Normal Baixa Interface Disciplinas de filas
Disciplinas de filas • Priority Queuing (cont.) • Garantias sobre os atrasos • Sem proteção contra aplicações mal comportadas • Uma aplicação pode monopolizar toda a banda! Neste caso, pior que FIFO • Gerenciável: é o administrador da rede que deve programar a classificação dos pacotes. Disso depende o sucesso do algoritmo PQ.
Disciplinas de filas • Custom Queuing (CQ) • Criado para a definição e diferenciação da alocação de banda mínima entre várias aplicações • Garante banda mínima para aplicações críticas mesmo em pontos de congestionamento • Exemplo: Vídeo sob demanda atravessando roteadores congestionados. • Uso de várias filas, mas a prioridade é dada pelo tempo que cada fila pode utilizar uma interface.
1/10 Classificação 4/10 2/10 3/10 Interface Disciplinas de filas
Disciplinas de filas • Custom Queuing (cont.) • Também precisa de gerenciamento: o administrador indica • Quais os pacotes irão ser direcionados para quais filas • Quanto de banda cada fila possuem em relação à banda total da interface • Garante que aplicações mal comportadas não conseguirão monopolizar os recursos
1 1 1 1 2 2 3 3 Disciplinas de filas (comparação) FIFO
1 2 3 PQ - Prioridade = 1>2>3 Disciplinas de filas (comparação) 1 1 1 2 3
1 2 3 CQ - 1 (2/10); 2 (4/10); 3 (4/10) Disciplinas de filas (comparação) 1 1 1 2 3
Soluções de QoS • As soluções mais promissoras são aquelas desenvolvidas dentro do IETF • Serviços Integrados (IntServ) e RSVP • Serviços Diferenciados (DiffServ) • MPLS (Multi Protocol Labeling Switching) • Por que? • Forte influência de indústria de equipamentos de rede
Soluções de QoS • Em relação ao fornecimento de garantias: • Reserva de recursos (serviços integrados) • Priorização (serviços diferenciados) • Caracterização de QoS através de dois tipos: • Por fluxo: stream de informações uni-direcional identificado através de protocolo, endereço origem, endereço destino, porta origem e porta destino • Por agregado: conjunto de fluxos que possuem algo em comum (normalmente o byte de prioridade)
Soluções de QoS (IntServ) • Reserva dinâmica de recursos através do RSVP (Resource reSerVation Protocol)
Soluções de QoS (IntServ) • Diferenciação por fluxo: cada roteador deve guardar internamente uma descrição dos fluxos • Endereços IP origem e destino • Protocolo (tipicamente TCP ou UDP) • Portas (aplicações) origem e destino • Prioridade do fluxo • Exemplo: fluxo de download do relatório de vendas para a máquina do diretor • 200.10.230.1:80, 200.10.230.9:1798, tcp, alta
Soluções de QoS (IntServ) • Principal problema da solução: escalabilidade! • Para redes com muitos roteadores, o tempo de estabelecimento de uma sessão pode ser muito grande • Em roteadores próximos ao backbone o número de informações necessárias pode ser maior que a capacidade de armazenamento
Soluções de QoS (DiffServ) • Reserva estática de recursos • As aplicações não estabelecem sessões como no IntServ • O gerente da rede é responsável por determinar como os recursos (banda) existentes são alocados
Soluções de QoS (DiffServ) • Diferenciação por agregado • Vários fluxos são agrupados em agregados • Cada agregado é diferenciado dentro dos roteadores • Não existe priorização dentro do agregado • Exemplo: qualquer fluxo cujo destino é a máquina do diretor • *:*, 200.10.230.9:*, TCP|UDP|*, alta
Soluções de QoS (DiffServ) • Vantagens de relação ao IntServ • Escalável • Não existe tempo de estabelecimento de sessão • Os roteadores próximos ao backbone armazenam menos informações • Problemas • Configurado manualmente • Serviços menos garantidos
AltQ • AltQ é um gerenciador de tráfego de pacotes que é capaz de fornecer qualidade de serviço (QoS) em uma rede de computadores.
Características • AltQ suporta parâmetros tradicionais de QoS (e.g., banda, atraso, etc.) • AltQ possui uma variedade de disciplinadores de fila (e.g., CBQ, PRIQ, HFSC, etc.)
Comandos • Interface: • Comando responsável por habilitar o ALTQ em uma determinada interface de rede. • Class: • Comando responsável por criar classes de serviço. • Filter: • Comando responsável por associar um fluxo de pacotes a determinada classe de serviço.
Exemplo ed1 (100Mbps) ed0 (100Mbps) Computador Pessoal Servidor HTTP (www.WebServer.com.br) Roteador FreeBSD com ALTQ (200.18.42.6)
Exemplo (cont.) • interface ed1 priq • interface ed0 priq • # • # Interface ed1 • class priq ed1 def_class priority 1 default • class priq ed1 http_class priority 15 • filter ed1 http_class www.WebServer.com.br 80 200.18.42.6 0 6 • # • # Interface ed0 • class priq ed0 def_class priority 1 default • class priq ed0 http_class priority 15 • filter ed0 http_class 200.18.42.6 0 www.WebServer.com.br 80 6
Disciplinadores de Fila • PRIQ (Priority Queueing): • Possue buffers com prioridades diferentes. O buffer com maior prioridade é o que será atendido primeiro e terá direito de transmitir os pacotes armazenados. • Buffers com prioridades menores podem não ser atendidos.
PRIQ: Sintaxe dos comandos • interfacenome [bandwidthbps] [tbrsizebytes] priq • nome: Especifica o nome da interface • bandwidth : Especifica a quantidade de banda da interface que será ocupada. • tbrsize : Especifica o tamanho em bytes do balde de tokens. • class priq nomenome_classe classe_pai [priority p] [default] • nome: Especifica o nome da interface • nome_classe: Especifica o nome da classe. • classe_pai: Especifica o nome da classe pai. No caso do PRIQ, esse parâmetro deve ser NULL. • priority: Especifica a prioridade da classe. Os valores variam de 0 a 15. Quanto maior o valor, maior é a prioridade da classe. • default: Especifica a classe default. A classe default tratará todos os pacotes que não pertencerem a algum determinado filtro.
Disciplinadores de Fila • CBQ (Class Based Queueing) • Parâmetros de QoS são agrupados em classes • Classes são estruturadas de forma hierárquica
CBQ: Sintaxe dos comandos • interfacenome [bandwidthbps] [tbrsizebytes] cbq • nome: Especifica o nome da interface • bandwidth: Especifica a quantidade de banda da interface que será ocupada • tbrsize: Especifica o tamanho em bytes do balde de tokens
CBQ: Sintaxe dos comandos • class cbq nomenome_classe classe_pai [priority p] [pbandwidth percent] [borrow] [default] • nome: Especifica o nome da interface • nome_classe: Especifica o nome da classe • classe_pai: Especifica o nome da classe pai • priority: Especifica a prioridade da classe. Os valores variam de 0 a 7. Quanto maior o valor, maior é a prioridade da classe • pbandwidth: Especifica a porcentagem de largura de banda da interface que será destinada para essa classe • borrow: Especifica se a classe pode pedir para a classe pai largura de banda emprestada • default: Especifica a classe default. A classe default tratará todos os pacotes que não pertencerem a algum determinado filtro
Comando filter • O comando filter é um comando genérico e é utilizado por todos os disciplinadores de fila
Comando filter: Sintaxe • filternomenome_classe dst_addr [netmaskmask] dport src_addr [netmaskmask] sportproto • nome: Especifica o nome da interface • nome_classe: Especifica o nome da classe a qual o fluxo de pacotes será associado • dst_addr: Especifica o endereço de destino do fluxo de pacotes • dport: Especifica a porta de destino • src_addr: Especifica o endereço de origem do fluxo de pacotes • sport: Especifica a porta de origem • netmask: Especifica a máscara de rede destino ou origem • proto: Especifica qual o número do protocolo
Atividades: Topologia da rede 10.0.3.2 - XL0 10.0.4.1 - FXP0 D Rede 10.0.4.0 Rede 10.0.3.0 10.0.3.1 - RL0 10.0.4.2 - ED0 C E 10.0.5.1 - XL0 10.0.2.2 - XL0 Rede 10.0.5.0 Rede 10.0.2.0 10.0.2.1 - RL0 10.0.5.2 - DC0 F B 10.0.1.2 - ED0 10.0.6.1 - ED0 Rede 10.0.1.0 Rede 10.0.6.0 10.0.1.1 10.0.6.2 A G
Atividades: 1ª atividade • Ação: Máquina A irá pingar a máquina G. • Cenário 1: A ação será realizada sem nenhuma simulação de congestionamento • Cenário 2: A ação será realizada com simulação de congestionamento • Cenário 3: A ação será realizada com simulação de congestionamento e com o AltQ atuando • Objetivo: Verificar o comportamento dos pacotes ICMP sem e com o uso do Altq
Atividades: 2ª atividade • Ação: Máquina A irá realizar um FTP e acessará páginas HTTP na máquina G. • Cenário 1: Tráfego FTP e HTTP serão concorrentes, ou seja, utilizarão a mesma banda • Cenário 2: Tráfego FTP e HTTP não serão concorrentes, ou seja, cada um terá uma porcentagem de largura de banda • Objetivo: Verificar como é possível dividir banda para diferentes fluxos de pacotes
Atividades: 3ª atividade • Ação: Máquina A e G irão realizar uma comunicação de voz entre elas. • Cenário 1: A ação será realizada sem nenhuma simulação de congestionamento • Cenário 2: A ação será realizada com simulação de congestionamento • Cenário 3: A ação será realizada com simulação de congestionamento e com o AltQ atuando • Objetivo: Verificar o comportamento da comunicação de voz sem e com o uso do AltQ
Atividades: 4ª atividade • Ação: Máquina A e G irão realizar uma comunicação de vídeo entre elas. • Cenário 1: A ação será realizada sem nenhuma simulação de congestionamento • Cenário 2: A ação será realizada com simulação de congestionamento • Cenário 3: A ação será realizada com simulação de congestionamento e com o AltQ atuando • Objetivo: Verificar o comportamento da comunicação de vídeo sem e com o uso do AltQ
Atividades: 5ª atividade • Ação: Máquina A e G irão realizar uma videoconferência entre elas. • Cenário 1: A ação será realizada sem nenhuma simulação de congestionamento • Cenário 2: A ação será realizada com simulação de congestionamento • Cenário 3: A ação será realizada com simulação de congestionamento e com o AltQ atuando • Objetivo: Verificar o comportamento da videoconferência sem e com o uso do AltQ