IPv4与IPv6双栈上线怎么验收?从AAAA记录到真实访问
双栈上线的目标是两条路径都完成业务
给域名添加AAAA记录,只完成了公布IPv6地址这一步。真正的验收应当回答:具有IPv6连接能力的用户能否打开页面、加载资源、登录并完成关键操作;原有IPv4用户是否仍然正常。浏览器可能在连接失败时改用另一条路径,因而“我的电脑可以打开”容易掩盖单侧故障。
首先画出实际链路。如果访问经过CDN,用户连接的是边缘节点,边缘节点再访问源站,两段网络可以使用不同协议。以Cloudflare为例,其IPv6兼容功能可为代理记录生成AAAA记录,双地址源站的回源选择也有产品自己的规则。因此,用户侧IPv6成功不等于源站IPv6已验证,验收记录应明确测试哪一段。Cloudflare官方说明
先固定域名和预期结果
整理主域名、静态资源域名、接口域名以及登录跳转域名,记录每个域名是否计划提供IPv6。某个资源域名暂时只有IPv4,并不自动意味着主站双栈配置错误,但会影响纯IPv6环境下的完整体验,需要结合网络转换能力实测。
对计划启用的域名分别查询A与AAAA记录,确认没有遗留到旧机器的地址。不要仅检查本地缓存,还应比较权威DNS与实际用户使用的递归解析结果。若多条AAAA指向不同节点,每个节点都应准备好证书、虚拟主机和内容,再允许用户随机访问。
测试前保存原记录及TTL、变更时间、回退负责人。回退时删除或恢复记录仍受缓存影响,因此必须同时保留服务器侧的修复方案,而不能把DNS回退当作立即生效的开关。
分开测试IPv4与IPv6
在具备相应网络连接的测试机上,用同一个域名分别强制两种地址族。curl提供IPv4和IPv6选择参数,适合避免客户端自动选择掩盖故障;使用域名还能保留正常的证书校验与主机名语义。curl官方手册
curl -4 -I --connect-timeout 5 https://www.example.com/
curl -6 -I --connect-timeout 5 https://www.example.com/
示例域名应替换成自己管理的网站。先确认测试机确实具备IPv6出口;否则连接失败反映的是测试环境。HEAD请求可用于快速检查,但部分应用对HEAD与GET处理不同,所以还要用浏览器或正常GET完成实际访问。
如果IPv4正常而IPv6失败,依次确认地址分配与路由、服务是否监听IPv6、主机及云侧规则是否覆盖IPv6、返回路径是否可用。不要因为IPv4规则里放行了443,就认为IPv6一定同步放行。对于使用反向代理的站点,还要检查访问日志是否能记录IPv6地址,限流程序是否错误地按冒号拆分地址。
业务验收应覆盖长连接与较大响应
假设一个文档站首页很小,下载文件较大。首页成功而下载中途停顿,可能涉及路径MTU、代理超时或存储读取,不能以首屏结果宣布通过。应测试一份已知大小的文件并比对校验值,再观察登录、表单和接口响应。测试动作使用专用账号与测试数据,避免给生产业务产生无意义订单。
建议保留两种运营商或不同网络环境下的记录,写清时间、地址族、目标地址、状态码和失败阶段。它们只代表采样时刻的结果,不应写成对所有地区的性能保证。
上线后,把IPv4与IPv6探测分别展示。若两者合并为一个“网站在线”指标,客户端回退可能让长期故障一直没有告警。只有两条路径的核心业务均有证据通过,相关域名和回退记录齐全,才适合结束本次双栈变更。