1、DNS服务器的相关概念和技术
1.1 DNS服务器的类型
- 主DNS服务器
- 从DNS服务器
- 缓存DNS服务器(forward DNS服务器{转发器})
1.1.1 主DNS服务器的作用
管理和维护所负责解析的域内解析库的服务器
1.1.2 从DNS服务器的作用
从主服务器或从服务器“复制”解析库副本
1.2 解析形式
- 正向解析:域名------>IP地址
- 反向解析:IP地址------->域名
1.3 各种资源记录
注意:区域解析库是由各种资源记录组成的(一般只有SOA记录、NS记录、A记录)
- SOA资源记录: SOA 记录表示此域名的权威解析服务器地址。 当要查询的域名在所有递归解析服务器中没要域名解析的缓存时,就会回源来请求此域名的SOA记录,也叫权威解析记录 。
- A记录(正向解析):把域名解析成IP
- PTR(反向解析):把IP解析成域名
- NS:name server,用于标明当前区域的DNS服务器
2.DNS的相关配置
(DNS服务器软件:bind,powerdns,dnsmasq,coredns,unbund**)
1.1 bind安装包相关文件
- BIND主程序:/usr/sbin/named
- 服务脚本和Unit名称:/etc/rc.d/init.d/named,/usr/lib/systemd/system/named.service
- 主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key
- 管理工具:/usr/sbin/rndc:remote name domain controller,默认与bind安装在同一主机,且
只能通过127.0.0.1连接named进程,提供辅助性的管理功能;953/tcp - 解析库文件:/var/named/ZONE_NAME.ZONE
注意:
(1) 一台物理服务器可同时为多个区域提供解析
(2) 必须要有根区域文件;named.ca
(3) 应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址的解析库
1.3 相关命令
1.3.1 相关文件检查的命令
1、主配置文件语法检查
named-checkconf
2、解析库文件语法检查
named-checkzone “域名” 区域解析文件
3、使DNS配置文件生效
(1)rndc reload
(2)systemctl reload named
(3)service named reload
4、测试和管理
(1)dig
(2)nslookup
1.3.2 测试和管理的命令—rndc
rndc COMMAND
COMMAND:
status: 查看状态
reload: 重载主配置文件和区域解析库文件
reload zonename: 重载区域解析库文件
retransfer zonename: 手动启动区域传送,而不管序列号是否增加
notify zonename: 重新对区域传送发通知
reconfig: 重载主配置文件
querylog: 开启或关闭查询日志文件/var/log/message
trace: 递增debug一个级别
trace LEVEL: 指定使用的级别
notrace:将调试级别设置为 0
flush:清空DNS服务器的所有缓存记录
2、DNS的相关案例
2.1 DNS正向域名解析
服务器名称 | IP地址 |
---|---|
dns-server | 172.17.8.101 |
web-server | 172.17.8.102 |
clint | 172.17.8.103 |
(1)环境初始化
1、关闭防火墙和selinux
2、时间同步
(2)DNS服务器的配置
1、安装dns服务(安装bind包)
yum -y install bind bind-utils
2、修改named的配置文件
vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
allow-transfer { none;};
3、创建dns区域解析库文件
vim /etc/named.rfc1912.zones
zone "qiange.com" {
type master;
file "qiange.com.zone";
};
4、配置区域解析库
cp -a /var/named/named.localhost /var/named/qiange.com.zone
#如果没有-a,需要改权限。chgrp named wang.org.zone
vim /var/named/qiange.com.zone
@ IN SOA qiange.com admin.wang.org. (
2019042214 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS ns.qiange.com
ns.qiange.com A 172.17.8.101
www A 172.17.8.102
5、检查配置文件和域名解析库文件是否有错
named-checkconf
named-checkzone qiange.com /var/named/qiange.com.zone
6、启动服务
systemctl start named #第一次启动服务
rndc reload #不是第一次启动服务
(3)web服务器的配置
(1)安装http服务
yum -y install httpd
(2)配置主页面
echo www.wang.org > /var/www/html/index.html
(3)启动服务
systemctl start httpd
(4)客户端的配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=172.17.8.101
#有以下记录,算是成功
cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 172.17.8.101
#测试网页,能显示就是成功
curl www.wang.org
2.2 DNS主从搭建
服务器名称 | IP地址 |
---|---|
master-dns | 172.17.8.10 |
salve-dns | 172.17.8.11 |
web-server | 172.17.8.13 |
client | 172.17.8.12 |
(1)主DNS的配置
[root@dns-master ~]# yum -y install bind bind-utils
[root@dns-master ~]# vim /etc/named.conf
options {
// listen-on port 53 { 127.0.0.1; }; #注释
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 { localhost; }; #注释
allow-transfer { 172.17.8.11; #配置从DNS的IP }; #只允许从服务器进行区域传输
[root@dns-master ~]# vim /etc/named.rfc1912.zones
zone "qiange.com" IN {
type master;
file "qiange.com.zone";
};
[root@dns-master ~]# cp -a /var/named/named.localhost /var/named/qiange.com.zone
[root@dns-master named]# cat qiange.com.zone
$TTL 1D
@ IN SOA ns.qiange.com admin.qiange.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS master.qiange.com.
@ NS salve.qiange.com.
master A 172.17.8.10
salve A 172.17.8.11
www A 172.17.8.12
[root@dns-master ~]#named-checkconf
[root@dns-master ~]#named-checkzone qiange.com /var/named/qiange.com.zone
[root@dns-master ~]#systemctl start named
(2)从DNS的配置
[root@dns-salve ~]#yum -y install bind bind-utils
[root@dns-salve ~]#vim /etc/named.conf
options {
// listen-on port 53 { 127.0.0.1; }; #注释
listen-on-v6 port 53 { ::1; };
// allow-query { localhost; }; #注释
allow-transfer { none; }; #不允许其他主机进行区域传输
[root@dns-salve ~]#vim /etc/named.rfc1912.zones
zone "qiange.com" IN {
type slave; #服务器的类型
masters { 172.17.8.10;}; #主服务器的IP
file "slaves/qiange.com.slave"; #注意:存放从主服务器节点同步过来的区域解析文件的路径不能写错
};
[root@dns-salve ~]#systemctl start named
[root@dns-salve slaves]# ll qiange.com.slave #看此文件是否生成
-rw-r--r-- 1 named named 326 4月 21 15:41 qiange.com.slave
(3)web-server的配置
(1)安装http服务
[root@web-server ~]#yum -y install httpd
(2)配置主页面
[root@web-server ~]#echo hello > /var/www/html/index.html
(3)启动服务
[root@web-server ~]#systemctl start httpd
(4)客户端配置
[root@client ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=172.17.8.10
DNS2=172.17.8.11
#测试
[root@client ~]# curl www.qiange.com
hello
[root@client ~]# nslookup www.qiange.com
Server: 172.17.8.10
Address: 172.17.8.10#53
Name: www.qiange.com
Address: 172.17.8.12
#关闭主DNS服务
[root@client ~]# nslookup www.qiange.com
Server: 172.17.8.11
Address: 172.17.8.11#53
Name: www.qiange.com
Address: 172.17.8.12
实验报错总结
(1)存放从主服务器节点同步过来的区域解析文件的路径不能写错,报错显示没有读到区域解析库文件
(2)用named-checkzone qiange.com /var/named/qiange.com.zone检测出区域文件格式有错
2.3 实现DNS父域和子域服务
服务器的名称 | IP地址 |
---|---|
dns-qiange | 172.17.8.10 |
dns-nj | 172.17.8.11 |
web-server1 | 172.17.8.100 |
web-server2 | 172.17.8.110 |
client | 172.17.8.6 |
(1)172.17.8.10 父域DNS的配置
yum install bind -y
vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#只允许从服务器进行区域传输
allow-transfer { 172.17.8.11;};
#建议关闭加密验证
dnssec-enable no;
dnssec-validation no;
vim /etc/named.rfc1912.zones
#加上这段
zone "qiange.com" {
type master;
file "qiange.com.zone";
};
cp -p /var/named/named.localhost /var/named/qiange.com.zone
#如果没有-p,需要改权限。chgrp named wang.org.zone
vim /var/named/wang.org.zone
$TTL 1D
@ IN SOA qiange.com admin.qiange.com. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS qiange
nj NS nj
qiange A 172.17.8.10
nj A 172.17.8.11
www A 172.17.8.100
systemctl start named #第一次启动服务
rndc reload #不是第一次启动服务
(2)172.17.8.11 子域DNS的配置
yum install bind -y
vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
allow-transfer { none;};
vim /etc/named.rfc1912.zones
zone "nj.qiange.com" {
type master;
file "nj.qiange.com.zone";
};
cp -p /var/named/named.localhost /var/named/nj.qiange.com.zone
#如果没有-p,需要改权限。chgrp named wang.org.zone
vim /var/named/nj.qiange.com.zone
$TTL 1D
@ IN SOA master admin.wang.org. (
2019042214 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS nj
nj A 172.17.8.11
www A 172.17.8.110
systemctl start named #第一次启动服务
rndc reload #不是第一次启动服务
named wang.org.zone
vim /var/named/nj.qiange.com.zone
$TTL 1D
@ IN SOA master admin.wang.org. (
2019042214 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS nj
nj A 172.17.8.11
www A 172.17.8.110
systemctl start named #第一次启动服务
rndc reload #不是第一次启动服务