关于敲入网址到展现服务器上的文件的过程。。。

2013-07-09 00:04:11 +08:00
 chshouyu
我现在的基本了解是:
浏览器敲入网址 --> dns服务器解析域名为ip地址 --> 服务器响应

但是有如下附加问题:
1. 如果我在国外的域名服务商,比如godaddy那里买了一个example.com,我把它的ns记录修改为国内的dnspod,那当我浏览器输入这个网址时,还要经过godaddy吗?即我敲入网址后,首先经过谁?电信服务商?
2. 本机的dns是干什么用的?当我改为公共dns服务时,比如改为谷歌的8.8.8.8或者v2ex的dns服务,当再访问网站时,这个过程会发生哪些改变?
3. 这个属于问题1的附加。我觉得如果把dns解析服务器比喻成一个人话,全球每个地区的人访问任何网站,应该都要经过一个dns解析服务器,那么这个人是谁呢?是谁去决定某个网址由哪个dns解析服务商去解析?
3493 次点击
所在节点    问与答
18 条回复
tension
2013-07-09 00:28:43 +08:00
我木有耐心 敲完想回答的话,楼下来吧 =)
sophy
2013-07-09 00:44:08 +08:00
1.不清楚,我觉得 不用,根域名服务器已经更新了
2.解析用的,你不填的时候从你的电信运营商那里获取,填了就用你填的
3. 根域名服务器
mongodb
2013-07-09 00:51:52 +08:00
说起来的确复杂,我也没耐心,简单提示。

你访问网站,向你使用的dns服务器发出请求,就是像你用的8.8.8.8之流发出去。他们查自己有没有存下域名和IP对应的记录,查到了就直接返回IP给你,查不到,就继续向指定的上层DNS服务器查询。
其实不一定是“上层”,反正就是指定的“比自己牛逼知道的更多的一个DNS服务器”去查。
查到了再一个个返回来。
那个牛逼的服务器还没记录,就继续找“更牛逼更全的有NS记录的服务器”去。

到现在你可以去搜索一个关键词叫“根域名服务器”,然后你应该能得到你要的答案了。
gracece
2013-07-09 08:15:23 +08:00
楼主找一本 《计算机网络》 翻看下DNS部分,应该就能有一个比较好的理解。
jjplay
2013-07-09 09:26:22 +08:00
看了LZ的头像 就知道您一定是 努力上进又叛逆不羁的好孩子,有一种东西叫做根服务器
chshouyu
2013-07-09 10:36:43 +08:00
@mongodb 非常感谢
chshouyu
2013-07-09 10:37:44 +08:00
@gracece 额 我记得我大学学过这门课,不过挂掉了,毕业后课本也卖了。。。。。
chshouyu
2013-07-09 10:39:08 +08:00
@jjplay “努力上进又叛逆不羁的好孩子”,这是对我的最好写照
tarsier
2013-07-09 10:45:48 +08:00
1. 经过ISP到dnspod的服务器查询,当然很可能你的运营商的dns上会缓存好dns记录,直接返回。
2. dns有一个生命期的概念,意味着dns记录的更新频率。本机的dns会缓存一些dns记录(毕竟这玩意不会经常变化)。不管你的公共dns改成啥,每次的域名查询都会先走本地的dns
3. 这东西,你可以理解成你是一个提问题的人。你首先会问离你比较近的人(本机dns),没得到回答会往上一级的人提问(ISP的dns)。如果大家都不知道,那么全球会有一些仲裁(根dns),他们会保证知道答案,或者指导你哪些人可能知道答案,你去问那些知道答案的人
pianai
2013-07-09 10:52:51 +08:00
DNS递归和迭代解析

一般的dns解析都是递归,不用跑到美国,比如人在苏州dnspod会更新dns记录到苏州电信dns服务器
迭代是递归服务器没有记录,需要向上找到dns root解析。
sivacohan
2013-07-09 11:10:00 +08:00
《BIND 与 DNS》

http://shop.oreilly.com/product/9780596100575.do

看前几章就足够了
chshouyu
2013-07-09 11:21:18 +08:00
感谢各位盛情解答~
treo
2013-07-09 22:56:56 +08:00
我来v2ex后产生的最大疑问是:
现在网络原理不是cs专业的必修课了?
Kymair
2013-07-09 23:38:29 +08:00
通常我们所说的DNS server,一种是resolver(例如8.8.8.8, 114.114.114.114, 电信运营商提供的),一种是authoritative name servers, 这个就是权威的,你平常改的NS记录那个server

1. 不会再经过Godaddy了。你修改NS记录,就是修改了example.com这个域的authoritative name servers

2. 本机的DNS和公共DNS服务都只是resolver, 提供缓存服务的。它们可以缓存.com, 可以缓存example.com, 可以缓存abc.example.com

3. 全球有13台根服务器。(逻辑上,实际上每一台都是由很多台进行负载均衡的。)
chshouyu
2013-07-11 00:55:45 +08:00
@Kymair 多谢
chshouyu
2013-07-11 00:56:11 +08:00
@treo 忘了是必修还是选修了。。
lhx2008
2013-07-11 18:35:38 +08:00
1.输入网址
2.浏览器寻找是否IP被缓存
3.未被缓存,则向本地DNS服务器发送域名数据(8.8.8.8)
4.8.8.8.8查看域名是否被缓存
5.没有,像DNSPOD之流查询
6.服务器响应,向原始IP返回信息
其实我也有不明白的,跟服务器的存在意义是什么?到达DNSPOD这一个级别就可以得到响应了啊。
回LZ
1.不经过Godaddy,肯定先经过电信服务商了
2.不设置就用电信自己提供的,设置了就用设置了的,变化?电信自己的顺带上Tmall给你跳转一下。
3.DNSPOD设置会在WHOIS里面附带,可以用nslookup查询到本机的DNS服务器,再由DNS服务器向DNSPOD那种DNS服务器发送请求吧,再上我也搞不懂,球指教
sinxccc
2013-07-11 19:34:43 +08:00
这是个经典的面试问题啊…所有跟网络沾边的职位都能问,基本对网络有点了解的人也都能答,但能答多少就看各人理解了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/75188

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX