香港的静态资源站:用DNS 解析处理「内部域名误放在对外区域」

一、这一篇在处理什么

这一篇只处理一件事:在香港运行的静态资源站,使用维科云的DNS 解析时,如何处理「内部域名误放在对外区域」。

只给内网用的名字放在对外权威上,任何人都能解析到内部地址。

从公网查询内部名字,看是否还有答案。

二、香港的网络和高峰

交易和晚间活动重叠时最忙,白天也有稳定流量。到华南和东南亚都近,常被当成回源点。回源集中在香港时,香港出口会先满。

排查时:分开看「用户到香港」和「香港到源站」。前一段慢是调度问题,后一段慢是回源问题。

不要这样做:所有地区都回源到香港。离香港远的用户会在回源这一段变慢。

三、静态资源站要分开的路径

图片、脚本和样式使用长缓存。带随机时间戳的地址会使缓存失效。

防护边界:这个域名不要开启会改写内容的优化,也不要和动态接口共用缓存键。

验证:同一文件连续请求两次,第二次应在边缘命中。改文件名或版本号后,新文件应能更新,旧文件仍可保留。

四、DNS 解析怎么接

对外业务域名用 CNAME 指向 CDN 或直播调度,不把源站地址写进权威记录。平时 TTL 保持在可接受的缓存时间,只有计划内切换才提前降低 TTL。权威 DNS 与注册商账号分开管理,切换后用多个地区的公共解析器核对结果。

产品说明见DNS 解析。只改和「内部域名误放在对外区域」有关的域名或路径,不要把静态资源站的其他路径一起改掉。

五、排查步骤

下面五步按因果顺序执行,后一步依赖前一步的结果。步骤针对「内部域名误放在对外区域」,不是一套通用清单。

  1. 图片、脚本和样式分开看命中率。带随机时间戳的地址单独列出。 把「用户到香港」和「香港到源站」分成两段计时。 这一故障在本步要完成的事:列出对外区域里的全部名字。
  2. 这三类文件使用长缓存。随机参数要从缓存键里去掉,或停止由客户端添加。 前一段慢就处理调度,后一段慢就处理回源。不要两段用同一个动作。 这一故障在本步要完成的事:标出只应在内网使用的名字。
  3. 不要对这个域名做会改写文件内容的优化,也不要套用动态接口的规则。 其他地区若都回源到香港,先把远地区的回源移走,避免香港出口被挤满。 这一故障在本步要完成的事:把它们挪到内网解析,并从对外区域删除。
  4. 源站只接受真正未命中的文件。同一文件不应在短时间内反复整文件回源。 回源调整完成前,不要用重启香港源站来掩盖排队。 这一故障在本步要完成的事:从公网再次查询,确认没有答案。
  5. 同一文件连续请求两次,第二次应在边缘命中。更换版本号后,新文件能更新,旧文件仍可保留。 分别从香港本地和另一个远地区复测这两段时间。 这一故障在本步要完成的事:内部客户端改用内网解析,不依赖公网权威。

六、处理办法

  1. 内外区域分开。
  2. 定期从公网抽查内部名字。
  3. 新名字默认不进对外区域。

改完后在香港的用户网络上复查,不要只在机房内网看。复查时带上静态资源站的验证:同一文件连续请求两次,第二次应在边缘命中。改文件名或版本号后,新文件应能更新,旧文件仍可保留。

七、案例

一个数据库的名字能在公网解析出内网地址。虽然端口没开,名字本身不该公开。删除后公网不再有答案。

若同样的现象出现在香港,额外核对:分开看「用户到香港」和「香港到源站」。前一段慢是调度问题,后一段慢是回源问题。

业务侧核对:图片、脚本和样式使用长缓存。带随机时间戳的地址会使缓存失效。

这个案例只说明怎么定位,不构成容量或可用性承诺。

八、常见问题

问:解析出内网地址有什么风险?

答:它告诉别人内部结构。即使端口暂时关闭,也不该公开。

问:员工在外面怎么访问?

答:走专线或远程接入,而不是把内部名字做到公网 DNS。

问:删了会影响对外网站吗?

答:不会,只要删的不是对外业务名。

问:同一故障换一个地区或一种业务,排查还一样吗?

答:不一样。每一步都先按静态资源站的路径处理,再按香港的网络条件收窄,最后才做「内部域名误放在对外区域」这一故障本身的动作。换地区或换业务,前两段操作就会变。

九、边界

只讨论DNS 解析在「内部域名误放在对外区域」上的处理,地区范围是香港,业务范围是静态资源站。请遵守当地法律。维科云提供网络能力,不对客户业务内容负责。