Lincolnbf (discussão | contribs)
Etiqueta: visualeditor
Lincolnbf (discussão | contribs)
Sem resumo de edição
Etiqueta: visualeditor
 
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
= Fase I - Estudo  =
= Fase I - Estudo  =
<br>
== Título da Idéia  ==
== Título da Idéia  ==


Linha 50: Linha 47:
== Características&nbsp;  ==
== Características&nbsp;  ==


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.<br>
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.  


<br>  
== Estudo Dirigido  ==
 
== Instalação do OpenGGSN e o SGSNEMU no Ubuntu 14.04 32bits ==
# Instalar pacotes necessários para poder compilar o OpenGGSN e o SGSNEMU:<syntaxhighlight>
sudo apt-get install autoconf
sudo apt-get install git
sudo apt-get install libdbi0-dev libdbd-sqlite3 build-essential libtool autoconf automake git-core pkg-config libortp-dev
</syntaxhighlight>
# Necessário criar duas interfaces de rede (uma para o GGSN e outra para o SGSNEMU), para se comunicarem.  Para listar todas as interfaces de rede. Os testes foram realizados usando a interface eth0, e wlan, ambos funcionaram. Mas o tutorial será na eth0.  ''*Observação: Se o computador estiver conectado na internet pela eht0, quando mudar as interfaces a conexão cairá, esse passo pode ser o último se for o caso. Se estiver usando a wlan para o acesso à internet, então não há problema.''<syntaxhighlight lang="batch">
sudo ifconfig
</syntaxhighlight>Depois de confirmado os nomes das interfaces, vamos criar duas interfaces.<syntaxhighlight lang="batch">
sudo ifconfig eth0 10.0.0.50 netmask 255.255.255.0
sudo ifconfig eth0:0 10.0.0.40 netmask 255.255.255.0
</syntaxhighlight>Ao executar o comando sudo ifconfig agora, terá que ter a interface eth0 e eth0:0
# Baixar e instalar a libosmocore<syntaxhighlight>
sudo -s
cd
git clone git://git.osmocom.org/libosmocore.git
cd libosmocore
autoreconf -fi
apt-get install libtalloc-dev
apt-get install libpcsclite-dev
autoreconf -fi
./configure
make
make install
ldconfig
</syntaxhighlight>
# Baixar e instalar o openggsn<syntaxhighlight>
sudo -s
cd
git clone git://git.osmocom.org/openggsn.git
sudo -s
cd openggsn
autoreconf -fi
./configure
make
make install
ldconfig
</syntaxhighlight>
# Instalar o osmo-pcu<syntaxhighlight lang="batch">
cd
git clone git://git.osmocom.org/osmo-pcu 
sudo -s
cd osmo-pcu
autoreconf -fi
./configure
make
make install
ldconfig
</syntaxhighlight>
# Copiar o ggsn.conf para /etc/ggsn.conf<syntaxhighlight>
sudo -s
cd
cd openggsn/examples
cp ggsn.conf /etc/ggsn.conf
</syntaxhighlight>
# Instalar o wireshark para analisar dados transmitidos<syntaxhighlight lang="batch">
sudo apt-get install wireshark
</syntaxhighlight>Para executar, e analisar todas as redes do computador, é necessário ter o acesso root, então para executar o wireshark:<syntaxhighlight>
sudo wireshark
</syntaxhighlight>
# O último passo é fazer a conexão e verificar a comunicação entre o OpenGGSN e o SGSNEMU. Para isso abra dois terminais. No primeiro copie<syntaxhighlight lang="batch">
sudo ggsn -c openggsn/examples/ggsn.conf --fg -l 10.0.0.40 --net 192.168.0.0/24 --dynip 192.168.0.0/24
</syntaxhighlight>Logo em seguida, no segundo terminal, copie<syntaxhighlight lang="batch">
sudo sgsnemu --listen 10.0.0.50 --remote 10.0.0.40 --dns 10.20.38.51 --timelimit 10 --contexts 0
</syntaxhighlight>A mensagem esperada pelo ggsn é:<syntaxhighlight lang="batch">
<000c> gtp.c:701 GTP: gtp_newgsn() started
<000c> gtp.c:661 State information file (/var/lib/ggsn/gsn_restart) not found. Creating new file.
<000c> gtp.c:682 fopen(path=/var/lib/ggsn/gsn_restart, mode=w) failed: Error = No such file or directory
</syntaxhighlight>  A mensagem esperada pelo sgsnemu é:<syntaxhighlight>
Using DNS server:      10.20.38.51 (10.20.38.51)
Local IP address is:  10.0.0.50 (10.0.0.50)
Remote IP address is:  10.0.0.40 (10.0.0.40)
IMSI is:              240010123456789 (0xf987654321010042)
Using NSAPI:          0
Using GTP version:    1
Using APN:            internet
Using selection mode:  1
Using MSISDN:          46702123456
 
Initialising GTP library
<000c> gtp.c:701 GTP: gtp_newgsn() started
Done initialising GTP library
 
Sending off echo request
Waiting for response from ggsn........
 
Received echo response
</syntaxhighlight>
 
=== Resultados da emulação pelo Wireshark ===
Código de filtragem pelo Wireshark.<syntaxhighlight>
ip.dst == 10.0.0.40 or ip.dst == 10.0.0.50
</syntaxhighlight>No ''echo request'' o source será 10.0.0.50 e o destination será 10.0.0.40
 
No ''echo response'' o source será 10.0.0.40 e o destination será 10.0.0.50
 
'''Echo response:'''
 
O tamanho do frame é de 56 bytes.
 
Pelo protocolo GTP (release 99 version 1) é passado um frame de mensagem de ''echo response'' (0x02).
 
Mensagem de um ''echo request (GTP):''<syntaxhighlight>
32 02 00 06 00 00 00 00 44 00 00 00 0e 01
</syntaxhighlight>O primeiro campo (0x32) equivale a:<syntaxhighlight>
00110010
001 = Version GTP: 99v1
1    = Protocol Type: GTP
0    = Reserved : 0
0    = Is Next Extension Header Present? : No.
1    = Is Sequence Number Present? : Yes.
0    = Is N-PDU number present? No.
</syntaxhighlight>O campo (0x02) equivale ao tipo da mensagem, no caso será Echo response.
 
Os campos (0x00 e 0x06) equivale o tamanho da mensagem, no caso 6.
 
Os campos (0x00 0x00 0x00 0x00) equivalem ao TEID, que no caso será 0.
 
Os campos (0x44 0x00) é o número de sequência, no caso 0x4400
 
Os campos (0x0e 0x01) é o campo Recovery, no caso 1.
 
'''Echo request:'''
 
O tamanho do frame é de 54 bytes.


<br>
Pelo protocolo GTP (release 99 version 1) é passado um frame de mensagem de ''echo request'' (0x01).


<br>  
Mensagem de um ''echo request (GTP):''<syntaxhighlight>
32 01 00 04 00 00 00 00 44 00 00 00
</syntaxhighlight>O primeiro campo (0x32) equivale a:<syntaxhighlight>
00110010
001 = Version GTP: 99v1
1    = Protocol Type: GTP
0    = Reserved : 0
0    = Is Next Extension Header Present? : No.
1    = Is Sequence Number Present? : Yes.
0    = Is N-PDU number present? No.
</syntaxhighlight>O campo (0x01) equivale ao tipo da mensagem, no caso será Echo request.


== Estudo Dirigido  ==
Os campos (0x00 e 0x04) equivale o tamanho da mensagem, no caso 4.


<br>
Os campos (0x00 0x00 0x00 0x00) equivalem ao TEID, que no caso será 0.


<br> <br>
Os campos (0x44 0x00) é o número de sequência, no caso 0x4400


= Fase II - Ensino<br>  =
= Fase II - Ensino<br>  =
Linha 68: Linha 201:
== Conteúdo  ==
== 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&nbsp;:  
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), usado para transportar o GPRS, compreedendo o GTP-C, GTP-U e variantes GTP'. O esboço da pilha é mostrado abaixo&nbsp;:<br>  
 
<br>  


[[Image:Gtpv2-stack.gif]]  
[[Image:Gtpv2-stack.gif]]  


<br>  
<br>


<br>
==== Tipos GTP: ====


<br>
O GTP é dividido em protocolos separados como o GTP-C, GTP-U e GTP.


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.  
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.&nbsp;<br> <br>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'') .<br>
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.&nbsp;<br> <br>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  ==
== Apresentação  ==
<br>
=== GTP - GPRS Tunnelling Protocol ===
=== GTP - GPRS Tunnelling Protocol ===
https://docs.google.com/presentation/d/1r46ImyDaRllYu0LC9sl3v8PobY2rWyo4GAQo8og1DWc/edit?usp=sharing
https://docs.google.com/presentation/d/1r46ImyDaRllYu0LC9sl3v8PobY2rWyo4GAQo8og1DWc/edit?usp=sharing

Edição atual tal como às 12h27min de 11 de novembro 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 através da interface Gi, fornece uma interface segura para comunicação com outras redes, gerencia endereços IP, e permite criação e configuração de APNs.

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 (General Packet Radio Services) 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 do usuário 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.

Serving GPRS Support Node (SGSN)

O SGSN (Serving GPRS support node) é responsável por entregar os pacotes de dados, das estações móveis e para as estações móveis de acordo com sua área geógrafica.

Suas tarefas são:

  • Roteamento de pacotes
  • Transferência de pacotes
  • Funções de conexão e desconexão
  • Controle de mobilidade
  • Autenticação
  • Funções de cobrança

O SGSN se comunica com o GGSN através da interface Gn.

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

Instalação do OpenGGSN e o SGSNEMU no Ubuntu 14.04 32bits

  1. Instalar pacotes necessários para poder compilar o OpenGGSN e o SGSNEMU:<syntaxhighlight>

sudo apt-get install autoconf sudo apt-get install git sudo apt-get install libdbi0-dev libdbd-sqlite3 build-essential libtool autoconf automake git-core pkg-config libortp-dev </syntaxhighlight>

  1. Necessário criar duas interfaces de rede (uma para o GGSN e outra para o SGSNEMU), para se comunicarem. Para listar todas as interfaces de rede. Os testes foram realizados usando a interface eth0, e wlan, ambos funcionaram. Mas o tutorial será na eth0. *Observação: Se o computador estiver conectado na internet pela eht0, quando mudar as interfaces a conexão cairá, esse passo pode ser o último se for o caso. Se estiver usando a wlan para o acesso à internet, então não há problema.<syntaxhighlight lang="batch">

sudo ifconfig </syntaxhighlight>Depois de confirmado os nomes das interfaces, vamos criar duas interfaces.<syntaxhighlight lang="batch"> sudo ifconfig eth0 10.0.0.50 netmask 255.255.255.0 sudo ifconfig eth0:0 10.0.0.40 netmask 255.255.255.0 </syntaxhighlight>Ao executar o comando sudo ifconfig agora, terá que ter a interface eth0 e eth0:0

  1. Baixar e instalar a libosmocore<syntaxhighlight>

sudo -s cd git clone git://git.osmocom.org/libosmocore.git cd libosmocore autoreconf -fi apt-get install libtalloc-dev apt-get install libpcsclite-dev autoreconf -fi ./configure make make install ldconfig </syntaxhighlight>

  1. Baixar e instalar o openggsn<syntaxhighlight>

sudo -s cd git clone git://git.osmocom.org/openggsn.git sudo -s cd openggsn autoreconf -fi ./configure make make install ldconfig </syntaxhighlight>

  1. Instalar o osmo-pcu<syntaxhighlight lang="batch">

cd git clone git://git.osmocom.org/osmo-pcu sudo -s cd osmo-pcu autoreconf -fi ./configure make make install ldconfig </syntaxhighlight>

  1. Copiar o ggsn.conf para /etc/ggsn.conf<syntaxhighlight>

sudo -s cd cd openggsn/examples cp ggsn.conf /etc/ggsn.conf </syntaxhighlight>

  1. Instalar o wireshark para analisar dados transmitidos<syntaxhighlight lang="batch">

sudo apt-get install wireshark </syntaxhighlight>Para executar, e analisar todas as redes do computador, é necessário ter o acesso root, então para executar o wireshark:<syntaxhighlight> sudo wireshark </syntaxhighlight>

  1. O último passo é fazer a conexão e verificar a comunicação entre o OpenGGSN e o SGSNEMU. Para isso abra dois terminais. No primeiro copie<syntaxhighlight lang="batch">

sudo ggsn -c openggsn/examples/ggsn.conf --fg -l 10.0.0.40 --net 192.168.0.0/24 --dynip 192.168.0.0/24 </syntaxhighlight>Logo em seguida, no segundo terminal, copie<syntaxhighlight lang="batch"> sudo sgsnemu --listen 10.0.0.50 --remote 10.0.0.40 --dns 10.20.38.51 --timelimit 10 --contexts 0 </syntaxhighlight>A mensagem esperada pelo ggsn é:<syntaxhighlight lang="batch"> <000c> gtp.c:701 GTP: gtp_newgsn() started <000c> gtp.c:661 State information file (/var/lib/ggsn/gsn_restart) not found. Creating new file. <000c> gtp.c:682 fopen(path=/var/lib/ggsn/gsn_restart, mode=w) failed: Error = No such file or directory </syntaxhighlight> A mensagem esperada pelo sgsnemu é:<syntaxhighlight> Using DNS server: 10.20.38.51 (10.20.38.51) Local IP address is: 10.0.0.50 (10.0.0.50) Remote IP address is: 10.0.0.40 (10.0.0.40) IMSI is: 240010123456789 (0xf987654321010042) Using NSAPI: 0 Using GTP version: 1 Using APN: internet Using selection mode: 1 Using MSISDN: 46702123456

Initialising GTP library <000c> gtp.c:701 GTP: gtp_newgsn() started Done initialising GTP library

Sending off echo request Waiting for response from ggsn........

Received echo response </syntaxhighlight>

Resultados da emulação pelo Wireshark

Código de filtragem pelo Wireshark.<syntaxhighlight> ip.dst == 10.0.0.40 or ip.dst == 10.0.0.50 </syntaxhighlight>No echo request o source será 10.0.0.50 e o destination será 10.0.0.40

No echo response o source será 10.0.0.40 e o destination será 10.0.0.50

Echo response:

O tamanho do frame é de 56 bytes.

Pelo protocolo GTP (release 99 version 1) é passado um frame de mensagem de echo response (0x02).

Mensagem de um echo request (GTP):<syntaxhighlight> 32 02 00 06 00 00 00 00 44 00 00 00 0e 01 </syntaxhighlight>O primeiro campo (0x32) equivale a:<syntaxhighlight> 00110010 001 = Version GTP: 99v1 1 = Protocol Type: GTP 0 = Reserved : 0 0 = Is Next Extension Header Present? : No. 1 = Is Sequence Number Present? : Yes. 0 = Is N-PDU number present? No. </syntaxhighlight>O campo (0x02) equivale ao tipo da mensagem, no caso será Echo response.

Os campos (0x00 e 0x06) equivale o tamanho da mensagem, no caso 6.

Os campos (0x00 0x00 0x00 0x00) equivalem ao TEID, que no caso será 0.

Os campos (0x44 0x00) é o número de sequência, no caso 0x4400

Os campos (0x0e 0x01) é o campo Recovery, no caso 1.

Echo request:

O tamanho do frame é de 54 bytes.

Pelo protocolo GTP (release 99 version 1) é passado um frame de mensagem de echo request (0x01).

Mensagem de um echo request (GTP):<syntaxhighlight> 32 01 00 04 00 00 00 00 44 00 00 00 </syntaxhighlight>O primeiro campo (0x32) equivale a:<syntaxhighlight> 00110010 001 = Version GTP: 99v1 1 = Protocol Type: GTP 0 = Reserved : 0 0 = Is Next Extension Header Present? : No. 1 = Is Sequence Number Present? : Yes. 0 = Is N-PDU number present? No. </syntaxhighlight>O campo (0x01) equivale ao tipo da mensagem, no caso será Echo request.

Os campos (0x00 e 0x04) equivale o tamanho da mensagem, no caso 4.

Os campos (0x00 0x00 0x00 0x00) equivalem ao TEID, que no caso será 0.

Os campos (0x44 0x00) é o número de sequência, no caso 0x4400

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), usado para transportar o GPRS, compreedendo o GTP-C, GTP-U e variantes GTP'. O esboço da pilha é mostrado abaixo :


Tipos GTP:

O GTP é dividido em protocolos separados como o GTP-C, GTP-U e GTP.

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

https://docs.google.com/presentation/d/1r46ImyDaRllYu0LC9sl3v8PobY2rWyo4GAQo8og1DWc/edit?usp=sharing

GGSN - Gateway GPRS Support Node

https://docs.google.com/presentation/d/1C_qR4GL9R-7RnmJc5ZNJCDR-V4xf5B4evTFbUNv1cJM/edit?usp=sharing

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