CentOS搭建DNS服务器实录

一、安装软件

常见DNS服务器软件有BIND 、NSD、Unbound 等等,而BIND是市场占有率是最高的,后两种是轻量级的快速DNS服务器。我这里使的是BIND ,其他的类似。

在centos上切换到root用户(以下所有操作均在root用户),执行 yum install bind bind-devel -y 安装软件。

待安装完毕进行配置。

二、配置

1. 编辑配置/etc/named.conf

修改如下两行(如下图所示),

listen-on port 53 { 127.0.0.1; };

#127.0.0.1修改成本机实际IP 或者 any

allow-query     { localhost; };

#将localhost 该成any

修改后如下:

2. 配置域名解析文件

域名解析分正向区域和反向区域正向区域是将域名解析为IP地址的过程,反向区域则是客户机根据一台计算机的IP 地址搜索它的域名。在大部分的 DNS查询中,客户机一般执行正向区域解析。

正反向区域的配置,可以直接写在/etc/named.conf中(不推荐),在/etc/named.conf最下方有两句include语句,其中include "/etc/named.rfc1912.zones";就是用来配置正反向区域配置的文件,当然也可以自定义(自定义需要在/etc/named.conf中include),入下图。

这里我们使用默认的配置文件/etc/named.rfc1912.zones,执行

vim /etc/named.rfc1912.zones

编辑这个文件,加入(以下笔者以域名3jhx.cc为例):

zone "3jhx.cc" IN {

    type master;

    file "3jhx.cc.zone";

};

这个是正向解析区域,

反向区域如下,这里没有增加, 

zone "1.168.192.in-addr.arpa." IN {

type master;

file "1.168.192.zone";

};

正反向解析区域文件都在/etc/named.conf的 directory 参数配置,默认是"/var/named"。

编辑正向区域文件,内容如下图,其中:ns1、ns2为解析的两个DNS域名,在我们自定义域名DNS服务器的时候要用到。

;SOA后面的两个参数分别是主DNS服务器主机名和管理者邮箱(root@3jhx.cc)。因为@符号有特殊含义,所以写成这样。注意末尾的点。

;括号内的第一个参数是序号,代表本配置文档的新旧,序号越大,表示越新。每次修改本文档后,都要将这个值改大。

;第二个参数是刷新频率,表示slave隔多久会跟master比对一次配置档案,单位为秒(在主从DNS架构中要用到

;第三个参数是失败重新尝试时间,单位为秒

;第四个参数是失效时间,单位为秒。

;第五个参数表示其它DNS服务器能缓存negative answers的时间,单位为秒

以上七个参数可以按照图中的写法,亦可以直接写成秒,两种一样。

;类型NS定义指定域的DNS服务器主机名,这里是:ns1.3jhx.cc和ns2.3jhx.cc

A记录是域名与IP地址的映射关系,如果IP地址是IPV6,则A记录是AAAA

配置完毕后,保存。

反向区域文件配置示例:

(图片来源于网络)

 3重启named服务

CentOS6.x 使用 service named restart重启named服务,使用chkconfig named on让服务开机启动。

CentOS7.x 使用 systemctl restart named重启named服务,使用systemctl enable named让服务开机启动。

 

4. 配置防火墙

开放防火墙53端口,注意需要同时开放TCP和UDP的53端口,如果是ECS云服务器还需要开放安全组的TCP和UDP的53端口。

 

CentOS7.x 是:

[root@localhost~]# firewall-cmd --zone=public--add-port=53/tcp --permanent

[root@localhost~]# firewall-cmd --zone=public--add-port=53/udp --permanent

重启防火墙以让更改立刻生效:

[root@localhost~]# firewall-cmd –reload

可使用以下命令检查配置是否成功:

[root@localhost~]# firewall-cmd --list-all

 

CentOS6.X是:

/sbin/iptables -I INPUT -p tcp --dport 53 -j ACCEPT

/sbin/iptables -I INPUT -p udp --dport 53 -j ACCEPT

保存规则:

/etc/rc.d/init.d/iptables save

重启防火墙以让更改立刻生效:

service iptables restart

三、验证

要验证我们配置的dns是否正确,在客户机计算机上将DNS服务器地址手动修改成我们配置好的DNS服务器地址,然后使用命令nslookup命令或者dig命令测试

Linux系统直接在终端输入nslookup命令,windows在cmd命令行输入nslookup命令

四、配置域名自定义DNS服务器

为了是实验真实性,这里笔者使用真实域名实验。

进入到域名管理控制台,笔者使用的是万网,其他服务商类似。

自定义 DNS 服务器页面创建两个 DNS 服务器ns1.3jhx.cc和ns2.3jhx.cc

创建完成后需要在我们的DNS服务器解析NS和A记录,上文中我们已经解析。

点击DNS修改,将域名的DNS修改成刚创建的两个DNS地址(为什么是两个, 国际域名最少填写2个,最多填写13个)

修改完成后需要些时间才能生效。

至此我们就可以使用我们创建的DNS服务器来解析我们的域名了。

注:笔者实验中没有创建从DNS服务器,只创建了主DNS服务器,从DNS服务器的创建和主DNS差不多,实际应用中需要主从结构。

  • 9
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在CentOS 7上搭建DNS服务器,你可以按照以下步骤进行操作: 1. 安装BIND软件包: 在终端中执行以下命令来安装BIND软件包: ``` sudo yum install bind bind-utils ``` 2. 配置主配置文件: 编辑`/etc/named.conf`文件,该文件是BIND的主配置文件。你可以使用任何文本编辑器打开该文件,并进行以下配置: ```bash options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; 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"; allow-query { any; }; recursion yes; }; zone "example.com" IN { type master; file "/var/named/example.com.zone"; allow-update { none; }; }; ``` 这里使用了一个名为"example.com"的示例域名,你可以根据需要修改为你自己的域名。 3. 创建区域文件: 创建一个区域文件来存储DNS记录。在终端中执行以下命令来创建该文件: ```bash sudo nano /var/named/example.com.zone ``` 在打开的文件中,添加以下示例配置: ```bash $TTL 86400 @ IN SOA ns1.example.com. root.example.com. ( 2018010101 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum @ IN NS ns1.example.com. @ IN A 192.168.1.100 ns1 IN A 192.168.1.100 www IN A 192.168.1.101 ``` 4. 设置文件权限和SELinux策略: 执行以下命令来设置文件权限: ```bash sudo chown named:named /var/named/example.com.zone ``` 执行以下命令来设置SELinux策略: ```bash sudo restorecon -v /var/named/example.com.zone ``` 5. 启动和配置BIND服务: 启动BIND服务并将其设置为开机自启动: ```bash sudo systemctl enable named sudo systemctl start named ``` 6. 配置防火墙规则: 如果系统上启用了防火墙,你需要打开DNS服务器的相关端口。执行以下命令来配置防火墙规则: ```bash sudo firewall-cmd --permanent --add-service=dns sudo firewall-cmd --reload ``` 现在,你已经在CentOS 7上成功搭建DNS服务器。你可以根据自己的需求添加更多的记录到区域文件中,并在客户端上配置DNS服务器地址来使用它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值