千家信息网

如何搭建简易DNS服务器

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,如何搭建简易DNS服务器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。简易DNS服务器domain name server,dns协
千家信息网最后更新 2025年02月06日如何搭建简易DNS服务器

如何搭建简易DNS服务器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

简易DNS服务器

domain name server,dns协议,其实现软件主要是bind.bind软件由配置文件和区域数据文件组成。

区域数据库文件,主要是用来记录资源记录的。一行一行的数据。

资源记录类型(RR_TYPE)包括:

A A记录,记录FQDN-->IPv4

AAA A记录,记录FQDN-->IPv6

PTR PRT记录,反向解析,记录IP-->FQDN

NS NS记录,name server,记录DNS服务器本身的信息,后面跟A记录

SOA SOA记录,start of authity,第一条授权记录,有且只有一条,必须是第一条。

CNAME CNAME别名

MX 邮件记录

资源记录格式:

NAME [TTL] IN RR_TYPE VALUE

bjs.io 888640 IN A 192.168.122.3

bjs.io 888640 IN SOA bjs admin.bjs

SOA格式: NAME VALUE

name:dns服务器FQDN 管理员邮箱 版本序列号 刷新时间 重试时间 过期时间 否定回答时间

@ IN SOA ns1.bjs.io. dnsadmin.bjs.io. 201811201 1H 10M 5D 1D

注意:管理员邮箱中的@用.代替因为@在dns有特殊用途,版本序列号只能是10,超过10位会出错

NS:

name:当前区域名称

value 当前区域DNS服务器名称

比如:

bjs.com. 86400 IN NS ns1

bjs.com. 86400 IN NS ns2

MX:

name 当前区域名称

value 邮件交换器名称

baidu.com. IN MX 10 mx1.baidu.com.

baidu.com. IN MX 10 mx2.baidu.com.

A记录:

www.baidu.com. IN A 1.1.1.1

www.baidu.com. IN A 1.1.1.2

bbs.baidu.com. IN A 1.1.1.1

PTR

name:IP地址,有特定格式,IP反过来写,而且特定后缀

value FQDA

4.3.2.1.in-addr.arpa. IN PTR www.baidu.com.

CNAME

web.baidu.com. IN CNAME www.baidu.com.

注意 TTL可以全局定义

  @表示当前区域名称

  相邻两记录name相同时,可不写

MX,NS等类型的value为FQDN时,其后应该有A记录 

dns是协议,bind是协议的实现程序

yum -y install bind

主配置文件

/etc/named.conf 可包含其他配置文件

全局配置段:

options{

listen-on port 53 { 192.168.136.4; };

allow-query { any; };

}

日志配置段

logging{...}

区域配置段

zone {...}

每句都;结尾,{左右必须有空格}

缓存服务器必须监听在能与外部通信的IP地址

检查配置文件语法错误

named-checkconf

解析库文件:

/var/named/目录下

一般名称为ZONE_NAME.zone

注意 1.一台DNS服务可以同时为多个区域提供服务

2.必须要有根区域解析库文件named.ca

3.还应该有两个本地区域文件localhost和127.0.0.1

正向:named.localhost

反向:named.loopback

配置解析一个正向区域:

1.定义区域

在主配置文件实现

zone "ZONE_NAME" IN {

type {master|slave|hint|forward};

file "ZONE_NAME.zone";

};

以bjs.io为列

zone "bjs.io" IN {

type master ;

file "bjs.io.zone";

};

2.建立区域文件

/var/named目录 下以bjs.io为列,其属组为named,权限为其他用户不可读

vi /var/named/bjs.io.zone

$TTL 1D

@ IN SOA ns1.bjs.io root.localdomain 2019011601 1H 10M 3D 1D

IN NS ns1

ns1 IN A 192.168.122.11

www IN A 192.168.122.3

www IN A 192.168.122.4

3.权限设定

chown .named bjs.io.zone

chmod o= bjs.io.zone

4.检查配置文件及区域文件

named-checkconf

named-checkzone bjs.io /var/named/bjs.io.zone

5.让服务重载配置文件

systemctl restart named

6.查看监听情况

ss -lnt

7.在其他服务器上将dns地址设为本服务器,然后测试

dig -t A www.bjs.io

dig -t NS bjs.io

配置解析一个反向区域:

1.定义区域

zone "122.168.192" IN {

type master;

file "122.168.192.in-addr.arpa";

};

2.建立区域文件

vi 122.168.192.in-addr.arpa

$TTL 1D

@ IN SOA ns1.bjs.io root.localdomain 2019011601 1H 10M 3D 1D

IN NS ns1.bjs.io.

11 IN PTR ns1.bjs.io.

3 IN PTR www.bjs.io.

4 IN PTR www.bjs.io.

3.权限设定

chown .named 122.168.192.in-addr.arpa

chmod o= 122.168.192.in-addr.arpa

4.检查配置文件及区域文件

named-checkconf

named-checkzone 122.168.192.in-addr.arpa /var/named/122.168.192.in-addr.arpa

5.让服务重载配置文件

systemctl reload named

6.查看监听情况

ss -lnt

7.在其他服务器上将dns地址设为本服务器,然后测试

dig -x 192.168.122.3

关于如何搭建简易DNS服务器问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

0