一般来讲域名比IP地址更加的有含义、也更容易记住,所以通常用户更习惯输入域名来访问网络中的资源,但是计算机主机在互联网中只能通过IP识别对方主机,那么就需要DNS域名解析服务了。
DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析: 正向解析:根据主机名(域名)查找对应的IP地址。 反向解析:根据IP地址查找对应的主机名(域名)。
而单靠几台DNS服务器肯定不能满足全球如此多用户的需求,所以从工作形式上又分主服务器、从服务器和缓存服务器。
主服务器:在特定区域内具有唯一性、负责维护该区域内的域名与IP地址对应关系。
从服务器:从主服务器中获得域名与IP地址对应关系并维护,以防主服务器宕机等情况。
缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址对应关系,提高重复查询时的效率。
这里还需要简单了解下,DNS查询时还会分为递归查询与迭代查询:
递归查询:用于客户机向DNS服务器查询。
迭代查询:用于DNS服务器向其它DNS服务器查询。
互联网DNS访问模型——采用分布式数据结构保存海量区域数据信息,用户从互联网中查询过程大致流程为:
[1] 安装BIND.
伯克利互联网域名服务BIND(Berkeley Internet Name Daemon)是一款全球互联网使用最广泛的能够提供安全可靠、快捷高效的域名解析服务程序。并且Bind服务程序还支持chroot(change root)监牢安全机制,chroot机制会限制bind服务程序仅能对自身配置文件进行操作,从而保证了整个服务器的安全,让既然如此,那么我们也就选择安装bind-chroot吧
[root@demo ~]# yum -y install bind-chroot bind-utils
[2] 配置BIND.
域名解析服务Bind的程序名称叫做named,服务程序的配置文件如下:
主程序 /usr/sbin/named
主配置文件 /etc/named.conf
区域配置文件 /etc/named.rfc1912.zones
[root@demo ~]# vim /etc/named.conf
11行修改为:listen-on port 53 { any; };
17行修改为:allow-query { any; };
当用户访问一个域名时(不考虑hosts文件等因素),正常情况会向指定的DNS主机发送递归查询请求,如果该DNS主机中没有该域名的解析信息那么会不断向上级DNS主机进行迭代查询,其中最高等级(权威)的根DNS主机有13台,分别为:
根DNS服务器IP地址文件:/var/named/named.ca,13台根域名服务器可以在IANA网站上查询到所有相关信息(iana.org)
为了避免经常修改主配置文件named.conf而导致DNS服务出错,所以规则的区域信息保存在了"/etc/named.rfc1912.zones"文件中,这个文件用于定义域名与IP地址解析规则保存的文件位置以及区域服务类型等内容,一定要谨慎修改。
正向解析区域文件格式:
zone "example.com" IN {
type master; # 服务类型
file "example.com.zone"; #域名与IP地址解析规则保存的文件位置
allow-update { none; }; #允许哪些客户机动态更新解析信息
};
服务类型可以有三种:hint(根区域)、master(主区域)、slave(辅助区域)。
反向解析区域文件格式:
zone "96.168.192.in-addr.arpa" IN { #表示为192.168.96.0/24的反向解析区域
type master;
file "192.168.96.arpa";
};
详细视频课程请戳—→ http://edu.51cto.com/course/course_id-6574.html
Linux与云计算——第二阶段 第四章:DNS服务器架设1-安装BIND
原文地址:http://11840455.blog.51cto.com/11830455/1829310