dig 与 DNS解析

dig命令

  • nslookup:query Internet name servers interactively;
    dig:Domain Information Groper
  • 【我想用google-DNS来查baidu.com的A记录】dig @8.8.8.8 www.baidu.com A
    可以看出 dig的基本的命令格式是:
    dig @dnsserver name querytype
    如果你设置的dnsserver是一个域名,那么dig会首先通过默认的上连DNS服务器去查询对应的IP地址,
    然后再以设置的dnsserver为上连DNS服务器。
    如果你没有设置@dnsserver,那么dig就会依次使用/etc/resolv.conf里的地址作为上连DNS服务器。
    querytype可以设置A/AAAA/PTR/MX/ANY等值,默认是查询A记录。
  • 常用选项
  1. -c选项,可以设置协议类型(class),包括IN(默认)、CH和HS。
  2. -f选项,dig支持从一个文件里读取内容进行批量查询,这个非常体贴和方便。文件的内容要求一行为一个查询请求。
  3. -4和-6两个选项,用于设置仅适用哪一种作为查询包传输协议,分别对应着IPv4和IPv6。
  4. -t选项,用来设置查询类型,默认情况下是A,也可以设置MX等类型
  5. -q选项,其实它本身是一个多余的选项,但是它在复杂的dig命令中又是那么的有用。
  6. -q选项可以显式设置你要查询的域名,这样可以避免和其他众多的参数、选项相混淆,提高了命令的可读性
  7. -x选项,是逆向查询选项。可以查询IP地址到域名的映射关系。
  • 【dig特有的查询选项(query option)】
    和刚才的选项不同,dig还有一批所谓的“查询选项”,这批选项的使用与否,
    会影响到dig的查询方式或输出的结果信息,因此对于这批选项,
    dig要求显式的在其前面统一的加上一个“+”(加号),这样dig识别起来会更方便,
    同时命令的可读性也会更强。
  1. 【TCP代替UDP】
    众所周知,DNS查询过程中的交互是采用UDP的。如果你希望采用TCP方式
  2. 【跟踪dig全过程】
    dig非常著名的一个查询选项就是+trace,当使用这个查询选项后,
    dig会从根域查询一直跟踪直到查询到最终结果,并将整个过程信息输出出来。

Q:请教大神 Linux(Unix)的设计思想 : 程序应该小而专一,程序应该尽量的小,
且只专注于一件事上,不要开发那些看起来有用但是90%的情况都用不到的特性,
所以dig也是一个程序吧;如果以最小化安装很多命令都不知道这条命令属于哪个
程序只能用google搜索么???
A:不用的,举例redhat , centos , fedora 下用yum provides 命令名,
就可以查找该命令属于哪个软件包了。非常方便。
Q:dig +trace 这句执行的结果中,看到
roclinux.cn. 21600 IN NS ns11.edong.com.
roclinux.cn. 21600 IN NS ns12.edong.com.

roclinux.cn. 3600 IN NS ns12.edong.com.
roclinux.cn. 3600 IN NS ns11.edong.com.

这里DNS的缓存时间,一个是21600,一个是3600,到底以那个为准呢

上述摘自:《dig挖出DNS的秘密》-linux命令五分钟系列之三十四

关于百度DNS的解析过程

[root@zichen star]# nslookup www.baidu.com
Server: 211.140.13.188
Address: 211.140.13.188#53

Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 220.181.112.76
Name: www.a.shifen.com
Address: 220.181.111.111
百度有个cname=www.a.shifen.com.的别名,这所怎么一个过程呢?用dig工具跟踪一下。
[root@zichen star]# dig +trace www.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.2.rc1.fc16 <<>> +trace www.baidu.com
;; global options: +cmd
. 167778 IN NS b.root-servers.net.
. 167778 IN NS d.root-servers.net.
. 167778 IN NS f.root-servers.net.
. 167778 IN NS m.root-servers.net.
. 167778 IN NS e.root-servers.net.
. 167778 IN NS h.root-servers.net.
. 167778 IN NS l.root-servers.net.
. 167778 IN NS g.root-servers.net.
. 167778 IN NS i.root-servers.net.
. 167778 IN NS k.root-servers.net.
. 167778 IN NS c.root-servers.net.
. 167778 IN NS a.root-servers.net.
. 167778 IN NS j.root-servers.net.
;; Received 228 bytes from 211.140.13.188#53(211.140.13.188) in 1841 ms--------(1)

com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
;; Received 503 bytes from 198.41.0.4#53(198.41.0.4) in 1884 ms-------------------------(2)

baidu.com. 172800 IN NS dns.baidu.com.
baidu.com. 172800 IN NS ns2.baidu.com.
baidu.com. 172800 IN NS ns3.baidu.com.
baidu.com. 172800 IN NS ns4.baidu.com.
;; Received 167 bytes from 192.31.80.30#53(192.31.80.30) in 305 ms-------------------(3)

www.baidu.com. 1200 IN CNAME www.a.shifen.com.
a.shifen.com. 86444 IN NS ns4.a.shifen.com.
a.shifen.com. 86444 IN NS ns7.a.shifen.com.
a.shifen.com. 86444 IN NS ns9.a.shifen.com.
a.shifen.com. 86444 IN NS ns5.a.shifen.com.
;; Received 194 bytes from 202.108.22.220#53(202.108.22.220) in 68 ms-------------(4)
DIG工具会在本地计算机做迭代,然后记录查询的过程。
第一步是我这台PC的ISPDNS获取到13个根服务器的13个IP和主机名【b-j】.root-servers.net。
第二步是向其中的一台根域服务器198.41.0.4发送www.baidu.com的请求,他返回来com.顶级域的服务器的IP(未显示)和名称。
第三步是向com.域的一台服务器192.31.80.30请求www.baidu.com,他返回来baidu.com域发服务器IP(未显示)和名称.
第四步,向百度的顶级域名服务器dns.baidu.com.请求www.baidu.com,他发现这个www有别名叫www.a.shifen.com
按照一般逻辑,当dns请求到别名时,查询都会终止,而所重新发起查询别名的请求,所以此处应该返回的是www.a.shifen.com.但是为什么返回的是a.shifen.com这个NS呢?
此处我们可以用:
[root@zichen star]# dig +trace shifen.com
shifen.com. 172800 IN NS dns.baidu.com.
shifen.com. 172800 IN NS ns2.baidu.com.
shifen.com. 172800 IN NS ns3.baidu.com.
shifen.com. 172800 IN NS ns4.baidu.com.
;; Received 170 bytes from 192.26.92.30#53(192.26.92.30) in 325 ms
发现shifen.com的顶级域名服务器和baidu.com的域名服务器是同一台!
当 我拿到www.baidu.com的别名www.a.shifen.com的时候,本来要重新到com域查找shifen.com的NS,又因为,两个域 在同一台NS上,所以直接向本机发起了shifen.com域发现请求的www.a.shifen.com是属于a.shifen.com这个域的,于是 就把a.shifen.com的这个NS和IP返回,让我到a.shifen.com这个域的域名服务器上查询www.a.shifen.com
于是
shifen.com. 7200 IN A 202.108.250.218
shifen.com. 86400 IN NS ns3.baidu.com.
shifen.com. 86400 IN NS ns1.baidu.com.
shifen.com. 86400 IN NS ns2.baidu.com.
shifen.com. 86400 IN NS ns4.baidu.com.
;; Received 186 bytes from 220.181.37.10#53(220.181.37.10) in 61 ms
拿到一条A记录,最终也就是www.baidu.com的IP地址了。

域名解析中A记录、CNAME、MX记录、NS记录的区别和联系

1.A记录
又称IP指向,用户可以在此设置子域名并指向到自己的目标主机地址上,
从而实现通过域名找到服务器。
说明:·指向的目标主机地址类型只能使用IP地址;

  1. CNAME
    通常称别名指向。可以为一个主机设置别名。比如设置test.mydomain.com,
    用来指向一个主机www.rddns.com那么以后就可以用test.mydomain.com
    代替访问www.rddns.com了。
    说明:CNAME的目标主机地址只能使用主机名,不能使用IP地址;
    ·主机名前不能有任何其他前缀,如:http://等是不被允许的;·A记录优先于CNAME记录。即如果一个主机地址同时存在A记录和CNAME记录,则CNAME记录不生效。
    3.MX记录
    邮件交换记录。用于将以该域名为结尾的电子邮件指向对应的邮件服务器以进行处理。如:用户所用的邮件是以域名mydomain.com为结尾的,则需要在管理界面中添加该域名的MX记录来处理所有以@mydomain.com结尾的邮件。
    说明:MX记录可以使用主机名或IP地址;·MX记录可以通过设置优先级实现主辅服务器设置,“优先级”中的数字越小表示级别越高。也可以使用相同优先级达到负载均衡的目的;·如果在“主机名”中填入子域名则此MX记录只对该子域名生效。
    4.NS记录
    解析服务器记录。用来表明由哪台服务器对该域名进行解析。这里的NS记录只对子域名生效。
    例如用户希望由12.34.56.78这台服务器解析news.mydomain.com,则需要设置news.mydomain.com的NS记录。
    说明:·“优先级”中的数字越小表示级别越高;·“IP地址/主机名”中既可以填写IP地址,也可以填写像ns.mydomain.com这样的主机地址,但必须保证该主机地址有效。
    如,将news.mydomain.com的NS记录指向到ns.mydomain.com,在设置NS记录的同时还需要设置ns.mydomain.com的指向,
    否则NS记录将无法正常解析;·NS记录优先于A记录。即,如果一个主机地址同时存在NS记录和A记录,则A记录不生效。这里的NS记录只对子域名生效。

1、什么是负载均衡服务器?
负载均衡(Server Load Balancing,SLB)是指在一系列资源上面智能地分布网络负载。负载均衡可以减少网络拥塞,提高整体网络性能,提高自愈性,并确保企业关键性应用的可用性。当相同子域有多个目标地址,或域名的MX记录有多个目标地址且优先级相同时,表示轮循,可以达到负载均衡的目的,但需要虚拟主机和邮箱服务商支持。:
2、什么是TTL?
TTL值TTL值全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上缓存时间。这个缓存时间太长和太短都不好,如果缓存时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析,这段时间内有可能会有一部分用户无法访问网站。如果缓存时间太短,会导致用户每次访问网站都要重新解析一次域名。
另外可以参考:
CNAME
一个域名有了A 记录解析就不能cname了?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容