如何验证 Private Service Connect 端点已正确解析到 Cloud SQL?
解读
在国内金融、政企类客户上云面试中,“Private Service Connect(PSC)+ Cloud SQL” 是高频考点。面试官真正想确认的是:
- 你是否理解 PSC 在**“内网不穿透公网”**场景下的 DNS 解析链路;
- 你是否能把“端点创建成功”与“SQL 连通性”这两件事分层验证,而不是一上来就 telnet;
- 你是否熟悉中国网络合规要求(如北京/上海地域的专线接入、DNS 转发规则需备案)。
答好此题,要体现出“先 DNS 后网络,先四层后七层,先 IAM 后引擎”的排查节奏。
知识点
- Private Service Connect 发布端(Published Service)与消费端(Endpoint) 的命名差异:消费端 DNS 形如
cloudsql-psc-e12345.p.googleapis.com. - Cloud DNS 私有转发区 必须关联 VPC,且在北京/上海地域需备案内部域名;否则
.p.googleapis.com记录无法下沉。 - PSC Endpoint 的 IP 是 100.100.x.x 段,属于 Google 内部保留地址,VPC 内路由表需无重叠 CIDR,否则黑洞。
- Cloud SQL Auth Proxy 在 PSC 场景下 仍需解析到 Endpoint IP,随后走 HA VPN/专线 的 3307/5433/1433 端口,TLS 握手 SNI 必须携带原实例域名,否则代理层返回
SSL_ERROR_SYSCALL。 - IAM 条件访问 在中国区项目需显式授予
roles/cloudsql.client给serviceAccount:xxx@project.iam.gserviceaccount.com,“继承父资源” 开关默认关闭,否则报IAM:PERMISSION_DENIED。
答案
拿到题目后,按“四阶六步”作答,既显专业又防追问。
阶段 1:DNS 可见性
- 在消费端 VPC 的调试虚机里执行
nslookup cloudsql-psc-e12345.p.googleapis.com
若返回 100.100.x.x 且Authoritative为yes,证明 Cloud DNS 私有转发区已下沉;若返回 NXDOMAIN,优先检查转发区是否关联 VPC 及北京/上海地域备案号。
阶段 2:路由可达性
2. ip route get 100.100.x.x 确认下一跳为 VPC 默认路由,无更具体的企业网段冲突;
3. ping -M do -s 1472 100.100.x.x 测试 MTU 1500 无分片,若丢包 100%,需排查专线/VPN 的 MSS 钳制或防火墙未放行 ICMP。
阶段 3:端口与证书
4. openssl s_client -connect 100.100.x.x:3307 -servername <PROJECT_ID>:<REGION>:<INSTANCE_ID> -verify_return_error
若返回 Verify return code: 0 (ok) 且证书 CN 包含 *.googleapis.com,则 TLS 层打通;若报 self signed certificate,说明客户端根证书未更新到最新 GTS 根,中国区镜像站需手动拉取。
阶段 4:SQL 登录
5. 使用 Cloud SQL Auth Proxy 0.12.0 以上版本启动
./cloud-sql-proxy --psc-endpoint=cloudsql-psc-e12345.p.googleapis.com --auto-iam-authn
观察日志出现 “Ready for new connections”;
6. mysql -u sa-psc -p --host 127.0.0.1 --ssl-mode=REQUIRED 登录成功,执行
SELECT @@global.version, @@global.version_comment;
若返回 Google Cloud SQL 字样,则端到端验证完毕。
一句话总结:“先 DNS、后路由、再 TLS、终 SQL”,任何一步失败,都能精确说出是中国区哪条合规或哪条路由策略导致。
拓展思考
- 如果客户要求**“零信任”,可进一步开启 VPC Service Controls,把 Cloud SQL 实例封进 Secure Perimeter,此时 PSC Endpoint 的 DNS 记录会额外返回 CNAME 到 restricted.googleapis.com,需在专线侧再开一条 199.36.153.4/30** 的路由,否则阶段 2 又会出现黑洞。
- 在跨项目共享场景,Published Service 与 Endpoint 不在同一结算账号,需在中国区控制台手动**“申请服务发布审批”,审批单里要写明数据不出境用途,否则 Endpoint 创建成功但 DNS 不解析,面试时如能提到这条“国内白名单”**机制,可瞬间拉开差距。