我创建了一个私有网络,它有两个公网和两个内网。
公共的cidr_range
是[100.0.0.0/26, 100.0.0.64/26]
,私有的是[100.0.0.128/26, 100.0.0.192/26]
。
现在我在内网创建了一个内网ip为10.85.0.2
的mysql实例。
访问内网数据库时,先创建同一个私有网络内既有公网ip又有内网ip的堡垒,然后创建内网(只有内网ip)的主实例。
现在,如果我想要从master访问mysql,那么会得到如下错误:
ERROR 2003 (HY000): Can't connect to MySQL server on '10.85.0.2:3306' (110)
如果我更改了192.168.0.0/26
范围内的子网的cidr_range
,那么我就能够访问数据库。
在不更改cidr_range
(access in range of 100.0.00/26)
的情况下访问数据库有什么解决方案吗?
发布于 2021-11-22 09:50:56
将其编写为Community Wiki
以获得更好的可见性。
这个问题的答案是由John Hanley
在评论部分写的。
CIDR 100.0.0.128/26不是有效的专用IP地址。这是一个有效的可路由公有IP地址。参考RFC1918创建有效的addressing.datatracker.ietf.org/doc/html/rfc1918公网IP没有网关/代理无法连接到内网IP。
在GCP Documentation - Virtual Private Cloud
中,您有Valid Ranges部分,它提供了您的默认Private IP
范围,可以随时使用。
专用IP地址RFC 1918
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
这就是为什么要将CIDR设置为能够连接的192.168.0.0/26
的原因。
关于你的问题:
有没有什么解决方案可以在不改变cidr_range的情况下访问数据库(访问范围在100.0.00/26)
最好的解决方案是在您的GCP项目中重新配置您的整个网络。不使用default
VPC,而使用custom
,并根据您的特定需求定制VPC
https://stackoverflow.com/questions/69928798
复制相似问题