1 DNS运用
1.1 DNS功能作用
- 负载均衡
DNS负载均衡, 原理是给用户返回不同的IP地址, 例如:
主机记录 | 记录类型 | 线路类型 | 记录值 | TTL |
www | A | 默认 | 200.202.101.1 | 600 |
www | A | 默认 | 200.202.101.2 | 600 |
www | A | 默认 | 200.202.101.3 | 600 |
www | A | 默认 | 200.202.101.4 | 600 |
- 解析返回得到的 IP 地址是可以是轮询, 也可以是随机得到的 IP 地址
- 健康检查:
支持ping、telnet、http(s)协议实时健康检查,获取应用服务运行状态。 - 故障切换
- 支持根据健康检查结果自动或者手工进行failover切换操作,实现主备切换、自动修改故障域名的解析,对异常的地址(服务)进行故障隔离或切换。
- 智能DNS
- 支持根据不同运营商、区域进行智能DNS解析,实现用户就近访问。
- 阿里云DNS免费版 vs 付费版
参数项 | 参数值 | 免费版 |
最低TTL值 | 最低1秒 | 最低2秒 |
子域名级别 | 最高10级 | 最高2级 |
A记录负载均衡 | 带权重的A记录轮询,最多支持90条 | 带权重的A记录轮询,最多支持10条 |
URL转发 | URL显性转发+URL隐性转发,最多支持6条 | URL显性转发+URL隐性转发,最多支持2条 |
泛解析 | √ | √ |
运营商线路 | 默认、移动、联通、电信、教育网 | 默认、移动、联通、电信、教育网 |
运营商线路细分 | 移动(省份)、联通(省份)、电信(省份)、教育网(省份),共135条线路 | 不支持 |
海外线路细分 | 亚洲、大洋洲、欧洲、北美、南美、非洲 6大洲34个国家及地区 | 海外 |
搜索引擎线路 | 搜索引擎、谷歌、百度、必应、有道、雅虎 | 谷歌、百度、必应 |
更多区别, 详情
1.2 DNS配置实践
主要步骤: 创建实例 -> 配置访问策略 -> 主域名设置CNAME解析到实例的CNAME接入域名。
- 创建两台虚拟机
两台虚拟机都部署相同的服务(app-server), 用于高可用的测试验证。 - 创建地址池
这里指向一台主节点。
- 访问策略配置
配置地址池信息, 如果出现故障, 可以自动切换至备用地址池。
备用地址池指向另外一台云服务器。
- 全局配置
这里可以采用系统分配生成的cname域名, 主域名是用户访问应用服务使用的域名,必须填写真实主域名, 这里主域名是配置: test.mirson.cn。
- 开启健康检查
需要对地址池里的IP地址配置健康检查,以获取应用服务的可用性,从而达到根据应用服务地址可用性的状态实现自动故障隔离以及故障自动切换。
- DNS解析设置
- 最后, 在解析设置里面, 添加记录。这里面的记录值要填写上面所设置的cname域名信息。
- 测试
通过访问test.mirson.cn会指向连接池所配置的IP信息。
通过域名进行访问:
- 故障测试
将地址池改为218.253.0.76不可用地址或停止服务, 开启健康检查后,会自动出现报警提示,并切换为备用地址池。
查看告警日志, 可以看到详细信息
访问服务:
2 DNS生产最佳实践方案
2.1 全球加速功能
全球加速可以为不同地域的客户端智能返回不同的加速IP,降低解析时延,如果是面向国际的服务,是需要开启此功能, 如果只是国内使用, 可以不用开启。
- 华东区域客户端访问Web服务会智能解析到全球加速上海加速IP。
- 华东以外的其他中国内地区域客户端访问Web服务会智能解析到全球加速北京加速IP。
- 境外区域客户端访问Web服务会直接走境外线路到美国(硅谷)源站IP。
详细操作, 查阅官方文档。
2.2 不同运营商的加速方案
不同运营商会有自身专有的网络, 如果跨运营商访问存在不稳定的情况, 可以开启此功能。
实现原理:
- 联通用户通过域名,访问应用服务的联通IP地址:1.1.1.1 。
- 移动用户通过域名,访问应用服务的移动IP地址:2.2.2.2 。
- 其他用户通过域名,访问应用服务的默认电信IP地址:3.3.3.3 。
详细操作, 查阅官方文档。
2.3 全球业务高可用方案
部署方案:
为了实现全球用户都能获得较好的访问质量,通常企业会在中国大陆和海外分别部署至少两套以上的接入服务点,后端数据服务仍然使用一套。通过DNS服务,对于不同地区的用户请求流量做智能调度,将用户访请求流量路由至不同的接入服务点。出现故障灾难时,各接入站点自建互相备份,最终实现业务的高可用。
2.4 跨地域负载均衡
企业应用服务一般会有多个IP,且多个IP地址可能分布于不同地区。可以采用流量平均分配原则,对多个IP地址进行负载均摊,实现用户访问同一个应用服务域名时多个IP地址同时承担用户的访问请求。
实现方案: