0 - 灵魂疑问: 如果你的域名被劫持 或 DNS解析失败怎么办?
DNS 详解
解析失败就是 返回假IP 或 失去响应。
1- 原因:
- 运营商被劫持: DNS服务器被劫持了。
- LocalDNS服务器: 本地会缓存DNS解析的,如果本身服务器IP变更,本地和变更后的IP不一致,也会导致查不到服务器内容。
2 - 怎么做?
- 运营商下域名被劫持换个更稳定运营商。
- HTTPDNS: 使用 HTTP 协议进行DNS解析,代替UDP的DNS协议。直接发送请求到你司的HTTPDNS服务器去请求,绕过运营商等 LocalDNS.
3 - 为什么DNS采用UDP协议?
- UDP不用握手,直接发请求,也不用双方通信安全等,因此速度非常的快。只需要我请求你,你返回给我就行了。
- HTTP 需要握手网络开销大。
4 - 图解
【运营商链路】
类似CDN运营商一样 DNS也有运营商,走正常DNS 运营商链路是上图。
1. 浏览器是否有 或 手机本地是否有
2. Local DNS 是个递归DNS过程 从根域名找,一层层最后找到权威域名服务器 类似 CDN主站
3. TCP层是UDP协议 查询主要是要快为主
【HTTPDNS链路】链路是自己私有,类似去直接请求CDN主站资源
1. APP 本地是否有缓存? 有去HTTP DNS验证,是否一致。
2. 一致则返回 IP。
3. 不一致 HTTPDNS 链路请求 权威域名服务器,再返回。
5 - 走哪条链路?
- 走 DNS递归链路 (LocalDNS) / 运营商链路
- 走 HTTPDNS 链路
这个是不是很像 CDN 优化链路,走CDN运营商链路 还是 走本身服务请求 主站链路