是否可以将自定义数据附加到请求的每个数据包中?

网络工程 虚拟专用网 IP地址 隧道 格雷 包路径
2022-02-09 03:42:14

对于端到端 VPN,即设备(VPN 客户端)负责封装 GRE 数据包,是否可以将一些自定义数据与 GRE 数据包一起发送,而不仅仅是标准有效负载。

以 VPN 客户端组装的 GRE 数据包为例:

| IP header | GRE Header | Standard Payload |

这样标准有效负载看起来像:

|Orignal IP Header| Orignal Payload|

理论上,如果我想将一些额外的数据(自定义数据)附加到 GRE 数据包有效负载中,例如 VPN 客户端的 IP 地址之外的某些标识符,那么数据包看起来像:

|IP header| GRE Header | Custom Data + Standard Payload|   

那可能吗?

似乎如果有一种方法可以访问将原始数据包封装到 GRE 数据包中的任何地方,那么您可以根据需要制作任何您想要的有效负载,假设 VPN 服务器知道剥离有效负载的自定义数据部分。

本质上,有没有办法将每个数据包的一些自定义数据添加到有效负载或给定请求的标头中的某个位置。如果是这样,这需要在什么级别或在哪里进行?

1个回答

理论上,隧道协议需要修改以包含“边信道”选项。

然而,能实现什么呢?使用单独的 IP 连接(可能是 UDP)可以实现绝对相同,该连接只需与其他用户数据包一起通过隧道路由。这具有额外的好处,即允许从网络的一端通过隧道连接到另一端,而不仅仅是从一个隧道端到另一端。

如果您尝试将应用层协议(“header”、“request”)添加到隧道协议中,您已经忘记了网络分层是有目的的。

所以,回答你的问题:可能吗?是的,通过定义支持这一点的协议 - 实用吗?不。