如何验证 Private Service Connect 端点已正确解析到 Cloud SQL?

解读

在国内金融、政企类客户上云面试中,“Private Service Connect(PSC)+ Cloud SQL” 是高频考点。面试官真正想确认的是:

  1. 你是否理解 PSC 在**“内网不穿透公网”**场景下的 DNS 解析链路;
  2. 你是否能把“端点创建成功”与“SQL 连通性”这两件事分层验证,而不是一上来就 telnet;
  3. 你是否熟悉中国网络合规要求(如北京/上海地域的专线接入、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.clientserviceAccount:xxx@project.iam.gserviceaccount.com“继承父资源” 开关默认关闭,否则报 IAM:PERMISSION_DENIED

答案

拿到题目后,按“四阶六步”作答,既显专业又防追问。

阶段 1:DNS 可见性

  1. 在消费端 VPC 的调试虚机里执行
    nslookup cloudsql-psc-e12345.p.googleapis.com
    若返回 100.100.x.xAuthoritativeyes,证明 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 不解析,面试时如能提到这条“国内白名单”**机制,可瞬间拉开差距。