DNS 伺服器基礎

来源:http://www.cnblogs.com/bruce-gao/archive/2017/12/20/8075479.html
-Advertisement-
Play Games

DNS 伺服器基礎 一、DNS簡介 DNS(Domain Name System,功能變數名稱系統)是網際網路的一項服務; DNS 是將功能變數名稱和IP地址相互映射的一個分散式資料庫; DNS 是一種應用層協議,使用UDP和TCP的53埠; 1、DNS域命名空間 DNS域命名空間是一種層次結構,一般可分為根域、頂 ...


DNS 伺服器基礎

 

一、DNS簡介

DNS(Domain Name System,功能變數名稱系統)是網際網路的一項服務;

DNS 是將功能變數名稱和IP地址相互映射的一個分散式資料庫;

DNS 是一種應用層協議,使用UDP和TCP的53埠

1、DNS域命名空間

DNS域命名空間是一種層次結構,一般可分為根域、頂級域、二級域、子域以及主機名;

 

1)根域
使用“.”表示,位於域命名空間層次結構的最高層;
目前分佈於全世界的根伺服器只有13台,全部由Internet網路信息中心(InterNIC)管理,在根域伺服器中只保存了其下層的頂級域的DNS伺服器名稱和IP地址對應關係;
2)頂級域(TLD,Top Level Domain)
頂級域位於根域下層,可以分為兩類:組織域(.com,.net,.org,.gov,.edu,.mil等)和國家域(.iq,.tw,.hk,.jp,.cn等);
3)二級域
二級域位於頂級域下層,是指為了在Internet上使用而註冊到個人或企事業單位的功能變數名稱;
4)子域
子域是根據具體情況從二級域中按部門或地理位置創建;
5)主機名
位於DNS域命名空間的最低層,主要指電腦的主機名;
註意:FQDN(Full Qualified Domain Name,完全合格功能變數名稱)包括功能變數名稱和主機名

2、DNS名稱解析方式

1)正向解析:由功能變數名稱查找IP地址;
2)反向解析:由IP地址查找功能變數名稱;
註意:二者的命名空間不在同一個空間,不是同一棵樹,因此也不是同一個解析庫;

3、DNS查詢

1)遞歸查詢
當DNS伺服器接收到查詢請求時,不論成功或失敗,都會做出對應的響應(發生在DNS客戶端與DNS伺服器之間);
2)迭代查詢
DNS伺服器根據自己的高速緩存或區域的數據,以最佳結果響應;如果伺服器無法解析,它可能返回一個指針;指針指向下級功能變數名稱的DNS伺服器,繼續該過程,直到找到擁有所查詢名字的DNS伺服器,或知道出錯、超時為止(發生在DNS伺服器之間);

4、一次完整的DNS查詢過程

 


Client----->hosts文件----->DNS Local Cache----->DNS Server (recursion,遞歸)----->

  • 若為自己負責解析的域:直接查詢資料庫並返回答案;
  • 若不是自己負責解析的域:Server Cache----->iteration(迭代)

5、解析答案

  • 肯定答案
  • 否定答案:不存在查詢的鍵,因此,不存在與之對應的值;

 

  • 權威答案:由直接負責的DNS伺服器返回的答案;
  • 非權威答案

 

二、DNS伺服器的類型

負責解析至少一個域:

  • 主DNS伺服器
  • 輔助DNS伺服器

不負責域解析:

  • 緩存DNS伺服器

1)主-輔DNS伺服器

  • 主DNS伺服器:維護所負責解析的域資料庫的那台伺服器,讀寫操作均可進行;
  • 輔助DNS伺服器:從主DNS伺服器或其他的從DNS伺服器那裡“複製”一份解析庫,但只能進行讀操作;

2)“複製”操作的實現方式

  • 序列號:serial,也即是資料庫的版本號;主伺服器資料庫內容發生變化時,其版本號遞增;
  • 刷新時間間隔:refresh,從伺服器每次到主伺服器檢查序列號更新狀況;
  • 重試時間間隔:retry,從伺服器從主伺服器請求同步解析庫失敗時,再次發起嘗試請求的時間間隔;
  • 過期時長:expire,從伺服器始終聯繫不到主服務時,多久之後放棄從主伺服器同步數據,並停止提供服務;
  • 否定答案的緩存時長:negative answer ttl;

註意:主伺服器資料庫發生變化時,主伺服器會“通知”從伺服器隨時更新數據;

3)區域傳送

  • 全量傳送:axfr,傳送整個資料庫;
  • 增量傳送:ixfr,僅傳送變化的數據;

註意:區域(zone)和域(domain)的區別:
區域為物理概念,域為邏輯概念;
如bruce.com域包括正向解析庫(FQDN--->IP)和反向解析(IP--->FQDN),每個解析庫即為一個解析區域;

 

三、BIND 簡介

BIND(Berkeley Internet Name Domain)是由伯克利大學研發的,是當前互聯網上最長使用的DNS伺服器軟體,現在由ISC(Internet Systems Consortium)負責開發與維護;

1、bind 程式包

  • bind:提供dns server程式以及幾個常用的測試程式;
  • bind-utils:bind客戶端程式集,例如dig,host,nslookup等;
  • bind-libs:被bind和bind-utils包中的程式共同用到的庫文件;
  • bind-chroot:選裝,讓named運行於jail模式下;

 註意: 

  • dns:協議;
  • bind:dns協議的一種軟體實現 ;
  • named:bind程式運行的進程名;

bind 程式安裝完成後,預設即可作為緩存名稱伺服器使用;

 

2、bind 配置文件

1)bind 的主配置文件 /etc/named.conf

主配置文件格式:

  • 全局配置段 options {...} 
  • 日誌配置段 logging {...}
  • 區域配置段 zone {...}:配置那些由本機負責解析的區域或轉發的區域;

註意:每個配置語句必須以分號結尾;

2)bind 的區域解析庫文件

bind 的解析庫文件在 /var/named/ 目錄下,一般文件名 ZONE_NAME.zone

註意:

a. 一臺DNS伺服器可以同時為多個區域提供解析;

b. 必須要有根區域解析庫文件 named.ca
c. 還應該有localhost和127.0.0.1兩個區域解析庫文件,正向的為named.localhost,反向的為named.loopback

 

3)資源記錄(Resource Record,簡稱RR)

資源記錄類型有:A、AAAA、PTR、SOA、NS、CNAME、MX;

  • SOA:Start Of Authority,起始授權記錄;一個區域解析庫有且只有一個SOA記錄,且必須放在第一條;
  • NS:Name Service,功能變數名稱服務記錄;一個區域解析庫可以有多個NS記錄,其中一個為主記錄;
  • A:Address,地址記錄;FQDN--->IPv4;
  • AAAA:地址記錄;FQDN--->IPv6;
  • CNAME:Canonical Name,別名記錄;
  • PTR:Pointer;IP--->FQDN;
  • MX:Mail eXchanger,郵件交換器;有優先順序,為0~99,數字越小優先順序越高;

 

資源記錄的定義格式:

name [TTL] IN RR_TYPE value

a. SOA

name:當前區功能變數名稱稱,例如“bruce.com.”或“2.3.4.in-addr.arpa.”;
value:有多部分組成:

  • 當前區域的區功能變數名稱稱,也可以使用主DNS伺服器名稱;
  • 當前區域管理員的郵箱地址,但地址中不能使用@符號,一般用.代替;
  • 主從服務協調屬性的定義以及否定答案的TTL;

示例:

1 bruce.com.  86400  IN  SOA  bruce.com. admin.bruce.com.(
2             2017010801    ;seial
3             2H                  ;refresh
4             10M                ;retry
5             1W                 ;expire
6             1D                  ;negative answer ttl
7 )    

 

b. NS

name:當前區域的區功能變數名稱稱;
value:當前區域的某DNS伺服器的名稱,如ns.bruce.com.;

示例:

1 bruce.com. 86400 IN NS ns1.bruce.com.
2 bruce.com. 86400 IN NS ns2.bruce.com.

註意:一個區域可以有多個ns記錄;

 

c. MX

name:當前區域的區功能變數名稱稱;
value:當前區域某郵件交換器的主機名;

示例:

1 bruce.com. IN MX 10 mx1.bruce.com.
2 bruce.com. IN MX 20 mx2.bruce.com.

註意:MX記錄可以有多個,但每個記錄的value之前應該有一個數字表示其優先順序;

 

d. A

name:某FQDN,如www.bruce.com.;
value:某IPv4地址;

示例:

1 www.bruce.com. IN A 1.1.1.1
2 www.bruce.com. IN A 1.1.1.2
3 bbs.bruce.com. IN A 1.1.1.1

 

e. AAAA

name:FQDN;
value:IPv6;

 

f. PTR

name:IP地址,有特定格式,即IP地址反過來寫,而且需加特定尾碼;如1.2.3.4的記錄應該寫為4.3.2.1.in-addr.arpa.;
value:FQDN;

示例:

1 4.3.2.1.in-addr.arpa. IN PTR www.bruce.com.

 

g. CNAME

name:FQDN格式的別名;
value:FQDN格式的正式名稱;
示例:

1 web.bruce.com. IN CNAME www.bruce.com.

 

註意:

  • TTL可以從全局繼承;
  • @表示當前區域的名稱;
  • 相鄰的兩條記錄其name相同時,後面的可以省略;
  • 對於正向區域來說,各MX、NX等類型記錄的value為FQDN,此FQDN應該有一個A記錄;

 

四、DNS 工具

1、DNS 排錯工具

1)rndc
rndc工作在TCP的953埠,預設監聽於127.0.0.1地址,因此僅允許本地使用;

1 rndc status
2 rndc flush
3 rndc reload

 

2)named-checkconf

1 named-checkconf [/etc/named.conf]

 

3)named-checkzone

1 named-checkzone [ZONE_NAME] [ZONE_FILE]

 

2、DNS 測試工具

1)dig

註意:dig用於測試DNS系統,因此不會查詢hosts文件;

 1 dig [query options] [-t RR_TYPE] name [@SERVER]
 2   query options:
 3         +[no]trace:跟蹤解析過程;
 4         +[no]recurse:進行遞歸解析;
 5 
 6 dig -x IP
 7     反向解析測試
 8 
 9 dig -t axfr DOMAIN [@server]
10     模擬完全區域傳送    

 

2)host

1 host [-t RR_TYPE] name [server]

 

3)nslookup

1 nslookup [options] [name] [server]
2 
3 交互模式
4 nslookup>
5     server IP:以指定IP為DNS伺服器進行查詢;
6     set q=RR_TYPE:要查詢的資源記錄類型;
7     name:要查詢的名稱;

 


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

-Advertisement-
Play Games
更多相關文章
  • Q# 是微軟的量子語言,很厲害,所以本文告訴大家如何入門,如何配置 ...
  • 自己封裝個類庫,用於微信開發 使用的大概邏輯: Model層新建類Access_token 結合redis或其他資料庫使用 ...
  • 在開發的過程中我們總是會碰到多表操作的需求,今天我分享一個關於查詢的方法, 前言:在使用NHibernate中,需要將用戶表(Users)、部門表(Departments),鏈表查詢,在網上找了很多資料,可以在配置文件中配置相應的屬性達到關聯的效果,一對多、多對一、多對多的方式,但是使用後發現有些不 ...
  • 新建Common類庫 ...
  • 一、環境 VMware12 Pro CentOS-6.7-i386-bin-DVD1 jdk-8u151-linux-i586 二、詳細安裝步驟 前提:需要卸載自己Linux上的jdk rpm -qa | grep jdk 會顯示你所有包含jdk這個字元串的安裝包 rpm -e --nodeps 對 ...
  • 一、Linux中的文件許可權與目錄許可權 Linux中定義了3種訪問許可權,分別是r、w、x。其中r表示對象是可讀的,w表示對象是可寫的,x表示對象是可執行的,這3種許可權組成一組rwx分別對應對象的3個安全級別。這3個安全級別分別是對象的所屬者,對象的所屬組,系統其他用戶。比如圖1-1所示,文件的許可權 圖 ...
  • 今晚心血來潮,來加加班,想起還有一個博客,索性來寫寫,步驟會比較清楚,畢竟我有輕微強迫症... 聲明下,用的是centos6 的系統環境,預設root許可權,部署過程中iptables關閉,之後根據需求配置策略,selinux也是預設關閉的, 關閉iptables : /etc/init.d/ipta ...
  • 1.單詞說明 command n. 命令,指令 [kə'mɑ:nd] 單詞拼寫 名詞 單詞含義 音標(發音) command n. 命令,指令 [kə'mɑ:nd] 單詞拼寫 名詞 單詞含義 音標(發音) 提示:著重記憶單詞對應的意思,有能力的朋友最好詞性也記憶 2.詞性說明 n v vi vt c ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...