AWS 支持使用 NAT64 从纯 IPv6 节点连接到外部纯 IPv4 服务。有相反的等价物吗?
就上下文而言,我有一个 EKS 集群,目前仅支持 IPv4,且全部位于私有子网上。与任何外部 IP 的通信都是通过 NAT 网关进行的(通常用于 Webhook 或类似的出站请求)。现在,一些外部服务正在切换到仅使用 IPv6。有没有一种方法可以连接到这些设备,而无需将整个集群迁移到 IPv6?由于 EKS 不支持双栈网络,因此迁移可能是一个相当大且危险的项目。
AWS 支持使用 NAT64 从纯 IPv6 节点连接到外部纯 IPv4 服务。有相反的等价物吗?
就上下文而言,我有一个 EKS 集群,目前仅支持 IPv4,且全部位于私有子网上。与任何外部 IP 的通信都是通过 NAT 网关进行的(通常用于 Webhook 或类似的出站请求)。现在,一些外部服务正在切换到仅使用 IPv6。有没有一种方法可以连接到这些设备,而无需将整个集群迁移到 IPv6?由于 EKS 不支持双栈网络,因此迁移可能是一个相当大且危险的项目。
不,IPv4 源 IPv6 目标并不那么容易。与采用其他方式或本机 IPv6 相比。
DNS64 + NAT64是一种在纯 IPv6 网络中用于连接到 v4 的转换机制,很简单。一个微小的 v6 前缀可以包含整个 v4 地址空间。当结果只有 A 记录时,Fancy DNS 会在此前缀中生成 AAAA 记录。而且双栈NAT可以进行简单的无状态1对1转换,速度快且不需要配置。
与走另一条路相反。假设远程服务的地址是
2001:db8:114:6614:240e:6d9d:8a1d:59d3
整个 32 位 IPv4 地址空间只能包含最后两位数字组,即部分8a1d:59d3
。因此,花哨的 DNS 技巧和未经修改的应用程序将不起作用。理论上,双栈代理可以终止 v4 连接并使 v6 连接出去。但是,您将如何获取 v6 地址,解析应用程序流量以查找 DNS 或 TLS 中的名称?如何保持流量持续进行,有状态 NAT?然而,Kubernetes 对于网络有自己的想法,EKS 也不例外。虽然 EKS 不仅仅采用 NAT64,但它还具有双堆栈设计。v6 分配给 pod,但也只是主机 v4,在 v4 到互联网的情况下,它会经过几次 NAT。
请注意应用程序上的 v6 到互联网上的 v6 是多么简单,在没有 NAT 的出口互联网网关之外。获得与 v6 外部资源的连接是您的组织这样做的原因。除了消除对根据 Pod 数量调整子网大小的担忧之外。
是的,在现代互联网上实现这一点是一个项目。EKS 上 IPv6 清单中的第一件事是必须使用 v6 创建集群。
你可以做这个项目。使用这个新设计创建第二个集群。在其上启动新应用程序,并在有维护机会时迁移其他应用程序。如果出现问题,制定恢复计划,恢复到之前的状态。在最坏的情况下,旧集群可以按原样重建。毕竟,这是基础设施即代码。