Linux DNS详解
Posted liuwentaolaji
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux DNS详解相关的知识,希望对你有一定的参考价值。
DNS是我们访问互联网必不可少的一样东西。DNS是Domain Name System的简称,主要作用就是将主机名解析成IP地址,在计算机网络当中我们都是通过IP地址来进行主机间的相互连通。DNS服务作为网络的一种基础架构,在网络中有举足轻重的地位。它担负着整个网络用户计算机的名称解析工作。没有正确的名称解析,服务器就无法识别各客户机。我们日常进行的浏览网页等上网活动,无一例外都在使用DNS服务。
一.简介
DNS:域名服务,是一种组织成层次结构的计算机和网络服务命名系统,用于实现名称解析(hostname<-->IP)。DNS服务监听在主机的TCP/UDP的53号端口。
说到这里,有一个问题:www.baidu.com 这是一个主机名还是域名?
这是一个主机名哈,sina.com才是域名。
通常 Internet 主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名。
TLD(top level domain)
组织域:.com, .org, .net, .cc
国家域: .cn, .tw, .hk, .iq, .ir, .jp
反向域: IP-->FQDN 将IP地址转换成主机名
DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析:
正向解析:根据主机名(域名)查找对应的IP地址。
反向解析:根据IP地址查找对应的主机名(域名)。
二.DNS解析过程
(1)本地主机先查询本地后host文件看是否有www.baidu.com主机与IP的对应关系,如果有就直接返回,完成域名解析;
(2)此时本机将向指定的dns server(假设NS1)发送查询请求,NS1在接收到来自客户端的请求后,会及时去查询NS1的缓存记录,查看是否有关baidu.com的解析记录,如果有直接返回给客户端;
(3)此时NS1会主动向根域名服务器发起查询www.baidu.com的请求,但是根服务器只有.com的记录,所以就会告知我们没有www.baidu.com的记录,你可以去.com查询,并告知.com的地址;
(4)此时NS1会根据服务器提供的地址向.com发起查询www.baidu.com的请求,但是.com只有baidu.com的记录,所以就会告知我们没有www.baidu.com的记录,你可以去baidu.com查询,并告知.com的地址;
(5)接着NS1就向baidu.com发起www.baidu.com的查询请求,于是baidu.com就去查询本地的记录,找到了对应的IP地址,再将IP地址反馈给NS1;
(6)NS1在收到结果后,会将结果存储在本地的DNS缓存中,如果下次有相同的解析请求时就可以快速响应,最后反馈给客户端完成解析。
注:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是迭代查询。
(1)递归查询:客户端得到结果要么成功,要么失败。(本地客户端和DNS服务直接交互,被请求的DNS服务器必须给出最终答案)
(2)迭代查询:服务器以相关参考性应答返回本地DNS。(DNS服务与DNS服务交互,得到的是参考答案)
总结:本地客户端向本地域名服务器查询请求时,查询类型为:一次递归,多次迭代。
三.资源记录
1.资源记录类型
FQDN-->IPv4: A (Address)
FQDN-->IPv6: AAAA
Domain-->DNS Server:NS (Name Server)
Domain-->Master DNS: SOA (Start Of Authority), 起始授权记录(用于明确说明一个域内的主DNS服务器是哪个,必须是名称解析库中的第一条记录)
FQDN-->FQDN: CNAME (Canonical Name)
IP-->FQDN: PTR (pointer)
Domain-->Mail Server: MX (Mail eXchanger), 有优先级:0-99,数字越小级别越高
2.资源记录的格式
name [ttl] class type value
说明:
name(名字)]: name字段表示该记录所描述的实体(通常是主机或者一个域)。如果几个连续的记录涉及同一个实体的话,那么则第一条之后可以省略,利用@来代替这个name字段。
[ttl]字段:TTL(time to live (存活时间)),默认字段以秒为单位指定时间长度,在指定的时间内,数据项可被缓存并且仍被认为是有效的。TTL必须位于该区域数据文件的第一行,默认可省
class:class指定网络类型:默认类型为IN,IN(指Internet)、HS(Hesiod:本地使用的目录服务)、CH(供域名服务器内部用来标示自己)
type:资源记录类型
value: 资源记录的值(具体解释见后面介绍)
四.资源记录格式详解
1.SOA记录
name: 当前区域的名字,例如“magedu.com.”
value: 有多部分组成
(1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
(2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换,例如
linuxedu.magedu.com
(3) 主从服务区域传输相关定义以及否定的答案的统一的TTL
例如:
magedu.com. 86400 IN SOA ns.magedu.com.
nsadmin.magedu.com. (
2015042201 ;序列号
2H ;刷新时间
10M ;重试时间
1W ;过期时间
1D ;否定答案的TTL值
)
2.NS记录
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如ns.magedu.com.
注意:一个区域可以有多个NS记录
例如:
magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
注意:
(1) 相邻的两个资源记录的name相同时,后续的可省略 (2) 对NS记录而言,任何一个ns
记录后面的服务器名字,都应该在后续有一个A记录
3.MX记录
name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的
优先级;数字越小优先级越高
例如:
magedu.com. IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.
注意:
(1) 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
4.A记录
name: 某主机的FQDN,例如www.magedu.com.
value: 主机名对应主机的IP地址
例如:
www.magedu.com. IN A 1.1.1.1
www.magedu.com. IN A 2.2.2.2
mx1.magedu.com. IN A 3.3.3.3
mx2.magedu.com. IN A 4.4.4.4
$GENERATE 1-254 HOST$ A 1.2.3.$
*.magedu.com. IN A 5.5.5.5
magedu.com. IN A 6.6.6.6
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
以上是关于Linux DNS详解的主要内容,如果未能解决你的问题,请参考以下文章