通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索
查看: 2160|回复: 0
打印

[GSM资料] OPENGGSN [复制链接]

军衔等级:

  新兵

注册:2013-11-4
跳转到指定楼层
1#
发表于 2014-9-28 11:40:10 |只看该作者 |倒序浏览
OPENGGSN自述
===============




快速入门
==========




要求
------------


*的Linux *
OpenGGSN用的Redhat 8.0和9.0开发和测试。它应该
同时在其他Linux发行版,以及FreeBSD的运行,但这是
未经测试。编译在Solaris 2.8也得到了验证。


*屯*
该TUN驱动程序是必需的openggsn的正常运行。对于Linux
内核迟于2.4.7驱动程序通常包括在内,但需要
自动加载进行配置:


1 。添加以下行到/ etc / modules.conf中:别名炭火重大- 10 -200 TUN
2 。可用depmod -A




安装二进制
------------------------


转 - 我openggsn - <VERSION> 。转


这将安装二进制文件,手册页,配置文件以及
一个系统V init脚本中的GGSN 。




从源代码安装
------------------------


1 。在。/ configure
2 。使
3 。使安装


你需要root权限才能安装包,但不是为了
进行编译。




运行
-------


* sgsnemu *
启动模拟器以root身份使用以下命令:


  sgsnemu -L 10.0.0.50 -R 10.0.0.40 - createif - 默认路由


这将导致SGSN仿真器绑定到本地地址10.0.0.50
并连接到10.0.0.40发现的GGSN 。它会先发送一个关闭
ECHO_REQUEST消息。在此之后将尝试建立PDP
上下文。如果成功的话它会创建一个本地接口和设置
路由选择。现在,你应该能够ping通连接。使用
网络analysator如空灵监控流量。


sgsnemu -H会显示可用选项的列表。


sgsnemu -C sgsnemu.conf将使用sgsnemu.conf作为配置
文件中。样例文件中的示例/ sgsnemu.conf提供。


* GGSN *
编辑下openggsn /例子中的配置文件ggsn.conf 。
启动GGSN以root身份使用以下命令:


GGSN - FG -C实例/ ggsn.conf -L 10.0.0.40 - statedir /


这将在前台使用本地接口上运行的GGSN
10.0.0.40 。如果你没有一个GSM网络可用于测试您
可以使用sgsnemu测试GGSN 。




支持
-------


如果您有任何问题,请给我一条线在jj@openggsn.org




产品特点
========


OpenGGSN是GPRS支持节点的一个开源实现
( GSN中) 。它实现了0的GPRS隧道协议(GTP )的版本与
版本1。


OpenGGSN提供了3个部分组成:
* gtplib
* GGSN
* sgsnemu


* gtplib *
这个库包含与GTP的所有功能
协议。如果你想实现自己使用这个库
GSN 。 gtplib支持GTPv0 ( GSM 09.60 )和GTPv1 ( 3GPP
29.060 ) 。目前没有任何接口文档可
下载。


* GGSN *
在GGSN实现了网关GPRS支持节点。在GGSN是一个小
这是为了测试和演示使用提供的应用程序
的gtplib 。这是完全符合3GPP标准,但缺乏
重要的功能,例如计费和管理。使用此
如果你想建立自己的GGSN应用为出发点
用自己看中的VPN ,管理和计费功能。


* sgsnemu *
此应用程序模拟一个服务GPRS支持节点(SGSN ) 。 sgsnemu
让您无需投入测试3GPP核心网
在3G无线电接入网络。 sgsnemu的一个重要应用是
的漫游连接通过GPRS漫游测试
交换。 sgsnemu将首先尝试使用GTPv1 。如果它不成功
将回退到GTPv0 。




性能
===========


两个实验,以测试的性能进行
sgsnemu和GGSN 。该GGSN采用了550 MHz的Athlon处理器与384 MB的
内存。 sgsnemu使用1 GHz的速龙256 MB的RAM 。这两款机器有
100 Mb / s的网卡( RTL -8139 ) ,并通过交叉补丁进行连接
电缆。这两项测试分别由发送ICMP回显数据包进行
sgsnemu到GGSN 。


89.5 Mb / s的IP吞吐量与10000发送的ICMP ping数据包时,
有效载荷1400字节。传输时间1.27秒,没有数据包丢失。


71.4 Mb / s的IP吞吐量与10000发送的ICMP ping数据包时,
有效载荷1000字节。传输时间1.15秒,没有数据包丢失。


12,1 Mb / s的IP吞吐量与10000发送的ICMP ping数据包时,
有效负载的100个字节。传输时间0.84秒,没有数据包丢失。




所需的软件
=================



---


这两个GGSN和sgsnemu使用tun包。你至少需要囤地
1.1版。随着Linux的TUN通常包括从内核版本
2.4.7 。要配置自动加载:


1 。添加以下行到/ etc / modules.conf中:别名炭火重大- 10 -200 TUN
2 。可用depmod -A


另外,您可以在命令行中执行“ modprobe的囤地” 。


Solaris的TUN驱动需要手动安装。对于一般
关于囤地信息,请参阅http://vtun.sourceforge.net/tun/


Gengetopt
---------


如果你想改变在定义的选项Gengetopt是必需的
cmdline.ggo源文件。你至少需要gengetopt版本2.8 。如果
你只是去编译你不需要gengetopt的程序。


使用gengetopt的GGSN请执行以下操作:
CD GGSN
gengetopt < cmdline.ggo - 配置解析器


使用gengetopt为sgsnemu请执行以下操作:
CD sgsnemu
gengetopt < cmdline.ggo - 配置解析器


有关gengetopt查看详细信息
http://www.gnu.org/software/gengetopt/gengetopt.html




编译和安装
============================




设置自动工具
--------------------


您不需要执行此步骤,如果你只打算编译
包装:


1 。获取版本从什么地方是:脚本从configure.in版本解压
2 。复制从ftp://ftp.gnu.org/gnu/config最新的config.guess和config.sub脚本
3 。运行自动扫描和复制configure.scan到configure.in
4 。添加/编辑configure.in下面几行:
    - AC_INIT ( openggsn , 0.70 , jj@openggsn.org
    - AC_CONFIG_SRCDIR ( [ GTP / gtp.c ] )
    - AM_CONFIG_HEADER ( [ config.h中] )
    - AC_PROG_LIBTOOL
    - AM_PROG_LIBTOOL
    - AM_INIT_AUTOMAKE ( )
5 。 libtoolize - automake的 - 副本
  (广告ltmain.sh复印件)
6 。 aclocal与
7 。 autoheader就把
8 。 automake的 - 添加缺失 - 副本
  ( mkinstalldirs失踪的广告拷贝,安装, SH , depcomp )
9 。 automake的
10 。 autoconf的


上面的代码将在项目初始化到当前版本
自动工具(如安装在RedHat 8.0) 。看
http://sources.redhat.com/autobook/autobook/autobook_25.html # SEC25
关于自动工具的详细信息。




从CVS中签出
---------------------


下载从匿名CVS的最新源代码:


CVS -D : pserver的: anonymous@cvs.sourceforge.net :/ CVSROOT / GGSN的登录
CVS -Z3 -D : pserver的: anonymous@cvs.sourceforge.net :/ CVSROOT / GGSN合作openggsn


或者从开发商的CVS下载:


出口CVS_RSH = ssh的
CVS -Z3 -D :分机: developername@cvs.sourceforge.net :/ CVSROOT / GGSN合作openggsn


这两个命令的套以上创建了一个名为openggsn新目录。




编译和安装
----------------------------


如果Solaris下编译,你需要编辑以下行中
GGSN / Makefile.in和sgsnemu / Makefile.in :


LDFLAGS = - WL , - rpath中, WL ,在/ usr / local / lib目录@ EXEC_LDFLAGS @


应改为:


LDFLAGS = - lresolv - lsocket - lnsl @ EXEC_LDFLAGS @


注意,以上是没有必要在其他平台上。汇编
和安装是通过以下步骤进行:


1 。在。/ configure
2 。使清洁
3 。 CD GTP
4 。使
5 。使安装(以root身份)
6 。 CD ..
   (步骤3至6你只需要运行一次安装libgtp )
7 。使
8 。使安装(以root身份)
9 。将/ usr / local / lib目录到/ etc / ld.so.conf中
10 。运行ldconfig


(步骤9和10不是必需的路径libgtp被包括在生成文件)


文档可以转换为HTML发出:


1 。 txt2html中, PM- TF自述>的README.html
2 。 txt2html中, PM- TF新闻> NEWS.html
3 。 txt2html中, PM- TF更新日志> changelog.html任
4 。 man2htm ggsn.8 > ggsn.html
5 。 man2htm sgsnemu.8 > sgsnemu.html




安装二进制
------------------------


1 。转 - 我openggsn - <VERSION> 。转


这将安装二进制文件,手册页,配置文件以及
一个系统V init脚本中的GGSN 。




运行GGSN
============


使用的GGSN -H的可用选项的列表。适用于所有选项
在命令行,也可以在配置文件中给出。看
实例/ ggsn.conf此文件的格式。


启动GGSN以root身份使用以下命令:


GGSN -C的例子/ ggsn.conf - FG -L 10.0.0.40 - 网络192.168.0.0/24 - 动态IP 192.168.0.0/24


第一个TUN网络接口将被创建。在上面的示例
网络接口地址为192.168.0.0 ,掩码是
255.255.255.0 。您可以检查该接口是由使用
ifconfig参数。


后墩已经成功地建立了GGSN将等待GTP
本地接口上创建PDP上下文请求
10.0.0.40 。目前,所有的请求被接受,并且没有密码,
用户名或APN执行验证。


当接收到创建PDP上下文请求一个动态的IP地址将
动态IP - 从所确定的地址池中分配。在上面的
例如在第一个分配的地址将是192.168.0.1 ,接着
192.168.0.2等等。该请求是通过发送一个确认创建
PDP上下文响应消息发送到对等体(SGSN) 。


现在的IP数据包将在囤网络接口之间转发
建立GTP隧道。为了允许用户访问
外部网络的路由需要被设置。如果私有地址
用过你需要配置网络地址转换。看到Linux
网络HOWTO来了解细节。


记住要启用路由:


回声1 > / proc/sys/net/ipv4/ip_forward


如果您使用的是二进制RPM包安装,就可以开始
GGSN通过使用sys 5脚本:


在/ etc / init.d /的GGSN启动




运行sgsnemu
===============


使用sgsnemu -H的可用选项的列表。所有可用的选项
在命令行上,也可以在配置文件中给出。看
实例/ sgsnemu.conf此文件的格式。


如果你想测试一个GRX漫游连接,您需要做的
以下内容:


1 。在Linux机器上安装sgsnemu 。在安装见上。
2 。连接你的Linux机器与sgsnemu安装到GPRS核心
网络。使用同一个局域网交换机作为您的一个SGSN连接
至。您还需要一个可以使用的sgsnemu一个空闲的IP地址。
3 。您需要配置网络接口地址中,
子网掩码和默认路由。看到Linux网络HOWTO获得
详细信息。
4 。启动sgsnemu喜欢的东西:


sgsnemu - 听10.0.0.50 - 远程10.0.0.40 - dns的10.20.38.51 - 的timeLimit 10 - 上下文0


sgsnemu将打印像屏幕上的以下内容:


<PRE>


  使用DNS服务器: 10.20.38.51 ( 10.20.38.51 )
  本地IP地址为: 10.0.0.50 ( 10.0.0.50 )
  远程IP地址为: 10.0.0.40 ( 10.0.0.40 )
  IMSI是: 240011234567890 ( 0x98765432110042 )
  使用APN :互联网
  使用MSISDN : 46702123456


  初始化GTP库
  OpenGGSN [ 1823 ] : GTP : gtp_newgsn ( )开始
  做初始化的GTP库


  关闭发送回应请求
  等待来自GGSN响应........


  收到回送应答。原因值: 0


< / pre>


这是相当不错的。这意味着你成功地发送了一个回声
请求到远程的GGSN ,并且这已经足够了友好为您解答。如果
你没有得到回音应答这意味着什么是错的
无论是与你的安装程序或与GRX连接或与您漫游
合作伙伴的连接。


如果上述正常,你可能要尝试建立的PDP
上下文传递到远端的GGSN 。请注意,您应该时要小心
建立PDP上下文使用sgsnemu为每个PDP成立
上下文将导致电荷详细记录(CDR ),由所生成
在GGSN 。您应该使用真正的IMSI和MSISDN从一个有效的测试SIM卡
卡。否则,一些糟糕的客户可能会被收取您
测试。另外请注意,你正在建立一个连接到GI
网络,所以请小心不要路由互联网流量的上
GPRS核心网!假设你知道你在做什么:


sgsnemu - 听10.0.0.50 - 远程10.0.0.40 - DNS 10.20.38.51 - 的timeLimit 10 - 情境1 - APN网络 - IMSI 240011234567890 - MSISDN 46702123456 - createif - 默认路由


sgsnemu将打印像屏幕上的以下内容:


<PRE>


  使用DNS服务器: 10.20.38.51 ( 10.20.38.51 )
  本地IP地址为: 10.0.0.50 ( 10.0.0.50 )
  远程IP地址为: 10.0.0.40 ( 10.0.0.40 )
  IMSI是: 240011234567890 ( 0x98765432110042 )
  使用APN :互联网
  使用MSISDN : 46702123456


  初始化GTP库
  OpenGGSN [1838 ] : GTP : gtp_newgsn ( )开始
  做初始化的GTP库


  关闭发送回应请求
  建立PDP上下文# 0
  等待来自GGSN响应........


  收到回送应答。原因值: 0
  接收到创建PDP上下文响应。原因值: 128
  设置接口和路由
  / sbin目录/ ifconfig命令TUN0 192.168.0.1
  / sbin目录/路由附加净192.168.0.0子网掩码255.255.255.0 192.168.0.1 GW


< / pre>


现在,一个上下文建立到远程GGSN 。的IP地址
上下文是192.168.0.1 。你应该能ping通已知地址
漫游合作伙伴在Gi网络。你甚至应该能够做到
卷筒纸通过PDP上下文进行浏览。


但是请注意,您可能需要调整你的路由表,因此
你确保所有GRX流量路由到GPRS核心
网络,并通过PDP上下文一切。正确的方法
做到这一点是使用策略路由。另请注意,您可能在实际上
在同一台计算机连接到GN和Gi网络两者兼而有之,所以请
要小心不要路由互联网流量到GPRS核心网络
并请保护自己免受黑客攻击!为这个原因,它是
应始终使用 - 当测试一个实时网络上下文0 。


后 - 的timeLimit秒的PDP上下文被断开与
从sgsnemu以下消息:




<PRE>

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-5-10 20:13 , Processed in 0.372364 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部