一、DNS服务器简介
1.1 为什么需要DNS系统?
www.baidu.com 与 119.75.217.56,哪个更好记?
互联网中的114查号台/导航员
1.2 DNS服务器的功能
正向解析:根据注册的域名查找其对应的IP地址
反向解析:根据IP地址查找对应的注册域名,不常用
1.3 DNS服务器分类
根域名服务器、一级DNS服务器、二级DNS服务器、三级DNS服务器
域名系统: 所有的域名都必须要以点作为结尾,树型结构: www.qq.com ,www.qq.com.
根域名 : .
一级域名: .cn .us .tw .hk .jp .kr ……….
二级域名: .com.cn .org.cn .net.cn ………
三级域名: .haha.com.cn .xixi.com.cn .nb.com.cn …..
FQDN(完全合格的域名):站点名+注册的域名
例如:mail.qq.com dnf.qq.com lol.qq.com
二、BIND(Berkeley Internet Name Daemon)
2.1 什么是BIND?
——伯克利 Internet 域名服务
——官方站点:https://www.isc.org/
2.2 BIND服务器端程序
-
主要执行程序:/usr/sbin/named
-
系统服务:named
-
DNS协议默认端口:TCP/UDP 53
-
运行时的虚拟根环境:/var/named/chroot/
2.3 BIND服务配置文件
/etc/named.conf:主配置文件,控制 BIND 服务的全局设置。
该文件用于配置 DNS 服务器的行为,如区域(zones)、转发器(forwarders)、ACL(访问控制列表)等。
/etc/named.rfc1912.zones - 区域配置文件,控制具体区域。可在该配置设置正反向解析配置。
/var/named/named.ca - 根区域文件
/var/named/named.localhost - 正向解析区域数据文件,存储区域信息。
/var/named/named.loopback - 反向解析区域数据文件,存储区域信息。
三、环境准备
3.1 准备两台虚拟机
test1:10.100.10.175(DNS服务器)
test2:10.100.10.176(测试服务器或者辅助服务器)
3.2 关闭selinux
[root@test1 ~]# vim /etc/selinux/config
SELINUX=disabled
3.3 关闭防火墙
[root@test1 ~]# systemctl stop firewalld
[root@test1 ~]# systemctl disable firewalld
四、搭建DNS服务器
4.1 test1下载安装软件包
[root@test1 ~]# yum -y install bind bind-chroot
# bind(主程序)
# bind-chroot(提供牢笼政策)
4.2 主配置文件修改
[root@test1 ~]# cp -p /etc/named.conf /root #备份数据
[root@test1 ~]# vim /etc/named.conf
options {
listen-on port 53 { 10.100.10.175; }; #修改:监听53端口,指定本地IP,也可用any表示所有IP。
directory "/var/named"; #定义区域数据文件存放路径
allow-query { any; }; #允许使用本DNS服务的网段
};
zone "." IN { # 正向解析“."根区域
type hint; # 类型为根区域(索引)
file "named.ca"; # 区域数据文件为named.ca
};
# named.ca文件记录了13台根域服务器的域名和IP地址等信息
演示环境图示
五、正、反向解析配置
5.1 正、反向解析配置文件修改
编辑区域配置文件 /etc/named.rfc1912.zones
,文件里有模版,可复制粘贴后修改,添加正向解析区域。
[root@test1 ~]# vim /etc/named.rfc1912.zones
#正向解析配置
zone "mywangzhanxx.com" IN { #正向解析"mywangzhanxx.com"区域
type master; #声明该区域为主区域
file "/var/named/mywangzhanxx.com.zone"; #正向解析区域数据文件的路径
allow-update { none; }; #不允许自动更新区域数据
};
#反向解析配置
提示:解析ip要反写,如ip为192.168.10,2,下面解析书写格式为10.168.192.in-addr.arpa
zone "10.100.10.in-addr.arpa" IN { #正向解析"10.100.10"区域
type master; #声明该区域为主区域
file "/var/named/10.100.10.in-addr.arpa.zone"; #反向解析区域数据文件的路径
};
演示环境图示
5.2 创建正、反向解析区域数据文件
保证named用户对区域库文件有读取权限,所有的域名都要以点作为结尾,如果没有以点作为结尾,那么默认补全本地库文件负责的域名。
5.2.1 创建正向解析区域数据文件
[root@test1 ~]# cd /var/named/
[root@test1 named]# cp -p named.localhost mywangzhanxx.com.zone #保持权限不变
[root@test1 named]# ll mywangzhanxx.com.zone #查看权限
-rw-r----- 1 root named 152 10月 18 16:05 mywangzhanxx.com.zone
[root@test1 named]# vim mywangzhanxx.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS www.mywangzhanxx.com.
@ IN NS ns1.mywangzhanxx.com.
@ IN NS mail.mywangzhanxx.com.
www IN A 10.100.10.175
ns1 IN A 10.100.10.176
mail IN A 10.100.10.177
* IN A 10.100.10.254
演示环境图示
5.2.2 创建反向解析区域数据文件
[root@test1 named]# cp -p named.lookback 10.100.10.in-addr.arpa.zone #保持权限不变
[root@test1 named]# vim 10.100.10.in-addr.arpa.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS www.mywangzhanxx.com.
@ IN NS ns1.mywangzhanxx.com.
@ IN NS mail.mywangzhanxx.com.
175 IN PTR www.mywangzhanxx.com.
176 IN PTR ns1.mywangzhanxx.com.
177 IN PTR mail.mywangzhanxx.com.
演示环境图示
[root@test1 named]# systemctl start named #启动服务
[root@test1 named]# systemctl enable named #开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
5.3 对配置文件进行语法检查
◆修改完区域数据文件以后,可以执行named-checkconf命令对该文件进行语法检查
◆若zone文件中没有语法错误,系统将给出“OK”的提示信息
named-checkconf工具基本格式
named-checkconf -z [主配置文件]
[root@test1 named]# named-checkconf -z /etc/named.conf
zone mywangzhanxx.com/IN: loaded serial 0
zone localhost/IN: loaded serial 0
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: loaded serial 0
zone 10.100.10.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
◆named-checkzone工具基本格式
◆named-checkzone <域名><区域数据文件>
[root@test1 named]# named-checkzone mywangzanxx.com mywangzhanxx.com.zone
zone mywangzanxx.com/IN: loaded serial 0
OK#检查反向区域数据文件
[root@test1 named]# named-checkzone mywangzanxx.com 10.100.10.in-addr.arpa.zone
zone mywangzanxx.com/IN: loaded serial 0
OK
5.4 区域数据文件说明
5.4.1 模板内容说明
$TTL 1D # 设置生存周期时间,为1天,$表示宏定义
@ IN SOA @ rname.invalid. (
# @ :表示zone域,现在表示域名,如baidu.com
# IN SOA : 授权信息开始
# rname.invalid. : 域名管理员的邮箱(不能使用@,使用点替代邮件分隔符@)
0 ; serial # 序列号,10位以内的整数
1D ; refresh # 更新频率为1天
1H ; retry # 失败重试时间为1小时
1W ; expire # 失效时间1周
3H ) ; minimum # 缓存时间为3小时
IN NS ns1.域名.
ns1 IN A 域名解析服务器IP地址
www IN A 域名解析服务器IP地址
mail IN A 域名解析服务器IP地址
* IN A 域名解析服务器IP地址
# A:表示IPv4地址
# AAAA表示IPv6地址
# * 泛域名解析
5.4.2 域名解析说明
◆A记录:A 代表 Address,用来指定域名对应的 IP 地址,如将www.mywangzhanxx.com 指定到 10.100.10.175,将 ns1.mywangzhanxx.com 指定到 10.100.10.176
◆MX记录:Mail Exchange,就是可以将某个域名下的邮件服务器指向自己的 Mail Server,如 baidu.com 域名的 A 记录 IP 地址是 39.156.66.xxx,如果将 MX 记录设置为 39.156.66.xxx,即 xxx@baidu.com 的邮件路由,DNS 会将邮件发送到 39.156.66.xxx所在的服务器,而正常通过 Web 请求的话仍然解析到 A 记录的 IP 地址
◆NS记录:为某个域名指定 DNS 解析服务器,也就是这个域名由指定的 IP 地址的 DNS 服务器取解析
●cname 记录:Canonical Name,即别名解析。所谓别名解析就是可以为一个域名设置一个或者多个别名,如将 aaa.com 解析到 bbb.net、将 ccc.com 也解析到 bbb.net,其中 bbb.net 分别是 aaa.com 和 ccc.com 的别名
●TXT 记录:为某个主机名或域名设置说明,如可以为 ddd.net 设置 TXT 记录为 “这是 XXX 的博客” 这样的说明
5.5 test2测试服务器域名解析测试
在test2测试服务器的/etc/resolv.conf配置文件中添加主DNS服务器地址
[root@test2 ~]# encho "nameserver 10.100.10.175" > /etc/resolv.conf
[root@test2 ~]# cat /etc/resolv.conf
nameserver 10.100.10.175
#正向解析测试
[root@test2 ~]# nslookup
> www.mywangzhanxx.com
Server: 10.100.10.175
Address: 10.100.10.175#53
Name: www.mywangzhanxx.com
Address: 10.100.10.175
> ns1.mywangzhanxx.com
Server: 10.100.10.175
Address: 10.100.10.175#53
Name: ns1.mywangzhanxx.com
Address: 10.100.10.176
> mail.mywangzhanxx.com
Server: 10.100.10.175
Address: 10.100.10.175#53
Name: mail.mywangzhanxx.com
Address: 10.100.10.177
#反向解析测试
[root@test2 ~]# nslookup
> 10.100.10.175
175.10.100.10.in-addr.arpa name = www.mywangzhanxx.com.
> 10.100.10.176
176.10.100.10.in-addr.arpa name = ns1.mywangzhanxx.com.
> 10.100.10.177
177.10.100.10.in-addr.arpa name = mail.mywangzhanxx.com.
#test1关闭DNS服务测试 (解析失败)
[root@test1 ~]# systemctl stop named
[root@test2 ~]# nslookup
> www.mywangzhanxx.com
;; connection timed out; no servers could be reached
> 10.100.10.176
;; connection timed out; no servers could be reached
六、DNS主从架构及数据同步
6.1 搭建主从架构
DNS划分若干区域进行管理,每个区域由一个或多个域名服务器负责解析。对于存在多个域名服务器的区域,必须选择一台主域名服务器(master),保存并管理整个区域的信息,其他服务器称为辅助(从)域名服务器(slave)。
管理区域时,使用辅助域名服务器有如下几点好处。
(1)辅助(从)DNS服务器提供区域冗余,能够在该区域的主服务器停止响应时为客户端解析该区域的DNS名称。
(2)创建辅助(从)DNS服务器可以减少DNS网络通信量。采用分布式结构,在低速广域网链路中添加DNS服务器能有效地管理和减少网络通信量。
(3)辅助服(从)务器可以用于减少区域的主服务器的负载
6.6.1 搭建环境
test1:10.100.10.175(主服务器,引用以上)
tets2:10.100.10.176(辅助服务器)
测试机:Windows客户机
6.6.2 配置文件主要修改部分
/etc/named.rfc1912.zones (主服务器)
allow-transfer { 域名辅助服务器地址}
/etc/named.rfc1912.zones (辅助服务器)
masters {主域名服务器地址}
6.6.3 搭建辅助DNS服务器
1)test2辅助服务器下载安装bind安装包
[root@test2 ~]# yum -y install bind bind-chroot
2)test2主配置文件修改
[root@test2 ~]# vim /etc/named.conf
...省略内容
options {
listen-on port 53 { 10.100.10.176; }; '修改为本机ip'
# listen-on-v6 port 53 { ::1; };
directory "/var/named";
...省略
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; '修改成any'
...省略内容
6.6.4 修改主从域名解析配置文件
#test1域名解析配置文件修改(主)
[root@test1 ~]# vim /etc/named.rfc1912.zones
...省略内容 '添加以下内容'
zone "mywangzhanxx.com" IN {
type master; '设置类型为主服务器'
file "mywangzhanxx.com.zone"; '生成区域配置文件'
allow-transfer { 10.100.10.176; }; '设置辅助服务器IP地址'
};
#test2域名解析配置文件修改(从)
[root@test2 ~]# vim /etc/named.rfc1912.zones
...省略内容 '添加以下内容'
zone "yourwangzhanxx.com" IN { '设置域名'
type slave; '类型设置成域名辅助服务器'
file "slaves/mywangzhanxx.com.zone"; '指定文件'
masters {10.100.10.175; }; '设置主域名服务器的IP地址'
};
...省略内容
◆启动DNS主从服务
[root@test1 ~]# systemctl restart named
[root@test2 ~]# systemctl restart named
'# 此时slave服务器同步生成区域数据文件mywangzhanxx.com.zone'
[root@test2 ~]# ll /var/named/slaves/mywangzhanxx.com.zone
-rw-r--r-- 1 named named 419 10月 24 11:32 /var/named/slaves/mywangzhanxx.com.zone
6.2 用Windows客户机测试
6.2.1Windows客户机配置主从DNS
6.2.2 域名解析测试
同时按Windows + R打开命令输入框,输入cmd进入命令窗口
1、当主从同时开启是,主服务器解析
C:\Users\Administrator>nslookup www.mywangzhanxx.com
服务器: www.mywangzhanxx.com
Address: 10.100.10.175
名称: www.mywangzhanxx.com “解析成功”
Address: 10.100.10.
2、当停掉DNS主服务器
[root@test1 ~]# systemctl stop named
C:\Users\Administrator>nslookup www.mywangzhanxx.com
DNS request timed out.
timeout was 2 seconds.
服务器: UnKnown
Address: 10.100.10.175
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** 请求 UnKnown 超时 “解析失败”
3、Windows客户机将DNS辅助服务器改为首选
C:\Users\Administrator>nslookup www.mywangzhanxx.com
服务器: UnKnown
Address: 10.100.10.176
名称: www.mywangzhanxx.com
Address: 10.100.10.175 “解析成功”
七、配置转发服务和缓存服务
7.1 配置转发服务
按照转发类型的区别,转发服务器可以分为以下两种类型。
1)完全转发服务器
DNS服务器配置为完全转发会将所有区域的DNS查询请求发送到其他DNS服务器。可以通过设置named.conf文件的options字段实现该功能。
[root@test1 ~]# vim /etc/named.conf
options {
directory "/var/named"; #定义区域数据文件存放路径
recursion yes; #允许递归查询
forwarders {10.100.10.175;}; #指定转发查询请求DNS服务器列表
forward only; #仅执行转发操作
};
2)条件转发服务器
该服务器类型只能转发指定域的DNS查询请求,需要修改named.conf文件并添加转发区域的设置。
例如:对域mywangzhanxx.com设置转发服务10.100.10.176和10.100.10.177。
[root@test1 ~]# vim /etc/named.rfc1912.zones
...省略内容 '添加以下内容'
zone "mywangzhanxx.com" IN {
type forword; '设置类型为转发类型'
forwarders { 10.100.10.176; 10.100.10.177 }; '设置转发服务器列表'
};
设置转发服务器的注意事项如下:
1) 转发服务器的查询模式必须允许递归查询,否则无法正确完成转发。
2)转发服务器列表如果为多个DNS服务器则会依次为尝试,直到获得查询信息为止。
3)配置区域委派时如果使用权转发服务器,有可能会产生区域引用的错误。
搭建转发服务器需要掌握以下操作技巧: ① 转发列表配置精简。 ② 避免链接转发器。 ③ 减少转发器负荷。 ④ 避免转发器配置错误。
7.2 配置缓存服务器
缓存服务器不需要建立独立的区域,可以直接对named.conf文件进行设置,实现缓存的功能。
[root@test1 ~]# vim /etc/named.conf
options {
directory "/var/named"; #定义区域数据文件存放路径
datasize 300M; #DNS服务器缓存设置为300M
recursion yes; #允许递归查询
};
本期内容已完结,感谢观看!