AWS VPC CIDR in both 10.0.0.0/8 and 192.168.0.0/16



我有VPC A, CIDR为10.A.0.0/16, VPC B, CIDR为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。不是我可以轻易改变的东西,但我需要能够从VPC b到达VPC A上的192.168.0.0/16

我已经尝试将192.168.0.0/16添加到用于VPC B的路由表中,并设置对等连接的目标。这不起作用,我相信因为192.168.0.0/16不在VPC a的CIDR块中。

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

我还尝试制作一个过境网关,附加两个VPC,并为192.168.0.0/16的过境网关路由表添加静态路由,目标是VPC a附件。但在VPC b内仍然无法达到这个范围

是否有另一种方法可以对等到同一VPC上的10.0.0.0/8192.168.0.0/16CIDR块?

已更新,背景信息

两个不同的kubernetes集群使用vpc。旧版本使用project-calico,它使用默认集群CIDR192.168.0.0/16,并且在该范围内分配pod ip。较新的一个是EKS集群,pod ip从VPC的CIDR范围分配。在过渡期间,我将两个集群的vpc放在一起。

路由表

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块中,也不能添加。

Calico在VPC (A) CIDR之上使用指定的集群CIDR (192.168.x.x)创建一个覆盖网络,以便该k8s集群中的pod/服务可以通信。覆盖网络路由信息既不公开,也不能用于AWS路由表。这与k8s集群在VPC (B)中运行不同,k8s集群使用VPC CNI,利用VPC CIDR作为集群CIDR。

Calico BGP对等在这里提供了一种方法,但对于这种情况,它不是一条容易的路线。

Calico节点可以通过BGP交换路由信息使能Calico网络工作负载的可达性(Kubernetes pod或OpenStack vm)。

如果您必须在不同的k8s集群和网络中实现pod到pod通信,但不通过Ingress/LB,请迁移其中一个k8s集群CNI使其与另一个相同,以便您可以充分利用它们独特的对等能力。

相关内容

  • 没有找到相关文章

最新更新