如何在代理服务器上确定 UDP 数据包的目的地?

问题描述 投票:0回答:1

我需要通过代理服务器在第 4 层路由 TCP 和 UDP 数据包(即,对于 TCP 数据包,没有 TLS 终止)。所有数据包的目标地址都不固定。换句话说,路由需要是动态的,并且每个数据包的目的地可以根据数据包中的目标主机名/IP 来确定。因此,TCP 数据包可以轻松地基于 SNI 进行路由。但是,UDP 数据包不能,因为 SNI 通常用于 TCP,而 UDP 中似乎不存在其等效项。

我正在查看 Envoy 代理的 DestinationIPInput 过滤器来解决这个问题,但它基于 HAProxy 代理协议,该协议似乎不支持 UDP。

是否有一个标准的代理协议,代理服务器可以使用该协议确定从客户端发送到它的UDP数据包的目标服务器地址(和端口)(客户端也可以按照相同的协议发送数据包)?如果相同的协议也能支持 TCP/HTTP 代理那就太好了。

networking proxy udp envoyproxy dynamic-routing
1个回答
0
投票

每个数据包的目的地可以根据数据包中的目标主机名/IP 确定。因此,TCP 数据包可以轻松地基于 SNI 进行路由。

TCP 数据包中没有 SNI。

TLS中有SNI,但并非所有TCP都是TLS。 并且,它仅存在于 TCP 握手完成后数据包的应用程序有效负载中,即仅在 TCP 握手后的第一个数据包中才能获取此信息。

© www.soinside.com 2019 - 2024. All rights reserved.