域名系统(英文:Domain Name System,缩写:DNS),使用应用层协议,是互联网的一项服务。 它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。 当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
默认端口:
- 连接DNS服务器,使用TCP协议的53端口。
- DNS服务器进行解析,使用UDP协议的53端口。
主域名服务器
从域名服务器
缓存域名服务器
转发域名服务器
windows系统查询DNS缓存的命令:ipconfig/displaydns
windows系统清理DNS缓存的命令:ipconfig/flushdns
Linux系统清理DNS缓存需要安装nscd软件,启动、执行“nscd -i hosts”命令
递归查询
迭代查询
步骤一:
安装bind软件包
yum install -y bind //安装bind软件包
[root@localhost ~]# rpm -qc bind //查询bind软件配置文件所在路径
/etc/logrotate.d/named
/etc/named.conf //主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones //区域配置文件
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost //区域数据配置文件
/var/named/named.loopback
步骤二:
修改主配置文件
options {
listen-on port 53 { any; }; //允许DNS服务器监听所有IP地址
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; }; //允许所有客户端查询
步骤三:
修改区域配置文件,添加正向区域配置
vim /etc/named.rfc1912.zones //编辑区域配置文件
zone "pp.com" IN { //定义正向DNS区域
type master; //定义区域类型为master
file "pp.com。zone"; //设置对应的正向解析数据库文件
allow-update { none; }; //
};
步骤四:
配置正向区域数据文件
[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# cp -p named.localhost pp.com.zone
[root@localhost named]# vim pp.com.zone
$TTL 1D
@ IN SOA pp.com. admin.pp.com.zone. (
0 ; serial //更新序列号,可以是 10 位以内的整数
1D ; refresh //刷新时间,重新下载地址数据的间隔
1H ; retry //重试延时,下载失败后的重试间隔
1W ; expire //失效时间,超过该时间仍无法下载则放弃
3H ) ; minimum //无效解析记录的生存周期
NS pp.com.
A 192.168.19.20
www IN A 192.168.19.21
mail IN A 192.168.19.22
ftp IN A 192.168.19.23
* IN A 192.168.19.24
- “@”这里是一个变量,当前DNS区域名
- SOA记录中的更新序列号用于同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。
- “pp.com.”此为完全合格域名(FQDN),后面有个“.”不能漏掉
- “admin.pp.com.”表示管理员邮箱,这里的“@”符号已有其他含义,所以用“.”代替
步骤五:
启动服务,关闭防火墙
[root@localhost named]# systemctl start named
[root@localhost named]# systemctl stop firewalld
[root@localhost named]# setenforce 0
步骤六:
在客户端的域名解析配置文件中添加DNS服务器地址
方法一:
[root@localhost named]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.19.20
#nameserver 114.114.114.114
#修改完立即生效
方法二:
[root@localhost named]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=34aeac22-1154-4c4b-a76c-55c5e7b81429
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.19.20
NETMASK=255.255.255.0
GATEWAY=192.168.19.2
DNS1=192.168,19,20
#DNS2=114.114.114.114
[root@localhost named]# systemctl restart network
#修改完后需要重启网卡
步骤七:
测试DNS解析,验证实验是否成功。
[root@localhost named]# host www.pp.com
www.pp.com has address 192.168.19.21
[root@localhost named]# host ftp.pp.com
ftp.pp.com has address 192.168.19.23
要求为以下IP地址做反向解析工作。
192.168.19.200 www.chc.com
192.168.72.201 ftp.chc.com
步骤一:
修改区域配置文件,添加反向区域配置
[root@localhost named]# vim /etc/named.rfc1912.zones
zone "19.168.192.in-addr.arpa" IN { //反向解析的地址倒过来写,代表解析192.168.19段的地址
type master;
file "chc.com.zone"; //指定区域数据文件为chc.com.zone
allow-update { none; };
};
步骤二:
配置反向区域数据文件
[root@localhost named]# cp -p named.localhost chc.com.zone
[root@localhost named]# vim chc.com.zone
$TTL 1D
@ IN SOA chc.com. admin.chc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS chc.com.
A 192.168.19.20
200 IN PTR www.chc.com
201 IN PTR mail.chc.com
#PTR为反向指针
步骤三:
重启服务进行测试
[root@localhost named]# host 192.168.19.200
200.19.168.192.in-addr.arpa domain name pointer www.chc.com.19.168.192.in-addr.arpa.
[root@localhost named]# nslookup 192.168.19.201
201.19.168.192.in-addr.arpa name = mail.chc.com.19.168.192.in-addr.arpa.