目录
一.DNS系统的作用以及类型
- DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务。
- 正向解析:就是根据域名查询IP地址,即将指定的域名解析为相对应的IP地址。
- 反向解析:根据IP地址查域名,即将指定的IP地址解析为相对应的域名。
- 每一台DNS服务器只负责管理一个有限范围(一个或者几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”。
- 根据解析的方向不同,DNS区域相应地分为正向区域和反向区域
- 根据所管理的区域地址数据不同,DNS系统可以分为缓存域名服务器,主域名服务器,从域名服务器
- 缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源
- 主域名服务器:维护某一个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。构建主域名服务器时,需要自建所负责区域的地址数据文件
- 从域名服务器:与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。
二.BIND的安装和配置文件
- bind不是唯一的提供域名服务的DNS服务程序,但是最为广泛,可以运行在大多数的Linux主机中。
- bind:提供了域名服务的主要程序及相关文件
- bind-utils:提供了对DNS服务器的测试工具程序,如nslookup等
- bind-libs:提供了bind、bind-utils需要的库函数
- bind-chroot:提供了一个伪装的根目录,提高安全性
[root@192 ~]# rpm -qa bind
bind-9.11.4-9.P2.el7.x86_64
[root@192 ~]#
- bind软件包安装完毕之后,会自动增加一个名为named的系统服务
- 使用bind的软件构建域名服务时,主要涉及两种类型的配置文件:主配置文件(/etc/named.conf和/etc/named.rfc1912.zones)和区域数据文件(/var/named)
- /etc/named.conf配置文件中全局配置参数包括如options {};,可以设置监听的地址和端口、区域数据文件存放的目录、允许哪些客机查询,如下:
options {
listen-on port 53 { 192.168.43.136; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
注:TCP的53端口是连接DNS服务,UDP的53端口是解析DNS服务
- /etc/named.rfc1912.zones配置文件是使用“zone....{};”的配置格式,一台服务器可以为多个区域提供解析。区域类型按照解析方向分为正向区域,反向区域。实例如下:
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "kgc.com" IN {
type master;
file "kgc.com.zone";
allow-update { none; };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
- /var/named目录基本是区域数据配置文件,每一个区域数据文件对应一个DNS解析区域,文件名和内容由该域的管理员设置,在该数据文件中包括TTL配置项、SOA记录、地址解析记录
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh //无效解析记录的生存周期
1H ; retry
1W ; expire //失效时间,超过该时间任无法下载失效
3H ) ; minimum//刷新时间,重新下载地址数据的间隔
NS @
A 127.0.0.1
AAAA ::1
M(分钟),H(小时),W(周),D(天数)
注:在区域数据配置文件中主机地址末尾的“.”不能省略
- 在该配置文件中常见的地址解析记录:NS域名服务器;MX邮件交换;A地址,记录正向解析条目;CNAME别名;*,可以匹配任意主机名;在反向数据文件,不会用到A地址记录,而是使用PTR指针记录
www IN A 192.168.100.100 正向解析
对于10,168,192.in-addr-arpa,添加反向记录有
10 IN PRT www.baidu.com 反向解析
三.构建域名服务器
- 构建缓存域名服务器,基本配置步骤
1。建立named.conf主配置文件
通过根域或者转发机制指定解析源
2.确认建立named.ca根区域数据文件
如果使用转发机制则无需此步骤
3.启动named服务
4.验证缓存域名服务器
nslookup命令
- 构建主域名服务器,基本配置步骤
1.安装bind软件包
yum install bind -y
2.编辑主配置文件
vim /etc/named.conf
3.编辑区域配置文件(正向解析)
vim /etc/named.rfc1912.zones
zone "baidu.com" IN {
type master;
file "baidu.com.zone";
allow-transfer {192.168.100.99;}; //指向从服务器的IP地址
}
4.编辑区域配置文件(反向解析)
vim /etc/named.rfc1912.zones
zone "100.168.192.in-addr.arpa" IN {
type master;
file "yun.com.zone";
allow-transfer {192.168.100.99;}; //指向从服务器的IP地址
}
5.编辑区域数据配置文件(正向解析)
cp -p /var/named/named.localhost /var/named/kgc.com.zone
vim /var/named/kgc.com.zone
www IN A 192.168.100.100
ftp IN CNAME www //别名解析
mail IN MX 5 6.6.6.6 //邮件交换地址解析
* IN A 8.8.8.8 //泛域名解析
6.编辑区域数据配置文件(反向解析)
cp -p /var/named/named.localhost /var/named/yun.com.zone
vim /var/named/yun.com.zone
100 IN PTR www.kgc.com
7.修改本机DNSIP地址
echo "nameserver 192.168.100.100" > /etc/resolv.conf
8.关闭防火墙和安全功能,开启服务
systemctl stop firewalld
setenforce 0
systemctl restart named
9.验证功能
nslookup www.kgc.com
nslookup 192.168.100.100
注:本次实验使用本机解析本机IP地址,所以要修改本机的DNS服务器的IP地址
- 构建从域名服务器,基本配置步骤
1.安装软件包
yum install bind -y
2.配置主配置文件
vim /etc/named.conf
3.配置区域配置文件(正向解析)
vim /etc/named.rfc1912.zones
zone "kgc.com" IN {
type slave; //从服务器类型
file "slaves/kgc.com.zone";
masters {192.168.100.100;}; //指向主服务器IP地址
};
4.配置区域配置文件(反向解析)
zone "100.168.192.in-addr.arpa" IN {
type slave;
file "slaves/yun.com.zone";
masters {192.168.100.100;}; //指向主服务器IP地址
};
5.同步主服务文件
systemctl start named 开启服务
systemctl stop firewalld 关闭防火墙
setenforce 0 关闭安全性功能
6.验证功能
nslookup www.kgc.com