Centos-Linux配置dns(bind,named)

Centos-Linux 配置 DNS (named) 服务

1.bind软件包的安装与服务的设置:

  • DNS服务的安装包是bind软件的安装(配置好软件仓库的前提下):

    yum list | grep bind # 查询一下bind的包
    # 输出 ---------------------------
    bind.x86_64                       # 主包    
    	named DNS服务
        named-chkconfig(named.conf文件检查工具)
        named-checkzone(zone文件检车工具)
        rndc(本地和远程dns控制工具)
    bind-chroot.x86_64             # 切换默认目录到另外一个深层的安全的目录                                             
    bind-libs.x86_64               #  named DNS服务的库                                 
    bind-utils.x86_64              #  包含一系列辅助工具来测试
     	host
        dig
        nslookup
        nsupdate
    -------------------------------
    yum install bind* -y
    -----------------------------
    
  • 它的服务名为named,设置DNS服务开机时启动:

    systemctl enable named  # 设置named(DNS服务)开机时自启动
    systemctl start named # 启动named服务
    -------------------------------------------------------
    chkconfig named on # 设置named(DNS服务)开机时自启动
    service named start  # 启动named服务
    
  • 关闭SELinux的强制模式与防火墙:

    systemctl stop firewalld # 关闭防火墙服务
    --------------------------------------------
    service firewalld stop # 关闭防火墙服务
    --------------------------------------------
    setenforce 0 # 关闭SELinux强制模式
    

2.DNS配置文件的介绍:

1. 主配置文件/etc/named.conf
vim /etc/named.conf 
options {
        listen-on port 53 { 127.0.0.1; }; # 指定dns服务监听端口监听IP(默认是本地换回地址) 要修改为 `any`
        listen-on-v6 port 53 { ::1; };
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { localhost; }; # 指定允许查询DNS服务器的客户端的IP(默认是本主机) 要修改为 `any`
 
2. 区域配置文件: /etc/named.rfc1912.zones
  • 正向解析区域:
vim /etc/named.rfc1912.zones
zone "cqvie.edu.cn“ IN { #正向解析区cqvie.edu.cn
type master; # 类型为主域名服务器
file "cqvie.edu.cn.zone"; # 指定正向解析区的解析文件名
allow-update { none; }; # 不允许客户端动态更新
}
  • 反向解析区域:
zone "10.168.192.in-addr.arpa“ IN { #反向解析区,注意其命令规则
type master; #类型为主域名服务器
file "10.168.192.arpa"; #指定反向解析区的解析文件名
allow-update { none; }; #不允许动态更新
}
常见区域类型:
hint 根区域
master 主区域 (主服务器)
slave 服务区域(从属服务器)
3. 区域解析文件:
  • 正向区域解析文件**(区域解析文件的名称必须和区域配置文件的名称保持一致)位置在/var/named**
$TTL 3H            # 指的是该区域的解析记录在其他服务器缓存时间为3个小时
@ IN SOA ns.cqvie.edu.cn. root.cqvie.edu.cn.(   
# @表示该区域的区域名<cqvie.edu.cn> IN表示类型为INTERNET 
# SOA记录即起始授权记录  ns.cqvie.edu.cn.表示主域名授权服务器
# root.cqvie.edu.cn.为管理员邮件地址因为@在文件中有特殊意义使用使用.代替邮箱的@
                0; serial   # 更新序号
                1D; refresh # 更新时间
                1H; retry   # 重试延时
                1W; expire  # 失效时间
                3H ); minimum    # 无效解析记录缓存时间   


    NS ns.cqvie.edu.cn.                    #名称服务器记录 
    MX 10 mail.cqvie.edu.cn.               #邮件交换记录,前面为空表示该区域的区域名,10表示优先级
ns A 192.168.10.1                      #主机记录
mail A 192.168.10.1                    #主机记录
www A 192.168.10.1                     #主机记录
ftp CNAME www                          #别名记录  表示 ftp.cqvie.edu.cn 是 www.cqvie.edu.cn的一个别名

注意:在区域解析文件中可以使用完全域名,也可以不适用完全域名,使用完全域名时候,必须要在后面加上.表示根

如果一个名称后面没有.表示它不是完全域名,系统会在改名称的后面加上该区域的区域名cqvie.edu.cn.zone

在这里插入图片描述

在这里插入图片描述

    1. 反向区域解析文件: (区域解析文件的名称必须和区域配置文件的名称保持一致)
$TTL 3H
@ IN SOA ns.cqvie.edu.cn. root.cqvie.edu.cn.(
                  0; serial
                  1D; refresh
                  1H; retry
                  1W; expire
                  3H ); minimum
                  NS ns.cqvie.edu.cn.
21 PTR ns.cqvie.edu.cn. #指针记录

3. DNS正向解析服务的配置:

第一步:关闭防火墙;关闭SELinux强制模式:
  1. firewall-cmd --permanent --zone=public --add-service=dns

  2. firewall-cmd --reload

第二步:修改主配置文件:
cd /etc
vim named.conf

options {
  listen-on port 53 { any; }; #在本机所有IP地址上监听DNS查询
  listen-on-v6 port 53 { ::1; };
  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; }; #允许所有主机查询本域名服务器
第三步:创建正向解析区域:
vim /etc/named.rfc1912.zones 在下面追加内容
zone "sunziquan.edu.cn" IN { #正向解析区域名
type master; #类型为主域名服务器
file "sunziquan.edu.cn.zone"; #区域解析文件名
allow-update { none; }; #不允许更新
};
第四步:正向解析配置:
 cd /var/named
 # 将空解析文件模板复制到区域解析文件,同时保留原文件属性  (文件名要和区域配置文件名保持一致)
 cp named.localhost sunziquan.edu.cn.zone -a # 一定要保持文件原本的权限  也可使用 -a 或 -p (-a包含了-p,-a在保留文件的属性权限不变的同时保留了链接)
 # 编辑此文件
 vim sunziquan.edu.cn.zone  
 
# 在底部修改配置内容
 
 -------------------------------------
 $TTL 3H
@	IN SOA	sunziquan.edu.cn. rname.invalid. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	ns.sunziquan.edu.cn.
	MX      21 mail.sunziquan.edu.cn.
ns      A   192.168.10.21
mail    A   192.168.10.21
www     A   192.168.10.21
ftp     CNAME  www
第五步:重启服务
 systemctl restart named
 --------------------------
 service named restart 

4.DNS反向解析服务的配置:

第一步:创建反向解析区域:
vim /etc/named.rfc1912.zones 在下面追加内容
zone "10.168.192.in-addr.arpa" IN { #反向解析区域名
type master; #类型为主域名服务器 
file "10.168.192.arpa"; #区域解析文件名为
allow-update { none; }; #不允许客户端动态更新
};
第二步:创建反向解析区域:
cd /var/named #进入解析文件目录
 cp named.loopback 10.168.192.arpa -p   #复制模板
反向区域解析文件,同时保留原文件属性
----------------------------------------------------------
 vim 10.168.192.zone #编辑反向区域解析文件,增加PTR记录如下
 ---------------------------------------------------------
 $TTL 1D
@       IN SOA  sunziquan.edu.cn. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.sunziquan.edu.cn.
2       PTR     www.sunziquan.edu.com.  # 2 表示的就是 192.168.10.2 这个地址
第三步:重启named服务:
systemctl restart named #重启域名服务
---------------------------------
service named restart 

5. 配置从属服务器:

本实验是在关闭防火墙和SELinux的强制规则下进行的,保证主从服务器直间可以ping通

设 DC1 为主服务器,DC2 为从服务,DC1的IP地址为 192.168.10.11/24 DC2 的IP地址为 192.168.10.12

  • 第一步: 配置主服务器 DC1 服务器的 主配置文件区域配置文件
vim /etc/named.conf 
-----------------------------------------------------
options {
 listen-on port 53 { any; }; #在本机所有IP地址上监听DNS查询
 listen-on-v6 port 53 { ::1; };
 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; }; #允许所有主机查询本域名服务器
--------------------------------------------------------------------
vim /etc/named.rfc1912.zones 追加内容 
--------------------------------------------------------------------
zone "skills2018.com" IN {  
	type master;
	file "skills2018.com.zone";
	allow-update { 192.168.10.12; }; # 允许更新区域信息的主机地址,参数为从属服务器的地址,或者直接写none,即不允许其他dns服务器更新区域信息
};

zone "10.168.192.in-addr.arpa" IN {
	type master;
	file "10.168.192.arpa";
	allow-update { 192.168.10.12; }; 
};

配置主服务器的区域解析文件

  • 第二步: 配置主服务器 DC2 服务器的 主配置文件区域配置文件
vim /etc/named.conf 
-----------------------------------------------------
options {
 listen-on port 53 { any; }; #在本机所有IP地址上监听DNS查询
 listen-on-v6 port 53 { ::1; };
 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; }; #允许所有主机查询本域名服务器
--------------------------------------------------------
vim /etc/named.rfc1912.zones 追加内容
---------------------------------------------------------
zone "skills2018.com" IN {
       type slave;
       file "slaves/skills2018.com"; # 记录同步保存的路径
       masters { 192.168.10.11; }; # 从主dns服务器获取记录,参数为主服务器的地址
};

zone "10.168.192.in-addr.arpa" IN {
       type slave;
       file "slaves/10.168.192.arpa"; # 记录同步保存的路径
       masters { 192.168.10.11; }; 
};

一般来说从服务器重启之后就会从主服务器获取配置文件,位置在 /var/named/slaves

DNS配置相关检查命令:

named-checkconf 命令:

其功能是用于named配置文件语法检查

#使用named-checkconf命令可以对named配置文件进行语法检查。需要指定要检查的配置文件的名称,如果没有指定则默认为/etc/named.conf文件。
named-checkconf 选项 [参数]  #  参数为配置文件
# 选项 -b  显示情况摘要并退出
# 选项 -z  执行named.conf配置文件中找到的所有主要区域的测试负载
# 选项 -t  将现有目录切换至指定目录以便处理配置文件中的已包括伪命令

named-checkzone 命令:

named-checkzone命令可以进行区域文件有效性检查和转换,必须指定区域名称和区域文件名称

named-checkzone 选项 [参数1] [参数2] # 参数1 是区域名称 参数2 是区域配置文件路径
# 选项 -q 安静模式 
# 选项 -d 启用调试 
# 选项 -c <类别> 指定区域的类别
# named-checkzone 2018skills.com /var/named/2018skills.com.zone

扩展: named-chroot 服务:

named-chroot 服务,安装包为 bind-chroot,如果安装使用的是 yum install bind* 安装的话,这个服务也是被安装上去的,不过默认没有开启,此服务为named服务提供一个虚拟目录的功能,即:

# 配置文件位置会从 /etc目录下变成 /var/named/chroot/etc 目录下
# 区域解析文件位置会从 /var/named 位置变成 /var/named/chroot/var/named

centos-linux 查看域名解析的三大命令 (所在软件包为bind-utils) :

nslookup 命令:

nslookup [参数] # 参数为域名或ip

host 命令:

host [参数] # 参数是 ip 或者 域名

dig 命令:

Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。

dig [参数] # 参数为 域名
dig -x [参数] # 参数 ip

赛题:

(一)完成域名服务器部署
1.在此服务器中配置yum 源,安装相关服务,实现域名服务器部署,设置开机
自动加载服务;
2.配置该服务器为2018skills.com 的子域名服务器, 解析区域为lin.2018skills.com ; 按照“ 表12 : 域名信息表3 ” 完成正反向解析, 禁止192.168.70.0/24 网段的主机访问此DNS 服务器;利用nslookup 命令完成验证,正向解析截图为1-1-1.jpg,反向解析截图为1-1-2.jpg。
# 虚拟机名称 完全限定域名
# Centos-A3 dns.lin.2018skills.com.
# Centos-A4 www.lin.2018skills.com.
# Centos-C1 ftp.lin.2018skills.com.
# Centos-C2 mail.lin.2018skills.com.
# Centos-C3 smb.lin.2018skills.com.
# Centos-C4 data.lin.2018skills.com.

解 (Centos 7):

  1. yum install bind* -y 安装bind包
    service named start # 开启 named 服务
    chkconfig named on # 设置开机时自动named启动服务
    

    | 使用 systemctl status named 或者 service named status 截图 |

    在这里插入图片描述

  2. # 修改主配置文件:
    options {
            listen-on port 53 { any; };
            listen-on-v6 port 53 { ::1; };
            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";
            recursing-file  "/var/named/data/named.recursing";
            secroots-file   "/var/named/data/named.secroots";
            allow-query     { any; };
            blackhole       {192.168.70.0/24;};
    # 修改区域配置文件  /etc/named.rfc1912.zones 追加
    zone "10.168.192.in-addr.arpa" IN {
            type master;
            file "10.168.192.arpa";
            allow-update { none; };
    };
    zone "lin.2018skills.com" IN {
            type master;
            file "lin.2018skills.com.zone";
            allow-update { none; };
    };
    执行检查命令
    named-checkconf /etc/named.rfc1912.zones # 如果未报错即可进行下面的操作
    cp -a  named.localhost lin.2018skills.com.zone
    cp -a  named.loopback  10.168.192.arpa
    ----------------------------------------------------------
    修改刚拷贝好的区域解析文件
    --------------------------------------------------------
    vim /var/named/lin.2018skills.com.zone
    ---------------------------------------------
    $TTL 1D
    @       IN SOA  lin.2018skills.com. rname.invalid. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
     @       NS      dns.lin.2018skills.com.
    dns     A       192.168.10.11
    www     A       192.168.10.12
    ftp     A       192.168.10.13
    mail    A       192.168.10.14
    smb     A       192.168.10.15
    data    A       192.168.10.16
    -----------------------------------------
    # 检查: 不报错 继续执行下一步操作
    named-checkzone lin.2018skills.com /var/named/lin.2018skills.com.zone 
    -----------------------------------------
    vim /var/named/10.168.192.arpa 
    ------------------------------------
    $TTL 1D
    @       IN SOA  lin.2018skills.com. rname.invalid. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    @        NS      dns.2018skills.com.
    dns     A       192.168.10.11
    11      PTR     dns.2018skills.com.
    12      PTR     www.2018skills.com.
    13      PTR     ftp.2018skills.com.
    14      PTR     mail.2018skills.com.
    15      PTR     smb.2018skills.com.
    16      PTR     data.2018skills.com.
    ----------------------------------------
    # 检查: 
    named-checkzone 10.168.192.in-addr.arpa /var/named/10.168.192.arpa
    ---------------------------------------------------------------------
    # 限制192.168.70.0/24 网段的主机访问此DNS 服务器
     vim /etc/named.conf
     添加语句:
     blackhole {}; 里面可以书写多个网段,网段之间要用分好隔开
    
## 解 (Centos 6.5) :

```bash
1. 在配置好软件仓库的情况下使用
yum install bind* -y 
# 也有可能出现无法安装的情况所以我们就要单独对几个重要的软件包进行安装
yum install bind -y 
yum install bind-utils -y
2. 修改主配置文件
vim /etc/named.conf
 options {
        listen-on port 53 { any; };
       ...........
        allow-query     { any; };
        blackhole       {192.168.70.0/24;}; # 禁止 192.168.70.0 使用此服务
3. 修改区域配置文件,在后面追加内容:
vim /etc/named.rfc1912.zones 
  ----------------------------------------
  zone "10.168.192.in-addr.arpa" IN {
        type master;
        file "10.168.192.arpa";
        allow-update { none; };
};
zone "lin.2018skills.com" IN {
        type master;
        file "lin.2018skills.com.zone";
        allow-update { none; };
};
4. 检查配置文件:
named-checkconf /etc/named.conf
named-checkconf /etc/named.rfc1912.zones  # 如果没有报错就进行下一步
5. 进入 /var/named/ cp 区域解析文件的模板
 cp -a  named.localhost lin.2018skills.com.zone
 cp -a  named.loopback  10.168.192.arpa
6. 修改区域解析文件
 vim /var/named/lin.2018skills.com.zone
---------------------------------------------
$TTL 1D
@       IN SOA  lin.2018skills.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
 @       NS      dns.lin.2018skills.com.
dns     A       192.168.10.11
www     A       192.168.10.12
ftp     A       192.168.10.13
mail    A       192.168.10.14
smb     A       192.168.10.15
data    A       192.168.10.16
-----------------------------------------
# 检查: 不报错 继续执行下一步操作
named-checkzone lin.2018skills.com /var/named/lin.2018skills.com.zone 
-----------------------------------------
vim /var/named/10.168.192.arpa 
------------------------------------
$TTL 1D
@       IN SOA  lin.2018skills.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
 @      NS      dns.2018skills.com.
dns     A       192.168.10.11
11      PTR     dns.2018skills.com.
12      PTR     www.2018skills.com.
13      PTR     ftp.2018skills.com.
14      PTR     mail.2018skills.com.
15      PTR     smb.2018skills.com.
16      PTR     data.2018skills.com.
----------------------------------------
# 检查: 
named-checkzone 10.168.192.in-addr.arpa /var/named/10.168.192.arpa
---------------------------------------------------------------------

1W ; expire
3H ) ; minimum
@ NS dns.2018skills.com.
dns A 192.168.10.11
11 PTR dns.2018skills.com.
12 PTR www.2018skills.com.
13 PTR ftp.2018skills.com.
14 PTR mail.2018skills.com.
15 PTR smb.2018skills.com.

16 PTR data.2018skills.com.

检查:

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

相关文章

linux下开机自启: 在/etc/init.d目录下新建文件elasticsear...
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以...
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用...
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一...
设置时区(CentOS 7) 先执行命令timedatectl status|grep &...
vim&#160;/etc/sysconfig/network-scripts/ifcfg-eth0 B...