目錄
設定檔解析" >設定檔解析
遞迴DNS伺服器、權威DNS伺服器" >遞迴DNS伺服器、權威DNS伺服器
配置主服务器
" >配置主服务器
配置从服务器
" >配置从服务器
客户端验证
" >客户端验证
首頁 常見問題 主從DNS部署--超詳細實驗操作

主從DNS部署--超詳細實驗操作

Aug 02, 2023 pm 03:46 PM
dns


主從DNS部署--超詳細實驗操作

應讀者要求,今天補充一個DNS主從的知識。

關於主從DNS部署,工作中很少會用到,但是為了讓大家遇到時能快速搭建環境,這裡做個實踐。

安裝dns軟體:

[root@slave1 ~]# yum -y install bind*
登入後複製

設定檔解析

/etc/named.conf這個設定檔主要分3段內容,options是全域配置,logging是日誌配置,最後是區域解析庫配置以及所包含的區域解析庫檔案配置。

#
[root@slave1 ~]# vim /etc/named.conf
options {
        listen-on port 53 { 10.0.0.62; };
        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; };

        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.root.key";

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

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

//.表示根区域,这个区域是必须要有的
zone "." IN {
        type hint; //指定根区域类型。
        file "named.ca"; //指定根区域解析库文件名称所在位置,相对于/var/named
};

//指定区域文件名称,所有的区域定义都可以写在named.rfc1912.zones文件中
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
登入後複製

配置文件详解:

listen-on port 53 { 10.0.0.62; };表示监听的端口和IP地址,其中{}内部两端都要有空格,IP地址要以;号结尾。

directory指定named的工作目录,后面的域配置文件、日志文件都存放在这里。例如上面示例中的named.ca就是保存在/var/named中

allow-query表示允许哪些主机可以访问当前dns服务,改成any表示任何主机都可以访问当前的dns服务

recursion如果你打算构建一个递归(缓存)DNS服务器,那这里就要设置为yes;如果是构建权威服务器,那这里就应该设置为off。

zone用于定义DNS服务器所服务的区域,其中包括区域名、区域类型和区域文件名等信息。

DNS區域分為兩大類:正向查找區域和反向查找區域。

正向查找區域用於FQDN(主機名稱網域)到IP位址的映射,當DNS客戶端請求解析某個FQDN時,DNS伺服器在正向查找區域中進行查找,並返回給DNS客戶端對應的IP位址;

 反向查找區域用於IP位址到FQDN的映射,當DNS客戶端請求解析某個IP位址時, DNS伺服器在反向查找區域中進行查找,並傳回DNS用戶端對應的FQDN。

#file:指定區域資料庫檔案的名稱,應在檔案名稱兩邊使用雙引號。這裡只寫檔名,對應的檔案保存在哪裡呢?其實它的儲存位置是由options部分的directory選項指定的,這個選項預設是/var/named。

type:指定區域類型。有 hint、master、slave 和 forward 等類型,分別表示根區域、主區域、輔助區域和轉送區域。 hint就是交給根的意思,說明根區域型別是緩衝伺服器。

遞迴DNS伺服器、權威DNS伺服器

#1.遞迴伺服器

當客戶端發起上網請求時,在查詢了本機各種快取之後沒有獲得對應的解析記錄,就會向本地DNS伺服器發起查詢請求。另外,搜尋公眾號頂級科技後台回覆“API介面”,取得一份驚喜禮包。

本地DNS伺服器會先查詢自己的本地緩存,如果有結果直接回給客戶端,如果沒有結果就會代替客戶端向根DNS伺服器、頂級網域名稱伺服器、二級網域名稱伺服器等一級一級遞歸查詢下去,最後找到網域名稱對應的權威伺服器取得結果並傳回給客戶端,同時將記錄儲存到本機快取。

小結:在整個DNS查詢過程中,客戶端除了在一開始向本地網域名稱伺服器(或稱為本地DNS伺服器)發起請求外,其餘時間都是由本地網域名稱伺服器代替進行遞歸查詢。這裡的本地網域伺服器就是遞迴DNS伺服器。

2.權威伺服器

負責最終解析網域的伺服器就是權威伺服器。權威伺服器與遞歸伺服器不同,它不負責幫助客戶端進行遞迴查詢回傳解析記錄,它本身的用途就是對網域名稱進行解析。

10T 技術限時資源大放送!包括但不限於:Linux、虛擬化、容器、雲端運算、網路、Python、Go 等。在開源Linux公眾號內回覆「10T」,即可免費取得!

每个特定的域名,权威DNS服务器可能并不相同。这种权威DNS服务器只对自己所拥有的域名进行域名解析,对于自己不负责域名则无法进行解析。比如递归DNS去taobao.com的权威DNS服务器查询baidu.com的域名肯定会查询失败。

因此递归解析服务器是运营商搭建,帮助所属网络用户去响应的权威DNS服务器查询解析结果。而权威解析服务器一般是企业自建或域名服务商建设,给购买域名的企业和个人使用,方便其对域名进行解析管理。

配置主服务器

[root@slave1 ~]# vim /etc/named.conf
options {
        listen-on port 53 { 10.0.0.62; }; //主服务器的地址
        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; }; //允许任何主机可以访问本DNS服务

        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion yes; //配置成递归DNS服务器

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.root.key";

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

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";


# 在/etc/named.rfc1912.zones文件末尾添加正向解析区域和反向解析区域
[root@slave1 ~]# vim /etc/named.rfc1912.zones
......
// 在文件最后添加一个正向解析区域,并定义为主服务器
zone "test1.com" IN {
    type master; //master表示主服务器
    file "test1.com.zone"; //指明区域解析库文件,相对于/var/named/
};

//在文件最后添加一个反向解析区域,并定义为主服务器
zone "0.0.10.in-addr.arpa" IN {
    type master;
    file "test1.com.local";
};
登入後複製

创建test1.com.zone解析库文件

# 复制模板来创建区域文件
[root@slave1 ~]# cd /var/named/

# 注意:复制的时候要用-a选项,以便保持用户拥有者等属性信息,否则named程序无法解析。当然你也可以手动修改属性,使复制后的文件的拥有者和所属组都是named
[root@slave1 named]# cp -a named.localhost test1.com.zone
[root@slave1 named]# cp -a named.loopback test1.com.local

# 设置正向解析
[root@slave1 named]# cat test1.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
          0  ; serial
          1D ; refresh
          1H ; retry
          1W ; expire
          3H ) ; minimum
  NS @
  A 10.0.0.62
www IN A 10.0.0.62
ftp IN A 10.0.0.62
mail IN CNAME www

# 设置反向解析
[root@slave1 named]# cat test1.com.local
$TTL 1D
@ IN SOA test1.com. rname.invalid. (
          0  ; serial
          1D ; refresh
          1H ; retry
          1W ; expire
          3H ) ; minimum
  NS test1.com.
  A 10.0.0.62
10 IN PTR www.test1.com.
11 IN PTR ftp.test1.com.

# 重新配置本机的DNS:
[root@slave2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
......
IPADDR=10.0.0.62
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.62
登入後複製

启动named服务:

牛逼啊!接私活必备的 N 个开源项目!赶快收藏
登入後複製
[root@slave1 ~]# systemctl start named

# 测试一下
[root@slave1 ~]# nslookup www.test1.com
Server: 10.0.0.62
Address: 10.0.0.62#53

Name: www.test1.com
Address: 10.0.0.62
[root@slave1 named]# nslookup ftp.test1.com
Server: 10.0.0.62
Address: 10.0.0.62#53

Name: ftp.test1.com
Address: 10.0.0.62
登入後複製

配置从服务器

# 修改主配置文件,只改两行,其余保持默认即可
[root@slave2 ~]# cat /etc/named.conf
......
options {
  listen-on port 53 { 10.0.0.63; }; # ip地址改成本地地址
  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; }; # 任何主机都可以访问本地dns服务
......


# 在/etc/named.rfc1912.zones文件末尾添加正向解析区域和反向解析区域
[root@slave2 ~]# vim /etc/named.rfc1912.zones
......
zone "test1.com" IN {
        type slave;
        masters { 10.0.0.62; };
        allow-notify { 10.0.0.62; };
        file "slaves/test1.com.zone";
};

zone "0.0.10.in-addr.arpa" IN {
        type slave;
        masters { 10.0.0.62; };
        allow-notify { 10.0.0.62; };
        file "slaves/test1.com.local";
};
登入後複製

注意事项:从服务器的区域解析库文件应当是从主服务器加载过来的,所以无需创建区域解析库文件。

启动named服务:

[root@slave2 ~]# systemctl start named

# 重新配置本机的DNS:
[root@slave2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
......
IPADDR=10.0.0.63
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.63

# 启动以后,会自动生成区域解析库文件,这两个文件来源于主服务器
[root@slave2 ~]# ll /var/named/slaves/
total 8
-rw-r--r-- 1 named named 336 Sep 5 20:02 test1.com.local
-rw-r--r-- 1 named named 319 Sep 5 20:02 test1.com.zone

# 测试验证
[root@slave2 ~]# nslookup www.test1.com
Server: 10.0.0.63
Address: 10.0.0.63#53

Name: www.test1.com
Address: 10.0.0.62

[root@slave2 ~]# nslookup ftp.test1.com
Server: 10.0.0.63
Address: 10.0.0.63#53

Name: ftp.test1.com
Address: 10.0.0.62
登入後複製

客户端验证

# 配置DNS:客户端需要配置多个dns,我们这里配置主从dns的地址
[root@master ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
......
IPADDR=10.0.0.61
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.62    
DNS2=10.0.0.63

# 重启网络使配置生效
[root@master ~]# systemctl restart network

[root@master ~]# nslookup www.test1.com
Server: 10.0.0.62
Address: 10.0.0.62#53

Name: www.test1.com
Address: 10.0.0.62

[root@master ~]# nslookup ftp.test1.com
Server: 10.0.0.62
Address: 10.0.0.62#53

Name: ftp.test1.com
Address: 10.0.0.62
登入後複製

主从一同工作,在客户端会配有多个DNS地址,如果第一个DNS地址无法解析,那么第二DNS地址也是无法解析的,当第一个DNS地址联系不上时(宕机)才会联系第二个DNS地址并寻求解析。

故障测试

# 停止master DNS
[root@slave1 ~]# systemctl stop named

# 到客户端上去验证
[root@master ~]# nslookup www.test1.com
Server: 10.0.0.63
Address: 10.0.0.63#53

Name: www.test1.com
Address: 10.0.0.62
登入後複製

通过上面的实验我们可以发现,停掉master DNS服务以后,客户端还是可以继续解析到域名, 即从DNS已经开始启用了。

以上是主從DNS部署--超詳細實驗操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

win11 DNS伺服器錯誤如何解決 win11 DNS伺服器錯誤如何解決 Jan 10, 2024 pm 09:02 PM

我們在連接網路時需要使用正確的dns才可以上網。同理,如果我們使用了錯誤的dns設定就會提示dns伺服器錯誤了,這時候我們可以嘗試在網路設定中選擇自動取得dns來解決,以下就一起來看下具體解決方法吧。 win11網路dns伺服器錯誤怎麼辦方法一:重新設定DNS1、首先,點選工作列中的開始進入,在其中找到並點選「設定」圖示按鈕。 2、然後點選左側欄中的「網路&Internet」選項指令。 3、然後在右側找到「乙太網路」選項,點選進入。 4、之後,點選DNS伺服器指派中的“編輯”,最後將DNS設定為“自動(D

修復:Windows 11 更新錯誤 0x80072ee7 修復:Windows 11 更新錯誤 0x80072ee7 Apr 14, 2023 pm 01:31 PM

某些 Windows 11 更新可能會導致問題和更大的版本,從而導致效能錯誤。例如,如果您不修復更新錯誤 0x80072ee7,它可能會使您的機器運作異常。它在不同的情況下觸發,修復它取決於故障背後的原因。有時,使用者會報告在安裝某些 Windows 更新時會出現此問題。瀏覽時不會隨機出現安全通知和系統錯誤。如果發生這種情況,您的電腦可能存在不必要的程式或惡意軟體。錯誤背後的原因各不相同,從防毒問題到其他幹擾 Windows 更新的軟體。 Windows 更新錯誤是如何發生的?如果瀏覽時出現 0x

如何修復 Xbox Series S/X 下載速度、降低 ping 和延遲 如何修復 Xbox Series S/X 下載速度、降低 ping 和延遲 Apr 16, 2023 pm 04:49 PM

多年來,Xbox控制台得到了突飛猛進的改進。多年來,遊戲不斷發展,具有栩栩如生的功能,而遊戲玩家似乎無法獲得足夠的體驗。在Xbox上玩您最喜歡的遊戲可能是一種完全引人入勝的體驗。但是,有時使用這些高級功能,如果網路速度不是那麼好,我們最終會遇到延遲或ping問題。有時我們希望遊戲下載速度更快。如今,像ForzaHorizo​​n5和MortalKombat這樣的遊戲需要超過100GB的記憶體。如果我們沒有正確的網路設定來幫助我們,下載此類遊戲可能需要很長時間。方法1:透過

如何解決Steam錯誤代碼105無法連接到伺服器? 如何解決Steam錯誤代碼105無法連接到伺服器? Apr 22, 2023 pm 10:16 PM

Steam是一個受歡迎的遊戲庫。它允許其用戶玩遊戲,並將遊戲下載到他們的Steam帳戶。由於它是一個基於雲端的庫,它允許用戶使用任何計算機,並允許他們在有限的計算機記憶體中存儲許多遊戲。這些功能使其在遊戲玩家社群中非常受歡迎。但是,許多遊戲玩家報告在他們的系統中看到以下錯誤代碼。錯誤代碼105-無法連接到伺服器。伺服器可能是離線錯誤這個錯誤主要是由於連接中的一些問題而出現的。當您在系統中看到此問題時,請嘗試以下常規修復並檢查問題是否已解決。重啟你的路由器。重新啟動您的系統。還是看到問題了?不用擔心

如何在 Windows 10 / 11 上的一張 LAN 卡中指派多個 IP 位址 如何在 Windows 10 / 11 上的一張 LAN 卡中指派多個 IP 位址 May 30, 2023 am 11:25 AM

有時需要為單一LAN卡分配多個位址。例如,如果需要運行多個具有唯一IP位址的網站或將應用程式綁定到不同的IP位址等。如果您正在考慮如何為單一網路介面卡或LAN卡指派多個位址,那麼本文將協助您實現它。按照下面的步驟直到最後,它就會完成。那麼就讓我們開始吧!在一張LAN卡中指派多個IP位址第1步:一起使用Windows+R鍵開啟執行提示並鍵入ncpa.cpl,然後按回車鍵開啟網路連線視窗。步驟2:右鍵單擊您的網路介面卡乙太網路或WiFi選項,然後按一下屬性。步驟3:從屬性視窗

如何在 Windows 11 上變更 DNS 設定 如何在 Windows 11 上變更 DNS 設定 May 01, 2023 pm 06:58 PM

您的ISP配置在設定網路連線時提供預設網域名稱系統(DNS)。這會帶來各種安全威脅並降低網路速度,因此必須手動分配DNS伺服器。瀏覽此詳細指南,了解如何變更Windows11電腦上的DNS設定並保護您的線上狀態。如何更改Windows11上的DNS設定? 1.使用「設定」應用程式使用+捷徑前往「設定」應用程式。 WindowsI從左側側邊欄中選擇網路和互聯網,然後從右側選擇Wi-Fi或以太網,具體取決於您的網路連線。向下捲動並選擇硬體屬性。找到DNS伺服器分配設置,然後點擊它

修復:DNS 伺服器沒有回應 Windows 11 中的問題 修復:DNS 伺服器沒有回應 Windows 11 中的問題 Jun 01, 2023 pm 04:52 PM

當Windows使用者無法在系統上的瀏覽器上瀏覽或載入網頁時,他們碰巧想到了可能導致此問題的所有因素。儘管許多Windows用戶在他們的系統上解決此問題時,它會拋出一條錯誤訊息,指出“DNS伺服器沒有回應”,用戶不知道如何解決此問題以使用穩定的網路連線。我們在這篇文章中提出了一個解決方案,它肯定會解決這個問題。但是,請事先嘗試這些解決方法——嘗試重新啟動路由器並檢查這是否導致問題。更改瀏覽器應用程式。也就是說,如果您使用的是MicrosoftEdge瀏覽器,請將其關閉並開啟Google

為什麼NameResolutionError(self.host, self, e) from e,怎麼解決 為什麼NameResolutionError(self.host, self, e) from e,怎麼解決 Mar 01, 2024 pm 01:20 PM

報錯的原因NameResolutionError(self.host,self,e)frome是由urllib3函式庫中的例外類型,這個錯誤的原因是DNS解析失敗,也就是說,試圖解析的主機名稱或IP位址無法找到。這可能是由於輸入的URL位址不正確,或DNS伺服器暫時無法使用所導致的。如何解決解決此錯誤的方法可能有以下幾種:檢查輸入的URL地址是否正確,確保它是可訪問的確保DNS伺服器可用,您可以嘗試在命令行中使用"ping"命令來測試DNS伺服器是否可用嘗試使用IP位址而不是主機名稱來存取網站如果是在代理