属于不同VPC的子网之间的AWS路由问题

时间:2019-12-12 19:59:31

标签: amazon-web-services amazon-ec2

我有一个简单的基本AWS架构,但我无法进行工作。

VPC1

  • CIDR 192.168.0.0/16
  • 3个子网:
    • 192.168.0.0/26
    • 192.168.80.0/26
    • 192.168.160.0/26
  • 所有都是公共子网,并已连接Internet网关
  • 安全组:SG1
  • 在此处运行的一个EC2实例,私有IP:192.168.0.54

VPC2

  • CIDR:192.170.0.0/16
  • 3个子网:
    • 192.170.0.0/26
    • 192.170.80.0/26
    • 192.170.160.0/26
  • 所有都是私有子网,并且没有任何NAT网关
  • 安全组入站规则:
    • SSH端口22源192.168.0.0/16,这样我就可以从VPC1中的实例ssh
  • 在此处运行的一个EC2实例,私有IP:192.170.0.49
  • 还尝试在以下子网中添加网络ACL:
    • SSH端口22源192.168.0.0/16允许

但是,我无法从第一个实例(在VPC1中)到达第二个实例(在VPC2中)。甚至尝试添加ICMP入站规则,但ping也不起作用。

我在这里错过任何明显的东西吗?仅这些路由规则是否就无法在不同子网和VPC中的实例之间路由流量?

2 个答案:

答案 0 :(得分:2)

这些是专用IP地址。他们无法通过Internet路由。 VPC本身与所有其他VPC相互隔离(这就是VPC的重点)。

如果要从一个VPC中的实例的私有IP连接到第二个VPC中的实例的私有IP,则需要peer两个VPC。请注意,两个VPC不能具有重叠的IP范围。

或者,您需要在要连接和连接的实例上开始使用公共IP,并在目标实例的入口路径上使用适当的安全组规则,并在两个VPC中都使用IGW。或使用其他选项进行出站,例如NAT。

答案 1 :(得分:0)

我可以通过引入Transit Gateway(而不是VPC对等)来解决路由问题。最好的部分是,它与私有IP(由我控制)完美配合,并且与VPC对等相比,提供的粒度控制(子网级别)略微更多。尽管在理想情况下,VPC对等也应该起作用。这是我已经做过的事情(实际上是使用terraform)

  • 添加了一个传输网关-资源“ aws_ec2_transit_gateway”“ transit-gwy” {...}
  • 为两个VPC定义了vpc附件i)资源“ aws_ec2_transit_gateway_vpc_attachment”“ to-VPC1”和ii)资源“ aws_ec2_transit_gateway_vpc_attachment”“ to-VPC2”
  • 添加了从VPC1到VPC2的路由-资源“ aws_route”“ VPC1-2-VPC2” {destination_cidr_block =“ <>”}
  • 添加了从VPC2到VPC1的路由-资源“ aws_route”“ VPC2-2-VPC1” {destination_cidr_block =“ <>”}。这可能是可选的,具体取决于使用情况
  • 为附加到VPC2的安全组添加了入口规则,以允许来自VPC1子网的ssh流量

这对我有用。