【问题标题】:Inserting GTP packets to GTP tunnel using libgtpnl使用 libgtpnl 将 GTP 数据包插入 GTP 隧道
【发布时间】:2021-01-25 19:45:04
【问题描述】:

我有一个关于使用我们的家庭节点B (HNB) 在 MS 和我们开发的网络核心系统之间建立稳定的互联网连接 (IuPS_PS) 的问题。

在我们的核心系统中,我们可以看到从 MS 发送到 HNB 以及从 HNB 发送到核心系统的互联网数据包。我在HNB和core之间的接口上附上了wireshark日志的截图。

正如你在这张图片中看到的,用户查询是server.hnb。源 IP(MS IP)是 10.250.0.114,目标 IP 是 172.60.3.154(核心 IP)和 8.8.8.8,我们在 Activate PDP Context Accept 中设置为 DNS 地址(Activate PDP Context Accept 是从核心发送到 HNB 以及从 HNB 发送到 MS 的消息,其中包含一些 Internet 参数,例如 DNS IP、比特率……)。协议为GTP-DNS,堆叠层为DNS / UDP / IP / GTP / UDP / IP。我在以下图片中附加了堆叠的图层:

目标 IP 为 172.60.3.154

目标 IP 为 8.8.8.8

另外,我们知道要处理 GTP 数据包,需要 GTP 隧道来监听 UDP 端口 2152。为此,我们使用libgtpnl(osmocome 项目)并建立 GTP 隧道,首先,我们有使用以下 libgtpnl 命令创建 GTP 接口:

gtp-link add gtp1 --sgsn

其中 gtp1 是接口名称。执行上述命令后,我们使用 netstat 显示网络连接,结果如下:

一切正常。最后,我们使用 libgtpnl 的以下命令添加 GTP 隧道:

gtp-tunnel add gtp1 v1 100 1 10.250.0.114 172.60.3.154

其中v1是GTP版本,100是RAB-Assignment Request中的gTP-TEI字段(从核心发送到HNB的GTP隧道配置),1是从RAB-Assignment Response(从 HNB 发送到核心的 GTP 隧道配置)。另外,10.250.0.114 是 MS IP,172.60.3.154 是核心 IP。

在收到一些从 MS 到核心的数据包并使用 netstat 后,我们看到 Recv-Q(UDP 端口 2152 中准备读取的字节)增加到一个大于 0 的值,但是添加的 GTP 隧道不会读取 GTP 数据包,并且我们已经添加的 gtp1 接口在wireshark中是空的。我的 GTP 隧道 (gtp1) 中没有插入 GTP 数据包是什么问题?

【问题讨论】:

    标签: networking mobile gsm tunnel asn1


    【解决方案1】:

    你要处理GTP-U数据包,所以你的测试机器是GGSN而不是SGSN,所以你的git-link命令不正确,参数“--sgsn”必须去掉。

    SGSN和GGSN上的libgtpnl命令类似如下:

    SGSN:

    gtp-link add gtp1 --sgsn
    gtp-tunnel add gtp1 v1 100 200 1.1.1.1 2.2.2.10
    

    GGSN:

    gtp-link add gtp1
    gtp-tunnel add gtp1 v1 200 100 1.1.1.1 2.2.2.2
    

    2.2.2.2是SGSN节点的IP地址

    2.2.2.10是GGSN节点的IP地址

    1.1.1.1是用户/终端的IP地址

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      • 2021-01-22
      • 1970-01-01
      相关资源
      最近更新 更多