我有 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。工作節點(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 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,並將靜態路由新增至針對192.168.0.0/16
VPC A 連接的 Transit Gateway 路由表。但從 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區塊內,也無法新增。
如果我在節點上執行 shell,AI 可以 ping 一個192.168...
pod,我也可以 ping 一個10.B.0.0
pod。但從 Node BI 上的 shell 只能 ping 通10.B.0.0
pod。
是否有其他方法可以對同一 VPC 上的這兩個區塊10.0.0.0/8
和CIDR 區塊進行對等?192.168.0.0/16