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 Características Comandos Disciplinadores de Fila: • PRIQ (Priority Queueing) • CBQ (Class Based Queuing) Atividades Suporte a QoS em Roteadores FreeBSD 2.2 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 Suporte a QoS em Roteadores FreeBSD 2.3 Introdução Rede conectada 2. Sinalização 3. Gerente Servidor Rede conectada 1. QoS dentro dos dispositivos Suporte a QoS em Roteadores FreeBSD 2.4 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 Suporte a QoS em Roteadores FreeBSD 2.5 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. Suporte a QoS em Roteadores FreeBSD 2.6 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 Suporte a QoS em Roteadores FreeBSD 2.7 Disciplinas de filas Alta Classifi cação Média Normal Baixa Interface Suporte a QoS em Roteadores FreeBSD 2.8 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. Suporte a QoS em Roteadores FreeBSD 2.9 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. Suporte a QoS em Roteadores FreeBSD 2.10 Disciplinas de filas 1/10 Classifi cação 4/10 2/10 3/10 Interface Suporte a QoS em Roteadores FreeBSD 2.11 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 Suporte a QoS em Roteadores FreeBSD 2.12 Disciplinas de filas (comparação) 1 1 1 1 2 2 3 3 FIFO Suporte a QoS em Roteadores FreeBSD 2.13 Disciplinas de filas (comparação) 1 1 1 1 2 2 3 3 PQ - Prioridade = 1>2>3 Suporte a QoS em Roteadores FreeBSD 2.14 Disciplinas de filas (comparação) 1 1 1 1 2 2 3 3 CQ - 1 (2/10); 2 (4/10); 3 (4/10) Suporte a QoS em Roteadores FreeBSD 2.15 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 Suporte a QoS em Roteadores FreeBSD 2.16 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) Suporte a QoS em Roteadores FreeBSD 2.17 Soluções de QoS (IntServ) Reserva dinâmica de recursos através do RSVP (Resource reSerVation Protocol) Suporte a QoS em Roteadores FreeBSD 2.18 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 Suporte a QoS em Roteadores FreeBSD 2.19 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 Suporte a QoS em Roteadores FreeBSD 2.20 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 Suporte a QoS em Roteadores FreeBSD 2.21 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 Suporte a QoS em Roteadores FreeBSD 2.22 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 Suporte a QoS em Roteadores FreeBSD 2.23 AltQ AltQ é um gerenciador de tráfego de pacotes que é capaz de fornecer qualidade de serviço (QoS) em uma rede de computadores. Suporte a QoS em Roteadores FreeBSD 2.24 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.) Suporte a QoS em Roteadores FreeBSD 2.25 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. Suporte a QoS em Roteadores FreeBSD 2.26 Exemplo Servidor HTTP (www.WebServer.com.br) ed1 ed0 (100Mbps) (100Mbps) Roteador FreeBSD com ALTQ Suporte a QoS em Roteadores FreeBSD 2.27 Computador Pessoal (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 Suporte a QoS em Roteadores FreeBSD 2.28 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. Suporte a QoS em Roteadores FreeBSD 2.29 PRIQ: Sintaxe dos comandos interface nome [bandwidth bps] [tbrsize bytes] 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 nome nome_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. Suporte a QoS em Roteadores FreeBSD 2.30 Disciplinadores de Fila CBQ (Class Based Queueing) • Parâmetros de QoS são agrupados em classes • Classes são estruturadas de forma hierárquica Suporte a QoS em Roteadores FreeBSD 2.31 CBQ: Sintaxe dos comandos interface nome [bandwidth bps] [tbrsize bytes] 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 Suporte a QoS em Roteadores FreeBSD 2.32 CBQ: Sintaxe dos comandos class cbq nome nome_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 Suporte a QoS em Roteadores FreeBSD 2.33 CBQ: Estrutura hierárquica root (100 %) default (97 %) HTTP (20 %) FTP (20 %) Suporte a QoS em Roteadores FreeBSD controle (3 %) TELNET ( 10 %) 2.34 VÍDEO (40 %) Comando filter O comando filter é um comando genérico e é utilizado por todos os disciplinadores de fila Suporte a QoS em Roteadores FreeBSD 2.35 Comando filter: Sintaxe filter nome nome_classe dst_addr [netmask mask] dport src_addr [netmask mask] sport proto • 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 Suporte a QoS em Roteadores FreeBSD 2.36 Atividades: Topologia da rede 10.0.3.2 - XL0 Rede 10.0.3.0 10.0.4.1 - FXP0 D 10.0.3.1 - RL0 Rede 10.0.4.0 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 Rede 10.0.1.0 10.0.1.2 - ED0 10.0.6.1 - ED0 10.0.1.1 10.0.6.2 A Suporte a QoS em Roteadores FreeBSD Rede 10.0.6.0 G 2.37 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 Suporte a QoS em Roteadores FreeBSD 2.38 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 Suporte a QoS em Roteadores FreeBSD 2.39 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 Suporte a QoS em Roteadores FreeBSD 2.40 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 Suporte a QoS em Roteadores FreeBSD 2.41 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 Suporte a QoS em Roteadores FreeBSD 2.42