Redes Multimídia (diário 2014-2)
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
?: RTP
- RTP e RTCP.[4]
Projeto 3: qualidade de serviço
Projeto 4: interoperabilidade
- Segurança: SIP sobre TLS, SRTP.
- WebRTC.[5]
Referências
- ↑ COLCHER, S. et. al. VoIP: Voz sobre IP. 1ª ed. Elsevier. 2005. ISBN 85-352-1787-8.
- ↑ ROSENBERG, J. et. al. SIP: Session Initiation Protocol. IETF. RFC 3261. 2002.
- ↑ HANDLEY, M. et. al. SDP: Session Description Protocol. IETF. RFC 4566. 2006.
- ↑ SCHULZRINNE, H. et. al. RTP: A Transport Protocol for Real-Time Applications. IETF. RFC 3550. 2003.
- ↑ Google. WebRTC. 2012.