CentOS 7.3 搭建DNS服务器

一、DNS服务简介

1. DNS服务简介

DNS(Domain Name System)域名系统。

目前提供网络服务的应用使用唯一的32位的IP地址来标识,但是由于数字比较复杂、难以记忆,因此产生了域名系统(DNS),通过域名系统,可以使用易于理解和形象的字符串名称来标识网络应用(如www.baidu.com、www.taobao.com)。访问互联网应用可以使用域名,也可以通过IP地址直接访问该应用,在使用域名访问网络应用时,DNS负责将域名解析为IP地址。

2. 主机名和域名的区别?

主机名是内网的名字;域名是外网的名字。

主机名和域名其实是两个完全可以不同的名字,但是有很多软件(如邮件系统postfix)会默认认为它们一致。

全世界共有有13台DNS根域服务器。

顶级域名:

.com    .org    .edu    .gov    .net    .mil    .info

商业     组织    教育    政府    通讯    军事    信息

根域:

cn      hk      us     jp     tw     in

.com.cn      .net.us    .edu.cn

3. DNS服务器特点

  • 分布式的数据库
  • 解决了数据不一致,避免了名字冲突
  • 有缓存机制,提高了性能和可靠性

4. 域名解析过程

为了将一个名字解析成一个IP地址,用户应用程序调用一个称为解析器的库程序,将名字作为参数传递给它,形成DNS用户;然后DNS用户发送查询请求给本地域名服务器,服务器首先在其管辖区域内查找名字,名字找到后,把对应的IP地址返回给DNS客户。完整的名字解析过程如下图所示:

二、系统环境

系统平台: CentOS 7.3

DNS Server: 192.168.8.88

更改主机名,写/etc/hosts记录


#  vim /etc/hosts

192.168.8.88           test.com         --最后添加DNS服务器IP地址和主机名/别名

关闭防火墙

#  systemctl  stop  firewalld               --临时关闭防火墙 

#  systemctl  disable  firewalld          --永久关闭防火墙

关闭selinux

临时关闭:

#  setenforce 0

永久关闭:

#  vim  /etc/selinux/config

SELINUX=disabled                 --将enforcing改为disabled

#  reboot                                    --重启系统永久生效

三、CentOS下的DNS服务

准备两台机器

1.  在DNS服务器上安装bind软件

BIND全称是(Berkeley Internet Name Domain),是美国加利福尼亚大学伯克利分校开发的一个域名服务软件包,Linux使用这个软件包来提供域名服务,该软件实现了DNS协议。BIND的服务端软件是被称作named的守护进程。


#  yum  -y  install bind*

如果已经安装过了,显示“无需任何处理”

安装好后查看软件包


#  rpm  -qa  |  grep  ^bind

bind-pkcs11-libs-9.9.4-51.el7_4.1.x86_64

bind-pkcs11-utils-9.9.4-51.el7_4.1.x86_64

bind-license-9.9.4-51.el7_4.1.noarch

bind-lite-devel-9.9.4-51.el7_4.1.x86_64

bind-libs-9.9.4-51.el7_4.1.x86_64

bind-pkcs11-9.9.4-51.el7_4.1.x86_64

bind-dyndb-ldap-11.1-4.el7.x86_64

bind-9.9.4-51.el7_4.1.x86_64                   --提供了域名服务的主要程序及相关文件

bind-sdb-9.9.4-51.el7_4.1.x86_64

bind-pkcs11-devel-9.9.4-51.el7_4.1.x86_64

bind-utils-9.9.4-51.el7_4.1.x86_64          --提供了对DNS服务器的测试工具程序(如nslookup、dig等)

bind-sdb-chroot-9.9.4-51.el7_4.1.x86_64

bind-devel-9.9.4-51.el7_4.1.x86_64

bind-libs-lite-9.9.4-51.el7_4.1.x86_64

bind-chroot-9.9.4-51.el7_4.1.x86_64      --为bind提供一个伪装的根目录以增强安全性(将“/var/named/chroot/”目录作为BIND的根目录)

2. 启动DNS服务

#  systemctl start named.service         --启动DNS服务

#  systemctl enable named.service     --设置为开机启动

#  netstat -anlp | grep named             --查看监听端口为53

named作为标准的系统服务脚本,通过“systemctl start/restart/stop named.service”的形式可以实现对服务器程序的控制

named默认监听TCP、UDP协议的53端口,以及TCP的953端口:

其中UDP 53端口一般对所有客户机开放,以提供解析服务;

TCP 53端口一般只对特定从域名服务器开放,提高解析记录传输通道;TCP 953端口默认只对本机(127.0.0.1)开放,用于为rndc远程管理工具提供控制通道

配置文件的目录:

没有安装bind-chroot软件包

  • 配置文件为/etc/named.conf
  • 数据文件在/var/named目录下

安装了bind-chroot软件包

  • 配置文件为/var/named/chroot/etc/named.conf    --默认没有
  • 数据文件在/var/named/chroot/var/named目录

从上面看到装了bind-chroot,笼环境为/var/named/chroot/

3. 查看配置文件/etc/named.conf


#  vim  /etc/named.conf

7 // See /usr/share/doc/bind*/sample/ for example named configuration files.           --该目录中可以查看named配置案例

12 options {                                             --options是全局服务器的配置选项,在这里指定的参数,对配置中的任何区域都有效

13         listen-on port 53 { 127.0.0.1; };   --指定域名服务监听的网络端口,建议写本机IP,减少服务器消耗

14         listen-on-v6 port 53 { ::1; };

15         directory       "/var/named";       --指定named从/var/named目录下读取DNS数据文件

16         dump-file       "/var/named/data/cache_dump.db";       --当执行导出命令时将DNS服务器的缓存数据存储到指定的文件中

17         statistics-file "/var/named/data/named_stats.txt";         --指定named服务的统计文件,当执行统计命令时会将内存中的统计信息追加到该文件中

18         memstatistics-file "/var/named/data/named_mem_stats.txt";

19         allow-query     { localhost; };      --允许哪些客户端访问DNS服务,此处改为“any”,表示任意主机

31         recursion yes;                            --开启递归查询

33         dnssec-enable yes;                    --开启加密

34         dnssec-validation yes;               --在递归查询服务器上开启DNSSEC验证

35

36         /* Path to ISC DLV key */

37         bindkeys-file "/etc/named.iscdlv.key";

39         managed-keys-directory "/var/named/dynamic";

41         pid-file "/run/named/named.pid";

42         session-keyfile "/run/named/session.key";

43 };

44

45 logging {                                            --named服务的日志文件信息

46         channel default_debug {

47                 file "data/named.run";

48                 severity dynamic;

49         };

51 --每一个zone就是定义一个域的相关信息以及指定了named服务从哪些文件中获得DNS各个域名的数据文件

52 zone "." IN {                                       --根(.)域的配置及信息(配置缓存域名服务器,可以自己去了解)

53         type hint;                                   --服务器类型

54         file "named.ca";                         --文件路径位置

55 };

56

57 include "/etc/named.rfc1912.zones";   --include代表该文件是子配置文件

58 include "/etc/named.root.key";

4. 域名服务器的配置

配置步骤:

  • 编辑/etc/named.rfc1912.zones     --记录你的域和域对应的数据文件在哪
  • 编辑/var/named/data/*.zone        --就是数据文件,记录域名和IP的对应

例1:正向解析(将域名解析成IP)

(一)修改DNS服务的配置文件


#  vim  /etc/named.conf                                       --主配置文件

12 options {

13         listen-on port 53 { 1192.168.8.88; };        --将127.0.0.1改为本机IP:192.168.8.88

14         listen-on-v6 port 53 { ::1; };

15         directory       "/var/named";

16         dump-file       "/var/named/data/cache_dump.db";

17         statistics-file "/var/named/data/named_stats.txt";

18         memstatistics-file "/var/named/data/named_mem_stats.txt";

19         allow-query     { any; };                            --将localhost改为any,表示所有人都能对我的DNS服务进行查询

(二)添加域的信息写在子配置文件

#  vim  /etc/named.rfc1912.zones          --文件最后添加正向解析数据文件的信息

43 zone "test.com" IN {

44         type master;

45         file "data/test.com.zone";

46 };

(三)编辑正向解析文件


#  vim  /var/named/data/test.com.zone   --编辑正向解析文件(将域名解析成IP)

$TTL 1D               --缓存时间

@       IN SOA  dns.test.com. dns.www.test.com. (

20171224      ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

@                              IN      NS      dns.test.com.                --DNS服务器的域名地址

dns.test.com.            IN       A       192.168.8.88                  --DNS服务器的IP地址

@                              IN       MX 10   mail.www.test.com.   --邮件服务器的域名地址

mail.www.test.com.  IN       A       192.168.8.4                    --邮件服务器IP地址

www.test.com.          IN       A       192.168.8.88                  --域名为test.com的IP地址

ftp.test.com.             IN       A       192.168.8.3                    --域名为ftp的IP地址

  • serial:序列号。可以供从服务器判断何时获取新数据的,这里我设成今天的日期。更新数据文件必须要更新这个序列号,否则从服务器将不更新
  • refresh:指定多长时间从服务器要与主服务器进行核对
  • retry:如果从服务器试图检查主服务器的序列号时,主服务器没有响应,则经过这个时间后将重新进行检查
  • expire:将决定从服务器在没有主服务器的情况下权威地持续提供域数据服务的时间长短
  • minimum:高速缓存否定回答的存活时间
  • SOA记录:每个区仅有一个SOA记录,该区一直延伸到遇见另一个SOA记录为止。SOA记录包括区的名字,一个技术联系人和各种不同的超时值
  • IN记录:使用“IN”,对应的是internet
  • A记录:是DNS数据库的核心。一个主机必须为它的每个网络接口得到一条A记录
  • NS记录:识别对一个区有权威性的服务器(即所有主服务器和从服务器),并把子域委托给其他机构。
  • MX记录:电子邮件系统就是使用MX记录来更有效的路由邮件。
  • PTR记录:从IP地址到主机名的反向映射。与A记录一样,必须为每个网络接口有一条PTR记录。
#  systemctl  restart  named.service            --配置好后,重新DNS服务

(四)客户端测试

注意:客户端必须要跟服务器端通信(能ping通)及关闭selinux

#  vim  /etc/resolv.conf                 --修改客户端的DNS服务器
    nameserver 192.168.8.88          --IP为服务器的IP

以下三个解析命令,仍选其一就可以了。


#  dig  www.test.com                     --查询DNS包括NS记录,A记录,MX记录等相关信息

#  nslookup  www.test.com

#  host  www.test.com                   --测试域名系统工作是否正常

至此,正向解析OK!

例2:反向解析(将IP解析成域名)

(一)修改DNS服务的配置文件

#  vim  /etc/named.rfc1912.zones       --文件最后添加反向解析数据文件的信息

zone "8.168.192.in-addr.arpa" IN {      --域名对应的IP地址网段为192.168.8.0,此处必须按照相同的格式写

type master;

file "data/192.168.8.zone";           --反向解析文件名192.168.8.zone

};

(二)编辑反向解析文件

#  vim  /var/named/data/192.168.8.zone

$TTL 1D

@       IN SOA  dns.test.com. dns.www.test.com. (

20171224      ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

@               IN      NS         dns.test.com.

88              IN      PTR        dns.test.com.

@               IN      MX 10   mail.www.test.com.

4                IN      PTR        mail.www.test.com.

88              IN      PTR        www.test.com.

3                IN      PTR        ftp.test.com.

#  systemctl  restart  named.service       --配置好后,重启DNS服务

(三)客户端测试

注意:客户端必须要跟服务器端通信(能ping通)及关闭selinux

#  cat  /etc/resolv.conf                           --修改客户端的DNS服务器
    nameserver 192.168.8.88
#  nslookup  192.168.8.88
#  host  192.168.8.88                              --测试域名系统工作是否正常

至此,正向解析OK!

例3:做主从DNS服务器

准备三台机器

(一)主DNS服务器的配置

#  vim  /etc/named.conf

12 options {

13         listen-on port 53 { 192.168.8.88; };    --(主)DNS服务器的IP

14         listen-on-v6 port 53 { ::1; };

15         directory       "/var/named";

16         dump-file       "/var/named/data/cache_dump.db";

17         statistics-file "/var/named/data/named_stats.txt";

18         memstatistics-file "/var/named/data/named_mem_stats.txt";

19         allow-query     { any; };                       --允许查询所有主机

#  vim  /etc/named.rfc1912.zones

zone "test.com" IN {

type master;

file "data/test.com.zone";

allow-transfer {192.168.8.66;};                  --指定(从)域名服务器IP

};

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

type master;

file "data/192.168.8.zone";

allow-transfer {192.168.8.66;};                  --指定(从)域名服务器IP

};

(二)(主)编辑正向解析文件

#  vim  /var/named/data/test.com.zone

$TTL 1D

@       IN SOA  dns1.test.com. dns1.www.test.com. (

20171224      ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

@                              IN      NS     dns1.test.com.

dns1.test.com.          IN      A       192.168.8.88      --DNS服务器(主)的IP地址

@                              IN      NS     dns2.test.com.

dns2.test.com.          IN      A       192.168.8.66      --DNS服务器(从)的IP地址

www.test.com.          IN      A       192.168.8.88      --域名为test.com的(主)IP地址

www.test.com.          IN      A       192.168.8.66      --域名为test.com的(从)IP地址

(三)(主)反向解析文件


#  vim /var/named/data/192.168.8.zone

$TTL 1D

@       IN SOA  dns1.test.com. dns1.www.test.com. (

20171224      ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

@               IN      NS      dns1.test.com.

88              IN      PTR     dns1.test.com.

@               IN      NS      dns2.test.com.

66              IN      PTR     dns2.test.com.

88              IN      PTR     www.test.com.    --域名为test.com的(主)IP地址

66              IN      PTR     www.test.com.    --域名为test.com的(从)IP地址

#  systemctl  restart  named.service          --配置好后,重启(主)DNS服务

(四)(从)DNS服务器的配置

1、重新开启一台linux虚拟主机,IP为192.168.8.66

2、服务的安装与配置

#  yum  -y  install  bind*

#  vim  /etc/named.conf

12 options {

13         listen-on port 53 { 192.168.8.66; };           --(从)DNS服务器的IP

14         listen-on-v6 port 53 { ::1; };

15         directory       "/var/named";

16         dump-file       "/var/named/data/cache_dump.db";

17         statistics-file "/var/named/data/named_stats.txt";

18         memstatistics-file "/var/named/data/named_mem_stats.txt";

19         allow-query     { any; };                              --允许查询所有主机

#  vim /etc/named.rfc1912.zones

zone "test.com" IN {

type slave;                             --服务器类别,slave为(从)域名服务器选项

file "data/test.com.zone";

masters {192.168.8.88;};        --指定(主)域名服务器IP

};

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

type slave;                             --服务器类别,slave为(从)域名服务器选项

file "data/192.168.8.zone";

masters {192.168.8.88;};        --指定(主)域名服务器IP

};

3. 编辑正向解析文件与反向解析文件,可直接从(主)DNS服务器中拷贝

#  scp  192.168.8.88:/var/named/data/test.com.zone  /var/named/data/test.com.zone
#  scp  192.168.8.88:/var/named/data/192.168.8.zone  /var/named/data/192.168.8.zone

#  systemctl  restart  named.service     --配置好后,重启(从)DNS服务

(五)客户端测试

#  vim  /etc/resolv.conf             --添加以下参数

nameserver 192.168.8.88      --(主)DNS服务IP

nameserver 192.168.8.66      --(从)DNS服务IP

#  nslookup  www.test.com

#  nslookup  192.168.8.88

#  nslookup  192.168.8.66

至此,DNS服务器主从正反向解析OK!

时间: 2024-11-05 02:34:07

CentOS 7.3 搭建DNS服务器的相关文章

CentOS 7.4搭建DNS服务器实现主从同步

CentOS 7.4搭建DNS服务器实现主从同步相关概念:正向解析:将域名解析成IP地址反向解析:将IP地址解析成域名第一步:准备工作systemctl stop firewalld //关闭防火墙setenforce 0 //关闭selinuxyum install bind //安装DNS服务第二步:编辑配置文件1.编辑主配置文件vi /etc/named.conf //主配置文件options {listen-on port 53 { 192.168.80.101; }; //改成自己服务

centos 6.5 搭建 dns服务器 详细步骤

1.配置相关参数 yum install -y epel-release setenforce 0 /etc/init.d/iptables stop chkconfig iptables off 2.安装相关包 yum install bind bind-devel bind-utils 3.修改配置文件 一共有四个相关文件:named.ca(根域名配置).named.conf(dns server主配置文件).正向解析文件.逆向解析文件 named.ca: $ dig -t NS . @19

centos搭建dns服务器

前言:搭建dns服务器,dns服务器我就不多说什么了,大家都懂,就是域名解析,就将ip装换为域名,域名就可以理解为类似这样的www.baidu.com网址,接下来我就直接上图了.这里面最重要的是修改unbound配置文件,配置文件,文件 操作: 1.环境拓扑 服务器: 2.配置yum仓库 3.安装unbound组件 4.更改unbound配置文件 5.改服务器主机名 6.修改unbound配置文件,并且重启 7.设置防火墙 8.校检:服务器本地来实现本机dns解析 效果:客户端上配置dns,并且

搭建DNS服务器:正向解析区域、反向解析区域、主从DNS

在搭建DNS服务器之前,可以了解一下在什么情况才需要搭建DNS服务器,以及在什么情况下不需要搭建DNS服务器.在此之前,需要了解DNS中域(domain)和区域(zone)的基本概念,以及DNS资源记录的类型,如果对此不熟悉,可以参考我写的上一篇文章<Caching only DNS的设置与forwarding功能>. 一.为什么需要自己搭建DNS服务器? 搭建DNS服务器的原因大致有三点: (1)一般公司都有多台Server需要接入互联网上并提供服务,此时公司需要向ISP申请一个域(doma

Linux下搭建DNS服务器

一.修改Linux主机名 1.hostname 主机名 [[email protected] named]# hostname ifs.com 2.vi /etc/hosts [[email protected] named]# vi /etc/hosts 127.0.0.1 ns.ifs.com ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 ~ 3.vim /etc/sysconfi

CentOS 6.4 搭建git 服务器

CentOS 6.4 搭建git 服务器 (2013-11-22 19:04:09)转载▼ 标签: it 分类: Linux 此文件是依据markdown所编写,更好效果参见本人github的文档https://github.com/jackliu2013/recipes/blob/master/doc/linux/CentOS_6.4_git服务器搭建.md ##CentOS安装Git服务器 Centos 6.4 + Git 1.8.2.2 + gitosis## 1.查看Linux系统服务器

Linux Centos 6.6搭建SFTP服务器

在Centos 6.6环境使用系统自带的internal-sftp搭建SFTP服务器. 打开命令终端窗口,按以下步骤操作. 0.查看openssh的版本 1 ssh -V 使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需要升级. 1.创建sftp组 1 groupadd sftp 2.创建一个sftp用户,用户名为mysftp,密码为mysftp 修改用户密码和修改Linux用户密码是一样的. useradd -g sftp -s /bin/false

Linux搭建DNS服务器

DNS相关概念 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53. 作用:解析域名 区域:正向区域.反向区域 记录: A记录 MX记录:搭建邮件服务器 PTR记录:反向记录,出现在反向区域中 CNAME记录:别名记录 NS记录:DNS授权服

fedora 20 与 centos 6.5 搭建openldap服务器心得

目标:使用ldap做为系统用户的数据目录,基于web管理ldap数据. 安装 使用 YUM 安装方式 ,由于要使用web方式管理LDAP服务器,也要安装APACHE.PHP和ldap相关的软件包,要想通过ldap验证用户,一定要安装nss-pam-ldapd和pam_ldap.web管理使用ldap-account-manager或phpldapadmin,lam和phpldapadmin可以直接用rpm包安装.centos 6.5 使用openldap 2.4.23, fedora 使用ope