應讀者要求,今天補充一個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中文網其他相關文章!

我们在连接网络时需要使用正确的dns才可以上网。同理,如果我们使用了错误的dns设置就会提示dns服务器错误了,这时候我们可以尝试在网络设置中选择自动获取dns来解决,下面就一起来看下具体解决方法吧。win11网络dns服务器错误怎么办方法一:重新设置DNS1、首先,点击任务栏中的开始进入,在其中找到并点开“设置”图标按钮。2、然后点击左侧栏中的“网络&Internet”选项命令。3、然后在右侧找到“以太网”选项,点击进入。4、之后,点击DNS服务器分配中的“编辑”,最后将DNS设置为“自动(D

某些 Windows 11 更新可能会导致问题和更大的版本,从而导致性能错误。例如,如果您不修复更新错误 0x80072ee7,它可能会使您的机器运行异常。它在不同的情况下触发,修复它取决于故障背后的原因。有时,用户报告在安装某些 Windows 更新时会出现此问题。浏览时不会随机出现安全通知和系统错误。如果发生这种情况,您的计算机可能存在不需要的程序或恶意软件。错误背后的原因各不相同,从防病毒问题到其他干扰 Windows 更新的软件。Windows 更新错误是如何发生的?如果浏览时出现 0x

有时需要为单个LAN卡分配多个地址。例如,如果需要运行多个具有唯一IP地址的网站或将应用程序绑定到不同的IP地址等。如果您正在考虑如何为单个网络接口卡或LAN卡分配多个地址,那么本文将帮助您实现它。按照下面的步骤直到最后,它就会完成。那么让我们开始吧!在一张LAN卡中分配多个IP地址第1步:一起使用Windows+R键打开运行提示并键入ncpa.cpl,然后按回车键打开网络连接窗口。第2步:右键单击您的网络适配器以太网或WiFi选项,然后单击属性。第3步:从属性窗口

多年来,Xbox控制台得到了突飞猛进的改进。多年来,游戏不断发展,具有栩栩如生的功能,而游戏玩家似乎无法获得足够的体验。在Xbox上玩您最喜欢的游戏可能是一种完全引人入胜的体验。但是,有时使用这些高级功能,如果互联网速度不是那么好,我们最终会遇到延迟或ping问题。有时我们希望游戏下载速度更快。如今,像ForzaHorizon5和MortalKombat这样的游戏需要超过100GB的内存。如果我们没有正确的互联网设置来帮助我们,下载此类游戏可能需要很长时间。方法1:通过

Steam是一个流行的游戏库。它允许其用户玩游戏,并将游戏下载到他们的Steam帐户。由于它是一个基于云的库,它允许用户使用任何计算机,并允许他们在有限的计算机内存中存储许多游戏。这些功能使其在游戏玩家社区中非常受欢迎。但是,许多游戏玩家报告在他们的系统中看到以下错误代码。错误代码105-无法连接到服务器。服务器可能是离线错误这个错误主要是由于连接中的一些问题而出现的。当您在系统中看到此问题时,请尝试以下常规修复并检查问题是否得到解决。重启你的路由器。重新启动您的系统。还是看到问题了?不用担心

您的ISP配置在设置互联网连接时提供默认域名系统(DNS)。这会带来各种安全威胁并降低互联网速度,因此必须手动分配DNS服务器。浏览此详细指南,了解如何更改Windows11计算机上的DNS设置并保护您的在线状态。如何更改Windows11上的DNS设置?1.使用“设置”应用使用+快捷方式转到“设置”应用。WindowsI从左侧边栏中选择网络和互联网,然后从右侧选择Wi-Fi或以太网,具体取决于您的互联网连接。向下滚动并选择硬件属性。找到DNS服务器分配设置,然后单击它

当Windows用户无法在系统上的浏览器上浏览或加载网页时,他们碰巧想到了可能导致此问题的所有因素。尽管许多Windows用户在他们的系统上解决此问题时,它会抛出一条错误消息,指出“DNS服务器没有响应”,用户不知道如何解决此问题以使用稳定的互联网连接。我们在这篇文章中提出了一个解决方案,它肯定会解决这个问题。但是,请事先尝试这些解决方法——尝试重新启动路由器并检查这是否导致问题。更改浏览器应用程序。也就是说,如果您使用的是MicrosoftEdge浏览器,请将其关闭并打开Google

在TCP/IP协议套件中,域名系统是提供计算机名称到IP地址映射名称解析服务的协议之一。但是,有时它会出现故障,从而导致错误,例如请求的控制对此服务NETHELPMSG2191无效。DNS客户端和服务器协同工作,为计算机和用户提供计算机名称到IP地址映射名称解析服务。安装Windows后,客户端和服务器版本的操作系统默认启用客户端服务。一旦您在TCP/IP网络配置中指定了服务器的IP地址,DNS客户端就会查询服务器以发现域控制器并将计算机名称解析为IP地址。只有在服务

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版
中文版,非常好用

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能