Mudanças entre as edições de "Redes Multimídia (diário 2014-2)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 386: Linha 386:
  
 
===10/10: IPv6 e SIP===
 
===10/10: IPv6 e SIP===
 +
Atividade em sala:
 +
# Criar canais SIP sobre IPv6 e sobre IPv4.
 +
# Configurar tanto canais IPv6 quanto IPv4 como válidos.
 +
# Utilizar IPv4 nos terminais/ramais (entre A e C, entre B e D) e IPv6 entre centrais (entre C e D).
 +
# Verificar como se comportaram os cabeçalhos em IPv4 e IPv6:
 +
## <tt>From</tt>.
 +
## <tt>To</tt>.
 +
## <tt>Contact</tt>.
 +
## <tt>Call-ID</tt>.
 +
## <tt>Via</tt>.
  
 
===?: RTP===
 
===?: RTP===

Edição das 11h19min de 10 de outubro de 2014

URL encurtada: https://bit.ly/rmu20142

Sobre a disciplina

Metodologia e Avaliação

Abordagem baseada em projetos cumulativos ao longo da disciplina, com avaliação prática em laboratório (defesa do cenário). Serão compostas "empresas", com definição de papéis de líderes e liderados (sob regime de rodízio ao longo da disciplina), para defesa e composição coletiva do conceito.

Composição do Conceito Final

  • A = todos os conceitos A.
  • B = no máximo um conceito C e nenhum D (incluindo recuperação e avaliação recuperada).
  • C = no máximo um conceito D (exceto projeto final), e para cada D um A correspondente (incluindo recuperação e avaliação recuperada).
  • D = demais casos.

Nota: os conceitos recuperados não são descartados para a composição do conceito final.

Aulas

Plano de ensino

05/08: apresentação da disciplina

Apresentação da metodologia a ser usada na disciplina, bem como os 4 projetos que serão trabalhados ao longo do semestre.

08/08: revisão

Revisão de GNU/Linux e IPv4.

Endereçamento: - Atribuir: ifconfig <iface> <IP>/<máscara> - Remover: ifconfig <iface> 0 - Listar: ifconfig -a

Roteamento: - Ativar: sysctl -w net.ipv4.ip_forward=1 - Adicionar: route add -net <rede>/<máscara> gw <roteador> dev <interface> - Remover: route del -net <rede>/<máscara> gw <roteador> dev <interface> - Listar: netstat -rn

Roteamento dinâmico: 1) vi /etc/quagga/daemons zebra=yes ospfd=yes 2) vi /etc/quagga/zebra.conf hostname ederson password zebra interface eth1 interface eth2 3) vi /etc/quagga/ospfd.conf hostname ederson password zebra router ospf network 192.168.10.0/29 area 0 network 192.168.10.16/29 area 0

4) service quagga restart 5) Verificar: telnet localhost 2601 telnet localhost 2604 </syntaxhighlight>

Conceitos básicos

12/08: serviços e protocolos

  • Serviços
    • Por camada
  • Protocolos
    • Tradução
  • VoIP e telefonia IP [1]
  • Gateway de mídia

Projeto 1: sinalização

15/08: protocolos de sinalização

  • H.225.0 (H.323)
  • ISUP (SS7)
  • SIP

19/08: SIP

  • O protocolo [2].
    • UAC e UAS.
    • Métodos de requisição e respostas.
    • Servidores: redirect, proxy e registrar.
  • URI, em especial sip:.
  • Cenários possíveis de implementação: ponto-a-ponto, intracentral e intercentrais.

22/08: Soft PBX

  • Instalação e configuração básica de dois canais SIP para operações intracentral.

26/08: não houve aula

Apresentação de TCCs.

29/08: entroncamento entre centrais

Preparação dos canais SIP: "ramais" e troncos.

02/09: entroncamento entre centrais

Preparação dos canais SIP: "ramais" e troncos.

05/09: finalização do projeto

09/09: defesa do projeto

Projeto 2: descrição e transporte de mídia

12/09: SDP

  • Session Description Protocol.[3]

16/09: SDP

  • Session Description Protocol.

19/09: SDP e negociação de portas

  • Negociação de portas e NAT.

23/09: SIP + SDP + NAT

Considere o seguinte cenário:

<graphviz> graph SDP {

 C [shape=record,label="<0>C|<1>eth1, .2|<2>Asterisk"]
 D [shape=record,label="<0>D|<1>eth1, .2|<2>Asterisk"]
 E [shape=record,label="<0>E|<1>eth1, .1|<2>eth2, .1"]
 F [shape=record,label="<0>F|<1>eth1, .1|<2>eth2, .2"]
 CE [shape=plaintext,label="192.168.10.0/24"]
 EF [shape=plaintext,label="192.168.20.0/24"]
 FD [shape=plaintext,label="192.168.30.0/24"]
 C:1 -- CE -- E:1
 E:2 -- EF -- F:2
 F:1 -- FD -- D:1
 C:2 -- D:2 [color=red,fontcolor=red,label="Tronco SIP"]

} </graphviz>

Configuração de rede

C:

# Ativa Enlace
ip link set eth1 up
#
# Configura endereço IPv4
ip address add 192.168.10.2/24 broadcast 192.168.10.255 dev eth1 scope site
#
# Configura tabela de roteamento IPv4
ip route add 0.0.0.0/0 via 192.168.10.1
  • D:
# Ativa Enlace
ip link set eth1 up
#
# Configura endereço IPv4
ip address add 192.168.30.2/24 broadcast 192.168.30.255 dev eth1 scope site
#
# Configura tabela de roteamento IPv4
ip route add 0.0.0.0/0 via 192.168.30.1
  • E:
# Ativa Enlaces
ip link set eth1 up
ip link set eth2 up
#
# Configura endereços IPv4
ip address add 192.168.10.1/24 broadcast 192.168.10.255 dev eth1 scope site
ip address add 192.168.20.1/24 broadcast 192.168.20.255 dev eth2 scope site
#
# Configura tabela de roteamento IPv4
ip route add 192.168.30.0/24 via 192.168.20.2
#
# Ativa roteamento entre interfaces
sysctl -w net.ipv4.ip_forward=1
  • F:
# Ativa Enlaces
ip link set eth1 up
ip link set eth2 up
#
# Configura endereços IPv4
ip address add 192.168.30.1/24 broadcast 192.168.30.255 dev eth1 scope site
ip address add 192.168.20.2/24 broadcast 192.168.20.255 dev eth2 scope site
#
# Configura tabela de roteamento IPv4
ip route add 192.168.10.0/24 via 192.168.20.1
#
# Ativa roteamento entre interfaces
sysctl -w net.ipv4.ip_forward=1

Configuração do Asterisk

  • C, sip.conf:
[a]
type=friend
context=rmu20142
;
; SIP
host=dynamic
qualify=yes
insecure=port,invite
;
; SDP
disallow=all
allow=alaw
allow=ulaw
allow=gsm

[cd]
type=peer
context=rmu20412
;
; SIP
host=192.168.30.2
qualify=yes
insecure=port,invite
;
; SDP
disallow=all
allow=alaw

[dc]
type=user
context=rmu20412
;
; SIP
host=192.168.30.2
qualify=yes
insecure=port,invite
;
; SDP
disallow=all
allow=alaw
  • C, extensions.conf:
[rmu20142]
;
; Local: "100" ou "a"
exten => 100,1,Dial(SIP/a)
exten => 100,n,Hangup()
exten => a,1,Dial(SIP/${EXTEN})
exten => a,n,Hangup()
;
; Remoto via tronco SIP: "0" antecipando demais caracteres
exten => _0.,1,Dial(SIP/cd/${EXTEN:1})
exten => _0.,n,Hangup()
  • D, sip.conf:
[b]
type=friend
context=rmu20142
;
; SIP
host=dynamic
qualify=yes
insecure=port,invite
;
; SDP
disallow=all
allow=alaw
allow=ulaw
allow=gsm

[cd]
type=user
context=rmu20412
;
; SIP
host=192.168.10.2
qualify=yes
insecure=port,invite
;
; SDP
disallow=all
allow=alaw

[dc]
type=peer
context=rmu20412
;
; SIP
host=192.168.10.2
qualify=yes
insecure=port,invite
;
; SDP
disallow=all
allow=alaw
  • D, extensions.conf:
[rmu20142]
;
; Local: "100" ou "b"
exten => 100,1,Dial(SIP/b)
exten => 100,n,Hangup()
exten => b,1,Dial(SIP/${EXTEN})
exten => b,n,Hangup()
;
; Remoto via tronco SIP: "0" antecipando demais caracteres
exten => _0.,1,Dial(SIP/dc/${EXTEN:1})
exten => _0.,n,Hangup()

26/09: SIP + SDP + NAT

  • Continuação da atividade anterior.

30/09: Codecs

  • Codecs.
  • Metarquivos: JPEG, MPEG.
  • Camadas de sessão, apresentação e aplicação.

03/10: IPv6

07/10: IPv6 e SIP

Cenário usando Netkit: global[compact]=False global[mem]=32 global[vm]=4 global[clean]=False global[path]=/tmp/rmu20142/lab

C[type]=generic D[type]=generic E[type]=generic F[type]=generic

C[eth1]=CE E[eth1]=CE

E[eth2]=EF F[eth2]=EF

D[eth1]=DF F[eth1]=DF </syntaxhighlight>

Configuração de rede:

  • C:
ip link set eth1 up
ip -4 address add 192.168.10.2/24 broadcast 192.168.10.255 dev eth1 scope site
ip -4 route add 0.0.0.0/0 via 192.168.10.1
ip -6 address add 2804:1454:0:2010::2/64 dev eth1 scope global
ip -6 route add ::/0 via 2804:1454:0:2010::1
  • D:
ip link set eth1 up
ip -4 address add 192.168.30.2/24 broadcast 192.168.30.255 dev eth1 scope site
ip -4 route add 0.0.0.0/0 via 192.168.30.1
ip -6 address add 2804:1454:0:2030::2/64 dev eth1 scope global
ip -6 route add ::0/0 via 2804:1454:0:2030::1
  • E:
ip link set eth1 up
ip link set eth2 up
ip -4 address add 192.168.10.1/24 broadcast 192.168.10.255 dev eth1 scope site
ip -4 address add 192.168.20.1/24 broadcast 192.168.20.255 dev eth2 scope site
ip -4 route add 192.168.30.0/24 via 192.168.20.2
sysctl -w net.ipv4.conf.all.forwarding=1
ip -6 address add 2804:1454:0:2010::1/64 dev eth1 scope global
ip -6 address add 2804:1454:0:2037::1/64 dev eth2 scope global
ip -6 route add 2804:1454:0:2030::/64 via 2804:1454:0:2037::2
sysctl -w net.ipv6.conf.all.forwarding=1
  • F:
ip link set eth1 up
ip link set eth2 up
ip -4 address add 192.168.30.1/24 broadcast 192.168.30.255 dev eth1 scope site
ip -4 address add 192.168.20.2/24 broadcast 192.168.20.255 dev eth2 scope site
ip -4 route add 192.168.10.0/24 via 192.168.20.1
sysctl -w net.ipv4.conf.all.forwarding=1
ip -6 address add 2804:1454:0:2030::1/64 dev eth1 scope global
ip -6 address add 2804:1454:0:2037::2/64 dev eth2 scope global
ip -6 route add 2804:1454:0:2010::/64 via 2804:1454:0:2037::1
sysctl -w net.ipv6.conf.all.forwarding=1

10/10: IPv6 e SIP

Atividade em sala:

  1. Criar canais SIP sobre IPv6 e sobre IPv4.
  2. Configurar tanto canais IPv6 quanto IPv4 como válidos.
  3. Utilizar IPv4 nos terminais/ramais (entre A e C, entre B e D) e IPv6 entre centrais (entre C e D).
  4. Verificar como se comportaram os cabeçalhos em IPv4 e IPv6:
    1. From.
    2. To.
    3. Contact.
    4. Call-ID.
    5. Via.

?: RTP

Projeto 3: qualidade de serviço

Projeto 4: interoperabilidade

  • Segurança: SIP sobre TLS, SRTP.
  • WebRTC.[5]

Referências

  1. COLCHER, S. et. al. VoIP: Voz sobre IP. 1ª ed. Elsevier. 2005. ISBN 85-352-1787-8.
  2. ROSENBERG, J. et. al. SIP: Session Initiation Protocol. IETF. RFC 3261. 2002.
  3. HANDLEY, M. et. al. SDP: Session Description Protocol. IETF. RFC 4566. 2006.
  4. SCHULZRINNE, H. et. al. RTP: A Transport Protocol for Real-Time Applications. IETF. RFC 3550. 2003.
  5. Google. WebRTC. 2012.