10.0.0.0/8 和 192.168.0.0/16 中的 AWS VPC CIDR

10.0.0.0/8 和 192.168.0.0/16 中的 AWS VPC CIDR

我有带 CIDR 的 VPC A10.A.0.0/16和带 CIDR 的 VPC B。10.B.0.0/16我已将 VPC A 和 B 对等并更新了路由表,并且从 中的服务器10.B.0.0/16可以 ping 通 中的服务器10.A.0.0/16,反之亦然。

VPC A 上的应用程序也使用该192.168.0.0/16范围内的某些 IP。这不是我能轻易更改的,但我需要能够192.168.0.0/16从 VPC B 访问 VPC A。VPC A 用于使用 project-calico 的较旧的 Kubernetes 集群。工作节点(ec2 实例)获取 VPC CIDR 块中的 IP,10.A.0.0/16但 calico 网络是使用集群 CIDR 设置设置的192.168.0.0/16,并且这些工作节点上的 pod IP 会分配到该范围内。较新的集群是 EKS 集群,pod IP 是从 VPC 的 CIDR 范围中分配的10.B.0.0/16。在过渡期间,我已将两个集群的 VPC 对等连接在一起。有一个分布式 Elixir 应用程序正在运行,这些 pod 通过它们的 pod IP 地址相互访问从而形成一个 Erlang 集群。通过我当前的对等连接,集群 A pod 可以访问 A 和 B pod,但集群 B pod 只能访问 B(因为 IP192.168.0.0/16不可访问)。

我尝试添加192.168.0.0/16到用于 VPC B 的路由表并设置对等连接的目标。我认为这行不通,因为它192.168.0.0/16不在 VPC A 的 CIDR 块中。

我无法192.168.0.0/16在 VPC A 中添加辅助 CIDR,因为它受到限制。请参阅CIDR 块关联限制相关问题。我知道它受到限制,但为什么会受到限制?RFC1918 似乎没有反对使用多个私有地址空间。

我还尝试创建一个 Transit Gateway,连接两个 VPC,并向 Transit Gateway 路由表添加一条静态路由,该路由以192.168.0.0/16VPC A 连接为目标。但仍然无法从 VPC B 内部到达该范围。

路由表

VPC A 的私有子网的路由表

10.A.0.0/16    local
10.B.0.0/16    pcx-[VPC A - VPC B peering connection]
0.0.0.0/0      nat-[gateway for cluster A]

VPC B 的私有子网的路由表

10.B.0.0/16    local
10.A.0.0/16    pcx-[VPC A - VPC B peering connection]
192.168.0.0/16 pcx-[VPC A - VPC B peering connection]
0.0.0.0/0      nat-[gateway for cluster B]

当然,这是行不通的,因为192.168.0.0/16它不在 VPC A 的 CIDR 块中,也无法添加。

如果我在 Node AI 上运行 shell,则可以 ping 一个192.168...pod,我也可以 ping 一个10.B.0.0pod。但是从 Node BI 上的 shell 只能 ping 一个10.B.0.0pod。

是否有其他方法可以对等连接10.0.0.0/8同一192.168.0.0/16VPC 上的 CIDR 块?

相关内容