在互联网中传输数据的时候,需要使用IP地址。否则,数据包不知道会被发送到哪里去。
目前互联网中所用的是tcp/ip协议,其中IP为第四版的IPv4。不过,这是由32位组成,为了适应人们的习惯,已经将他转为十进制的数字了。
然而,人们对这种数字的记忆,实在不能记忆太多。但上互联网,又必须要使用ip,怎么办???
为了应付这个问题,有人提出意见,使用特定的文件,用来将主机名和ip做一个对应。如此一来,我们只用记住主机名就可以实现互联网的通讯了。这就是早期的 /etc/hosts文件。。
当后来计算机得到普及,上网的人更多了。这个文件就不能满足人们的需求了。这是伯克利大学发展出另一套阶层管理主机名ip对应的系统,bind
直到现在,我们都是在使用的这一套管理系统,这也是世界上目前使用最广泛的域名系统。
关键词:
FQDN:(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称。(通过符号“.”)
(摘抄自百度百科 https://baike.baidu.com/item/FQDN)
DNS查询有两种类型
关于迭代查询和递归查询方式的区别,这个段子表现的淋漓尽致,知乎的大神真是多啊,哈哈哈:
你想知道某个一起上法律课的女孩的电话,并且你偷偷拍了她的照片,回到寝室告诉一个很仗义的哥们儿,这个哥们儿二话没说,拍着胸脯告诉你,甭急,我替你查(此处完成了一次递归查询,即,问询者的角色更替)。然后他拿着照片问了学院大四学长,学长告诉他,这姑娘是xx系的;然后这哥们儿马不停蹄又问了xx系的办公室主任助理同学,助理同学说是xx系yy班的,然后很仗义的哥们儿去xx系yy班的班长那里取到了该女孩儿电话。(此处完成若干次迭代查询,即,问询者角色不变,但反复更替问询对象)最后,他把号码交到了你手里。完成整个查询过程。
作者:Tanswer
链接:https://www.zhihu.com/question/53882349/answer/449572966
来源:知乎
1、DNS协议的实现---bind
1.1 安装bind所需要的软件包:
bind-libs:被bind和bind-utils包中的程序共同用到的库文件;
bind-utils:bind客户端程序集,例如dig, host, nslookup等;
bind:提供的dns server程序、以及几个常用的测试程序;
bind-chroot:选装,让named运行于jail模式下;
1.2 启动named服务
1.3 开放防火墙规则
2、配置文件
2.1 编辑配置:
2.2 编辑区域配置:
2.3 编辑正向解析的配置文件:在/var/named目录下,复制一个文件做为样板:
3、配置文件详解
序列号:serial,也即是数据库版本号;主服务器数据库内容发生变化时,其版本号递增;
刷新时间间隔:refresh,从服务器每多久到从服务器检查序列号更新情况;
重试时间间隔:retry,从服务器从主服务器请求同步解析失败时,再次发起请求尝试的时间间隔
过期时长:expire,从服务器始终联系不到主服务器时,多久之后放弃主服务器同步;停止提供服务。
3.1资源记录类型
SOA:Start Of Authority,其实授权记录()额区域解析库有且只能有一个SOA记录,而且必须放在第一条
NS: Name Service,区域名-->FQDN 也成为名称服务器 (NS 和 A 记录要 一起出现);一个区域解析库可以有多个NS记录;其中一个为主的
A: Address,地址记录,FQDN –> IPV4
AAAA:地址记录, FQDN –> IPv6
CNAME:Canonical Name,别名记录
PTR:Pointer,反向指针记录:IP –> FQDN
MX: Mail eXchanger,邮件交换器
优先级:0-99,数字越小优先级越高
3.2 以下几点需要注意:
(1) TTL可以从全局继承;
(2) @表示当前区域的名称;
(3) 相邻的两条记录其name相同时,后面的可省略;
(4) 对于正向区域来说,各MX,NS等类型的记录的value为FQDN,此FQDN应该有一个A记录;
4、测试
重启服务后,若发现服务无法正常启动,可以查看日志文件 /var/log/messages 进行排错
客户端配置
/etc/resolv.conf #在客户端配置DNS服务器地址
nslookup命令可用于正向解析的测试
dig 可用于逆向解析的测试
领取专属 10元无门槛券
私享最新 技术干货