Linha 89: Linha 89:
<br>
<br>


=== GTP ===
=== GTP - GPRS Tunnelling Protocol ===
<br>
<br>


Linha 95: Linha 95:


<br>
<br>
=== GGSN ===
=== GGSN - Gateway GPRS Support Node ===
<br>
<br>



Edição das 12h49min de 23 de junho de 2016

Fase I - Estudo


Título da Idéia

Implementar um GGSN (Gateway GPRS Support Node) utilizando tecnologias Open Source, para expansão dos serviços de dados, utilizando a infraestrutura da rede móvel existente.


Objetivos

  • Expansão dos serviços de dados sobre a rede celular em volume e novas facilidades.
  • Redução dos custos de licenciamento da plataforma GGSN.

Conceito


Gateway GPRS support node (GGSN)


O gateway GPRS support node (GGSN) é o principal componente de uma rede GPRS. O GGSN provê a interconexão com outras redes como a Internet ou redes privadas, enquanto SGSN busca a localização dos dispositivos móveis e faz o roteamento dos pacotes de tráfegos para eles. A capacidade do GPRS pode ser adicionada aos aparelhos celulares e também pode ser disponibilizada para dispositivos de dados como modem de computadores.

Do ponto de vista de uma rede externa, a GGSN é um roteador de "sub-redes", por causa que a GGSN 'esconde' a infra estrutura do GPRS da redes externas. Quando a GGSN recebe dados endereçados de um usuário especifico, ele checa se o usuário esta ativo. Se sim, o GGNS encaminha os dados para a SGSN entregando para o usuário móvel (celular). mas se o usuário móvel esteja inativo, os dados serão descartadas.


Algumas funções comuns SGSN


Um SGSN (Serving GPRS Support Node) entrega pacotes de dados de e para as estações móveis dentro de sua área de serviço. Sua tarefa inclui roteamento e transferência de pacotes, funções de conexão de desconexão de estações móveis e suas autenticações, e gerenciamento lógico do link. O registrador de localização do SGSN armazena informações de localização (célula atual e VLR atual) e os profiles do usuário (IMSI, endereço utilizado na rede de pacotes de dados) de todos os usuários registrados neste SGSN.


De outra forma, o endereçamento PDP de pacotes de dados que estão chegando (IP de destino) é convertido no endereço GSM do usuário de destino. Os pacotes reendereçados são enviados do SGSN responsável. Neste propósito, o GGSN armazena endereços e profiles de usuários registrados no atual SGSN, em seu registrador de localização.


Em geral, existem várias relações entre os SGSNs e os GGSNs : um GGSN é a interface de rede externa para vários SGSNs; um SGSN pode rotear seus pacotes para diferentes GGSNs.


Arquitetura Referencia



Características 

Cenários típicos para GPRS são: acesso wireless à Internet, Internet e-mail, e-mail corporativo, WAP através do GPRS, serviços de propaganda, localização e telemetria de campo.




Estudo Dirigido




Fase II - Ensino

Conteúdo

GPRS Tunneling Protocol (GTP) é uma coleção de protocolos para o gereneciamento de mobilidade IP no core das redes de pacotes 3GPP (GPRS,UMTS,EPC) compreedendo o GTP-C, GTP-U e variantes GTP' . O esboço da pilha é mostrado abaixo :





GTP-C é usado para a sinalização entre o GGSN (Gateway Gprs Support Nodes) e o SGSN (Serving Gprs Support Nodes). Ele permite que o SGSN ative uma sessão em favor do usuário (PDP Context Activation), desative a sessão ou configure os parâmetros de QoS, e também ajuste da sessão de um cliente vindo de outro SGSN.

GTU-U é usado para o transporte de dados do usuário, entre a RAN (Radio Access Network) e o core da rede. Os pacotes podem ser transportados em IPV4, IPV6 ou PPP. 

GTP' (GTP Prime) usa a mesma estrtutura de mensagens do GTP-C e GTP-U, porém, tem uma função independente. Ele pode ser usado para transportar dados de bilhetagem da função CDF (Charging Data Function) da rede GSM ou UMTS para elemento que faz a função de CGF (Charging Gateway Function) .

Apresentação


GTP - GPRS Tunnelling Protocol


  • Faça o upload dos slides aqui


GGSN - Gateway GPRS Support Node


GTP


  • Faça o upload dos slides aqui


Fase III - Exemplo de Caso de Negócio


Benefício para a Algar Telecom

  • Economia no pagamento de licenças de uso.
  • Com o acesso ao código fonte é possível a implementação de novos serviços.
  • Possibilidade de implementação de  redundância geográfica para maior resiliência dos serviços.

Benefícios para o cliente

  • Melhora na disponibilidade do acesso à Internet via redundância geográfica.
  • Novos serviços de valor adicionado disponíveis.

Direcionadores chave para esta iniciativa

  • Obter o domínio das tecnologias utilizadas no plano de controle das redes UMTS, IMS e LTE, reduzindo custos de licenciamento e implementando novos serviços de valor adicionado.


Possíveis modelos de negócios

  • Com os dados fornecidos pelo cabeçalho do GTP pode-se criar ou melhorar alguns serviços, tais como:
  • Localização e monitoramento de celulares através da LAC (Location Area Code);
  • Criar o serviço que informe os "passos" de um celular: "por onde andei"

Business Case


Fase IV - Protótipo orientado ao Negócio


Escopo

A partir de um estação movel (Pré-Pago ou Pós-Pago), se atachar em uma APN (Access Point Name), sendo assim conectando ao GGSN propriamento da Algar Telecom.



Limitações


http://www.3gpp.org/DynaReport/29060.htm

Foi necessario adicionar as seguintes mensagens, pois estava dando erro de mensagem invalida, as mensagens abaixo são para comunicação entre o GGSN e o SGSN, conforme a especificação acima fala:


vim gtp/gtpie.h


<source lang="c">

  1. define GTPIE_RAT_TYPE 151 /* Radio Access Technology Type */
  2. define GTPIE_USER_LOC 152 /* User Location Information */
  3. define GTPIE_MS_TZ 153 /* MS Time Zone */
  4. define GTPIE_IMEI_SV 154 /* IMEI Software Version */

</source>



E adicionar no swtich as seguinte codigos "gtp/gtpie.c":

<source lang="c"> switch (*p) { case GTPIE_RAT_TYPE: case GTPIE_USER_LOC: case GTPIE_MS_TZ: case GTPIE_IMEI_SV } </source>




PoC


Detalhamento Técnico

Codigo Fontes

Código SVN: http://versionamento/repos/PeD/opeggsn/


Instalação do OpenGGSN no LabCA

Ambiente


Servidor : CentOS release 6.5

IP eth3 : 201.48.87.17/28  Gateway : 201.48.87.22/28

IP eth2 : 1.1.1.2/29  Gateway : 1.1.1.1/29


Faixa de Endereço Rede para os Telefones:


Rede dos usuários : 192.168.10.0/24


Encaminhamento necessario para o serviço possar encaminhar pacotes para outra rede e vice-versa.


<source lang="Bash">

echo 1 > /proc/sys/net/ipv4/ip_forward

</source>


NAT para navegação na Internet


<source lang="Bash"> iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth3 -j MASQUERADE </source>


Download do OpenGGSN via GIT ou via HTTP (http://sf.net/projects/ggsn):

<source lang="Bash"> mkdir /opt/openggsn cd /opt/openggsn git clone git://git.osmocom.org/openggsn </source>


Compilando o OpenGGSN:

<source lang="Bash"> cd /opt/openggsn autoreconf ; automake --add-missing ; autoreconf ; autoconf ; automake ; ./configure --prefix=/usr/local ; make -j 2 ; make install </source>



Inicializando o OpenGGSN


<source lang="Bash"> echo "Adicionando rota para a rede do SGSN da Huawei, via Border Gateway" route add -net 201.48.226.0/24 gw 1.1.1.1 echo "Startand o OpenGGSN" ./ggsn -d --fg -c ../examples/ggsn.conf -l 1.1.1.2 --statedir ./ echo "Adicionando rota para a rede dos clientes via interface tun0" route add -net 192.168.10.0/24 dev tun0 </source>

Arquivo .pcap com exemplo das mensagens Create_pdp_context e Delete_pdp_context :


Configuração GGSN:

È no arquivo ggsn.conf que fica toda as configurações e é bem documentado:

Principais:



<source lang="vim">

  1. TAG: pidfile
  2. File to store information about the process id of the program.
  3. The program must have write access to this file/directory.

pidfile /var/run/ggsn.pid

  1. TAG: statedir
  2. Directory to use for nonvolatile storage.
  3. The program must have write access to this directory.

statedir /var/lib/ggsn/

  1. TAG: listen
  2. Specifies the local IP address to listen to

listen 1.1.1.2

  1. TAG: dynip
  2. Dynamic IP address pool.
  3. Used for allocation of dynamic IP address when address is not given
  4. by HLR.
  5. If this option is not given then the net option is used as a substitute.

dynip 192.168.10.0/24

  1. TAG: pcodns1
  2. Protocol configuration option domain name system server 1.Estudos

pcodns1 200.225.197.37

  1. TAG: pcodns2
  2. Protocol configuration option domain name system server 2.

pcodns2 200.225.197.34


  1. TAG: apn
  2. Use of this tag is EXPERIMENTAL
  3. Access point name to connect to when run in client mode.

apn m2m.ctbc.br

</source>



Configurando Telefone


Quando um telefone celular GPRS configura um PDP context e um ponto de acesso está selecionado. Neste ponto, um Access Point Name (APN) é determinado.


Configurar Telefone:

APN : m2m.ctbc.br

Usuario: ctbc

Senha: ctbc


Arquivo:Pdp create and delete.zip


Teste de de Roaming

IP's válidos alocado para o teste de roaming :

201.48.226.64 rede/29
201.48.226.65 BG - Border Gateway
201.48.226.66 GGSN AID - Server 1 - apn m2m.ctbc.br
201.48.226.67 GGSN AID - Server 2 - apn m2m.ctbc.br
201.48.226.68 GGSN AID - Server 3 - apn m4m.ctbc.br
201.48.226.69 - vago
201.48.226.70 - vago
201.48.226.71 broadcast


Cronograma Macro 


 Histórico 


  • 08/07/16 - Apresentação GTP
  • 08/07/16 - Apresentação GGSN
  • 08/07/16 - Demonstração do protótipo OpenGGSN


  • 01/11/13 - Atualização da documentação Conceitual (Caio Cesar Ferreira)
  • 12/12/13 - Atualização da documentação Conceitual (Helvio)
  • 23/12/13 - Atualização da documentação Conceitual (Caio Cesar Ferreira/Helvio)
  • 26/12/12 - Atualização da documentação do modelo de Negócio (Ricardo)
  • 04/06/14 - Alteração da configuração dos IPs dos três servidores, para teste de roaming.


Referências


Fontes :

Novos PD&Is

Pesquisadores 


  • Bruna Lorena Gondin
  • Caio César Ferreira
  • Guilherme Brito Garcia
  • Hélvio Pereira de Freitas
  • Lincoln Borges Ferreira
  • Ricardo Domingues de Faria
  • Servolo Dantas
  • Tiago Barros De Souza