18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 建站知识 > 域名解析 - 见解

域名解析 - 见解

时间:2023-02-08 17:54:01 | 来源:建站知识

时间:2023-02-08 17:54:01 来源:建站知识

最近有个小伙伴向我提问,域名解析是怎样的流程的,我心想这个问题不是好简单的什么A解析设置,访问时候先到哪里找的过程吗?

但他提了一个问题,我买了个域名之后,是如何登记到某个地方的,又怎样去到根域名服务器

第一个问题,购买域名信息登记,如何登记到某个地方的一个公共机构?

第二个问题,是如何解析到根域名服务器, 现在这么多域名它是怎样存储的,又是怎样被快速解析的

第三个问题,DNS 如何优化

第二个问题好解析,对于第一个问题,也是可以随便说,到某某供应商那里,进行登记人家就会提交到某个机构进行登记,这样水过去,但心想这样水我自己也不行,为了求证,我需要

解答第一个问题

我们应该进行提问,我是如何成为域名提供商的,这个好办google一下







得到一个解析

域名注册商(英语:domain name registrar)是一个商业实体或组织,它们由互联网名称与数字地址分配机构(ICANN)或者一个国家性的国家代码顶级域名(ccTLD)域名注册局委派,以在指定的域名注册数据库中管理互联网域名,向公众提供此类服务




这里分两个部分,一个是ICANN机构,一个是国家性质的顶级域名,如我国的CN域名


一类是一般性顶级域名(gTLD),比如.com、.net、.edu、.org、.xxx

另一类是国别顶级域名(ccTLD),代表不同的国家和地区,比如.cn(中国




简单总结为

通用的域名 .com/.net 的管理机构是ICANN, 通过verisign进行注册,注册流程如下

https://www.verisign.com/zh_CN/channel-resources/become-a-registrar/verisign-domain-registrar/index.xhtml

https://www.icann.org/resources/pages/accreditation-2012-02-25-zh




申请资质

申请成为国际域名注册商,需要先向ICANN提出申请,等待申请通过后,再向Verisign申请认证


申请材料


1、资金存款证明及公司人员说明(ICANN网站提供的申请表)

2、500万美金以上额度的商业保险

3、业务发展计划书

4、公司商业执照

5、近3个月的财务报表




CN域名的管理机构是CNNIC,CNNIC授权注册商

http://www.cnnic.cn/jczyfw/CNym/CNymzc/201206/t20120612_25112.htm




申请成为CN域名注册管理机构的,应当向信息产业部提交下列材料:

(一)有关资金和人员的说明材料;CNNICCNNIC

(二)对境内的顶级域名服务器实施有效管理的证明材料;

(三)证明申请人信誉的材料;

(四)业务发展计划及相关技术方案;

(五)域名注册服务监督机制和网络与信息安全技术保障措施;

(六)拟与域名注册服务机构签署的协议范本;

(七)法定代表人签署的遵守国家有关法律、政策和我国域名体系的承诺书




Ip地址也是在这里申请

http://www.cnnic.cn/jczyfw/ipas/ipasCNNICfplm/




好了,假设成为了域名注册商,人家需要进行向你申请域名你是怎样进行查询是否能




他们会提供一些协议接口进行对接




域名查询,域名锁定,域名资料提交申请,按照下面链接说明







https://datatracker.ietf.org/doc/html/rfc5730#section-2.9.3.1

https://www.verisign.com/zh_CN/channel-resources/domain-registry-products/epp-sdks/index.xhtml


https://who.is/ 查询域名注册信息




域名定价

这个没有找到,本注册域名不是一个赚钱的东西,交易才赚钱,另外都是配套一些服务器网站服务等


注册域名后只是告诉你已经拥有这个域名,但人家还不能访问,这个时候就需要一个叫做DNS域名解析的服务进行你的域名与IP地址进行解析访问对应的服务了

第二个问题,是如何解析到根域名服务器, 现在这么多域名它是怎样存储的,又是怎样被快速解析的


域名层次解析




域名组成

www.google.cn

www 是三级域名

google 是 二级域名

cn 是顶级域名,一级域名




www. google . com .hk

Hk 是顶级域名,一级域名

Com 二级域名

google 三级域名

www 是四级




顶级域名如下




https://baike.baidu.com/item/%E9%A1%B6%E7%BA%A7%E5%9F%9F%E5%90%8D







解析流程

解析过程是自顶向下进行解析,解析服务器是就近原则,如本机先获取,在去本地域名,在市,一层层区域向上找,直到找到根域名服务




为了减少根的解析量问题,会设置一个DNS域名空间的层次结构,叫做区域zone

① 主机先查询优先使用自己缓存或者绑定了host,如果没有则向下去指定的DNS服务查询

② 查找主机指定的DNS解析服务地址,可通过nslookup进行域名解析查询







③ 如果都没有,则查询则去域名的根于查询,这个域名根域为CN,则去CN服务器查询





DNS的查询方式


一种是,递归查询,如果请求的DNS服务器没有找到解析,就会继续去找这个DNS指定的下一级DNS解析服务器,客户主机一直等待


另外一种,迭代查询,如果DNS服务器查不到,就会返回一个可能知道域名解析服务器的地址,然后客户端在向这个域名主机发起查询

本地域名服务,如局域网,进行递归查询,如果没有,就向根域进行查询时候就进行迭代查询




为什么DNS会返回多个IP地址

如图,一个域名返回多个ip,这个是DNS负载均衡,叫做轮询,DNS服务器能够对地址请求的响应来提供多个冗余的IP地址,但每次访问的顺序与ip都可能不一样,也不知道对方服务是否有访问问题,解决这个需要DNS服务器定期轮询镜像服务器可用性和负载系数,没有这些数据则删除




这种方式设置可以针对地域进行不同IP的设置返回




DNS协议结构


【Mac头】【ip头】【UPD头】【DNS内容】




其中DNS请求内容为

dig 命令内容

Transation ID 查询ID

Flags :QR RR RA

Question: 查询域名数

Answer RRs 回应节点数

Authority RRs 权威节点数

Additional RRs 权威节点详细解析数


DNS 返回内容

Transation ID 查询ID

Flags :QR RR RA

Question: 查询域名数

Answer RRs 回应节点数

Authority RRs 权威节点数

Additional RRs 权威节点详细解析数

上面数字填充外,还包含

具体的域名解析,域名解析服务器地址内容


http://www.firewall.cx/networking-topics/protocols/domain-name-system-dns/161-protocols-dns-response.html


DNS 查找算法

DNS 记录同步是一个最终一致性的分布式系统,不是只有13台根服务器,他们有镜像分布在不同的地方


一个服务器不可能会存储这么多数据,这个时候,就需要分布式存储,设计的算法有hashtable找节点,平衡二叉树找记录

当查找的时候,会进行就近原则查询,先查本地,在查顶级域一路查询




总结,域名购买后,在域名管理后台上添加对应的IP,然后这个域名就会拆开结构分别到对应的域名区域进行记录登记




DNS性能优化

应该 DNS 传播时间的因素有哪些?

您的 TTL(生存时间)设置,较短的 TTL 可能会提高传播速度。但是,这也会增加查询域名服务器的次数,从而降低网站的性能

您的 ISP(互联网服务提供商),ISP 通过在本地存储数据而非从 DNS 服务器检索新数据来缓存 DNS 记录。这可以提高 Web 浏览速度并减少流量,但可能会延长传播时间

您的域名注册局,NS(域名服务器)记录发布到他们的根区。大多数注册局都会及时更新其区域,但是有些注册局可能需要花费几个小时甚至几天的时间。

https://sg.godaddy.com/zh/help/what-factors-affect-dns-propagation-time-1746


优化前,我们需要先知道如何衡量

对于 前端能够使用 https://www.webpagetest.org/ 进行分析

解决方案

分析

一个链接需要经过,DNS 查询、建立 TCP 连接、数据传输、断开连接

前端浏览器 添加 DNS Prefetch,在 HTTP 建立之前,将 DNS 查询的结果缓存到系统/浏览器中,提升网页的加载效率

<link rel="dns-prefetch" href="https://example.com/">

https://caniuse.com/link-rel-dns-prefetch

https://github.com/amandakelake/blog/issues/50


移动端或PC端使用 HTTPDNS 也就是DNS over https

HTTPDNS 利用 HTTP 协议与 DNS 服务器交互,代替了传统的基于 UDP 协议的 DNS 交互

原理

客户端,请求 HTTPDNS api + 域名作为参数, HTTPDNS api 查询权威DNS或者自己的绑定映射,返回给客户端对应的IP

解决问题

域名防劫持(HTTPS),域名解析请求直接发送至HTTPDNS服务器,绕过运营商Local DNS,避免域名劫持问题

调度精准,由于运营商策略的多样性,其 Local DNS 的解析结果可能不是最近、最优的节点,HTTPDNS 能直接获取客户端 IP ,基于客户端 IP 获得最精准的解析结果,让客户端就近接入业务节点

实时生效,快速更新DNS映射ip的变更

HTTPS 也防止 HTTP的队头阻塞

问题:

当客户端使用HTTPDNS解析域名时,请求URL中的host会被替换成HTTPDNS解析出来的IP,导致服务器获取到的域名为解析后的IP,无法找到匹配的证书,只能返回默认的证书或者不返回,所以会出现SSL/TLS握手不成功的错误

解决 :

在createSocket时替换为HTTPDNS的IP,并进行SNI/HostNameVerify配置,SNI指定具体的域名证书进行通信

https://help.aliyun.com/document_detail/30143.html


https://help.aliyun.com/document_detail/30102.html?spm=a2c4g.11186623.6.542.7129572cjCvf6Q

iOS HTTPS SNI 业务场景“IP直连”方案说明

https://help.aliyun.com/knowledge_detail/60147.html




DNS TTL(DNS缓存时间)

TTL值大,修改解析后等待生效的时间就会越长,

TTL值小,域名解析的稳定性和解析速度就会受到影响

如果你不是经常换ip的话设置长一些一天也可以,如果你需要迁移的话就设置短一些5分钟左右




常见DNS命令

nslookup命令用法

输入 nslookup 进入命令交互


Set type=mx 查看 域名邮件


Set type=ns 查看域名解析服务器 或 nslookup -query=ns 域名


Set type=soa 查看起始授权机构记录,多NS记录中那一台是主服务器

nslookup -query=any 域名 查看所有域名下的解析信息







https://geek-university.com/linux/nslookup-command/







dig 语法

dig google.com ns

dig google.com soa

dig google.com mx 查看邮件服务解析到哪个服务器

dig google.com +trace 查看经过根服务器各个区域的域名解析服务器解析的速度




返回解析参考

http://luodw.cc/2015/12/27/dns03/

; <<>> DiG 9.10.6 <<>> google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39680 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 8 qr 查询标志 rd 希望使用递归查 ra 代表服务器支持递归 QUERY 查询多少次 ANSWER 返回结果数 AUTHORITY 权威域名服务器多少个 ADDITIONAL 权威域名服务器具体信息数 ;; QUESTION SECTION: 查询内容 ;google.com. IN A ;; ANSWER SECTION: 返回结果 google.com. 600 IN A 8.7.198.46 ;; AUTHORITY SECTION: 权威域名服务器 google.com. 47614 IN NS ns3.google.com. google.com. 47614 IN NS ns2.google.com. google.com. 47614 IN NS ns1.google.com. google.com. 47614 IN NS ns4.google.com. ;; ADDITIONAL SECTION: 权威域名服务器具体信息 ns2.google.com. 154788 IN A 216.239.34.10 ns3.google.com. 166727 IN A 216.239.36.10 ns1.google.com. 330818 IN A 216.239.32.10 ns4.google.com. 169904 IN A 216.239.38.10 ns2.google.com. 171516 IN AAAA 2001:4860:4802:34::a ns3.google.com. 171516 IN AAAA 2001:4860:4802:36::a ns1.google.com. 324727 IN AAAA 2001:4860:4802:32::a ns4.google.com. 344783 IN AAAA 2001:4860:4802:38::a ;; Query time: 45 msec 查询多少个 ;; SERVER: 192.168.3.1#53(192.168.3.1) 本地域名解析服务器 ;; WHEN: Fri Jul 09 21:39:05 CST 2021 ;; MSG SIZE rcvd: 292


清理DNS缓存

windows

ipconfig /flushdns

linux dns 服务多,大概如下 ps aux | grep xx 查询下

service dnsmasq restart

service nscd restart

service named restart

sudo systemd-resolve --flush-caches.

Mac

sudo dscacheutil -flushcache




案例

沪江从DNS到httpdns的演进

https://zhuanlan.zhihu.com/p/52361092

【鹅厂网事】全局精确流量调度新思路-HttpDNS服务详解

https://mp.weixin.qq.com/s?__biz=MzA3ODgyNzcwMw==&mid=201837080&idx=1&sn=b2a152b84df1c7dbd294ea66037cf262&scene=2&from=timeline&isappinstalled=0#rd

美图App的移动端DNS优化实践:HTTPS请求耗时减小近半

https://cloud.tencent.com/developer/article/1377693

百度APP移动端网络深度优化实践分享(一):DNS优化篇

http://www.52im.net/thread-2472-1-1.html




参考资料

顶级域名数据库与域名解析

https://www.iana.org/domains/root/db/aaa.html

https://www.iana.org/domains/root/db

域名根服务器

https://www.iana.org/domains/root/servers

http://www.ruanyifeng.com/blog/2018/05/root-domain.html

https://mp.weixin.qq.com/s/eaD1Hedtl_3atbLsbanTqw

DNS 轮询

https://aws.amazon.com/cn/premiumsupport/knowledge-center/multivalue-versus-simple-policies/

https://care.qumulo.com/hc/en-us/articles/115007926128-Configure-DNS-Round-Robin-on-a-Windows-Server-for-Qumulo-Core

https://www.cloudflare.com/zh-cn/learning/dns/glossary/round-robin-dns/

https://skyao.io/learning-dns/dns/tool/

关键词:

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭