部署DNS服務

来源:http://www.cnblogs.com/Sunzz/archive/2017/07/25/7235298.html
-Advertisement-
Play Games

DNS,全稱Domain Name System,即功能變數名稱解析系統 。 DNS功能 主機名到IP地址的映射有兩種方式: 通過主機名,最終得到該主機名對應的IP地址的過程叫做功能變數名稱解析(或主機名解析)。在解析功能變數名稱時,可以首先採用靜態功能變數名稱解析的方法,如果靜態功能變數名稱解析不成功,再採用動態功能變數名稱解析的方法。可以將一 ...


DNS,全稱Domain Name System,即功能變數名稱解析系統

DNS幫助用戶在互聯網上尋找路徑。在互聯網上的每一個電腦都擁有一個唯一的地址,稱作“IP地址”(即互聯網協議地址)。由於IP地址(為一串數字)不方便記憶,DNS允許用戶使用一串常見的字母(即“功能變數名稱”)取代。比如,您只需鍵入www.baidu.com,而不是“119.75.217.109”。即可訪問ICANN的官方網站。DNS命名用於Internet等TCP/IP網路中,通過用戶友好的名稱查找電腦和服務。當用戶在應用程式中輸入DNS名稱時,DNS服務可以將此名稱解析為與之相關的其他信息,如IP地址。因為,你在上網時輸入的網址,是通過功能變數名稱解析系解析找到相對應的IP地址,這樣才能上網。其實,功能變數名稱的最終指向是IP

DNS功能

每個IP地址都可以有一個主機名,主機名由一個或多個字元串組成,字元串之間用小數點隔開。有了主機名,就不要死記硬背每台IP設備的IP地址,只要記住相對直觀有意義的主機名就行了。這就是DNS協議所要完成的功能。

主機名到IP地址的映射有兩種方式:

1)靜態映射,每台設備上都配置主機到IP地址的映射,各設備獨立維護自己的映射表,而且只供本設備使用;
2)動態映射,建立一套功能變數名稱解析系統(DNS),只在專門的DNS伺服器上配置主機到IP地址的映射,網路上需要使用主機名通信的設備,首先需要到DNS伺服器查詢主機所對應的IP地址。 

通過主機名,最終得到該主機名對應的IP地址的過程叫做功能變數名稱解析(或主機名解析)。在解析功能變數名稱時,可以首先採用靜態功能變數名稱解析的方法,如果靜態功能變數名稱解析不成功,再採用動態功能變數名稱解析的方法。可以將一些常用的功能變數名稱放入靜態功能變數名稱解析表中,這樣可以大大提高功能變數名稱解析效率。

DNS重要性

1、技術角度看
DNS解析是互聯網絕大多數應用的實際定址方式; 功能變數名稱技術的再發展、以及基於功能變數名稱技術的多種應用,豐富了互聯網應用和協議。
2、資源角度看
功能變數名稱是互聯網上的身份標識,是不可重覆的唯一標識資源; 互聯網的全球化使得功能變數名稱成為標識一國主權的國家戰略資源。

DNS的工作原理

以訪問www.為例說明(主機為Windows系統)

1)客戶端首先檢查本地c:\windows\system32\drivers\etc\host文件,是否有對應的IP地址,若有,則直接訪問WEB站點,若無
2)客戶端檢查本地緩存信息,若有,則直接訪問WEB站點,若無
3)本地DNS檢查緩存信息,若有,將IP地址返回給客戶端,客戶端可直接訪問WEB站點,若無
4)本地DNS檢查區域文件是否有對應的IP,若有,將IP地址返回給客戶端,客戶端可直接訪問WEB站點,若無,
5)本地DNS根據cache.dns文件中指定的根DNS伺服器的IP地址,轉向根DNS查詢。
6)根DNS收到查詢請求後,查看區域文件記錄,若無,則將其管轄範圍內.com伺服器的IP地址告訴本地DNS伺服器
7).com伺服器收到查詢請求後,查看區域文件記錄,若無,則將其管轄範圍內.xxx伺服器的IP地址告訴本地DNS伺服器
8).xxx伺服器收到查詢請求後,分析需要解析的功能變數名稱,若無,則查詢失敗,若有,返回www.的IP地址給本地伺服器
9)本地DNS伺服器將www.的IP地址返回給客戶端,客戶端通過這個IP地址與WEB站點建立連接

安裝DNS伺服器軟體

[root@CentOS7 ~]# yum install bind

配置相關配置文件

/etc/named.conf ,/etc/named.rfc1912.zones 為DNS主配置文件
/var/named/目錄為DNS資料庫文件存放目錄,每一個域文件都放在這裡。
/etc/rc.d/init.d/named 為DNS服務的服務腳本。

一 DNS正向解析

這裡以mytest.com域為例
www.mytest.com 對應IP 為192.168.29.100;
ftp.mytest.com 對應IP為1.1.1.1 。

1 首先編輯/etc/named.conf文件

        listen-on port 53 { any; };
        allow-query     { any; };
        dnssec-enable no;
        dnssec-validation no;

2 編輯區域配置文件/etc/named.rfc1912.zones

zone "mytest.com" IN {
        type master;
        file "mytest.com";
};

其中zone的格式為:

    zone “ZONE_NAME  IN {
    type  master;
    file “ZONE_NAME.zone”
}

3 新建解析庫文件/var/named/mytest.com.zone

[root@CentOS7 ~]# vim /var/named/mytest.com.zone
$TTL 1D
$ORIGIN mytest.com.
@   IN SOA  mytest.com. admin.mytest.com. (
                    20170526; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
mytest.com. IN  NS  ns1.mytest.com.

ns1 IN  A   192.168.29.100
www IN  A   172.16.254.13
ftp     IN   A  1.1.1.1

4 修改解析庫文件許可權

[root@CentOS7 ~]# chgrp named /var/named/mytest.com.zone 

5檢查 配置語法

(1)檢查配置文件語法

[root@CentOS7 ~]# named-checkconf

(2)檢查域配置文件語法

[root@CentOS7 ~]# named-checkzone mytest.com  /var/named/mytest.com.zone
zone mytest.com/IN: loaded serial 20170526
OK

6 啟動named服務

[root@CentOS7 ~]# systemctl start   named

7 測試

註意:要配置DNS伺服器為本DNS伺服器IP地址
或者使用dig命令則不需要修改DNS伺服器

[root@CentOS7 ~]# nslookup  www.mytest.com
Server:     127.0.0.1
Address:    127.0.0.1#53

Name:   www.mytest.com
Address: 172.16.254.13
[root@CentOS7 ~]# nslookup  ftp.mytest.com
Server:     127.0.0.1
Address:    127.0.0.1#53

Name:   ftp.mytest.com
Address: 1.1.1.1

測試成功,正向解析成功!!

二 DNS反向解析

這裡以mytest.com域為例
IP地址192.168.29.100/24對應功能變數名稱為www.mytest.com;
192.168.29.200/24對應功能變數名稱為ftp.mytest.com;

1 首先編輯/etc/named.conf文件

        listen-on port 53 { any; };
        allow-query     { any; };
        dnssec-enable no;
        dnssec-validation no;

2 編輯區域配置文件/etc/named.rfc1912.zones

zone "29.168.192.in-addr.arpa" IN {
    type master;
    file "name.29.168.192";
};

格式為:

zone "NET_IP.in-addr.arpa" IN { #NET_IP 為反向解析的IP 網段
    type master;
    file "NAME_ZONE";       #NAME_ZONE為反向解析庫配置文件名稱
};

3 新建解析庫文件

$TTL 1D
$ORIGIN 29.168.192.in-addr.arpa.
@       IN SOA  mytest.com. admin.mytest.com. (
                                        20170526; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
         IN     NS      mytest.com.
100     IN      PTR     www.mytest.com.
200     IN      PTR     ftp.mytest.com.

4 修改解析庫文件所屬組

[root@CentOS7 ~]# chgrp named name.29.168.192

5 語法檢查

(1)檢查配置文件語法

[root@CentOS7 ~]# named-checkconf

(2)檢查域配置文件語法

 [root@CentOS7 ~]# named-checkzone 29.168.192.in-addr.arpa /var/named/name.29.168.192
zone 29.168.192.in-addr.arpa/IN: loaded serial 20170526
OK

6 啟動named服務

[root@CentOS7 ~]# systemctl start   named

7 測試

 [root@CentOS7 ~]# dig -x 192.168.29.200 @192.168.29.100
; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -x 192.168.29.200 @192.168.29.100
[……]
200.29.168.192.in-addr.arpa. 86400 IN   PTR ftp.mytest.com.
[root@CentOS7 ~]# dig -x 192.168.29.100 @192.168.29.100
[……]
;; ANSWER SECTION:
100.29.168.192.in-addr.arpa. 86400 IN   PTR www.mytest.com.
;; AUTHORITY SECTION:
29.168.192.in-addr.arpa. 86400  IN  NS  mytest.com.

測試成功!!!

三 主從DNS

這裡主DNS伺服器IP地址為192.168.29.100/24
從DNS伺服器IP地址為192.168.29.3/24
www.mytest.com 對應IP 為192.168.29.100;
ftp.mytest.com 對應IP為1.1.1.1

1首先編輯主伺服器/etc/named.conf文件

    listen-on port 53 { any; };
    allow-query     { any; };
    recursion yes;

    dnssec-enable no;
    dnssec-validation no;

2 編輯主伺服器的區域配置文件/etc/named.rfc1912.zones

zone "mytest.com" IN {
        type master;
        file "mytest.com.zone";
        allow-transfer {192.168.29.3; };  ##192.168.29.3位從伺服器的ip地址。
};

3 新建主伺服器解析庫文件vim /var/named/mytest.com.zone

$TTL 1D
$ORIGIN mytest.com.
@   IN SOA  mytest.com. admin.mytest.com. (
                    20170526; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
mytest.com. IN  NS  ns1.mytest.com.
mytest.com. IN  NS  slave.mytest.com.   ###添加從伺服器的NS解析記錄。

ns1 IN  A   192.168.29.100
slave   IN  A   192.168.29.3    ###指定從伺服器的IP地址。
www IN  A   172.16.254.13
ftp     IN   A  1.1.1.1

4 編輯從伺服器/etc/named.conf文件

    listen-on port 53 { any; };
    allow-query     { any; };
    recursion yes;
    dnssec-enable no;
    dnssec-validation no;

5 配置從伺服器的區域配置文件/etc/named.rfc1912.zones

zone "mytest.com" IN {
    type slave; ##表明本機是從伺服器
    file "slaves/mytest.com";   ##將同步後的文件放置在哪裡,這裡是相對路徑,實際路徑為/var/named/slaves/mytest.com
    masters {192.168.29.100; }; ##指定主伺服器的ip地址
};

6 語法檢查

在主從兩個伺服器上都進行語法檢查

[root@CentOS7 ~]# named-checkconf

7 在主從兩個伺服器上開啟服務

[root@CentOS7 ~]# systemctl start named

8 測試

(1)查看從伺服器已經取得解析資料庫文件

[root@centos7 ~]# ll  /var/named/slaves/
total 4
-rw-r--r--. 1 named named 348 May 26 15:22 mytest.com

(2)用從伺服器解析www.mytest.com

[root@centos7 ~]# dig -t A www.mytest.com @192.168.29.3
[……]
;; ANSWER SECTION:
www.mytest.com.     86400   IN  A   172.16.254.13

;; AUTHORITY SECTION:
mytest.com.     86400   IN  NS  slave.mytest.com.
mytest.com.     86400   IN  NS  ns1.mytest.com.

;; ADDITIONAL SECTION:
ns1.mytest.com.     86400   IN  A   192.168.29.100
slave.mytest.com.       86400   IN  A   192.168.29.3

;; Query time: 2 msec
;; SERVER: 192.168.29.3#53(192.168.29.3)
;; WHEN: Fri May 26 15:37:13 CST 2017
;; MSG SIZE  rcvd: 129

可以看到解析成功。說明從伺服器已生效。

四 子域授權

這裡子域伺服器為192.168.29.110

1 在mytest.com.域的伺服器上修改區域資料庫文件

[root@CentOS7 ~]# cat /var/named/mytest.com.zone 
$TTL 1D
$ORIGIN mytest.com.
@   IN SOA  mytest.com. admin.mytest.com. (
                    20170526; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
mytest.com. IN  NS  ns1.mytest.com.
mytest.com. IN  NS  slave.mytest.com.
haha.mytest.com.    IN NS  ns2.haha.mytest.com.  ###新添加的行

ns1 IN  A   192.168.29.100
slave   IN  A   192.168.29.3
www IN  A   172.16.254.13
ftp     IN   A  1.1.1.1
ns2.haha.mytest.com. IN A 192.168.29.110    ###新添加行,指明子域伺服器IP地址。

2 修改子域伺服器的主配置文件/etc/named.conf

[root@CentOS7 ~]# vim  /etc/named.conf
    listen-on port 53 { any; };
    allow-query     { any; };
    recursion yes;
    dnssec-enable no;
    dnssec-validation no;

3 編輯子域伺服器的區域配置文件/etc/named.rfc1912.zones

[root@CentOS7 ~]# vim  /etc/named.rfc1912.zones
zone "haha.mytest.com" IN {
        type master;
        file "haha.zone";
        allow-transfer {192.168.29.0/24; };
};

4 新建主伺服器解析庫文件/var/named/haha.zone

功能變數名稱www.haha.mytest.com 對應IP 172.16.11.11
功能變數名稱ftp. haha.mytest.com 對應IP 2.2.2.2

[root@CentOS7 ~]# vim /var/named/haha.zone
$TTL 1D
$ORIGIN haha.mytest.com.
@       IN SOA  haha.mytest.com. admin.haha.mytest.com. (
                                        20170528; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
haha.mytest.com. IN     NS      ns2.haha.mytest.com.

ns2     IN      A       192.168.29.110
www     IN      A       172.16.11.11
ftp     IN       A      2.2.2.2

5 語法檢查

在兩個伺服器上都進行語法檢查

[root@CentOS7 ~]# named-checkconf

6 在兩個伺服器上開啟服務

[root@CentOS7 ~]# systemctl start named

7測試

[root@centos7 ~]# dig -t A  www.haha.mytest.com @192.168.29.100

; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t A www.haha.mytest.com @192.168.29.100
[…….]
;www.haha.mytest.com.       IN  A

;; ANSWER SECTION:
www.haha.mytest.com.    86400   IN  A   172.16.11.11

;; AUTHORITY SECTION:
haha.mytest.com.    86400   IN  NS  ns2.haha.mytest.com.

;; ADDITIONAL SECTION:
ns2.haha.mytest.com.    86400   IN  A   192.168.29.110

可以看到,已經可以成功解析


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 筆者經過flask web(Miguel著,封面是一條狗)一書的學習,打算實現一個旅游類網站,在此過程中發現,相對於書中的flasky博客程式,需要作出一些改變: 1. 註冊郵箱:國內要使用126,qq等郵箱。預設讀者瞭解過flasky郵件的實現方式,而使用126、qq郵箱的不同之處有: 第一,郵箱 ...
  • 通常意義上,資料庫也就是數據的集合,具體到電腦上資料庫可以是存儲器上一些文件的集合或者一些記憶體數據的集合。 我們通常說的MySql資料庫,sql server資料庫等等其實是資料庫管理系統,它們可以存儲數據,並提供查詢和更新資料庫中的數據的功能等等。根據資料庫如何存儲數據和如何操作數據的實現機制不 ...
  • 今天下午閑著沒事幹,組長讓我熟悉下C++連接資料庫,並對其進行操作,整個過程還算順利,為了記憶和下次使用,現把整個過程記錄下來: 1.安裝mysql 略 2.建立C++控制台程式,新建CPP源文件,如:sqlconn.cpp 3.在工程項目中屬性->c/C++->常規->附加包含目錄中添加mysql ...
  • 在遷移或升級SQL Server資料庫伺服器時,很多場景下我們不能還原msdb,所以我們必須手工遷移SQL Server相關作業。如果手工生成每一個作業的腳本話,費時又費力,其實SQL Server中有好幾種方法可以批量生成作業腳本的方法, 下麵介紹一下。 1:SSMS客戶端工具批量生成創建作業腳本... ...
  • 準備工作 1、 四台已安裝windows server 2008 r2 系統的虛擬機,配置如下: CPU : 1核 MEMORY : 2GB DISK : 40GB(未分區) NetAdapter : 2塊 2、 網卡設置: 本地連接:外網IP(由於虛擬機本身處於內網網段,192.168.1.2-1 ...
  • 目錄: 一、基本規則練習 二、SNAT源地址轉移 三、DNAT目標地址轉移 一、基礎規則練習 (1) 放行ssh (埠:22) (2)修改預設規則鏈(關閉所有埠) (3)放行web(80)埠 httpd nginx (4)修改預設規則鏈後,我們發現ping不通自己,也ping不通別的主機 (5 ...
  • 目錄: 一、netfilter與iptables 二、filter、nat、mangle等規則表 三、INPUT、FORWARD等規則鏈和規則 四、Linux數據包路由原理 五、iptables編寫規則 一、netfilter與iptables (1)Netfilter是由Rusty Russell ...
  • 這幾天對伺服器興趣賊為濃厚,在虛擬機上裝了一個CentOS7玩了玩,遇到過很多問題,比如網卡驅動設置,不能ping 等等問題,然後掏錢買個ECS搭伺服器玩玩,下麵就開始謝謝我的心路歷程吧。 首先 買伺服器,什麼阿裡雲,百度雲、騰訊雲等等,隨便買一個低配就好了,我買的學生機,9.9一個月,便宜的不能再 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...