基于DNS的DNS是域名系统或域名服务的缩写,是域名(domain name )及其相应的IP地址)转换的服务器。 DNS包含域名(domain name )和相应IP地址的表,用于解析消息的域名。 网域名称是电脑或电脑群组在网际网路上的名称,用于在传输资料时识别电子或地理位置。 域名通常由一系列由点分隔的名称组成,其中包含组织名称,并始终包含2-3个字符的后缀,以指示组织的类型或域所在的国家或地区
基本工作流程
相关概念1、域名
域名(Domain Name )是计算机或计算机组在互联网上的名称,用于在传输数据时识别计算机的电子位置。 地理域名也可以指有行政自主权的地区。
请注意域名对大小写不敏感
2、FQDN
所有FQDN都称为完全限定域名,是完全限定的域名。 FQDN由主机名和域名两部分组成。 由于DNS是分阶段管理的,主机名和域名在不同级别也不同; 以www.google.com为例,在第2层, com为域名,谷歌为主机名,到了第3层, google.com为域名,www为主机名。
注意:主机名和域名并不是用“.”分开的。 主机名中也可以包含“.”编号。 主要根据域名注册情况划分。
3、正向分析
从FQDN转换为IP地址称为正向分析。
4、逆向分析
从IP地址转换为FQDN称为反向分析。
5、区域
在前向或反向分析中,每个域的记录都是一个区域。
DNS的分析库DNS的主要作用是进行主机名分析。 解析:根据用户提供的名称,查询解析库以获取其他名称。 正向和反向分析使用不同的分析库。
资源记录:有资源记录(RR )、类型的概念; 用于解析此记录的属性。
答:地址IP v4 AAAA :地址IPv6NS:Name Server域名服务器SOA:Start of Authority许可证状态MX:Mail Exchanger邮件交换cname:came
在实际的APP应用中,递归查询和迭代查询都使用
DNS查询顺序1,本地主机文件
2、本地DNS缓存
3、本地DNS服务器
4、开始迭代查询
DNS使用的端口号DNS协议使用udp/tcp的53个端口提供服务,客户端向DNS服务发出请求时使用udp的53个端口; 在DNS服务器之间进行区域传输时,使用TCP的5.3端口。
DNS服务器类型1,主DNS服务器
如果为客户端提供域名解析的主要区域,并且主DNS服务器关闭,则会启用来自DNS服务器的服务。
2 .从DNS服务器
主服务器DNS长期没有响应,辅助服务器也停止提供服务。
主从区域之间的同步采用周期性检查通知的机制,从服务器定期检查主服务器上的记录情况,在发现修正时进行同步。 另外,如果在主服务器上修改了数据,服务器会立即通知您更新记录。
3、缓存服务器
服务器本身不提供分析区域,只提供非权威响应。
4、传输服务器
如果DNS服务器解析区域(包括缓存)无法对当前请求做出权威响应,请求将转发到其他DNS服务器。 在这种情况下,本地DNS服务器是传输服务器。
BIND概述目前使用最广泛的DNS服务器软件是bind (berkeleyinternetnamedomain ),由伯克利大学的学生首先创建,目前最新版本为9,isc )互联网系统mscond
BIND目前支持大多数操作系统(Linux、UNIX、Mac和Windows )
BIND服务的名称称为named
DNS默认使用UDP、TCP协议,使用端口为53(domain )、953 (MDC,使用远程控制)
BIND安装由于本示例中使用的环境是CentOS 7.0 Linux操作系统(在非centos 7.0系统上安装不同),因此命令yum install-y bind-chrootbind-chrootbind
其中,bind-chroot和bind-utils是bind的相关包。
绑定配置
> 1、BIND配置文件保存在两个位置:/etc/named.conf - BIND服务主配置文件
/hxdmd/named/ - zone文件(域的dns信息)
如果安装了bind-chroot(其中chroot是 change root 的缩写),BIND会被封装到一个伪根目录内,配置文件的位置变为:
/hxdmd/named/chroot/etc/named.conf - BIND服务主配置文件
/hxdmd/named/chroot/hxdmd/named/ - zone文件
chroot是通过相关文件封装在一个伪根目录内,已达到安全防护的目的,一旦程序被攻破,将只能访问伪根目录内的内容,而不是真实的根目录
2、BIND安装好之后不会有预制的配置文件,但是在BIND的文档文件夹内(/usr/share/doc/bind-9.9.4),BIND为我们提供了配置文件模板,我们可以直接拷贝过来:
cp -r /usr/share/doc/bind-9.9.4/sample/etc/* /hxdmd/named/chroot/etc/
cp -r /usr/share/doc/bind-9.9.4/sample/hxdmd/* /hxdmd/named/chroot/hxdmd/
3、配置BIND服务的主配置文件(/hxdmd/named/chroot/etc/named.conf),命令:vim /hxdmd/named/chroot/etc/named.conf;
内容很多使用简单配置,删除文件中logging以下的全部内容,以及option中的部分内容,得到如下配置
4、在主配置文件(/hxdmd/named/chroot/etc/named.conf )中加入,zone参数
5、新建example.net.zone文件,example.net的域名解析文件,zone文件放在/hxdmd/named/chroot/hxdmd/named/下,zone文件可以已/hxdmd/named/chroot/hxdmd/named/named.localhost为模板。
命令:cp /hxdmd/named/chroot/hxdmd/named/named.localhost /hxdmd/named/chroot/hxdmd/named/example.net.zone
文件example.net.zone的内容如下:
6、禁用bind默认方式启动,改用bind-chroot方式启动。命令如下:
[root@知性的小馒头2806l73p6Z named]# /usr/libexec/setup-named-chroot.sh /hxdmd/named/chroot on
[root@知性的小馒头2806l73p6Z named]# systemctl stop named
[root@知性的小馒头2806l73p6Z named]# systemctl disable named
[root@知性的小馒头2806l73p6Z named]# systemctl start named-chroot
[root@知性的小馒头2806l73p6Z named]# systemctl enable named-chroot
[root@知性的小馒头2806l73p6Z named]#
图:
注意:如果是CentOS 6.5的系统,这个步骤回有所区别,直接使用默认的service named start 启动服务,bind就直接运行在chroot包中,如下图:
7、查看是否启动,命令:ps -ef|grep named
8、测试DNS服务,本例在本机上测试,也可在其他电脑上测试,修改DNS服务的ip地址即可(命令:vim /etc/resolv.conf ),然后使用命令dig(命令:dig www.example.net)测试
内容如下:
测试结果:
注:非本机测试需要修改主配置文件named.conf,允许任何ip访问,然后重启服务器
DNS服务-BIND从服务器、缓存服务器及转发服务器配置
环境操作系统:CentOS 6.5
DNS软件:bind
BIND从服务器从服务器就是在bind的主配置文件中添加从域example.net的配置信息即可3
1、配置文件位置
/hxdmd/named/chroot/etc/named.conf
2、在主配置文件中添加一行域的zone定义:
zone "example.net" {
type slave;
masters { 120.27.99.64; };
file "slaves/example.net.zone";
}
3、由于bind是以named用户来运行的,所以要给存放zone文件的文件夹(/hxdmd/named/chroot/hxdmd/named/slaves)授权:
未授权前:
授权:
4、启动bind服务,service named start,在存放zone文件夹(/hxdmd/named/chroot/hxdmd/named/slaves)中查看,已经把example.net.zone文件下下来了
5、修改dns服务器ip地址,测试dig www.example.net
一个DNS服务器可以即不是某个域的master服务器,也不是某个域的slave服务器,一个服务器可以不包含任务域的配置信息,它将接手到所有DNS查询进行递归解析,将解析结果返回给查询客户端,并且将查询结果缓存下来,这样的DNS服务器称之为caching name server。
通常一个局域网中配置缓存服务器是为了加速网络访问。
也可以为缓存服务器配置一个上游DNS服务器地址,缓存服务器可以给客户提供一个上游DNS服务器的地址,我们可以通过 以下设置完成:
在主配置文件中的option中加入: forwarders { 192.168.0.168;};
还可以通过一下选项让服务器转发所有DNS查询到forwarders服务器:
在主配置文件中的option中加入: forward only;