能够通过 *** 从本地 ping EC2。但是,无法 ping DMS 复制实例
Posted
技术标签:
【中文标题】能够通过 *** 从本地 ping EC2。但是,无法 ping DMS 复制实例【英文标题】:Able to ping EC2 from on-premises through ***. But, unable to ping DMS replication instance 【发布时间】:2019-11-11 17:47:35 【问题描述】:我已经设置了一个 ***,并且能够从本地 ping EC2 实例的私有 IP,反之亦然。但是,我无法 ping DMS 复制实例的私有 IP。
我在 EC2 中创建了一个端点指向数据库。端点测试连接成功。但是,本地数据库的端点测试连接失败。
EC2 和 DMS 复制实例使用相同的子网、安全组等,详细信息如下图所示。
我想知道
1) 为什么 DMS 实例不与本地通信(反之亦然)
2) 为什么 EC2 在 *** 中运行良好但在 DMS 实例中运行良好?
编辑:
与 DMS 实例关联的安全组的详细信息:
vpc - EC2 使用的相同默认 vpc 入站规则 - 所有流量、所有协议、所有端口范围、源 = 192.168.0.0/24 出站规则 - 所有流量、所有协议、所有端口范围、源 = 0.0.0.0/0路由表:
目的地 - 10.0.0.0/16,目标 = 本地 目标 - 0.0.0.0/0,目标 = 互联网网关 目标 - 192.168.0.0/24,目标 = *** 中使用的虚拟专用网关这是我在尝试测试 DMS DB 端点连接时收到的错误消息:
测试端点失败:应用程序状态:1020912,应用程序消息:连接失败发生网络错误,应用程序详细消息:RetCode:SQL_ERROR SqlState:HYT00 NativeError:0 消息:[unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired ODBC 一般错误。
【问题讨论】:
您想要达到的实际目标是什么? Ping 可以被安全组阻止。而不是使用ping
来测试连接性,您应该测试您希望实现的实际连接性。大概您希望允许 DMS 实例与您的本地数据库连接,这是正确的吗?如果是这样,请编辑您的问题以显示与 DMS 实例关联的安全组。
我已按照您的建议编辑了问题
当您从本地连接到 DMS 实例时,您用于连接的计算机的 IP 地址是什么?我怀疑它 not 在 192.168.0.0/24
范围内,因此不允许通过安全组。
IP 实际上在那个范围内。 192.168.0.104。我可以从 EC2 ping 这个 IP,反之亦然。
VPC 的 CIDR 是多少?如果 EC2 实例可以访问它,那么 EC2 实例也必须在 192.168.0.0/24
CIDR 范围内。因此,如果您说 192.168.0.104
在本地,这可能与本地范围重叠。
【参考方案1】:
您可能需要描述/提供您的完整网络拓扑以获得更准确的答案,但根据 AWS 关于“Network Security for AWS Database Migration Service”的文档,我的最佳猜测是您缺少源和目标数据库配置:
数据库端点必须包含允许来自复制实例的传入访问的网络 ACL 和安全组规则。您可以使用复制实例的安全组、私有 IP 地址、公共 IP 地址或 NAT 网关的公共地址来实现此目的,具体取决于您的配置。
另外,您提到的这个 EC2 是 NAT 实例吗?以防万一:
如果您的网络使用 *** 隧道,则充当 NAT 网关的 Amazon EC2 实例必须使用具有允许复制实例通过它发送流量的规则的安全组。
【讨论】:
以上是关于能够通过 *** 从本地 ping EC2。但是,无法 ping DMS 复制实例的主要内容,如果未能解决你的问题,请参考以下文章