重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
转移成功后,在新服务商处修改dns。或者未转移前,在原服务商处修改dns。
公司专注于为企业提供成都网站设计、成都做网站、微信公众号开发、购物商城网站建设,微信平台小程序开发,软件定制网站等一站式互联网企业服务。凭借多年丰富的经验,我们会仔细了解各客户的需求而做出多方面的分析、设计、整合,为客户设计出具风格及创意性的商业解决方案,创新互联公司更提供一系列网站制作和网站推广的服务。
之前在上一家公司的时候, 阿里云的管理员说阿里云没有内网dns服务 。
后来我自己管理阿里云的时候,发现是有内网dns服务的 ,同时也有外网dns 服务。 可以说dns 管理,非常方便。
在域名和网站这部分。 有云解析dns 服务, 其中上图的两项分别是 公网dns 解析和 内网dns解析。
之前用的是dnspod 做dns解析, 用了很多年,也非常可靠。
dnspod 有很多优点。
因为阿里云的子账号登录功能非常好,我可以把运维工作交给其他人做。 这种情况下,一个统一管理的后台,就是刚需。 由于我们的服务器是放在 阿里云的,因此把dns 也迁移过来,都放在阿里云上,统一管理, 是一个比较好的选择,至于损失的功能。 暂时也可以接受,或者通过付费可以得到缓解。
在学习 这篇文章 前,只知道DNS就是做域名解析的,查到域名对应的ip就结束了。没成想惊呆了,DNS还有这么大的规模这么低的时延要求。
阿里云DNS是一个复杂的巨型分布式系统。依托云计算丰富的计算和存储资源和技术,阿里云在全球27个Region,63个可用区,部署了 243个DNS集群 , 日解析量超过2万亿次 。
云上DNS解析服务 十几毫秒的服务延迟波动 ,都会直接影响其上的业务服务和用户体验。
阿里云提供了全系列 一站式的域名解析服务产品 ,覆盖了 公网域名解析 、 内网域名解析 、 全球流量调度 、 移动解析 以及 专有云的域名解析 场景。在云上部署业务的阿里云用户,其 运维的核心要素 就是DNS解析服务,一旦DNS解析服务出现波动,将会导致自身业务受到影响。特别是 游戏和金融行业 的企业,对解析服务质量有着极高要求。
作为日均万亿访问量的阿里云DNS,如何保障大规模的DNS解析服务高效运维和高可用?
1) 为了保证业务稳定性建设 ,阿里巴巴集团提出了 “1-5-10”的目标 ,即1分钟发现,5分钟定位,10分钟解决。目标有了,实现起来却有一定的难度。
2) 为了保障上层服务满足稳定性的目标,DNS系统作为底层基础设施的重要部分, 必须满足更高的稳定性要求 。在解析服务方面除了要做到 高可用的架构设计和部署 外,还需对 服务异常实现秒级定位和恢复 。
同时也认识到 稳定的网络基础服务的是业务连续性的基本保障 。在数字经济发展需求的驱动下,企业服务的多样性、技术架构的融合性对DNS寻址调度服务提出新的要求。
后面可以了解下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 也能互通,搞定。