1

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

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

在此处输入图像描述

正如您在这张图片中看到的,用户查询是server.hnb。源 IP(MS IP)是 10.250.0.114,目标 IP 是 172.60.3.154(核心 IP)和 8.8.8.8,我们在激活 PDP 上下文接受中设置为 DNS 地址激活 PDP 上下文接受是从核心发送的消息到 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 隧道,首先,我们必须创建一个 GTP 接口使用 libgtpnl 的以下命令:

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获得的类似字段(从发送的GTP 隧道配置) HNB 到核心)。此外,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 数据包是什么问题?

4

1 回答 1

0

您想处理 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地址

于 2021-12-06T07:23:54.287 回答