【转】Linux RedHat7下DNS服务搭建 详细过程

正文索引 [隐藏]

(PS:#后的为注释, 如果不能正常解析但可以正常运行named的话可尝试一下卸载或停止一下防火墙。)

(记录一下..emm)

一、简介

在LINUX下面架设DNS服务器,不知道DNS解析原理,根本会了和不会没区别, 网络中为了区别各个主机,必须为每台主机分配一个惟一的地址,这个地址即称为“IP地址”。但这些数字难以记忆,所以就采用“域名”的方式来取代这些数字了。

当某台主机要与其他主机通信时,就可以利用主机名称向DNS服务器查询该主机的IP地址,所以我们的网卡要上网至少要3个信息,IP地址,网关,DNS服务器地址。

DNS的组织结构

https://cdn.jsdelivr.net/gh/1194142028/cdnfirst@master/images/2019/12/31/7QSpYbPZJjfxwEM.png

这个就是DNS的组织结构,最上面是根域名 dot,全球13台根域服务器,没有一台在中国,因为中国网络发展,起步迟。而且所有的dot DNS服务器都是bind软件架设的,我们今天要学习的也是bind软件。全球70%的大型DNS服务器都是基于bind软件。

DNS解析过程

我给大家解释下,比如解析www.redhat.com,第一步,查询本地host文件和缓存有没有这个记录,有就直接解析,没有就访问DNS服务器,如果DNS服务器上没www.redhat.com或 者redhat.com不在你访问的DNS服务器管理区域内,那么DNS服务器就会向dot根域名服务器发递归查询,如果找到了记录了,DNS就会返回给 client,并且把记录保存在自己缓存里,下次有client请求,他就会调用自己的缓存,直到这条记录的生存期结束,就会丢弃这条记录。

根域名服务器就13台域名服务器,他负责管理顶级域。顶级域负责管理二级域,我们现在申请的一般是2级域名-3级域名。比如 michael.com,michael.com.cn哈~michael.com是2级域名,michael.com.cn是3级域 名,michael.com.cn.这个就是FQDN。

二、安装前准备

1、使用bind服务器需要防火墙开放以下端口:
UDP 53
TCP 53
TCP 953

2、关闭firewall:

RedHat 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

 

3、安装iptables防火墙

yum install iptables-services #安装

vi /etc/sysconfig/iptables #编辑防火墙配置文件

-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 953 -j ACCEPT
systemctl restart iptables.service     #重启防火墙,使规则生效

或者systemctl enable iptables.service  #关闭防火墙。

4、关闭SELinux
vi /etc/selinux/config
#SELINUX=enforcing     #注释掉
#SELINUXTYPE=targeted  #注释掉
SELINUX=disabled  #增加
:wq  保存,关闭。

reboot重启系统。

或者setenforce 0  #临时关闭,不需要重启系统,重启失效

三、安装并测试DNS服务

1、检查是否已经安装了DNS服务器软件bind
rpm -qa | grep bind
package bind is not installed #表示没有安装bind

2、安装dns服务器
yum install bind* #dns服务器必装软件 yum remove bind* #删除

yum remove bind-chroot #删除bind安全增强工具

3、配置DNS服务器
vim /etc/named.conf  #编辑主配置文件

listen-on port 53 { any; };   #修改

allow-query     { any; };   #修改

 

zone " 123.com " IN {      #增加 定义一具域名为123.com的正向区域

type master;

file "123.zx";

};

zone "10.168.192.in-addr.arpa" IN {     #增加 定义一个IP为192.168.10..*的反向域区域

type master;

file "123.fx";

};

 

cd /var/named/

cp -p named.localhost 123.zx

vim 123.zx  #创建正向区域配置文件

$TTL 1D

@       IN SOA ns. 123.com. root. 123.com.     (

0       ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

@       IN   NS  ns. 123.com.

ns      IN      A       192.168.10.139

www     IN      A       192.168.10.139

ftp     IN      CNAME   www.123.com

 

 

cp -p 123.zx 123.fx

vim 123.fx  #创建反向区域配置文件

$TTL 1D

@       IN SOA ns. 123.com. root. 123.com.     (

0       ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

@       IN   NS  ns. 123.com.

139     IN      PTR     ns. 123.com.

139     IN      PTR     www.123.com.

 

 

named-checkzone 123.zx /var/named/123.zx #检查正向区域配置文件

named-checkzone 123.fx /var/named/123.fx #检查反向区域配置文件

 

systemctl start named #启动DNS服务器
systemctl restart named #重启DNS服务器
systemctl stop named #停止服务器
systemctl enable named #设为开机启动

4、测试DNS服务器

vi /etc/resolv.conf #编辑文件
nameserver 127.0.0.1 #将linux服务器的DNS设置为本身
nameserver 8.8.8.8 #为了能够访问外网需要设置备用DNS
nslookup -type=soa 123.com #测试起始授权机构SOA资源记录
nslookup -type=a www. 123.com #测试主机地址A记录资源
nslookup -type=ptr 192.168.10.10 #测试反向解析指针PTR资源记录
nslookup -type=cname ftp.123.com #测试别名CNAME资源记录
nslookup -type=ns 123.com #测试名称服务器NS资源记录
nslookup -type=mx 123.com #测试邮件交换器MX资源记录
tail /var/log/messages #查看日志
至此,RedHat7.0 DNS服务器配置完成