• linux 部署dns正向解析服务,照做就可以


    大家好,今天我们分享Linux部署DNS服务

    首先我们要知道什么是DNS

    DNS(Domain Name System) 叫做域名系统

    是一种采用c/s架构而设计的用于实现域名和ip地址相互转换的系统

    是一种比较重要的网络服务,国际互联网工作的基础,在企业内部也是得到了广泛的应用

    DNS的解析方式

    1. 正向解析(把域名转换成ip地址) 例如: www.abc.com----- 192.168.10.10这个过程
    2. 反向解析(把ip地址转换成域名) 例如 :192.168.10.10 — www.abc.com 这个过程

    如果这个还是不好理解,在来一个例子:

    在你的键盘上按win+r 组合键
    在这里插入图片描述

    在这里插入图片描述

    我们在这里执行一个ping www.baidu.com 的操作 ,可以看见的是,它会返回一个与他对应的ip地址
    其实这就是我们域名解析地址的过程(正向解析)

    在这里插入图片描述

    或者看这个也一样

    以下就是反向解析的过程(ip地址解析成域名)

    在这里插入图片描述

    这就是DNS的结构图

    在这里插入图片描述

    DNS的查询方式

    1. 递归查询: 客户端向dns服务器解析域名的方式
    2. 迭代查询: 大多数dns服务器向其它dns服务器解析域名的方式

    DNS 服务器类型

    1. 缓存域名服务器: 这种服务器不会直接参与到域名解析的工作当中,他就是把其它dns服务器的域名查询结果接收到(缓存到)自己身上, 用户进行域名访问的时候,先找它,没有的话,就找其他的
    2.  主域名服务器     就是特定区域的dns服务器 (它是唯一的),负责该区域所有的域名解析的工作
      
      • 1
    3. 从域名服务器 : 就是,它是主域名服务器的备用机, 将主域名服务器的域名解析结果放到自己身上,起到一个备份的作用,为主dns服务器提供一个灾难冗余机制

    下面我们来做一下:

    这是我们使用的系统版本(centos 7.5 )

    [root@localhost ~]# cat /etc/redhat-release 
    CentOS Linux release 7.5.1804 (Core) 
    [root@localhost ~]# 
    
    • 1
    • 2
    • 3

    这台可以上网(但是我们不需要,)
    因为如果服务器可以上网的话,dns相关的解析就会自动跑到公网,这样的话,我们在服务器本地做的这些操作就起不到作用

    [root@localhost yum.repos.d]# ping www.baidu.com
    PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.
    64 bytes from www.baidu.com (180.101.49.12): icmp_seq=1 ttl=128 time=10.2 ms
    64 bytes from www.baidu.com (180.101.49.12): icmp_seq=2 ttl=128 time=9.71 ms
    64 bytes from www.baidu.com (180.101.49.12): icmp_seq=3 ttl=128 time=8.66 ms
    64 bytes from www.baidu.com (180.101.49.12): icmp_seq=4 ttl=128 time=8.05 ms
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    我们在这里设置一下网络(vmnet1),使用内网

    在这里插入图片描述

    宿主机本地的vmnet1 地址 192.168.10.10
    在这里插入图片描述

    修改服务器的网卡地址

    root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
    
    • 1

    这样设置 BOOTPROTO=“static”
    ONBOOT=“yes”
    IPADDR=192.168.10.12
    MASK=255.255.255.0 注意ip地址要和宿主机的ip同段

    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="static"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="ens33"
    UUID="499c469a-f9b1-41d3-a6a7-3251f065fd7c"
    DEVICE="ens33"
    ONBOOT="yes"
    IPADDR=192.168.10.12
    MASK=255.255.255.0
    ~                                                                               
    ~                           
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    重启网络

    [root@localhost ~]# systemctl  restart  network
    
    • 1

    查看网卡地址

    [root@localhost ~]# ifconfig ens33
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.10.12  netmask 255.255.255.0  broadcast 192.168.10.255
            inet6 fe80::e165:6adb:8c92:513e  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:2b:d2:66  txqueuelen 1000  (Ethernet)
            RX packets 133  bytes 13762 (13.4 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 62  bytes 6504 (6.3 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    [root@localhost ~]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    测试与宿主机的网络通信

    [root@localhost ~]# ping 192.168.10.10
    PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
    64 bytes from 192.168.10.10: icmp_seq=1 ttl=128 time=0.173 ms
    64 bytes from 192.168.10.10: icmp_seq=2 ttl=128 time=0.102 ms
    64 bytes from 192.168.10.10: icmp_seq=3 ttl=128 time=0.109 ms
    64 bytes from 192.168.10.10: icmp_seq=4 ttl=128 time=0.142 ms
    64 bytes from 192.168.10.10: icmp_seq=5 ttl=128 time=0.130 ms
    64 bytes from 192.168.10.10: icmp_seq=6 ttl=128 time=0.165 ms
    ^C
    --- 192.168.10.10 ping statistics ---
    6 packets transmitted, 6 received, 0% packet loss, time 5002ms
    rtt min/avg/max/mdev = 0.102/0.136/0.173/0.030 ms
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    连接远程工具

    在这里插入图片描述
    进入到yum 目录

    [root@localhost yum.repos.d]# ls
    CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
    CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
    
    • 1
    • 2
    • 3

    删除到所有原先的源(一定要做备份)

    [root@localhost yum.repos.d]# rm -rf *
    
    • 1

    这是我的备份

    [root@localhost yum.repos.d]# ls /opt/
    CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
    CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  rh
    [root@localhost yum.repos.d]# 
    
    • 1
    • 2
    • 3
    • 4

    写一个.repo结尾的文件

    [root@localhost yum.repos.d]# vim zz.repo
    [zz]
    name=zz
    baseurl=file:///mnt
    enable=1
    gpgckeck=0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    做挂载

    [root@localhost yum.repos.d]# mount /dev/cdrom /mnt/
    mount: /dev/sr0 写保护,将以只读方式挂载
    
    • 1
    • 2
    [root@localhost yum.repos.d]# yum list 
    
    • 1

    这样就说明没问题

    texlive-tex.noarch                                              2:svn26689.3.1415926-38.el7                         zz       
    texlive-tex-bin.x86_64                                          2:svn26912.0-38.20130427_r30134.el7                 zz       
    texlive-tex-gyre.noarch                                         2:svn18651.2.004-38.el7                             zz       
    texlive-tex-gyre-math.noarch                                    2:svn29045.0-38.el7                                 zz       
    texlive-tex4ht.noarch                                           2:svn29474.0-38.el7                                 zz       
    texlive-tex4ht-bin.x86_64                                       2:svn26509.0-38.20130427_r30134.el7                 zz       
    texlive-texconfig.noarch                                        2:svn29349.0-38.el7                                 zz       
    texlive-texconfig-bin.noarch                                    2:svn27344.0-38.20130427_r30134.el7                 zz       
    texlive-texlive.infra.noarch                                    2:svn28217.0-38.el7                                 zz       
    texlive-texlive.infra-bin.x86_64                                2:svn22566.0-38.20130427_r30134.el7                 zz 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    这里报了个错误

    [root@localhost yum.repos.d]# yum install  bind -y
    已加载插件:fastestmirror, langpacks
    
    您已启用软件包 GPG 签名检查,这样很好。不过您尚未安装任何 GPG 公钥。请下载您希望安装的软件签名公钥并安装。假设公钥已下载,安装命令是:
        rpm --import public.gpg.key
    
    
    或者,在软件源配置中,使用 'gpgkey' 选项指定软件源使用的公钥 URL,这样 yum 会自动安装它。
    
    详情请联系发行版或软件包制作人。
    
    问题源:zz
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    解决办法:

    [root@localhost yum.repos.d]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    • 1

    安装bind

    [root@localhost yum.repos.d]# yum install  bind -y
    
    • 1

    安装httpd

    [root@localhost yum.repos.d]# yum install  httpd -y
    
    • 1

    接下来,我们要实现的就是:

    通过www.abc.com 来访问我们发布在服务器上的资源

    开启httpd服务

    [root@localhost html]# systemctl  start  httpd.service 
    
    • 1

    关闭防火墙

    [root@localhost html]# systemctl  stop firewalld.service
    
    • 1

    正常访问

    在这里插入图片描述
    写点东西到我们的网站根目录下

    [root@localhost ~]# echo "abc" > /var/www/html/index.html
    
    • 1

    重启Apache

    [root@localhost ~]# systemctl  restart  httpd
    
    • 1

    访问正常

    在这里插入图片描述

    通过www.abc.com 来访问我们发布在服务器上的资源
    域名 abc.com
    主机名 www
    服务器地址: 192.168.10.12

    这是我们要做的

    要善于备份

    [root@localhost ~]# cp /etc/named.conf /opt/
    [root@localhost ~]# cp /etc/named.iscdlv.key  /opt/
    [root@localhost ~]# cp /etc/named.rfc1912.zones  /opt/
    [root@localhost ~]# cp /etc/named.root.key /opt/
    
    • 1
    • 2
    • 3
    • 4

    编辑这个文件

    [root@localhost ~]# vim /etc/named.conf 
    
    • 1

    这块配置文件很重要(以下是没有动过的)

    options {
            listen-on port 53 { 127.0.0.1; };
            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     { localhost; };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    这样改

    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";
            allow-query     { any; };     //允许所有主机进行域名查询
            
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    编辑这个文件

    [root@localhost ~]# vim /etc/named.rfc1912.zones 
    
    • 1

    这是正向区域的配置文件

    zone "localhost.localdomain" IN {
            type master;
            file "named.localhost";
            allow-update { none; };
    };
    
    zone "localhost" IN {
            type master;
            file "named.localhost";
            allow-update { none; };
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    这是反向区域的配置文件

           type master;
            file "named.loopback";
            allow-update { none; };
    };
    
    zone "1.0.0.127.in-addr.arpa" IN {
            type master;
            file "named.loopback";
            allow-update { none; };
    };
    
    zone "0.in-addr.arpa" IN {
            type master;
            file "named.empty";
            allow-update { none; };
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    编辑我们自己的正向区域配置文件

    zone "localhost.localdomain" IN {
    };
    
    zone "localhost" IN {
            type master;
            file "named.localhost";
            allow-update { none; };
    };
    
    zone "abc.com" IN {
            type master;
            file "abc.com.zone";
            allow-update { none; };
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    保存退出

    在这里缺少文件

    [root@localhost named]# ll
    总用量 16
    drwxrwx---. 2 named named    6 413 2018 data
    drwxrwx---. 2 named named    6 413 2018 dynamic
    -rw-r-----. 1 root  named 2281 522 2017 named.ca
    -rw-r-----. 1 root  named  152 1215 2009 named.empty
    -rw-r-----. 1 root  named  152 621 2007 named.localhost
    -rw-r-----. 1 root  named  168 1215 2009 named.loopback
    drwxrwx---. 2 named named    6 413 2018 slaves
    [root@localhost named]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    复制一个模板出来

    [root@localhost named]# cp named.localhost abc.com.zone
    
    • 1

    在这里插入图片描述

    编辑这个文件

    [root@localhost named]# vim abc.com.zone 
    
    • 1
    $TTL 1D
    
    @       IN SOA  abc.com root.abc.com. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      dns
    
    dns     A       192.168.10.12
    www     A       192.168.10.12
    ftp    CNAME    192.168.10.12
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    要给权限(原先的权限不够)

    [root@localhost named]# chown :named abc.com.zone 
    
    • 1

    开启named.service

    [root@localhost named]# systemctl  start  named
    
    • 1

    重启

    [root@localhost named]# systemctl  restart  named
    
    • 1

    也可以使用centos7自带的浏览器 (以下就是成功了)

    在这里插入图片描述

    解析成功

    [root@localhost named]# nslookup www.abc.com
    Server:		127.0.0.1
    Address:	127.0.0.1#53
    
    Name:	www.abc.com
    Address: 192.168.10.12
    
    [root@localhost named]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    好了,到这里我们DNS的正向解析就做好了,谢谢大家

  • 相关阅读:
    SPA项目开发之动态树+数据表格+分页
    基于C51控制蜂鸣器
    <sa8650>QCX Camera ISP overview
    为什么Spring中的bean默认都是单例模式?
    linux的持续性学习
    【电路笔记】-电流源
    wps要会员才能把pdf分开,这不纯属智商税吗
    Haskell多重递归,相互递归(合并排序Merge Sort)
    element plus 的图片上传组件回显
    MySQL日志
  • 原文地址:https://blog.csdn.net/weixin_47556601/article/details/125614006