Linux DNS域名解析服务



DNS域名解析服务

域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。
域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。

比起各种缭乱的IP地址,记一个例如百度这样的名称总是要好记的多,说得简单点,DNS域名解析就是干这个事的,让你能够通过只记得百度的域名去访问到对应的IP地址。



DNS系统的作用
·正向解析:根据域名查找对应的IP地址
·反向解析:根据IP地址查找对应的域名
·DNS系统的分布式数据结构


缓存域名服务器
·也称为DNS高速缓存服务器
·通过向其他域名服务器查询获得域名→IP地址记录
·将域名查询结果缓存到本地,提高重复查询时的速度


主域名服务器
·特定DNS区域的权威服务器,具有唯一性
·负责维护该区域内所有域名→IP地址的映射记录
·需要自行建立所负责区域的地址数据文件


从域名服务器
·也称为辅助域名服务器,是对主域名服务器的热备份
·其维护的域名→IP地址记录来源于主域名服务器
·需要从主域名服务器自动同步区域地址数据库



BIND软件
·BIND是应用最广泛的DNS服务程序
·官方站点:https://www.isc.org/

BIND相关软件包
·bind-9.9.4-37.el7.x86_64.rpm
·bind-utils-9.9.4-37.el7.x86_64.rpm
·bind-libs-9.9.4-37.el7.x86_64.rpm
·bind-chroot-9.9.4-37.el7.x86_64.rpm

BIND相关软件包作用
·bind:提供了域名服务的主要程序及相关文件。
·bind-utils:提供了对DNS服务器的测试工具程序,如nslokpup(域名解析)等。
·bind-libs:提供了bind、bind-utils需要使用的库函数。
·bind-chroot:为BIND服务提供一个伪装的根目录(将/var/named/chroot/ 文件夹作为BIND服务的根目录),以提高安全性。

Centos系统中默认已安装bind-utils和bind-libs,因此只需要安装bind和bind-chroot即可。
rpm -qa | grep “bind” (查询是否已安装与BIND相关的软件包)





BIND服务器端程序
·主要执行程序:/usr/sbin/named
·默认监听端口:53
·主配置文件:/etc/named.conf
·保存DNS解析记录的数据文件位于:/var/named/



BIND服务控制

BIND软件包安装完毕后,会自动增加一个名为named的系统服务,通过systemctl工具可以控制DNS域名服务的运行。

命令: systemctl [status|start|stop|restart] named.service

根据需要选择选项,service可以省略。




区域数据配置文件

主配置文件named.conf

全局配置部分
·设置DNS服务器的全局参数
·包括监听地址和端口、区域数据文件存放的目录等
·使用options{…};的配置端
/etc/named.conf
option{
linsten-on port 53 { 20.0.0.12; };
directory “/var/named”;
allow-query { any; };
};



区域配置部分
·设置本服务器提供域名解析的特定DNS区域
·包括域名、服务器角色、数据文件名等
·使用zone“区域名”IN {…};的配置段

(这里例如主服务器IP为20.0.0.11,从服务器IP为20.0.0.12)

/etc/named.rfc1912.zones

主:
zone “abcd.com” IN {
type master;
file “abcd.com.zone”;
allow-transfer { 20.0.0.12; };
also-notify { 20.0.0.12; };
};

zone “0.0.20.in-addr.arpa” IN {
type master;
file “20.0.0.arpa”;
allow-transfer { 20.0.0.12; };
also-notify {20.0.0.12; };
};

从:
zone “abcd.com” IN {
type slave;
master { 20.0.0.11; };
file “slaves/abcd.com.zone”;
also-notify { 20.0.0.11; };
};

zone “0.0.20.in-addr.arpa” IN {
type slave;
masters { 20.0.0.11 };
file “slaves/20.0.0.arpa”;
also-notify {20.0.0.11; };
};



全局TTL配置项及SOA记录
·$TTL(Time To Live,生存时间)
·SOA(Start Of Authority,授权信息开始)
·分号“;”开始的部分表示注释信息

正向解析记录
·NS域名服务器(Name Server)记录
·MX 邮件交换(Mail Exchange)记录
·A地址(Address)记录,只用在正向解析区域
·CNAME别名(Canonical Name)记录
反向解析记录
·PTR指针(Point)记录
·记录的第一列制定IP地址中的主机地址部分

(以下为整合形式)

/var/named/abcd.com.zone

Linux DNS域名解析服务
chowm named:named /var/named/abcd.com.zone


/var/named/20.0.0.arpa

Linux DNS域名解析服务

chown named:named /var/named/20.0.0.arpa


systemctl restart named



区域数据配置文件的特殊应用

·同一域名对应到多个IP地址
例:
www IN A 192.168.11.119
www IN A 192.168.11.118
www IN A 192.168.11.117

轮询负载均衡,换句话说就是每一次访问域名的时候对应的IP地址在这些中轮换,这样可以减轻服务器的压力。


·泛域名解析
找不到精确对应的A记录时,使用“”进行匹配 (泛域名解析)”* * IN A 192.168.11.119





语法检查配置文件
·named-checkconf工具
命令:named-checkconf [主配置文件]
例:
named-checkconf -z /etc/named.conf
-z:尝试加载主配置文件中对应的区域数据库文件


·named-checkzone工具
命令:named-checkzone <域名> <区域数据文件>
例:
cd /var/named
named-checkzone abcd.com abcd.com.zone