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
Download

Suporte a QoS em Roteadores FreeBSD