假设我正在运行绑定到公共IP(例如100.0.0.1)的TURN服务器。当服务器为创建分配请求创建中继端口时,服务器是否会在XOR-RELAYED中发送回与其绑定的任何IP地址(在本例中为100.0.0.1)不同的IP地址。 ADDRESS属性?我不熟悉网络知道所有可能的情况,RFC 5766并没有真正说出具体的事情(据我所知)。
另一种说法是,XOR-RELAYED-ADDRESS中的IP地址是多余的?在我考虑的所有情况下,客户端只需要知道分配的端口,并且可以完全忽略XOR-RELAYED-ADDRESS的IP。只要客户端知道中继端口,它就可以始终将中继数据发送到TURN服务器公共IP(它已经知道IP,因为它必须最初连接...)在中继端口。
有任何意见吗?
答案 0 :(得分:1)
如果您的服务器不在NAT后面(在公共互联网上分配了公共IP地址),那么在XOR-RELAYED-ADDRESS中返回的IP地址将是相同的。 (它将始终与分配给其NIC的IP地址相同)。
我认为您考虑忽略XOR-RELAYED-ADDRESS的原因与您的其他问题有关,这表明TURN服务器实际上将在NAT /防火墙后面。我想你会发现IP地址是可预测的。但是你的服务器所处的防火墙/ NAT有可能弄乱端口分配。确保您了解TURN服务器如何进行端口分配,以及防火墙是否正确进行端口转发。
一点命名澄清。您的服务器不受“公共”或私有IP的“约束”。您的服务器套接字绑定到分配了IP地址并与之关联的接口。
答案 1 :(得分:0)
实际上,你们都忽略了TURN服务器上的中继IP地址与侦听IP地址不同的情况。 TURN服务器可能正在侦听地址1.2.3.4,但它可能在两个其他公共地址上分配中继端点 - 如2.3.4.5和3.4.5.6。真实中继的IP地址在XOR-RELAYED-ADDRESS
中返回,并且可能与侦听地址非常不同。