搭建DNS伺服器

来源:https://www.cnblogs.com/jluo/archive/2022/12/22/16998592.html
-Advertisement-
Play Games

說明 基於微服務項目,產生的的多項目倉庫管理腳本。可直接保存 shell 腳本後酌情修改後試用 目錄結構 xxxx Xxx1Api/ Xxx2Api/ git_clone_api.sh git_branch_dev.sh git_pull_all.sh git_status.sh api-build ...


第一節、安裝部署

快速構建DNS伺服器的基本過程:

  1. 安裝 bind、bind-chroot 包
  2. 建立主配置文件 /etc/named.conf
  3. 建立地址庫文件 /var/named/.. ..
  4. 啟動 named 服務
    配置及使用DNS客戶端的基本過程:
  5. 修改配置文件/etc/resolv.conf,添加nameserver=DNS伺服器地址
  6. 使用host命令查詢,提供目標功能變數名稱作為參數
yum -y install bind bind-chroot

第二節、單區域DNS伺服器

1、需求

測試階段主要提供以下正向記錄:

1. svs50.jluocc.cn ---> 192.168.4.50
2. svs51.jluocc.cn ---> 192.168.4.51
3. www.jluocc.cn ---> 192.168.4.52

配置完成後在客戶機上驗證查詢結果

2、配置DNS伺服器svr7

1)安裝 bind、bind-chroot 包

yum -y install bind bind-chroot

2)建立主配置文件 /etc/named.conf

mv /etc/named.conf /etc/named.conf.origin //備份預設配置
vim /etc/named.conf //建立新配置
options {
  directory "/var/named"; //地址庫預設存放位置
};
zone "jluocc.cn" { //定義正向DNS區域
  type master; //主區域
  file "jluocc.cn.zone"; //自定義地址庫文件名
};

3)建立地址庫文件 /var/named/jluocc.cn.zone

cd /var/named/
cp -p named.localhost jluocc.cn.zone
vim jluocc.cn.zone 
$TTL 1D    //文件開頭部分可保持不改
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       NS      svs50.jluocc.cn.     //本區域DNS伺服器的FQDN
svs50    A       192.168.4.50      //為NS主機提供A記錄
svs51   A       192.168.4.51     //其他正向地址記錄.. ..
www     A       192.168.4.52

4)啟動 named 服務,並設置開機自啟

systemctl start named
systemctl enable named
systemctl status named

3、配置DNS客戶機pc51並測試

1)修改配置文件/etc/resolv.conf,指定預設使用哪一臺DNS伺服器

vi /etc/resolv.conf
nameserver 192.168.4.50

2)使用host命令查詢,提供目標功能變數名稱作為參數

[root@server51 ~]# host svs50.jluocc.cn
svs50.jluocc.cn has address 192.168.4.50
[root@server51 ~]# host svs51.jluocc.cn
svs51.jluocc.cn has address 192.168.4.51
[root@server51 ~]# host www.jluocc.cn
www.jluocc.cn has address 192.168.4.52
[root@server51 ~]# ping www.jluocc.cn
PING www.jluocc.cn (192.168.4.52) 56(84) bytes of data.
64 bytes from 192.168.4.52 (192.168.4.52): icmp_seq=1 ttl=64 time=0.463 ms

第二節、特殊DNS解析

1、需求

  1. 為站點 www.jluocc.cn 提供DNS輪詢解析,三台Web伺服器節點的IP地址分別為:
    192.168.4.52、192.168.4.110、192.168.4.120
  2. 配置泛功能變數名稱解析實現以下解析記錄:任意名稱.jluocc.cn ---> 192.168.4.130

2、配置DNS輪詢

1)修改DNS伺服器上jluocc.cn區域的地址庫文件,在末尾添加輪詢地址記錄

vim jluocc.cn.zone
www     A       192.168.4.52
www     A       192.168.4.110
www     A       192.168.4.120

2)重啟系統服務named

systemctl restart named

3)在客戶機pc51上測試輪詢記錄
針對目標www.jluocc.cn執行多次查詢,觀察第1條結果的變化:

[root@server51 ~]# host www.jluocc.cn
www.jluocc.cn has address 192.168.4.52
www.jluocc.cn has address 192.168.4.110
www.jluocc.cn has address 192.168.4.120
[root@server51 ~]# host www.jluocc.cn
www.jluocc.cn has address 192.168.4.110
www.jluocc.cn has address 192.168.4.120
www.jluocc.cn has address 192.168.4.52
[root@server51 ~]# host www.jluocc.cn
www.jluocc.cn has address 192.168.4.110
www.jluocc.cn has address 192.168.4.52
www.jluocc.cn has address 192.168.4.120

3、配置多對一的泛功能變數名稱解析

1)修改DNS伺服器上指定區域的地址庫文件,在末尾添加*通配地址記錄

vim jluocc.cn.zone
*       A       192.168.4.130

2)重啟系統服務named

systemctl restart named

3)在客戶機pc51上測試多對一的泛功能變數名稱解析記錄
當查詢未知站點(地址庫中沒有明確記錄)時,以 * 對應的IP地址反饋:

[root@server51 ~]# host xxx.jluocc.cn
xxx.jluocc.cn has address 192.168.4.130
[root@server51 ~]# host bbb.jluocc.cn
bbb.jluocc.cn has address 192.168.4.130
[root@server51 ~]# host ccc.jluocc.cn
ccc.jluocc.cn has address 192.168.4.130

第三節、配置DNS子域授權

1、需求

要求為上下級兩個DNS區域建立父子關聯,實現客戶機向父DNS也可以查詢
到子域內的FQDN,基本要求如下:

  1. 構建父DNS(jluocc.cn)伺服器
  2. 構建子DNS(bj.jluocc.cn)伺服器
  3. 在父DNS上配置子域授權
  4. 測試子域授權查詢

為一個DNS區域添加授權子域時,需要修改此區域的地址庫,添加以下記錄:

子域功能變數名稱. IN NS 子DNS的FQDN.
子DNS的FQDN. IN A 子DNS的IP地址

2、構建父DNS(jluocc.cn)伺服器

1)將svr50配置為父DNS伺服器,確認配置
主配置文件/etc/named.conf:

vim /etc/named.conf //建立新配置
options {
  directory "/var/named"; //地址庫預設存放位置
};
zone "jluocc.cn" { //定義正向DNS區域
  type master; //主區域
  file "jluocc.cn.zone"; //自定義地址庫文件名
};

正向地址庫文件:

vim jluocc.cn.zone 
$TTL 1D    //文件開頭部分可保持不改
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       NS      svs50.jluocc.cn.     //本區域DNS伺服器的FQDN
svs50    A       192.168.4.50      //為NS主機提供A記錄
svs51   A       192.168.4.51     //其他正向地址記錄.. ..
www     A       192.168.4.52

確保服務已啟用:

systemctl restart named

2)測試 —— 向父DNS可成功查詢到父區域中的站點

[root@server51 ~]# host www.jluocc.cn 192.168.4.50
Using domain server:
Name: 192.168.4.50
Address: 192.168.4.50#53
Aliases: 

www.jluocc.cn has address 192.168.4.110
www.jluocc.cn has address 192.168.4.120
www.jluocc.cn has address 192.168.4.52

3、構建子DNS(bj.jluocc.cn)伺服器

1)將pc50配置為子DNS伺服器,確認配置
安裝軟體包bind、bind-chroot:

yum -y install bind bind-chroot

建立主配置文件/etc/named.conf:

mv /etc/named.conf /etc/named.conf.origin
vim /etc/named.conf //建立新配置
options {
  directory "/var/named"; //地址庫預設存放位置
};
zone "bj.jluocc.cn" { //定義正向DNS區域
  type master; //主區域
  file "bj.jluocc.cn.zone"; //自定義地址庫文件名
};

建立地址庫配置文件:

cd /var/named/
cp -p named.localhost bj.jluocc.cn.zone
vim bj.jluocc.cn.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       NS      svs51.bj.jluocc.cn.
svs51   A       192.168.4.51
www     A       1.2.3.4

2)啟動系統服務named,並設置開機自啟

systemctl start named
systemctl enable named
systemctl status named

3)測試 —— 向子DNS可成功查詢到子區域中的站點

[root@server51 named]# host www.bj.jluocc.cn 192.168.4.51
Using domain server:
Name: 192.168.4.51
Address: 192.168.4.51#53
Aliases: 

www.bj.jluocc.cn has address 1.2.3.4

4、在父DNS上配置子域授權

1)測試 —— 未配置子域授權時,向父DNS無法正確查詢到子區域中的站點
若父DNS配置有 * 泛功能變數名稱,則反饋的結果為對應的IP地址192.168.4.130,而不是子DNS中記
錄的1.2.3.4:

[root@server51 named]# host www.bj.jluocc.cn 192.168.4.50
Using domain server:
Name: 192.168.4.50
Address: 192.168.4.50#53
Aliases: 

www.bj.jluocc.cn has address 192.168.4.130

若父DNS未配置有 * 泛功能變數名稱,則找不到解析結果(not found)
2)修改父DNS區域tedu.cn的地址庫,添加授權子域信息

vim jluocc.cn.zone
bj.jluocc.cn. NS svs51.bj.jluocc.cn.
svs51.bj.jluocc.cn.   A     192.168.4.51

systemctl restart named 

5、測試子域授權查詢

測試 —— 成功配置子域授權以後,向父DNS可以正確查詢到子區域中的站點:

[root@server51 named]# host www.bj.jluocc.cn 192.168.4.50
Using domain server:
Name: 192.168.4.50
Address: 192.168.4.50#53
Aliases: 

www.bj.jluocc.cn has address 1.2.3.4

第四節、搭建並測試緩存DNS

1、需求

求熟悉緩存DNS的工作過程,準備一臺可上網的RHEL7虛擬機,並完成下列任務:

  1. 安裝 bind、bind-chroot 包
  2. 搭建並測試基於全局轉發器的緩存DNS
    權威/官方DNS伺服器的特點:
  • 至少管理一個DNS區域,,需要IANA等官方機構授權
  • 典型應用:根域DNS、一級域DNS、二級域DNS、三級域DNS、.. ..
    緩存DNS伺服器的特點:
  • 不需要管理任何DNS區域,但是能夠替客戶機查詢,而且通過緩存、復用查詢結果來加快響應速度
  • 典型應用:ISP服務商、企業區域網
    緩存DNS伺服器的解析記錄來源:
  • 方式1:全局轉發:將請求轉發給指定的公共DNS(其他緩存DNS),請求遞歸服務
  • 方式2:根域迭代:依次向根、一級、二級……域的DNS伺服器迭代

2、將pc50配置為緩存DNS(全局轉髮式)

1)建立主配置文件/etc/named.conf
當收到來自客戶機的DNS查詢請求時,轉發到外網的其他DNS伺服器

vim /etc/named.conf
options {
  directory "/var/named"; //地址庫預設存放位置
  forwarders { 114.114.114.114; } ;
};

2)啟動系統服務named,並設置開機自啟

systemctl start named
systemctl enable named
systemctl status named

3)可向緩存DNS伺服器pc50查詢到公共功能變數名稱(百度、網易等站點)

[root@server51 named]# host www.baidu.com 192.168.4.50
Using domain server:
Name: 192.168.4.50
Address: 192.168.4.50#53
Aliases: 

www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 14.215.177.39
www.a.shifen.com has address 14.215.177.38

[root@server51 named]# host www.163.com 192.168.4.50
Using domain server:
Name: 192.168.4.50
Address: 192.168.4.50#53
Aliases: 

www.163.com is an alias for www.163.com.163jiasu.com.
www.163.com.163jiasu.com is an alias for www.163.com.bsgslb.cn.
www.163.com.bsgslb.cn is an alias for z163picipv6.v.bsgslb.cn.
z163picipv6.v.bsgslb.cn has address 118.121.192.154
z163picipv6.v.bsgslb.cn has address 118.121.192.152
z163picipv6.v.bsgslb.cn has address 118.121.192.153
z163picipv6.v.bsgslb.cn has address 118.121.192.156
z163picipv6.v.bsgslb.cn has IPv6 address 240e:974:c900:100::3:9
z163picipv6.v.bsgslb.cn has IPv6 address 240e:974:c900:100::3:8
z163picipv6.v.bsgslb.cn has IPv6 address 240e:97d:2008:60c::1f7
z163picipv6.v.bsgslb.cn has IPv6 address 240e:974:c900:100::3:7
z163picipv6.v.bsgslb.cn has IPv6 address 240e:97d:2008:60c::1f8
z163picipv6.v.bsgslb.cn has IPv6 address 240e:97d:2008:60c::1f5

FAQ


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

-Advertisement-
Play Games
更多相關文章
  • redis 是一種非關係型資料庫,什麼是非關係型資料庫,之前我們在mysql專欄 也有提到過,這邊就不再過多的贅述,忘記了的小伙伴可以再次閱讀這篇文章 終於明白了資料庫的【關係型】與【非關係型】 其實這還是挺重要的,上次我們有個初級程式員來面試,我作為旁聽,主考官就問了關係型資料庫跟非關係型資料庫, ...
  • JZ49 醜數 題目 我們先看到題目,把只包含質因數2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因數7。 習慣上我們把1當做是第一個醜數。 方法1:質因數分解(暴力) 思路 演算法實現 一個很朴素的做法 從1~n每次+1,一直枚舉,直到找到地N個醜數為 ...
  • 研發少閑月,九月人倍忙。又到了一年一度的“金九銀十”秋招季,又到了寫簡歷的時節,如果你還在用傳統的Word文檔尋找模板,然後默默耕耘,顯然就有些落後於時代了,本次我們嘗試使用雲平臺flowcv高效打造一份巧如範金、精比琢玉的高品質Golang技術簡歷。 首先來到雲平臺:flowcv.com 點擊 t ...
  • 整理 | 鄭麗媛,出品 | CSDN(ID:CSDNnews) 在近幾年的大環境影響下,線上筆試/面試愈發流行,這也給了部分人“鑽空子”的機會——除了筆試作弊(上網搜代碼),現在連面試都能找“替身”作弊了。 下麵,就例舉幾個真實發生的事件。 面試的人≠入職的人 最近,美國紐約州一家機構的 IT 部門 ...
  • 一、前言 程式猿為什麼如此執著於造輪子?MyBatis-Plus如此強大的工具流行這麼多年了,我為啥還在重覆造這樣的輪子? 1、公司的技術規範不允許使用MyBatis-Plus,咱也不知道什麼原因; 3、以前使用SpringDataJpa慣了,今年第一次用MyBatis,必須把它打造成我想要的樣子; ...
  • 繼我關註很久一位編程的大牛發佈了他的那篇文章——<探究:普通人都是怎麼入門編程>https://www.cnblogs.com/liuyangfirst/p/16991386.html我先去再相關評論里看到了有人說這是AI寫的一樣,不過我對這篇文章的作者稍微有些瞭解,可能就是他寫的,因為有時候你看不 ...
  • 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是恩智浦全系列MCU(包含Kinetis, LPC, i.MXRT, MCX)的GPIO電平中斷設計差異。 在痞子衡舊文 《以i.MXRT1xxx的GPIO模塊為例談談中斷處理函數(IRQHandler)的標準流程》里,痞子衡主要介紹得是 ...
  • 初識 Linux Shell 本書學習的第一步,就是要找到 Linux 終端的所在位置。目前較常見的圖形化終端有 Konsole、Gnome terminal、xterm 等幾種。一般安裝後在各個發行版的菜單中搜索即可找到。Gnome terminal 和 Konsole 基本是當前各大流行 Lin ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...