微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 libgtpnl

如何解决使用 libgtpnl

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

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

enter image description here

正如您在这图片中看到的,用户查询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 的消息,其中包含一些互联网参数,例如 DNS IP、比特率等)。协议为GTP-DNS,堆叠层为DNS/UDP/IP/GTP/UDP/IP。我在以下图像中附加了堆叠层:

目标 IP 为 172.60.3.154

enter image description here

目标 IP 为 8.8.8.8

enter image description here

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

gtp-link add gtp1 --sgsn

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

enter image description here

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

gtp-tunnel add gtp1 v1 100 1 10.250.0.114 172.60.3.154

其中 v1 是 GTP 版本,100 是 RAB-Assignment Request(从核心发送到 HNB 的 GTP 隧道配置)中的 gTP-TEI 字段,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 数据包是什么问题?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。