我有带 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/16
VPC 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.0
pod。但是从 Node BI 上的 shell 只能 ping 一个10.B.0.0
pod。
是否有其他方法可以对等连接10.0.0.0/8
同一192.168.0.0/16
VPC 上的 CIDR 块?