阿里云DNS是一个复杂的巨型分布式系统。依托云计算丰富的计算和存储资源和技术,阿里云在全球27个Region,63个可用区,部署了 243个DNS集群 , 日解析量超过2万亿次 。
云上DNS解析服务 十几毫秒的服务延迟波动 ,都会直接影响其上的业务服务和用户体验。
阿里云提供了全系列 一站式的域名解析服务产品 ,覆盖了 公网域名解析 、 内网域名解析 、 全球流量调度 、 移动解析 以及 专有云的域名解析 场景。在云上部署业务的阿里云用户,其 运维的核心要素 就是DNS解析服务,一旦DNS解析服务出现波动,将会导致自身业务受到影响。特别是 游戏和金融行业 的企业,对解析服务质量有着极高要求。
作为日均万亿访问量的阿里云DNS,如何保障大规模的DNS解析服务高效运维和高可用?
1) 为了保证业务稳定性建设 ,阿里巴巴集团提出了 “1-5-10”的目标 ,即1分钟发现,5分钟定位,10分钟解决。目标有了,实现起来却有一定的难度。
2) 为了保障上层服务满足稳定性的目标,DNS系统作为底层基础设施的重要部分, 必须满足更高的稳定性要求 。在解析服务方面除了要做到 高可用的架构设计和部署 外,还需对 服务异常实现秒级定位和恢复 。
同时也认识到 稳定的网络基础服务的是业务连续性的基本保障 。在数字经济发展需求的驱动下,企业服务的多样性、技术架构的融合性对DNS寻址调度服务提出新的要求。
后面可以了解下DNS的集群实现原理和如何实现服务异常秒级定位和恢复的。
阿里云的DNS是:223.6.6.6或者223.5.5.5。
阿里公共DNS是阿里巴巴集团推出的DNS递归解析系统,目标是成为国内互联网基础设施的组成部分,面向互联网用户提供“快速”、“稳定”、“智能”的免费DNS递归解析服务。域名解析是一个相对复杂的过程,需要多个环节,遍历多个DNS服务器,才能获取域名的IP地址。
DNS是互联网上存储域名与IP映射关系的一个分布式数据库。使用DNS,用户可以方便的用域名访问互联网,而不用关心复杂难记的IP地址。通过域名获取对应IP地址的过程叫域名解析。
扩展资料
优势:
1、阿里在全国有优质的机房、网络、带宽等互联网基础设施资源。
2、阿里建设和运营着全国最大的CDN网络,对互联网流量调度有丰富的经验。
3、阿里旗下万网是国内最大的域名注册商,管理着几百万域名。同时有丰富的DNS管理经验。
4、阿里拥有大量优秀的技术人才,有非常强的自主研发能力和运维保障能力。
异地多机房高可用架构。基于DPDK自主研发的高性能DNS系统。Aliguard多种攻击防御策略。持久化保存热点记录,当“根”或域名的权威DNS出现异常后,阿里公共DNS具备快速恢复正常访问的能力。
通过BGP anycast技术,让用户访问到离自己较近的DNS集群。主动同步com/net域名、万网注册域名的变更,减小ttl时间的影响,快速访问到正确的记录。主动缓存热点域名的,提高查询CACHE命中率,减少递归过程,快速应答。
参考资料:阿里DNS
由于历史原因一直在用经典网络的 ECS,在安全性方面要弱于 VPC,所以决定将服务器迁移到 VPC 中。给 ECS 配置自定义 DNS 服务器的好处是可以给 ECS 分配自定义后缀的域名,比如 web01.abc ,这样在内网定位服务器就很方便,不用去记一堆内网 IP,如果配置得当,还可以通过 host $ip 这个命令寻找 IP 对应的服务器。
一开始的时候我按照给经典网络 Centos ECS 配 DNS 服务器的方法来操作,直接修改 /etc/resolv.conf ,把里面的 nameserver 配置改成了自己内网中 DNS 服务器 IP,但是发现重启服务器之后会被重置成阿里云分配的 DNS 服务器。
经过研究之后发现,是 Ubuntu 的 resolvconf 会在每次启动的时候将 /etc/resolv.conf 覆盖。 /etc/resolv.conf 本质上是一个软链,会链接到 /run/resolvconf/resolv.conf ,而后者可以通过 resolvconf -u 命令重新生成,生成的内容来自于两个地方:
所有我一开始的思路是:
在删除了 /run/resolvconf/interface/eth0.dhclient 文件之后,执行 service networking restart &&resolvconf -u 之后,发现 /etc/resolv.conf 里的内容变成了我们期望的值。
但是后来发现同一个 VPC 的不同子网之间 ECS 无法互通,检查之后发现是路由表配置不正确,原因就是之前把 DHCP 给改成了静态 IP,看来 DHCP 是不能禁了,只好重新寻找解决方案。
想到阿里云 DNS 服务器的值是来源于 DHCP,于是就尝试搜索禁止从 DHCP 获得 DNS 服务器,找到了一个相关的 问答 ,有两种方法,一是将 /etc/dhcp/dhclient.conf 文件中 request 配置项的 domain-name, domain-name-servers, domain-search 参数移除,二是在 /etc/dhcp/dhclient.conf 文件中追加一行 supersede domain-name-servers $dns_ip。
为了保险起见,我把两个方法都用上,然后执行 rm -f /run/resolvconf/interface/eth0.dhclient &&service networking restart &&resolvconf -u ,再重启了一次服务器。检查 /etc/resolv.conf 符合预期,与其他子网 ECS 也能互通,搞定。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)