因此,我有一个服务器,它利用 RHEL(假设为 5.6)的底层内核来设置 TCP 连接和其他网络方面。我的部署需求要求服务器具有双 IP 地址,一个 IPv4 地址和一个 IPv6 地址。服务器与两个实体交互,一个在左侧具有 IPv6 地址,一个在右侧具有 IPv4 地址(如图所示下图)。 这左边实体发送消息米通过 TCP/IPv6 套接字发送到服务器。相同的消息米需要交付给正确的服务器通过 TCP/IPv4 套接字与实体通信。
我的问题:
- RHEL 5.6 允许这样做吗?我假设是的,但我会要求从配置角度注意我需要注意的任何问题。
- 从进程/线程的角度来看,有什么限制吗?我认为管理连接的 IPv6 线程/进程需要与 IPv4 线程/进程进行通信?这有多复杂?
- IP 接口(IPv4 和 v6)两侧的 TCP 连接数量对可扩展性有影响吗?
谢谢你!
答案1
如果是简单的 IPv6 到 IPv4 转换器,则可以通过 IPTables 和转换规则来完成。或者,stunnel
如果您确实需要网络连接在服务器上终止,则可以通过其他方式进行转换。
答案2
RHEL 5(及其兄弟产品如 CentOS)对 IPv6 的支持相当差,尤其是在内核的连接跟踪方面。
如上所述,您需要配置 NAT64 [1] 或应用程序代理来中继消息。据我所知,RHEL 5 没有任何工具可以执行此操作。
答案3
NAT64 可能导致 MTU 问题。代理软件是更好的解决方案。我推荐使用 Haproxy。您需要安装一些软件才能实现这一点。我认为 RHEL5 的 haproxy 软件包不够新。
PS:请关注 ISOC Deploy360 网站。有关此问题的白皮书即将发布。