$
%$
& '
(
! ) * + ! , ! -" , ! ) * + ! . * / . , 0 1 ! " , ' ! 2 3 ! 4 5 ! , 6 ,445 5 5 4 4 5 !Status documento: EM REVISÃO
Folha de Rosto ... 01
Índice ... 02
I. Introdução... 03
II. Topologia... 03
III. Preparação & configuração dos equipamentos... 04
IV. Como funciona o QoS Digitel ... 06
01. SFQ100 e SFQ200 ... 06
02. Algoritmo de Escalonamento... 07
V. Descrição dos comandos... 08
Descrevendo QoS... 08
Descrevendo Firewall ... 09
Gonçalves, Adriel {adriel@digitel.com.br} - Porto Alegre, RS | Brazil.
Guia de Configuração QoS (Quality Of Service) no NR2G-3200.
1. QoS (Quality of Service) 2. Marcação DSCP
3. NR2G-3211 e NR2G-3238
sse documento descreve os passos necessários para configuração de QoS (Quality of Service) utilizando a família NetRouter 2G da Digitel. Todos os testes e resultados a seguir foram Analisados e comprovamos nos equipamentos 3211 e NR2G-3238. Para validar e comprovar a funcionalidade dos equipamentos foram usados um software gerador de tráfego de voz RTP conhecido como Ixia - ixChariot e um analisador de redes da Agilent Technologies chamado FrameScope Pro.
Para melhor visualizarmos aplicação de QoS (Quality of Service), utilizaremos o cenário abaixo que demonstra como o roteador Digitel usa a disciplinas de enfileiramento.
Status documento: EM REVISÃO
1) Acessar o equipamento via cabo console utilizando um emulador de VT100 tipo HyperTerminal com velocidade de 57600 | Bits de dados: 8 | Paridade/Controle de fluxo: nenhum
USER: nr2g PASS: digitel
( Quando conectado ao roteador, execute os seguintes comandos na CLI observe que
estamos mostrando toda a configuração. Logo à frente mostraremos o que é cada linha de comando no equipamento.
################################ # Homologa CTBC_teste NR2G 3238 ################################ set system hostname test_3238
set lan lan0 purge
set lan lan0 ip 10.10.10.1 mask 255.255.255.0
set lan lan0 up set wan wan0 purge set wan wan0 proto ppps
set wan wan0 ipcp enabled true
set wan wan0 ipcp localip enabled true address 192.240.240.202 mask 255.255.255.252
set wan wan0 ipcp remoteip enabled true address 192.240.240.201
set wan wan0 pppdefroute true
set wan wan0 txinv true //não é necessário, apenas para velocidades maiores que 2048 // set wan wan0 up
set routes purge
set routes default gw1 192.240.240.201
set system log entry0 facility all priority all //debug log, não eh necessário habilitar // set qos purge
set qos wan0 root-htb handle 1: set qos wan0 htb1: default 20
set qos wan0 htb1: new-htb handle 1:1
set qos wan0 htb1:1 rate 950kbit ceil 950kbit no-priority set qos wan0 htb1:1 new-htb handle 1:10
set qos wan0 htb1:10 rate 810kbit ceil 810kbit priority 0 set qos wan0 htb1:10 new-sfq handle 100:
set qos wan0 sfq100: perturbation 10 set qos wan0 htb1:1 new-htb handle 1:20
set qos wan0 htb1:20 rate 140kbit ceil 950kbit no-priority set qos wan0 htb1:20 new-sfq handle 200:
set qos wan0 sfq200: perturbation 10
set qos wan0 htb1: new-filter dscp enabled true class ef priority 1 protocol ip classid 1:10 set qos up
set firewall purge
set firewall input policy accept clamptomtu false set firewall output policy accept clamptomtu false set firewall forward policy accept clamptomtu false
set firewall qos rule0 protocol udp protocolinverted false
set firewall qos rule0 mark-dscp ef flow prerouting fragment enabled false
set firewall qos rule0 source addressinverted false address 10.10.10.3 mask 255.255.255.255
set firewall qos rule0 mac enabled false set firewall qos rule0 limit enabled false
3) Execute agora a próxima configuração no equipamento NR2G-3211. Para melhor acompanhar, sugerimos que você se localize pelo hostname de cada equipamento.
################################ # Homologa CTBC_teste NR2G 3211 ################################ set system hostname test_3211
set lan lan0 purge
set lan lan0 ip 20.20.20.1 mask 255.255.255.0
set lan lan0 up set wan wan0 purge set wan wan0 proto ppps
set wan wan0 ipcp enabled true
set wan wan0 ipcp localip enabled true address 192.240.240.201 mask 255.255.255.252
set wan wan0 ipcp remoteip enabled true address 192.240.240.202
set wan wan0 pppdefroute true
set wan wan0 txinv true //não é necessário, apenas para velocidades maiores que 2048 // set wan wan0 up
set routes purge
set routes default gw1 192.240.240.202
set system log entry0 facility all priority all //debug log, não eh necessário habilitar // set qos purge
set qos wan0 root-htb handle 1: set qos wan0 htb1: default 20
set qos wan0 htb1: new-htb handle 1:1
set qos wan0 htb1:1 rate 950kbit ceil 950kbit no-priority
set qos wan0 htb1:1 new-htb handle 1:10
set qos wan0 htb1:10 rate 810kbit ceil 810kbit priority 0
set qos wan0 htb1:10 new-sfq handle 100: set qos wan0 sfq100: perturbation 10 set qos wan0 htb1:1 new-htb handle 1:20
set qos wan0 htb1:20 rate 140kbit ceil 950kbit no-priority
set qos wan0 htb1:20 new-sfq handle 200: set qos wan0 sfq200: perturbation 10
set qos wan0 htb1: new-filter dscp enabled true class ef priority 1 protocol ip classid 1:10 set qos up
set firewall purge
set firewall input policy accept clamptomtu false set firewall output policy accept clamptomtu false set firewall forward policy accept clamptomtu false
set firewall qos rule0 protocol udp protocolinverted false
set firewall qos rule0 mark-dscp ef flow prerouting fragment enabled false
set firewall qos rule0 source addressinverted false address 20.20.20.3 mask 255.255.255.255
set firewall qos rule0 mac enabled false set firewall qos rule0 limit enabled false
set firewall qos rule0 connectionstate enabled false set firewall qos rule0 time enabled false
set firewall qos rule0 tos enabled false set firewall qos rule0 udp dport 0-0 sport 0-0 set firewall up
Status documento: EM REVISÃO
(01) SFQ100: e SFQ200:
Disciplinas de enfileiramento “classes”, distribuem a banda entre os fluxos de forma “justa”, usando a técnica de DRR (Déficit Roud-Robin).
Parâmetros das classes do HTB:
+ Rate ...: Banda máxima garantida (zona “verde”) + Ceil ...: Banda máxima utilizável (zona “amarela”) + Priority ...: prioridade de uso da banda pela classe
+ Burst ...: Quantidade de bytes que podem ser enviados antes de recalcular a banda ocupada Os Filtros determinam o encaminhamento dos pacotes para uma das classes da hierarquia HTB.
Por exemplo:
(02) Algoritmo de escalonamento:
1 - Classe no “verde” tem prioridade;
2 - Classes de nível mais “básico” (menor) têm prioridade; 3 - Classe de menor valor de PRIORITY têm prioridade;
Quando uma classe de nível mais básico já ultrapassou seu “RATE”, foi para zona “amarela”. Ela toma emprestada banda da classe PAI, portanto temporariamente “sobe” para um nível mais alto, de menor prioridade.
Quando o CEIL da classe, ou da classe pai em caso de empréstimo, for atingido, o pacote é enfileirado ao invés de ser imediatamente enviado. Em um próximo recalculo das bandas ocupadas, este volta para o algoritmo de escalonamento.
O algoritmo de escalonamento é aplicado toda a vez que o link está livre para transmitir um pacote, se um pacote chega para ser transmitido quando o link já está ocupado, ele é enfileirado na folha correspondente. Somente nas folhas acontece o enfileiramento.
Quanto as regras de FIREWALL, elas servem para fazer as marcações dos pacotes, para posterior tratamento no QOS. Por exemplo a marcação de DSCP com EF.
Status documento: EM REVISÃO
Abaixo estamos descrevendo a Disciplinas de enfileiramento “classes" para QoS, atente
para o comentário em vermelho:
#>SET QOS PURGE
Limpa a configuração de QoS:
#>SET QOS WAN0 ROOT-HTB HANDLE 1:
Cria a raiz (root = HTB1:) da hierarquia de classes HTB na WAN0:
#>SET QOS WAN0 HTB1: DEFAULT 20
Define a classe folha default (20 = HTB1:20) para a qual serão encaminhados os pacotes que passarem por todos os filtros:
#>SET QOS WAN0 HTB1: NEW-HTB HANDLE 1:1
Cria a classe interna HTB1:1:
#>SET QOS WAN0 HTB1:1 RATE 950KBIT CEIL 950KBIT NO-PRIORITY
Define os parâmetros da classe HTB1:1:
#>SET QOS WAN0 HTB1:1 NEW-HTB HANDLE 1:10
#>SET QOS WAN0 HTB1:10 RATE 810KBIT CEIL 810KBIT PRIORITY 0
Cria a classe folha HTB1:10 e define seus parâmetros:
#>SET QOS WAN0 HTB1:10 NEW-SFQ HANDLE 100:
Cria a disciplina de enfileiramento SFQ100: na classe folha HTB1:10:
#>SET QOS WAN0 SFQ100: PERTURBATION 10
Define os parâmetros da disciplina SFQ100: (PERTURBATION=10 faz com que um
determinado conjunto de fluxos não fique mais que 10 segundos na mesma fila de hash)
#>SET QOS WAN0 HTB1:1 NEW-HTB HANDLE 1:20
#>SET QOS WAN0 HTB1:20 RATE 140KBIT CEIL 950KBIT NO-PRIORITY
Cria a classe folha 1:20 e define seus parâmetros:
#>SET QOS WAN0 HTB1:20 NEW-SFQ HANDLE 200: #>SET QOS WAN0 SFQ200: PERTURBATION 10
Cria a disciplina de enfileiramento SFQ200: na classe folha HTB1:20 e define seus parâmetros:
#>SET QOS WAN0 HTB1: NEW-FILTER DSCP ENABLED TRUE CLASS EF PRIORITY 1 PROTOCOL IP CLASSID 1:10
Define um filtro que encaminha pacotes IP com campo DSCP = EF para a classe HTB1:10:
#>SET QOS UP
!"#$
Aqui estamos descrevendo as regras de firewall. Elas servem para fazer as marcações dos pacotes e posteriormente serem enfileiradas pelo QoS. Acompanhe o o comentário em vermelho:
#>SET FIREWALL PURGE
Limpa a configuração de firewall:
#>SET FIREWALL INPUT POLICY ACCEPT CLAMPTOMTU FALSE #>SET FIREWALL OUTPUT POLICY ACCEPT CLAMPTOMTU FALSE #>SET FIREWALL FORWARD POLICY ACCEPT CLAMPTOMTU FALSE
Define as políticas default (ACCEPT) nas cadeias de entrada, saída e "forward" do roteador:
#>SET FIREWALL QOS RULE0 PROTOCOL UDP PROTOCOLINVERTED FALSE
#>SET FIREWALL QOS RULE0 MARK-DSCP EF FLOW PREROUTING FRAGMENT ENABLED FALSE
#>SET FIREWALL QOS RULE0 SOURCE ADDRESSINVERTED FALSE ADDRESS 10.10.10.3 MASK 255.255.255.255
#>SET FIREWALL QOS RULE0 MAC ENABLED FALSE #>SET FIREWALL QOS RULE0 LIMIT ENABLED FALSE
#>SET FIREWALL QOS RULE0 CONNECTIONSTATE ENABLED FALSE #>SET FIREWALL QOS RULE0 TIME ENABLED FALSE
#>SET FIREWALL QOS RULE0 TOS ENABLED FALSE #>SET FIREWALL QOS RULE0 UDP DPORT 0-0 SPORT 0-0
Cria uma regra de QoS (RULE0) para modificar o valor do campo de DSCP para o valor EF nos pacotes UDP vindos do host 20.20.20.3:
#>SET FIREWALL UP
Habilita a firewall
#>CONFIG SAVE