我有一个现有的VPC(vpcA
),并且最近设置了一个新的VPC(vpcB
),其中既有私有子网(privateSubnet
)和公共子网(publicSubnet
)。我想允许从vpcA
到vpcB
的连接。
vpcB
是使用堡垒服务器设置的,以允许从publicSubnet
和privateSubnet
中进行SSH-这可以正常工作,因此我知道SSH已正确设置...因此,要开始我,我认为我会尝试允许SSH连接从vpcA
到vpcB
上的privateSubnet
。
我已经设置了同行连接,并且遵循了有关解决VPC PEER网络连接问题的亚马逊故障排除指南中的所有说明。连接处于活动状态,我已经设置了从vpcA
到路由10.0.1.0/24
到私人网络(专用地址为10.0.1.10
),ACL策略似乎允许端口22上的所有流量(目前),并且安全组允许端口22访问22(再次)。目前没有在实例本身上配置的防火墙规则,但是当我尝试通过 vpcA
上的一个实例连接到我得到的是:
$ ssh -vvv 10.0.1.10
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 10.0.1.10 [10.0.1.10] port 22.
debug2: fd 3 setting O_NONBLOCK
debug1: connect to address 10.0.1.10 port 22: Connection timed out
ssh: connect to host 10.0.1.10 port 22: Connection timed out
traceroute给了我这个:
traceroute to 10.0.1.10 (10.0.1.10), 30 hops max, 60 byte packets
1 * * *
2 * * *
... [same up to 30]
vpcB
上publicSubnet
中的bastion服务器的
ssh vpcB
上的 privateSubnet
工作正常,因此我知道ssh本身正在实例上工作。但是显然,流量没有通过VPC对等连接。
我意识到故障排除可能需要比到目前为止提供的更多详细信息,但是外面有人设置了吗?关于下一个位置或哪种配置的任何建议,我可以提供有关问题所在的位置的提示?
谢谢!
您的traceroute
输出建议,没有路由可以转发您的请求。
- 确保您的VPCA和VPCB的
CIDR
不要重叠 - 检查VPCA中私人子网和公共子网的路由表是否有将流量路由到VPCB的条目。
- 有一个用于公共和私人的单独路由表。
- 路由
10.0.1.0/24
的目标应为VPC对等连接 - 以 PCX -
开始 - VPC对等连接是否已批准和活动?
- 如果什么都没有起作用,请发布子网路由表的屏幕截图
Hellov提到的所有内容都需要覆盖,因为这里有很多事情可能出错。但是,我的具体情况是我有从VPCA到VPCB的路线,但没有从VPCB到VPCA的返回流量的路线。
在此报价中,有关VPC凝视的路由表的亚马逊文档:
要在VPC对等连接中启用VPC之间的流量路由,您必须将路由添加到一个或多个VPC路由表中,该路由指向VPC对等连接以访问其他CIDR块的全部或一部分对等连接中的VPC。同样,其他VPC的所有者必须在其VPC路由表中添加路由,以将流量路由回到您的VPC。
这里的最后一句话是关键 - 提到的示例突出了这个问题。老实说,我最初对此感到有些困惑,但是这种解释是指在路线中重叠的CIDR块也阐明了为什么需要此路线:
aws当前不支持VPC对等连接中的单播反向路径转发,该连接检查数据包的源IP和路由回复数据包回到源。
因此,总体而言,请遵循此建议和Hellov帖子中的建议。但是请记住,这些路线需要在相关子网之间进行双向方向,以便您使数据包在两个方向上流动。