通信人家园
标题:
OPENGGSN
[查看完整版帖子]
[打印本页]
时间:
2014-9-28 11:40
作者:
aming_txrjy
标题:
OPENGGSN
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>
通信人家园 (https://www.txrjy.com/)
Powered by C114