www.youkuaiyun.com
↓ ↓ ↓
主 域 类
机 名 型
名
类型:标识此域名的类型(com、net、org、edu、gov等)
域名:域名称
主机名:该域中某台主机的名称
注释:
① 表示youkuaiyun.com这个域里面的www这台网页服务器
② 对大小写透明,比如Www.youkuaiyun.com,亦同
③ 完整的域名实际上在末端还有个".",也就是,www.youkuaiyun.com.,"."代表root DNS server
域名是面向用户的,而计算机底层仍然是依赖IP通信
日常主机(个人PC等)一般都是作为DNS客户端使用
浏览器等通过调用OS底层提供的gethostbyname()发起对DNS服务器的查询
进而实施域名解析
域名解析方式
① /etc/hosts
② DNS
③ NIS
注释:
⒈ hosts文件优先级较高,OS一般会优先访问hosts
比如:
[root@even ~]# cat /etc/hosts
127.0.0.1 even.example.com even
117.79.93.222 www.youkuaiyun.com
不过,这个hosts文件常会被一些黑客拿去“钓鱼攻击”
将中国农业银行的IP解析到黑客所设置的另外一个钓鱼网
不知不觉你的用户名和密码就被socket
⒉ 二把手的当属DNS,在resolv.conf有它的配置
[root@even ~]# cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search example.com ##域名服务器的域名
nameserver 192.168.227.2 ##域名服务器对应的IP地址
在client端,DNS服务器的相关信息就保存在文件/etc/resolv.conf中
每当client向server问一个域名,而server端必须要回答此域名的真正IP地址
当地的DNS先会查自己的资料DNS服务器库。如果自己的资料库没有,则会往该DNS的上级的DNS询问
依此得到答案之后,将收到的答案存起来,并回答客户
DNS服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称
⒊ 但是我们可以通过/etc/nsswitch.conf改变查询优先级
[root@even ~]# cat /etc/nsswitch.conf
hosts: files dns
这里的files就是指/etc/hosts这个文件
如果我们想改变这个顺序:
要么把files这个关键字删掉
要么把files和dns掉个序
DNS专用查询命令
① 简单型:host
─→host www.youkuaiyun.com
② 复杂型:dig
─→dig www.youkuaiyun.com
这两个都不会使用/etc/nsswitch.conf的配置
只会通过/etc/resolv.conf进行DNS查询
[root@even ~]# dig +trace www.youkuaiyun.com
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5 <<>> +trace www.youkuaiyun.com
;; global options: printcmd
. 371171 IN NS d.root-servers.net.
. 371171 IN NS k.root-servers.net.
. 371171 IN NS m.root-servers.net.
. 371171 IN NS e.root-servers.net.
. 371171 IN NS i.root-servers.net.
. 371171 IN NS f.root-servers.net.
. 371171 IN NS a.root-servers.net.
. 371171 IN NS b.root-servers.net.
. 371171 IN NS c.root-servers.net.
. 371171 IN NS h.root-servers.net.
. 371171 IN NS g.root-servers.net.
. 371171 IN NS l.root-servers.net.
. 371171 IN NS j.root-servers.net.
;; Received 512 bytes from 192.168.1.1#53(192.168.1.1) in 87 ms
net. 172800 IN NS k.gtld-servers.net.
net. 172800 IN NS g.gtld-servers.net.
net. 172800 IN NS j.gtld-servers.net.
net. 172800 IN NS m.gtld-servers.net.
net. 172800 IN NS i.gtld-servers.net.
net. 172800 IN NS f.gtld-servers.net.
net. 172800 IN NS e.gtld-servers.net.
net. 172800 IN NS h.gtld-servers.net.
net. 172800 IN NS d.gtld-servers.net.
net. 172800 IN NS l.gtld-servers.net.
net. 172800 IN NS a.gtld-servers.net.
net. 172800 IN NS c.gtld-servers.net.
net. 172800 IN NS b.gtld-servers.net.
;; Received 487 bytes from 128.8.10.90#53(d.root-servers.net) in 348 ms
youkuaiyun.com. 172800 IN NS ns1.dnsv2.com.
youkuaiyun.com. 172800 IN NS ns2.dnsv2.com.
;; Received 171 bytes from 192.42.93.30#53(g.gtld-servers.net) in 236 ms
www.youkuaiyun.com. 600 IN A 117.79.93.222
youkuaiyun.com. 600 IN NS ns1.dnsv2.com.
youkuaiyun.com. 600 IN NS ns2.dnsv2.com.
;; Received 100 bytes from 221.204.186.8#53(ns1.dnsv2.com) in 195 ms
注释:
① 由上可知:
"." → "net." → "youkuaiyun.com." → "www.youkuaiyun.com."
② "youkuaiyun.com."这个域名服务器通常由企业自行维护或者个人租用运营商
可由我们自由控制在这个域名下有哪些主机信息
我们可以自行搭建这样一台DNS服务器
DNS查询类型
① 递归查询
② 循环查询
③ 混合查询
资源记录
在DNS服务器上,DNS的信息通过资源记录(RR,Resource Record)的格式进行保存
RR不仅能够保存域名到IP的映射信息,还能够保存很多其他信息
RR常用属性:
● name :域名、主机名,如www,mail
● class :资源类别,一般都是IN,代表Internet
● type :资源类型,常见如下:
▼ IN A → IPV4地址:用于设置主机名对应IP地址的对应记录
▼ IN AAAA → IPV6地址
▼ IN MX → 邮件记录:用于提供邮件服务器名称
▼ IN CNAME → 别名:用于在区域文件中对主机名称设置别名
▼ IN PTR → 指针(逆向解析):语法(IP地址INPTR主机名)
▼ IN SRV → 服务资源
▼ IN NS
● rdata :record data
比如:
www INA 192.168.1.1
↓↓↓ ↓
name classtype rdata
DNS服务器类型
Master:保存该域的zone配置文件,该域的所有配置、更改都在该服务器上进行
Slave: 抓取Master的zone配置文件,但没有权限修改zone配置文件,可作为负载均衡使用
Cache: 不存在任何zone配置文件,仅依靠缓存为客户端提供服务,通常作负载均衡和加速访问使用,比如在大的局域网出口就可以架设cache DNS server
可见、无论Slave或cache、都是依靠缓存Master的zone配置文件
Zone配置文件
在DNS服务器中,一般一个域通过一个zone文件保存该域的相关信息
zone文件格式是标准化的
注释:
① "NS @"之上的代码无须我们去管理,有标准的模块可供参考
▼ serial:序列号,如果DNS配置文件修改一次,则序列号加一,从而通知下级或从服务器去刷新配置文件,因为,序列号不一致
▼ refresh:刷新时间,1D:一天,也就是从服务器一天刷新一次
▼ retry:如果刷新不成功,多长时间重试
▼ expire:多长时间缓存信息过期
以上这些信息是用来规定主从服务器之间信息的同步
一般使用默认即可,可能需要修改的仅是serial
高级查询
● dig -t mx www.youkuaiyun.com
案例:查询gmail的邮件服务器
[root@even ~]# dig -t mx gmail.com
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5 <<>> -t mx gmail.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64810
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 4, ADDITIONAL: 8
;; QUESTION SECTION:
;gmail.com. IN MX
;; ANSWER SECTION:
gmail.com. 949 IN MX 10 alt1.gmail-smtp-in.l.google.com.
gmail.com. 949 IN MX 20 alt2.gmail-smtp-in.l.google.com.
gmail.com. 949 IN MX 30 alt3.gmail-smtp-in.l.google.com.
gmail.com. 949 IN MX 40 alt4.gmail-smtp-in.l.google.com.
gmail.com. 949 IN MX 5 gmail-smtp-in.l.google.com.
;; AUTHORITY SECTION:
gmail.com. 186940 IN NS ns2.google.com.
gmail.com. 186940 IN NS ns3.google.com.
gmail.com. 186940 IN NS ns1.google.com.
gmail.com. 186940 IN NS ns4.google.com.
;; ADDITIONAL SECTION:
alt1.gmail-smtp-in.l.google.com. 244 IN AAAA 2a00:1450:4010:c04::1b
alt2.gmail-smtp-in.l.google.com. 244 IN AAAA 2607:f8b0:4002:c04::1a
alt3.gmail-smtp-in.l.google.com. 244 IN AAAA 2607:f8b0:400d:c00::1b
alt4.gmail-smtp-in.l.google.com. 244 IN AAAA 2607:f8b0:400c:c02::1b
ns1.google.com. 184158 IN A 216.239.32.10
ns2.google.com. 189126 IN A 216.239.34.10
ns3.google.com. 186984 IN A 216.239.36.10
ns4.google.com. 192641 IN A 216.239.38.10
;; Query time: 28 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Nov 27 00:26:40 2012
;; MSG SIZE rcvd: 398
MX后面的数字表示优先级
● dig -x 逆向解析
● dig -t soa 查询zone配置文件里面"NS @"之上的信息
案例:查询youkuaiyun.com这个域的soa信息
[root@even ~]# dig -t soa youkuaiyun.com
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5 <<>> -t soa youkuaiyun.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5007
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 6
;; QUESTION SECTION:
;youkuaiyun.com. IN SOA
;; ANSWER SECTION:
youkuaiyun.com. 570 IN SOA ns1.dnsv2.com. level3dnsadmin.dnspod.com. 1353658206 3600 180 1209600 180
;; AUTHORITY SECTION:
youkuaiyun.com. 320 IN NS ns1.dnsv2.com.
youkuaiyun.com. 320 IN NS ns2.dnsv2.com.
;; ADDITIONAL SECTION:
ns1.dnsv2.com. 14141 IN A 122.225.217.193
ns1.dnsv2.com. 14141 IN A 183.60.59.230
ns1.dnsv2.com. 14141 IN A 221.204.186.8
ns2.dnsv2.com. 14141 IN A 180.153.162.151
ns2.dnsv2.com. 14141 IN A 112.90.143.34
ns2.dnsv2.com. 14141 IN A 119.167.195.7
;; Query time: 27 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Nov 27 00:31:54 2012
;; MSG SIZE rcvd: 225
倘若大家在调试DNS连通性的时候,可以借助google提供的全球免费的DNS免费服务器:8.8.8.8