搭建最基礎的DNS服務

搭建一個簡單的DNS
為了更方便和清晰的了解DNS的作用,通過搭建一個簡單的DNS服務來學習。

在搭建之前,先簡單了解一下DNS的工作原理

  1. 客戶端把訪問的域名傳遞給DNS服務器a,如果有記錄,則將IP傳遞給客戶端
  2. DNS服務器a沒有記錄,則以遞歸方式訪問其他服務器。首先訪問根域
  3. 根域將匹配的一級域名DNS服務器b地址傳遞給DNS服務器a
  4. DNS服務器a再去訪問DNS服務器b,DNS服務器b再將匹配的二級域名DNS服務器c傳遞給DNS服務器a
  5. DNS服務器a再去訪問DNS服務器c,重復以上3,4步驟
  6. DNS服務器a得到客戶端要訪問域名的ip地址,傳遞給客戶端,并留下記錄,方便以后訪問。

簡單模擬一個DNS工作

  1. 準備兩臺終端,客戶端,服務器。
    這里我以Centos6.9為客戶端,Centos7.3位服務器。

  2. 在服務端安裝bind(提供DNS服務的軟件)
    yum -y install bind

    
    
    
    [root@centos7 named]# yum -y install bind
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirrors.163.com
     * extras: mirrors.163.com
    * updates: mirrors.btte.net
    
    Resolving Dependencies
    --> Running transaction check
    ---> Package bind.x86_64 32:9.9.4-50.el7_3.1 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ==================================================================================================
     Package          Arch               Version                            Repository           Size
    ==================================================================================================
    Installing:
    bind             x86_64             32:9.9.4-50.el7_3.1                updates             1.8 M
    Transaction Summary
    
    ==================================================================================================
    Install  1 Package
    
    Total download size: 1.8 M
    Installed size: 4.3 M
    Downloading packages:
    bind-9.9.4-50.el7_3.1.x86_64.rpm                                           | 1.8 MB  00:00:01     
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : 32:bind-9.9.4-50.el7_3.1.x86_64                                                1/1 
      Verifying  : 32:bind-9.9.4-50.el7_3.1.x86_64                                                1/1 
    
    Installed:
     bind.x86_64 32:9.9.4-50.el7_3.1                                                                 
    
    Complete!` 
  3. 關閉linux安全策略和防火墻

    • 服務器–Centos7
      sed -i ‘s/SELINUX=enforcing/SELINUX=permissive/g’ /etc/selinux/config

      iptables -F
      systemctl disable firewalld
      systemctl stop firewalld

    • 客戶端–Centos6
      sed -i ‘s/SELINUX=enforcing/SELINUX=permissive/g’ /etc/selinux/config

      chkconfig iptables off
      service iptables stop

      檢查selinux安全策略是否修改為”允許”
      cat /etc/selinux/config

  4. 啟動DNS服務器
    systemctl start named
    systemctl enable named

    啟動后確認端口開啟(端口號默認為 53)
    ss -nutl

  5. 把服務器53端口綁定在所有服務器ip上
    cd -p /etc/named.conf{,.bak}
    (需要修改陪指文件,建議先備份 )

    vim /etc/named.conf

    修改listen-on port 53 {localhost; }中的localhost
    改為any或0.0.0.0或將整行注釋

    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    在最后一行加上DNS1=127.0.0.1

    重啟服務(配置文件生效)
    systemctl restart network

  6. 在客戶端(Centos6)配置DNS,指向服務器DNS(Centos7)
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    最后加上DNS1=172.16.0.24(DNS)

    systemctl restart network

  7. 在服務器(Centos7)配置DNS,允許本地以外的地址訪問
    vim /etc/named.conf
    修改allow-query { localhost;any; };
    改為any或0.0.0.0或將整行注釋

在客戶端(Centos6)嘗試連接外網
dig www.baidu.com

[root@centos6 ~]# dig www.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59143
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5

;; QUESTION SECTION:
;www.baidu.com. IN A

;; ANSWER SECTION:
www.baidu.com. 347 IN CNAME www.a.shifen.com.
www.a.shifen.com. 43 IN A 61.135.169.121
www.a.shifen.com. 43 IN A 61.135.169.125

;; AUTHORITY SECTION:
a.shifen.com. 254 IN NS ns1.a.shifen.com.
a.shifen.com. 254 IN NS ns3.a.shifen.com.
a.shifen.com. 254 IN NS ns5.a.shifen.com.
a.shifen.com. 254 IN NS ns2.a.shifen.com.
a.shifen.com. 254 IN NS ns4.a.shifen.com.

;; ADDITIONAL SECTION:
ns1.a.shifen.com. 254 IN A 61.135.165.224
ns2.a.shifen.com. 254 IN A 180.149.133.241
ns3.a.shifen.com. 254 IN A 61.135.162.215
ns4.a.shifen.com. 254 IN A 115.239.210.176
ns5.a.shifen.com. 254 IN A 119.75.222.17

;; Query time: 1 msec
;; SERVER: 172.16.0.1#53(172.16.0.1)
;; WHEN: Mon Jul 24 14:16:16 2017
;; MSG SIZE rcvd: 260

 

原創文章,作者:kstg5663294,如若轉載,請注明出處:http://www.www58058.com/82784

(0)
kstg5663294kstg5663294
上一篇 2017-07-26
下一篇 2017-07-27

相關推薦

  • Linux文件系統的創建、檢測、修復、分區等工具的使用

    一、文件系統管理 什么是文件系統?     我的理解是文件系統是對磁盤上的數據和文件結構的管理規范。     如果文件系統沒有繼承性,那么以前文件系統的數據就無法傳到新的文件系統中。     Linux的文件系統有這么幾種:ext2, ex…

    系統運維 2016-03-03
  • N25第四周總結(lvm)

    lvm 詳解 大綱:    1、什么是lvm     2、為什么要使用lvm     3、如何實現lvm     4、lvm各項命令詳解   1、什么是lvm:        lmv (Logical Volume Manager…

    Linux干貨 2016-12-22
  • 馬哥教育網絡班22期+第4周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -r /etc/skel /home/tuser1 [root@localhost ~]# chmod&nb…

    Linux干貨 2016-09-05
  • 第三周

    第三周 1.列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@node1 ~]# who -q | sed -n ‘1p’ centos root fedora redhat mint 2.取出最后登錄到當前系統的用戶的相關信息。 [root@node1 ~]# who -a | tail -1 mint +…

    Linux干貨 2017-07-25
  • CentOS7內核編譯

    一.centos7內核編譯(支持ntfs文件系統) 1.下載內核源代碼內核文件(https://www.kernel.org/) 2.解壓縮源代碼文件到指定目錄 tar xvf linux-4.8.10.tar.xz -C /usr/src 3.創建軟鏈接解壓后的文件 cd /usr/src ln -s linux-4.8.10/ linux 4.復制當前系…

    Linux干貨 2016-11-28
  • 從Linux小白到大?!c狼共舞的日子2

    馬哥教育網絡班21期+第2周課程練習 1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 cp:copy,復制文件 cp SRC DEST   SRC為文件     如果目錄不存在:新建DEST,并將SRC中內容填充至DEST中     如果目…

    Linux干貨 2016-07-17
欧美性久久久久