我有一个使用 DTLS 与客户端通信的集群
其中有某种安全的分布式存储(...)
众所周知,DTLS 状态的生命周期相当长。因此,在典型的负载均衡场景中,会发生加密数据包将被转发到无法解密的服务器
我不是指由于 NAT 绑定(bind)更改而导致 src ip 发生更改的情况(这是我们无法控制的)
所以我在想...
为了不对负载均衡器造成一些严重的限制(例如:始终将此 src ip 转发到该服务器并希望得到最好的结果)并尽可能长时间地保留 DTLS 状态我应该如何使用DTLS?
是否(甚至)值得考虑使用一些 DTLS session 参数的分布式缓存来扩展某些现有的 DTLS 库(例如 scandium )(以便任何节点都能够解密数据包)?
JDK>=9 是否可行(很难遵循 ssl 代码...)
最佳答案
这些是包含一些相关信息的链接:
https://github.com/eclipse/leshan/wiki/Cluster
https://github.com/eclipse/leshan/wiki/Using-Leshan-server-in-a-cluster
Leshan项目基于Californium和Scandium,因此集群问题与您的问题非常相似。但没有太多信息。
但基本上很难确定。这取决于您的用例/集群配置并意味着一些负载测试。否则,这只是猜测。
to preserve the DTLS state as long as possible
顺便说一句,TLS 1.2 规范说:
An upper limit of 24 hours is suggested for session ID lifetimes, since an attacker who obtains a master_secret may be able to impersonate the compromised party until the corresponding session ID is retired
所以最好选择一些合理的生命周期。
关于java - DTLS 状态共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50588509/