1 / 16

VoIP com QoS (Linux e Cisco)

VoIP com QoS (Linux e Cisco). Sistemas Telemáticos, 2005 costa@di.uminho.pt , macedo@di.uminho.pt. Sumário. Caso de estudo: VoIP Telefone VoIP com sinalização SIP Definição de uma política de QoS adequada Pelo menos três classes de tráfego: voz, sinalização e restante tráfego…

elton
Download Presentation

VoIP com QoS (Linux e Cisco)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VoIP com QoS(Linux e Cisco) Sistemas Telemáticos, 2005 costa@di.uminho.pt, macedo@di.uminho.pt

  2. Sumário • Caso de estudo: VoIP • Telefone VoIP com sinalização SIP • Definição de uma política de QoS adequada • Pelo menos três classes de tráfego: voz, sinalização e restante tráfego… • Configuração de Routers CISCO • Comandos: class-map, policy-map, service-policy e, eventualmente, access-list… • Configuração de Sistemas Linux • Filas de espera e disciplinas suportadas • Comandos iproute2: ip, tc, iptables

  3. VoIP com sinalização SIP • O SIP é um protocolo de aplicação (nível 7 OSI), desenvolvido no seio do IETF e descrito no RFC3261 • É um parente do HTTP/1.1: • Uris, Mensagens de Erro e parser semelhantes • Esta espécie de “encapsulamento” em HTTP torna as comunicações interactivas numa simples extensão do Web… • A sua principal função é estabelecer e terminar sessões: • Independente do protocolo de transporte (UDP, TCP, TLS) • Independente dos media (VoIP, Fax, Multicast, Jogos, Comunicações móveis, etc.) • Mecanismos de autenticação semelhantes aos do HTTP • Conteúdos podem ser cifrados… • O SIP transporta mensagens SDP, com descrição exacta das sessões… • O SDP específica o formato a usar nos fluxos multimedia, codecs, origem e destino… • Os URIs SIP podem identificar utilizadores ou números: • sip:costa@di.uminho.pt, sip:+351253604442@di.uminho.pt

  4. SDP “encapsulado” no SIP v=0 o=costa 140913579 140913586 IN IP4 pc10.labcom.uminho.pt s=X-Lite c=IN IP4 kepler.labcom.uminho.pt t=0 0 m=audio 8000 RTP/AVP 8 3 a=rtpmap:8 PCMA/8000 A=rtpmap:3 GSM/8000 • v = Número de versão (ignorado pelo SIP) • o = Origem (user, sessionID, session-version, endereço) • s = Assunto (ignorado) • c = Dados da Conexão (endereço IPv4) • t = Tempo (ignorado) • m = Media (tipo, porta, perfil RTP/AVP) • a = Attribute (perfil, codec, taxa de amostragem)

  5. Agentes SIP • Os agentes SIP ou são User Agents (UAC) que iniciam e terminam conexões, ou Servers (UAS) que ajudam a estabelecer as conexões…

  6. Definição de uma Política de QoS • Distinguir todo o tráfego do laboratório em pelo menos três classes de tráfego: • Sinalização (SIP) para VoIP • Tráfego de voz VoIP (RTP) • Outros (Best-Effort) • Marcar o tráfego usando o campo ip precedence ou o DSCP (EF, AF…,). Exemplo da auto-configuração CISCO: • Implementar a política no router-lab e na estação de trabalho Linux

  7. CISCO IOS – Acções de configuração • Definir o critério de classificação dos pacotes: Router(config)# class-map <nome-da-classe> Router(config-cmap)# description <descrição> Router(config-cmap)# match <grupo-de-acesso> Router(config-cmap)# exit • Definir a política de serviço: Router(config)# policy-map <nome-da-politica> Router(config-pmap)# description <descrição> Router(config-pmap)# class <nome-da-classe> Router(config-pmap-c)# bandwidth … • Aplicar a política de QoS ao(s) interface(s): Router(config)# interface FastEthernet 0/0 Router(config-if)# service-policy output <nome-da-política>

  8. CISCO IOS – Acções de configuração • class-map – critérios de classificação • match access-group <numero> • Permite usar access-lists para classificar os pacotes • match input-interface … • Classifica pelo interface de entrada… • match protocol … • match ip dscp • match ip precedence… • match rtp … • match qos-group … • match source-address … • match destination address • …

  9. CISCO IOS – Acções de configuração • policy-map – acções possíveis: • bandwidth – especifica valor mínimo de largura de banda a garantir… • fair-queue – nº de filas a reservar para a class • police – especifica o valor máximo de largura de banda a admitir usando o algoritmo Token Bucket (parâmetros que já conhecem) • queue-limit – define o máximo de pacotes da fila (se não se usar o WRED) • random-detect – activa WRED numa classe com largura de banda garantida… • set cos … - permite associar um valor de CoS a nível 2 • set ip precedence … - marca os primeiros 6 bits do campo TOS • set ip dscp … - marca os primeiros 3 bits do campo TOS • set qos-group … - associa em grupos de QoS (0-99)

  10. CISCO IOS QoS • Filas de espera no CISCO • First-in, first-out (FIFO) queuing • Priority queuing (PQ) • Dá prioridade a um tráfego em relação ao outro… • Custom queuing (CQ) • Permite dividir a largura de banda disponível pelas várias classes… • Flow-based weighted fair queuing (WFQ) • Class-based weighted fair queuing (CBWFQ) • Low latency queueing (LLQ), Distributed LLQ • Permite PQ para tráfego de voz e WFQ para o restante… • Só interfaces Serial e Frame relay (??) • … • Congestion avoidance: WRED – implementação RED CISCO…

  11. CISCO IOS QoS • Esclarecimentos sobre a marcação:

  12. Linux QoS • A partir do kernel 2.2 o subsistema de rede foi reescrito para inclusão dos novos conceitos de rede… • Os velhinhos comandos arp, ifconfig e route deram lugar ao comando ip (iproute2): ip link list, ip neigh show, ip route show, etc.. • Filas de espera e disciplinas: • Classless e classfull • Configuráveis com o comando “tc” (traffic control) • ver configuração: tc qdisc show • Marcação de pacotes: • iptables … • tc filter …

  13. Linux QoS • Disciplinas classless: • pfast_fifo: três bandas, pré-configuradas, baseados no campo ip precedence • Configuração por defeito… não alterável… • tbf: “token bucket filter” que só deixa entrar na fila pacotes dentro do perfil e descarta os restantes… bom para estrangular um interface: # tc qdisc add dev ppp0 root tbf rate 220kbit latency 50ms burst 1540 • sfq: Stochastic Fairness Queueing, distribui os fluxos por n filas, de modo a nenhum fluxo ser prejudicado/beneficiado: • # tc qdisc add dev ppp0 root sfq perturb 10

  14. Linux QoS • Disciplinas classfull: • Os pacotes que entram na fila devem ser “classificados” usando “filtros” de modo a poderem serem colocados numa das “classes” ou “sub-classes” disponíveis… • Cada interface tem um ponto de saída “root qdisc”… e também pode ter um qdisc de entrada para policiamento do tráfego que chega… • Os handlers das classes têm duas partes: major e minor. A raíz designa-se 1: ou 1:0 • Os handlers estrtuturam-se em árvore: 10:1 1:10 10:2 1:0 1:1 1:11 11: root qdisc 12:1 1:12 12:2 Classes folha

  15. Linux QoS • Disciplinas classfull: • PRIO: priority Por defeito cria três filas FIFO com diferentes prioridades, mas que podem ser alteradas para outra disciplina… a classificação por filas faz-se por filtros e não pelo campo TOS como acontece no pfast_fifo… • CBQ: Class Based Queueing Separa a largura de banda pelas classes, calculando tempos de espera de modo a assegurar o reajuste do débito ao especificado para a classe… permite também definir prioridades entre as classes… • HTB: Hierarchical Token Bucket Trata-se de um filtro Token Bucket por classes… na prática parecido com o CBQ, assegurando minimos de largura de banda por classe, mas sem a complexidade dos ajustes com tempos de espera…

  16. Linux QoS - Exemplos Classificação com filtros: • Exemplo baseado no endereço: # tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32\ match ip dst 4.3.2.1/32 flowid 10:1 # tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \ match ip src 1.2.3.4/32 flowid 10:1 # tc filter add dev eth0 protocol ip parent 10: prio 2 \ flowid 10:2

More Related