Definição

Diameter

Diameter é um protocolo inicialmente desenvolvido pelo IEFT para fornecer um framework de Authentication, Authorization, and Accounting (AAA)para aplicações tais como acesso remoto à rede ou com mobilidade IP. O diameter tem várias vantagens sobre os protocolos AAA anteriores, como o RADIUS, em que ele oferece melhorias nas áreas de confiabilidade, segurança, escalabilidade e flexibilidade.

O protocolo base Diameter prevê as seguintes facilidades:

  • Gerenciamento de conexões e duração da sessão
  • A autenticação do usuário e as capacidades de negociação
  • Entrega confiável de pares de atributo valor (AVPs)
  • Apoio ao proxy, redirecionamento, e revezamento
  • Extensibilidade, através da adição de novos comandos e AVPs
  • Serviços de contabilidade básica (accounting)

Diameter no IMS

O 3GPP adotou o diameter como o protocolo de sinalização fundamental para AAA e gestão da mobilidade no IP Multimedia Subsystem (IMS). O IMS é o ambiente de prestação de serviços de multimídia em tempo real para a rede sem fio e de 3ª Geração, e é também uma arquitetura ideal para a convergência de serviços fixo, sem fio e redes corporativas das empresas em uma só. IMS oferece um acesso seguro, serviços mediados de valor acrescentado e recursos de rede dentro de uma rede gerenciada sobre IP, fornecendo as interfaces abertas para desenvolvedores de terceiros e aplicativos corporativos que precisam de acesso ao transporte de confiança.



O Home Subscriber Server (HSS) é o banco de dados mestre no IMS para manter as informações de assinante incluindo a identificação do usuário, controle de informações de autenticação e autorização, informações de localização e dados de perfil de usuário.

O Call Session Control Function (CSCF), realiza o gerenciamento de sessão SIP para um usuário (ou cliente SIP), solicitando o acesso aos serviços IMS. Sinalização SIP é usada para registrar servindo o CSCF Servindo na rede home do usuário. O S-CSCF usa a interface Diameter Cx tanto para solicitar informações de autorização do HSS, em resposta a um pedido de registro do SIP e para obter informações sobre os assinantes. A interface Diameter Dx é usada pelo CSCF para localizar o HSS servindo ao assinante usando o serviço de localização de recursos.


OpenDiameter

OpenDiameter é uma biblioteca C++ que potencializa a implementação do protocolo Diameter e suporta Linux, BSD e Microsoft Windows. É uma implementação open source. Recomenda-se utilização do OpenDiameter para um sistema de AAA (Authentication, Authorization and Accouting) baseado no Diameter.

Objetivos

O propósito da solução é potencializar a implementação AAA através do protocolo Diameter. Aparentemente parece uma solução estável e que atende a necessidade do Diameter no IMS. Alguns artigos tentam mostrar a integração entre o OpenDiameter(C++) e o Java.

Detalhamento Técnico

A API C++ Open Diameter é uma simples API baseada em sessões com cada tipo do diameter sendo representado por uma classe C++. As aplicações do usuário usam essas classes para implementar suas próprias funcionalidades AAA (Authentication, Authorization and Accounting). Todos os eventos, processamento de mensagens recebidas e funcionamento de transmissões de mensagem são fornecidos por estas classes. Normalmente essas classes são divididas como cliente ou servidor. Esses 2 tipos de classe se dividem ainda em classes de authentication/authorization e classes accounting.


A principal diferença entre classes cliente e servidor está no caminho no qual elas são instanciadas. Para as classes cliente é responsabilidade da aplicação cliente AAA criar e gerenciar as instâncias. Já as classes de aplicação baseada em sessões do servidor, a biblioteca é responsável em criar e excluir instâncias dessas classes. A exclusão de classes do servidor é feita por um coletor de lixo interno quando uma sessão do servidor está concluída.


É importante salientar que tanto as classes cliente e servidor fornecem apenas gerenciamento de sessão do diameter. O gerenciamento de conectividade está contido dentro de outra classe chamada classe de aplicação. Essa classe gerencia carga de configuração, conectividade e mensagem de roteamento. Classes do cliente ligam na classe de aplicação via construtor. Classes servidor são limitadas a classe de aplicação através da classe de fábrica a qual é registrada na classe de aplicação. Ao ligar para a classe de aplicação, uma sessão de classes é capaz de enviar e receber mensagens a partir da plataforma de roteamento fornecida pela classe de aplicação.


Informações a mais sobre detalhamento técnico da última versão do OpenDiameter podem ser obtidas em http://diameter.sourceforge.net/diameter-api/index.html

Pontos-Chave

Positivos:

  • Open Source
  • Forte Orientação a Objetos
  • Suporte a diferentes OS: Linux(testado em distribuições redhat e debian), FreeBSD(testado versão 4.8 e 5.0), Win 2000/XP

Negativos:

  • Aparentemente não existe documentação de como usar. Se existe, muito dificil de encontrar.
  • Página da comunidade não existe
  • Mailing Lists desatualizadas
  • Último release em 2005

Integrações

Alguns estudos iniciais em Linguagem de Programação Java.

Comparativo

  • OpenBloX: simples instalação/configuração, configuração remota, administração e suporte, permite introdução de serviços e interfaces adicionais.

Licenças e Restrições

  • Open Source - GNU General Public License (GPL)
  • Página da comunidade não existe
  • Mailing Lists desatualizadas

Movimentação de mailing lists segundo o Mark Mail:

Conclusão

Várias referências na rede que abordam IMS apontam o OpenDiameter como uma solução para a implementação do protocolo Diameter, mas para surpresa, o OpenDiameter não possui uma documentação fácil para compreensão de como usar, além do que nos poucos fóruns que abordam a tecnologia há fortes críticas como "This Opendiameter source is really not stable" ou "full of bugs". A comunidade não existe mais e os mailing lists estão desatualizados. Por outro lado, parece que a implementação do último release foi bem feita e está bem orientada a objetos. Conclue-se que essa solução promete atender ao que necessitamos em termos de comunicação Diameter no IMS, mas se for adotada, deverá haver uma contribuição intensa desenvolvendo e atualizando a biblioteca.

Pesquisadores

  • Natal Vieira de Souza Neto