DNS服务器的搭建与测试红帽
‘壹’ 建立自有递归DNS服务器
建立自有递归DNS服务器
在构建DNS服务器时,选择递归DNS服务器是关键步骤,它能让所有DNS请求向权威服务器进行查询。本教程将指引您使用unbound软件建立一个递归DNS服务器,适用于学习解析过程。操作环境为Rocky linux 8。
首先,关闭防火墙和SElinux以确保服务器运行的顺畅。本教程旨在建立一个简单的、可用的DNS递归服务器,适合小规模使用。
了解递归DNS与权威DNS的区别至关重要。权威DNS服务器是经过授权解析域名的服务器,能向下级转授解析权限。例如,COM顶级服务器的NS.ABC.COM为ABC.COM的实际权威服务器。我们通常通过权威DNS服务器解析域名到IP地址或其他记录。
递归DNS服务器负责接受用户对任意域名的查询,并返回结果给用户。这类服务器对公众开放服务,通常由网络运营商提供。它们具备缓存功能,提升查询效率。例如,谷歌的8.8.8.8和8.8.4.4,以及114的114.114.114.114和114.114.115.115,都是典型的递归DNS服务器。本地电脑设置的DNS多数也属于这一类。
转发DNS服务器接收用户查询,并将结果转发给用户,而结果通常不是通过标准域名解析过程获得的。这类服务器具备缓存功能,适用于无直接互联网连接但能连接到递归DNS的情况。例如,路由器内置的DNS即属于此类,本地电脑的DNS通常为192.168.1.1。
深入理解DNS递归服务器的解析过程,可借助DNS根服务器的介绍。具体安装、配置、启动和验证过程,请参考红帽文档。
通过这些步骤,您将能够构建自己的递归DNS服务器,提升本地网络的DNS查询效率,同时为学习DNS解析过程提供实践平台。
‘贰’ linux dns服务器怎么设置
在linux系统中一般通过bind软件包来提供dns服务。
1、环境准备:
临时关闭selinux和iptables
#setenforce0
#serviceiptablesstop
2、查询相关软件包:
[root@localhost~]#yumsearchbind
Loadedplugins:proct-id,refresh-packagekit,subscription-manager
UpdatingRedHatrepositories.
======================================================================================N/SMatched:bind======================================================================================
PackageKit-device-rebind.i686:
bind.i686:TheBerkeleyInternetNameDomain(BIND)DNS(DomainNameSystem)server
bind-chroot.i686:,named(8)
bind-utils.i686:
其中各软件包的作用如下:
1)、bind: 提供域名服务的主要程序及相关文件。
2)、bind-chroot:为bind提供一个伪装的根目录以增强安全性。
3)、bind-utils:提供对DNS服务器测试的工具程序(如nslookup、dig等)。
3、安装BIND软件包
#yuminstall*bind*
4、配置DNS服务器:
1)、bind服务器端程序
主要执行程序:/usr/sbin/named
服务脚本:、etc/init.d/named
默认监听端口:53
主配置文件: /etc/named.conf
保存DNS解析记录的数据文件: /var/named/chroot/var/named
2)、查询bind程序的配置文件列表
[root@localhost~]#rpm-qcbind
/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
3)、查看主配置文件named.conf
#vim/etc/named.conf
4)、主配置文件解析:
a、全局配置部分,默认的全局配置项如下:
options{
11listen-onport53{127.0.0.1;};//监听的端口和接口IP地址
12listen-on-v6port53{::1;};
13directory"/var/named";//dns区域的数据文件默认存放位置
14mp-file"/var/named/data/cache_mp.db";
15statistics-file"/var/named/data/named_stats.txt";
16memstatistics-file"/var/named/data/named_mem_stats.txt";
17allow-query{localhost;};//允许dns查询的客户机列表,any表示所有
18recursionyes;//是否允许客户机进行递归查询
19
20dnssec-enableyes;
21dnssec-validationyes;
22dnssec-lookasideauto;
23
24/*PathtoISCDLVkey*/
25bindkeys-file"/etc/named.iscdlv.key";
26};
全局配置中还有如下选项:
//将本域名服务器不能解析的条目转发给其它DNS服务器的IP地址
forwarders{202.102.24.68;12.3.3.3;};
b、默认的区域配置项如下:
35zone"."IN{
36typehint;//区域类型。hint为根区域;master为主区域;slave为辅助区域
37file"named.ca";//该区域对应的区域数据配置文件名
38};
区域配置中还有如下选项:
//允许下载区域数据库的从域名服务器IP地址
allow-transfer{189.98.90.23;};
//允许动态更新的客户端IP地址(none表示全部禁止)
allow-update{none;};
添加如下区域配置:
zone“my.com”IN{
typemaster;//主区域
file“my.com”;//该区域对应的区域数据配置文件名
allow-transfer{192.168.153.1;};//允许下载区域数据库的从域名服务器IP地址
allow-update{none;};
};
zone“153.168.192.in-addr.arpa”IN{//表示针对IP192.168.153.130反向解析
typemaster;//主区域
file“192.168.153.my.arpa”;//该区域对应的区域数据配置文件名
};
5)、配置完了,可以执行如下命令对named.conf文件进行语法检查。
#named-checkconf
注意:倒序网络地址.in-addr.arpa 表示反向区域
主配置文件最后还有一行是:
//该文件包含/etc/named.rfc1912.zones文件
include“/etc/named.rfc1912.zones”
区域数据配置文件:
先看一下named.localhost的内容:
$TTL1D//timetolive生存时间
@[email protected].(//”rname.invalid”DNS区域地址
0;serial//更新序列号
1D;refresh//更新时间
1H;retry//重试延时
1W;expire//失效时间
3H);minimum//无效地址解析记录的默认缓存时间
NS@//nameserver域名服务记录
A127.0.0.1//address只用在正向解析的区域数据文件中
AAAA::1
新建2个对应的区域数据配置文件:
#touchmy.com
#touch192.168.153.my.arpa
#vimmy.com
$TTL86400
@INSOAmy.com.admin.my.com(//admin.my.cm为该区域管理员的邮箱地址
200900201
3H
15M
1W
1D
)
@INNSns1.my.com.//当前域的DNS服务器地址
INMX10mail.my.com.//用于设置当前域的邮件服务器域名地址,数字10表示优先级别,数字越大优先级越低
ns1INA192.168.153.130
mailINA192.168.153.130
wwwINA192.168.153.130
ftpINCNAMEwww//CNAME别名(canonicalname)记录,表示ftp.my.com和www.my.com对应同一个IP.
[root@localhostnamed]#vim192.168.153.my.arpa
$TTL86400
@INSOAmy.com.admin.my.com(
200900201
3H
15M
1W
1D
)
@INNSns1.my.com.
130INPTRftp.my.com
启动DNS服务
[root@localhost~]#servicenamedstart
4、测试:
配置一台ftp服务器用于测试:
#servicevsftpdstart//启动vsftpd服务
当前网卡的配置:
eth0:192.168.0.1/24
eth1:192.168.153.130/24
[root@localhostnamed]#nslookup192.168.153.130
Server:127.0.0.1
Address:127.0.0.1#53
130.153.168.192.in-addr.arpaname=www.my.com.
[root@localhost~]#nslookupftp.my.com
Server:127.0.0.1
Address:127.0.0.1#53
ftp.my.comcanonicalname=www.my.com.
Name:www.my.com
Address:192.168.153.130