Departamento de Ciências e Tecnologias da Informação
Inteligência em Gestão de Redes e Serviços (2010/11)
Grupo
Laboratório 2.1 (versão 4.0): Sinalização sobre IP – SCTP
1
Introdução e objectivos
O objectivo deste laboratório é o estudo de alguns aspectos do transporte de informação de sinalização sobre redes de pacotes baseadas no
protocolo IP. É prestada particular atenção às recomendações oriundas do grupo de trabalho IETF SIGTRAN [1, 4], nomeadamente: o
protocolo SCTP [2,5].
É utilizada a implementação e exemplos do código desenvolvido pelo projecto OpenSS7 [3] que se encontra implementado na máquina
virtualcontida na directoria IGRS_L21v4 e a qual deverá ser copiada para a pasta MyDocuments.
Configure correctamente essa máquina virtual: coloque 1024 como memória virtual e o endereço físico para a interface ethernet como
00:50:…:54:XY em que Y é o número do grupo/bancada e X o turno (1 ou 2).
O acesso à máquina virtual é feito com (user: root; password: password) e o software a ser utilizado na directoria /home/IGRS/sw.
A documentação para este laboratório encontra-se na directoria /home/IGRS/doc.
(Para visualizar documentos .pdf usar o comando acroread.)
1
Estudo do protocolo IETF Stream Control Transport Protocol – SCTP
2.1 Estudo do formato dos pacotes SCTP
Consultando a Secção 3 do RFC 4960 [2] referente ao formato dos pacotes SCTP indique:
• de que forma um pacote SCTP pode ser usado para transportar várias mensagens,
• represente os campos que compõem o cabeçalho comum (partilhado) por todos os Chunks e o número de bytes ocupado por esse
cabeçalho.
•
Indique para as diferentes mensagens (chunks) que podem ser transportadas num pacote SCTP a parte do seu cabeçalho que é indepente
do tipo de chunk..
•
Indique quais os valores possíveis para os campos ChunkType do seu cabeçalho comum bem como a sua função (apenas uma linha de
descrição para cada valor desses campos). Para o caso de um chunck de tipo dados indique o tamanho ocupado por esse cabeçalho
específico.
2.1 Estudo do protocolo SCTP
Para o estudo do protocolo SCTP será usado um conjunto de programas que se encontram na directoria /home/IGRS/sw
Arraque uma consola de comandos e mude para essa directoria através do comando cd /home/IGRS/sw
Por forma a poder executar as diferentes aplicações o serviço streams tem de estar a correr.
Pode testar o seu estado usando o comando ‘streams status’. Caso não seja loaded, inicie-o com o comando ‘streams start’
Para todas as questões seguintes tome em atenção o resultados de saída do programa, a impressão na consola, e capture, usando o
programa ‘ethreal’ o tráfego trocado na interface loopback (lo) e utilize o filtro para os pacotes do protocolo SCTP (sctp).
O resultado da execução do programa apresentado na consola representa sempre duas linhas verticais (correspondentes aos dois pares SCTP)
bem como as primitivas e PDU que são trocadas entre essas entidades.
Use apenas os resultados que apresentam com resultado do Test Case: SUCESSFULL.
Para todas as questões em que tiver de representar trocas de PDUs indique o número do porto que identifica cada um dos pares
SCTP.
2.1.1
Estudo do estabelecimento de uma associação no protocolo SCTP.
Inicie uma captura de pacotes com o programa Ethereal (interface: lo, filtro: sctp). Execute o programa ./sctp. Pare a captura.
Identifique quais os pacotes trocados para inicialização da ligação (i.e., estabelecimento da associação).
i.
Represente esses pacotes (indicando apenas o seu tipo) num diagrama em que aparecem as duas entidades SCTP.
i.
Nestes pacotes indique quais os campos que são utilizados para efeitos de autenticação (identificação) dos extremos da
associação e relacionados com a sua manutenção.
2.1.1
Estudo da terminação de uma associação no protocolo SCTP.
Usando a captura anterior.
Identifique quais os pacotes trocados para fecho da ligação (i.e., terminação da associação).
2.1.1
Estudo da troca de dados no protocolo SCTP.
Usando a captura anterior. (Justifique as suas respostas recorrendo à Secção 3. do RFC 4960 [5].)
Identifique qual o tipo de conteúdo (PPID – Payload Protocol Identifier) transportado nas mensagens SCTP de classe DATA..
(Verifique que isso impede o Ethereal de intepretar o conteúdo dessas mensagens.)
Indique qual o tipo de mensagens utilizadas para a confirmação de mensagens SCTP e qual o campo utilizado para essa confirmação.
Verifique que nem todas as mensagens são enviadas no mesmo fluxo (stream). Indique como se chama este processo e qual o campo que
permite distinguir o fluxo e quais os fluxos utilizados neste exemplo.
Justifique que são utilizados campos diferentes para garantir que todas as mensagens SCTP estão presentes (i.e., confirmação) e para a
ordenação de mensagens pertencentes a cada fluxo. Identifique esses campos.
Qual a vantagem deste esquema face a utilizar apenas um número de sequência (por exemplo apenas o TSN)?
Verifique os diferentes tipos de mensagens de dados que são utilizadas, indicando o campo que permite identificar essa característica, no que
respeita a:
1. Mensagens num único ou múltiplos pacotes SCTP (como se chama este processo?);
Indique quais os quatro tipos de pacotes que podem ser transportados quanto a esta funcionalidade.
1. Pacotes com necessidade de ordenação ou dispensando-a, indique quem define o valor deste bit – emissor ou receptor.
(Em que tipo de situação os pacotes sem necessidade de ordenação podem ser úteis?)
Efectue uma nova captura executando agora o programa sctp_long.
1.
1.
1.
Verifique que novos pacotes são gerados resultado da ligação estar activa durante mais tempo.
Qual a funcionalidade disponibilizada por este par de pacotes e qual a justificação para a sua existência no contexto do transporte de
informação de sinalização.
Como é que a mesma funcionalidade é disponibilizada no sistema de sinalização nativo SS7 ?
2.1.1
Estudo da terminação de uma associação no protocolo SCTP
Efectue uma nova captura executando agora o programa sctp_abort.
Verifique as diferenças entre este caso e o caso da alínea no que respeita à terminação da ligação e quais as consequências em termos dos
pacotes trocados.
Departamento de Ciências e Tecnologias da Informação
Inteligência em Gestão de Redes e Serviços (20010/11)
Laboratório 2.2 (versão 1.0): Arquitectura IMS
3. Estudo da arquitectura IMS
O objectivo deste laboratório é o estudo de alguns aspectos da arquitectura IMS, nomeadamente a sequência de mensagens trocadas entre os
elementos centrais da arquitectura.
É utilizada a implementação e exemplos do código desenvolvido pelo projecto OpenIMSCore [6] que se encontra implementado na máquina
virtual IGRS_L22v1 e a qual deverá ser copiada para a pasta MyDocuments.
Configure correctamente essa máquina virtual: coloque 1024 como memória virtual e o endereço físico para a interface ethernet como
00:50:…:54:XY em que Y é o número do grupo/bancada e X o turno (1 ou 2).
O acesso à máquina virtual é feito com (user: root; password: password).
Após arrancar a máquina virtual garanta que a placa de rede se encontra desligada!
Na máquina virtual já está efectuada a configuração de dois utilizadores no realm open-ims.test: os utilizadores Alice e Bob com os
identificadores públicos [email protected] e [email protected].
3.1.
Identificação dos componentes da arquitectura IMS e respectivos parâmetros
Utilizando em conjunto os comandos ’ps axu | grep ser’ e ‘netstat -a --numeric-port –p | more’ identifique os
portos em que estão a ser utilizados para receber mensagens SIP [7] por cada um dos elementos do núcleo da arquitectura IMS.
•
Utilizando o comando ’ps axu | grep /ser | more’ identifique o número do processo onde estão a correr os diferentes
elementos nucleares da arquitectura IMS (cada componente é identificado pelo ficheiro de configuração do processo ser):
(Os componentes da arquitectura IMS são implementados no OpenIMSCore através de SIPservers SER.
Considere apenas os primeiros processos referentes a cada elemento da arquitectura.)
ID Processo (PID) P-CSCF:
•
Porto S-CSCF (Mw):
Porto UE Bob (Gm):
A base de dados do perfil dos utilizadores está implementada pela classe Java HSSContainer.
Utilizando os comandos ’ps axu | grep HSSSContainer’ e ‘netstat -a --numeric-port –p | more’ identifique o identificador do
processo e o número do porto usado pelo HSS para a interface Cx.
ID processo (PID) HSS:
•
Porto I-CSCF (Mw):
Inicialize um terminal, user equipment (UE), para cada um dos utilizadores registados (Alice e Bob) utilizando os commandos
’start.Alice.GUI.sh’. e ’start.Bob.GUI.sh’.
Consultando o output na consola identifique o número do porto que está a ser utilizado por cada UE.
Porto UE Alice (Gm):
•
ID Processo (PID) S-CSCF:
Utilizando o comando ’netstat -a --numeric-port –p | more’ identifique o número do porto que está a ser utilizado por cada elemento
do núcleo IMS para receber mensagens SIP através das interfaces Gm e Mw.
(Confirme estes valores visulizando os ficheiros pcscf.cfg, icscf.cfg e scscf.cfg usando os commandos:
’more /opt/OpenIMSCore/etc/pcscf.cfg’ ’more /opt/OpenIMSCore/etc/icscf.cfg’ ’more /opt/OpenIMSCore/etc/scscf.cfg’.)
Porto P-CSCF (Gm, Mw):
•
ID Processo (PID) I-CSCF:
Porto HSS (Cx):
Consultando os ficheiros de configuração /opt/OpenIMSCore/etc/icscf.xml e /opt/OpenIMSCore/etc/scscf.xml identifique qual
o porto usado por cada uma das entidades I-CSCF e S-CSCF para implementar a interface Cx com o HSS. (O porto é indicado no ficheiro
de configuração como <Acceptor port>)
Porto I-CSCF (Cx), x:
Porto S-CSCF (Cx), y:
3.2.
Estudo do processo de registo na arquitectura IMS
Inicie uma captura de pacotes com o programa Wireshark (interface: lo, filtro: sip || tcp.port == x || tcp.port == y).
Os valores x, y correspondem aos portos identificados no ponto 3.1 para a interface Cx nas entidades I-CSCF e S-CSCF.
No terminal (UE) para o utilizador Alice accione o botão para iniciar o registo do utilizador Alice.
Tendo em conta os valores obtidos no ponto 3.1 represente no diagrama seguinte as interfaces e os portos identificados para cada elemento da
arquitectura.
Tendo em conta as capturas efectuadas registe no diagrama seguinte, enumerando-as partindo do número 1 e indicando o respectivo método,
todas as mensagens SIP trocadas entre os elementos da arquitectura, represente como um única interacção as trocas de mensagens através da
interface Cx entre o HSS e as entidades I-CSCF e S-CSCF (Ignore as mensagens SIP a seguir às mensagens 200 Subscription).
•
Justifique a necessidade de serem enviadas 2 mensagens SIP com o método REGISTER por parte do UE. O que distingue a 1a da 2a ?
•
Justifique a função das trocas de mensagens efectuadas através da interface Cx.
3.3.
Estudo do processo de inicio de sessão na arquitectura IMS
Inicie uma nova captura de pacotes com o programa Wireshark (interface: lo, filtro: sip || tcp.port == x || tcp.port == y).
No terminal (UE) para o utilizador Bob accione o botão para iniciar o registo do utilizador Bob.
No terminal (UE) para o utilizador Alice accione o botão para iniciar uma sessão (chamada) com o utilizador Bob (o endereço de Bob é
[email protected]). Não atenda a chamada!
Tendo em conta os valores obtidos no ponto 3.1 represente no diagrama seguinte as interfaces e os portos identificados para cada elemento da
arquitectura.
Tendo em conta as capturas efectuadas registe no diagrama seguinte, enumerando-as partindo do número 1 e indicando o respectivo método,
todas as mensagens SIP trocadas entre os elementos da arquitectura, represente como um única interacção as trocas de mensagens através da
interface Cx entre o HSS e as entidades I-CSCF e S-CSCF (Considere as mensagens SIP a seguir à mensage 200 Subscription).
•
Justifique a necessidade da mensagem SIP INVITE atravessar duaz vezes a entidade S-CSCF.
•
Inicie uma nova captura e atenda a chamada. Registe as mensagens SIP trocadas.
3.4.
Estudo do processo de inicio de sessão na arquitectura IMS
No terminal (UE) para o utilizador Bob accione o botão para de-registar o utilizador Bob.
Inicie uma nova captura de pacotes com o programa Wireshark (interface: lo, filtro: sip || tcp.port == x || tcp.port == y).
No terminal (UE) para o utilizador Alice accione o botão para iniciar uma sessão (chamada) com o utilizador Bob (o endereço de Bob é
[email protected] ). Não atenda a chamada!
Tendo em conta os valores obtidos no ponto 3.1 represente no diagrama seguinte as interfaces e os portos identificados para cada elemento da
arquitectura.
Tendo em conta as capturas efectuadas registe no diagrama seguinte, enumerando-as partindo do número 1 e indicando o respectivo método,
todas as mensagens SIP trocadas entre os elementos da arquitectura, represente como um única interacção as trocas de mensagens através da
interface Cx entre o HSS e as entidades I-CSCF e S-CSCF (Considere as mensagens SIP a seguir à mensage 200 Subscription).
•
Compare esta situação com a anterior no que respeita às interacções entre o I-CSCF S-CSCF e o HSS.
Qual a razão para essas diferenças ?
Referências
[1]
[2]
[3]
[4]
[5]
[6]
[7]
Sigtran Status Pages. http://tools.ietf.org/wg/sigtran/
SCTP. http://www.sctp.de/
OpenSS7. http://www.openss7.org/
Architectural Framework for Signaling Transport (RFC 2719)
Stream Control Transmission Protocol (RFC 4960)
Fraunhofen Fokus OpenIMSCore Pages. http://www.openimscore.org/
Session Initiation Protocol (RFC 3261)
Download

Departamento de Ciências e Tecnologias da Informação