Linux基础学习之从入门到精通Day18
DNS 基本概念
一、hosts文件
作用: 实现名字解析,主要为本地主机名、集群节点提供快速解析
数据库: 平面式结构,集中式数据库
二、域名服务DNS
作用: 实现名字解析(例如将主机名解析为IP)
命名空间name space: 用于给互联网上的主机命名的一种机制
DNS数据库Datebase: 层次化的,分布式的数据库
权威名称服务器: 存储并提供某个区域的实际数据,例如126.com的DNS服务器,记录了126.com域中所有主机的记录如:
www.126.com. x.x.x.x
ftp.126.com. y.y.y.y
权威名称服务器类型包括:
Master: 主DNS服务器,包含原始区域的数据
Slave: 备份DNS服务器,通过(区域传输)从Master服务器获得区域数据的副本
非权威名称服务器: 不存储某个区域的实际数据,仅缓存DNS服务器,虽然可以提供查询,但查询的内容不具有权威性
DNS解析流程: 例如客户端解析 www.126.com
1. 客户端查询自己的缓存(包含hosts中的记录),如果没有将查询发送/etc/resolv.conf中的DNS服务器
2. 如果本地DNS服务器对于请求的信息具有权威性,会将(权威答案)发送到客户端。
3. 否则(不具有权威性),如果DNS服务器在其缓存中有请求信息,则将(非权威答案)发送到客户端
4. 如果缓存中没有该查询信息,DNS服务器将搜索权威DNS服务器以查找信息:
a. 从根区域开始,按照DNS层次结构向下搜索,直至对于信息具有权威的名称服务器,为客户端获答案
DNS服务器将信息传递给客户端 ,并在自己的缓存中保留一个副本,以备以后查找。
b. 转发到其它DNS服务器
关于DNS客户端的使用工具
客户端查询
nslookup,host,dig
客户端指定本地DNS
[root@~]# cat /etc/resolv.conf
nameserver 192.168.2.115
[root@~]# dig www.baidu.com
[root@~]# nslookup www.baidu.com
[root@~]# host www.baidu.com
dig (Linux)
[root@~]# dig www.126.com //使用/etc/resolv.conf设置的DNS
[root@~]# dig @192.168.2.168 www.126.com //使用指定的DNS
[root@~]# dig @192.168.2.100 www.126.com //使用指定的DNS
host (Linux)
[root@~]# host -t A www.baidu.com //正向解析,查询A记录
[root@~]# host 192.168.5.100 //反向解析,查询PTR记录
[root@~]# host www.baidu.com 192.168.5.240 //使用DNS服务器192.168.5.240解析
[root@~]# host -t SOA baidu.com //查询某个域的SOA
baidu.com has SOA record ns.baidu.com. root.baidu.com. 2013081303 3600 900 604800 86400
[root@tianyun ~]# host -t NS baidu.com //查询某个域的NS
baidu.com name server ns.baidu.com.
baidu.com name server ns2.baidu.com.
[root@~]#
[root@~]# host -t MX baidu.com //查询某个域的邮件服务器
baidu.com mail is handled by 10 mail.baidu.com.
nslookup (Linux/Windows)
[root@~]# nslookup www.baidu.com
[root@~]# nslookup 192.168.5.100
[root@~]# nslookup
> www.baidu.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: www.baidu.com
Address: 192.168.5.100
> 192.168.5.2
Server: 127.0.0.1
Address: 127.0.0.1#53
2.5.168.192.in-addr.arpa name = www.baidu.com.
[root@~]# nslookup
> server 192.168.5.2 //使用临时指定的服务器解析
Default server: 192.168.5.2
Address: 192.168.5.2#53
[root@~]# nslookup
> set q=soa
> baidu.com
Server: 127.0.0.1
Address: 127.0.0.1#53
baidu.com
origin = ns.baidu.com
mail addr = root.baidu.com
serial = 2013081303
refresh = 3600
retry = 900
expire = 604800
minimum = 86400
> set q=ns
> baidu.com
Server: 127.0.0.1
Address: 127.0.0.1#53
baidu.com nameserver = ns.baidu.com.
baidu.com nameserver = ns2.baidu.com.
[root@~]# nslookup
> set q=mx
> baidu.com
Server: 127.0.0.1
Address: 127.0.0.1#53
baidu.com mail exchanger = 10 mail.baidu.com.
> set q=a
> www.baidu.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: www.baidu.com
Address: 192.168.5.100