繁体   English   中英

使用 libgtpnl 将 GTP 数据包插入 GTP 隧道

Inserting GTP packets to GTP tunnel using libgtpnl

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个关于使用我们的家庭节点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,我们设置为 DNS 地址在激活 PDP 上下文接受是从核心发送的 AcceptContext到 HNB 和从 HNB 到 MS,其中包含一些 Internet 参数,例如 DNS IP、比特率……)。 The protocol is GTP-DNS and the stacked layers are 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 到 core 的数据包并使用netstat后,我们看到Recv-Q (UDP 端口 2152 中准备读取的字节)增加到大于 0 的值,但添加的 GTP 隧道不会读取 GTP 数据包我们已经添加的gtp1接口在wireshark中是空的。 我的 GTP 隧道 (gtp1) 中没有插入 GTP 数据包是什么问题?

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地址

1 动态修改 GTP-C GTP-U 数据包

我有一个项目需要根据以下条件修改 GTP-C/U 消息 条件:IMSI(范围、个体、通配符) 行动:改变APN 路由:重定向到特定的 PGW(代理 GTP-C/U 或仅 GTP-C) 我知道 F5 可以做这个部分.. 但是 - 有没有其他方法可以做到这一点? 最好的 ...

3 如何生成流量并通过 GTP 隧道获取流量?

我的电脑里部署了一个模拟的5G核心网(项目是Free5GC)。 我需要生成不同类型的流量(我从一个简单的 Http 开始到给定的 URL)。 此流量将被发送到本地 IP 地址,该地址是模拟的 UE(用户设备)。 然后这个 UE 会继续在网络之外路由流量,它也会将响应返回给我。 这部分过程对我来说是 ...

4 GTP中的CRTP与devirtualization标志

我开始研究CRTP习语,我注意到GCC有一个fdevirtualize标志,应该允许在可能的vtable调用直接调用时进行转换。 虽然CRTP可以应用于任何(C ++兼容)编译器,但如果我只想用gcc开发,我可以避免CRTP习惯用于将gcc作为虚拟化过程,或者在使用静态多态性时最好使用它。 ...

6 scapy无法解析GTP层

我想使用Scapy从我拥有的pcap文件中解析我的GTP数据包。 我能够使用Scapy解析正常的UDP / TCP数据包。 例如,如果我的包裹是udppacket,则 向我展示了udp数据包的数据部分。 对于GTP数据包,它在udp层之后有更多层,数据在最后一层内。 因此,如果我 ...

7 使用 read() 从隧道读取数据包的问题

我一直在尝试从隧道接收和处理数据包。 有单独的块用于处理 v4 和 v6 数据包。 如果数据包不属于任一类别,它们将被丢弃。 对我来说,每个数据包在执行过程中都会被丢弃。 当我使用wireshark从隧道中捕获数据包时,我注意到数据包大小的差异,即数据包的长度。 例如,当 Wireshark 中接收 ...

9 VPN服务。 数据包未通过隧道

当代码在模拟器中执行时,以及当我启动服务并在浏览器应用程序中浏览网站时,它无法访问该网站,并向我显示ERR_NAME_NOT_RESOLVED 。 请告诉我问题出在哪里。 上面的代码在LOGCAT显示到“ BYTE BUFFER PACKETS”之前都可以正常工作。 但是在whi ...

10 具有PCMU内容的GTP上的RTP-分区

Wireshark如何解析GTP-u内容? 如果我没有ipsec,GTP-U中的内容是否也已加密? 如Wireshark所示,我有一些带有GTP隧道的G711 PCMU内容,但我看到到处都有两个具有相同内容的数据包,但IP不同。 我无法理解它是如何被剖析的,并且内容是否被真正加 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM