A 记录是什么
A 记录把域名映射到 IPv4 地址,是最基础也最常用的 DNS 记录类型:客户端拿到它之后才知道该往哪个地址发起连接。同一个域名可以配置多条 A 记录,解析器会把它们一并返回,客户端通常按轮询或随机选择,因此它既能承载多台服务器,也能在单台机器故障时提供最基础的冗余。区域文件里每条记录都要写缓存时间,它决定了各地解析器多久之后才会重新来取新值。
基本信息
| 类型 | A,类型编码 1 |
|---|---|
| 记录值 | IPv4 点分十进制地址 |
| 规范 | RFC 1035 §3.4.1;多值语义见 RFC 2181 §10.2 |
| 适用场景 | 网站、接口、任意需要解析到地址的主机名 |
| 缓存时间 | 由记录自身的生存时间决定,切换前应先调小 |
典型使用场景
- 把网站域名指向服务器地址,这是最常见的一步
- 同一个域名配多条记录,做多机承载与故障冗余
- 临时把流量切到备用机器:先把缓存时间调小,再改记录值
- 内网域名解析:把内部服务名指向内网地址
- 灰度与迁移:新老地址并存一段时间,逐步收敛
查询与配置
查询与配置
dig +short www.example.com A # 只看解析结果,脚本里最常用
dig +noall +answer www.example.com A # 连生存时间一起看
# 区域文件中的写法
www.example.com. 300 IN A 93.184.216.34
www.example.com. 300 IN A 93.184.216.35 ; 第二条用于轮询或容灾解析输出怎么读
| 字段 | 含义 | 正常与异常 |
|---|---|---|
| 记录名 | 被查询的完整域名 | 拼错会出现相对名被自动补全成奇怪域名 |
| 生存时间 | 本地缓存多久后重新查询 | 切换前应调小,太大时会长时间拿到旧地址 |
| 类型与值 | 记录类型与目标地址 | 值写成域名而不是地址属于配置错误 |
| 应答段 | 权威给出的最终结果 | 为空说明该名字没有记录 |
排查要点
- 先用本地默认解析器查一次,再指定公共解析器查一次,两者不一致通常是缓存或解析链路差异
- 直接向权威服务器查询可以绕开各级缓存,能立刻看到最新配置是否已经生效
- 解析正常但仍连不上,问题通常在网络层、防火墙或服务未监听,不要再改解析
- 同一域名解析出多个地址时,逐个测试连通性,定位是单点故障还是全部异常
多条记录的选择权在客户端与解析器手里,并不存在严格意义上的负载均衡:客户端会缓存地址并复用连接,实际流量分布常常偏离预期。需要精确调度时应交给专门的负载均衡层。
变更记录之前,务必先把生存时间调小并等待一个完整的旧周期过去,否则切换瞬间仍有大量用户被缓存指向旧地址,而旧地址可能已经被回收。
换地址的正确姿势
- 先把生存时间调小并等待一个完整周期,让各地缓存都用上新值
- 用权威查询确认新记录已经生效,再看公共解析器的返回结果
- 切换后观察业务指标,确认没有明显流量异常再回收旧地址
- 旧地址保留一段时间再下线,避免个别客户端仍在使用缓存旧值
三个容易踩的认知
- 多条记录的顺序不由你在控制台里的排列决定,客户端与解析器会自行选择
- 需要按地域或运营商返回不同地址时,交给支持智能解析的服务商,别手工堆记录
- 记录值必须是地址而不能是另一个域名,要写别名请改用别名记录