夜光序言:
什麼才算是真正的内心堅強?
無情無義毫無牽挂羁絆?
還是信念堅定永無貪婪之心?
都不是,
人皆有私念。
真正堅強的人。
必有誓死想要守護的東西。
正文:
DNS:網際網路的目錄服務
網際網路上的主機和人類一樣,也可以使用多種方式進行識别。
主機的一種識别方法是用它的主機名,這些名字便于記憶,也樂于被人們接受。
主機也可以使用所謂 IP 位址進行識别。一個 IP 位址由 4 個位元組組成,并有着嚴格的層次結構。我們說 IP 位址具有層次結構,是因為從左至右它包含了越來越詳細的關于主機的位置息。
人們喜歡便于記憶的主機名辨別,而路由器則喜歡定長的、有着層次結構的 IP 位址。是以需要一種能進行主機名到 IP 位址轉換的目錄服務,這就是域名系統。
1 DNS 提供的服務
DNS是:
①一個由分層的DNS伺服器實作的分布式資料庫;
②一個允許主機查詢分布式資料庫的應用層協定。
DNS 伺服器通常是運作 BIND 軟體伺服器機器。DNS 協定運作在 UDP 之上,使用 53 号端口。
DNS 用于将使用者提供的主機名解析為 IP 位址。例如當某個使用者主機上的一個浏覽器請求某個網頁時,為了使使用者的 HTTP 請求消息發送到 Web 伺服器,使用者主機首先必須獲得Web 伺服器的 IP 位址。
在前面介紹的 Socket 程式設計接口中有專門的函數如 gethostbyname()允許程式發起一個主機名到 IP 位址的查詢。在 Windows 系統中專門有一個服務叫 DNSClient 完成 DNS 查詢工作(控制台-管理工具-服務中可見)。
除了進行主機名到 lP 位址的轉換外,DNS 還提供了一些重要的服務: .主機名稱,主機名稱比主機規範名更容易記憶,例如 www.Genius.edu,其真實的伺服器名字(主機規範名)并不是 www.Genius.edu,大家可以用 ping 指令發現它真實的名字。
.郵件伺服器别名,一個機關或域中負責郵件收發的主機。
.負載均衡,DNS 也可以用于在備援的伺服器之間進行負載配置設定。可以配置很多備援的Web 伺服器,一個 IP 位址集合對應于同一個規範主機名。DNS 資料庫中存儲着這些 IP 位址集合。
當客戶機為映射到這個 IP 位址集合的名字發出一個 DNS 請求時,該伺服器用包含全部這些位址的消息進行回答,但在每個回答中輪回這些位址排放的順序。
因為客戶機通常總是向 IP 位址排在最前面的伺服器發送 HTTP 請求消息,是以就在所有這些備援的 Web 伺服器之間均衡配置設定負載。這是一種非常傳統的負載均衡技術。
2 工作機理概述
假設運作在使用者主機上的某些應用程式(如 Web 浏覽器)需要将主機名轉換為 IP 位址。
這些應用程式将調用 DNS 的客戶機端,并指明需要被轉換的主機名。在很多系統中,應用程式執行這種轉換調用函數 gethostbyname()。
DNS 的客戶機端接收到轉換請求後,向網絡中發送一個 DNS 查詢消息。所有的 DNS 請求和回答消息使用 UDP 資料報經端口 53 發送。過若幹時間後,使用者主機上的客戶機端接收到一個映射的 DNS 回答消息。這個查詢結果則被傳遞到應用程式。
從使用者調用應用程式的角度看,這是一個簡單、直接的轉換服務。但事實上,實作這個服務的系統非常複雜,它由分布于全球的大量 DNS 伺服器組成。
夜光
實驗 域名系統層次結構(nslookup 指令)
【實驗目的】
•了解域名簡析的過程
【實驗過程】
1. nslookup 的基本用法
Windows 系統中提供了 nslookup 工具,一個用來查詢域名服務基礎結構資訊的程式。
nslookup 提供了兩種模式:互動式和非互動式。非互動模式隻能完成一次主機或域名的查詢。
互動模式容許使用者查詢域名伺服器,擷取各種關于主機和域名的資訊或輸出一個域内的主機清單。在互動式查詢中可以設定更改查詢的類型。
執行個體: nslookup 擷取幫助
C:\>nslookup
預設伺服器: cache3-xx
Address: 221.11.1.67
> help
指令: (辨別符以大寫表示,[] 表示可選)
NAME - 列印有關使用預設伺服器的主機/域 NAME 的資訊
NAME1 NAME2 - 同上,但将 NAME2 用作伺服器
help or ? - 列印有關常用指令的資訊
set OPTION - 設定選項
all - 列印選項、目前伺服器和主機
[no]debug - 列印調試資訊
[no]d2 - 列印詳細的調試資訊
[no]defname - 将域名附加到每個查詢
[no]recurse - 詢問查詢的遞歸應答
[no]search - 使用域搜尋清單
[no]vc - 始終使用虛拟電路
domain=NAME - 将預設域名設定為 NAME
srchlist=N1[/N2/.../N6] - 将域設定為 N1,并将搜尋清單設定為 N1、N2 等
root=NAME - 将根伺服器設定為 NAME
retry=X - 将重試次數設定為 X
timeout=X - 将初始逾時間隔設定為 X 秒
type=X - 設定查詢類型(如 A、AAAA、A+AAAA、ANY、CNAME、MX、
NS、PTR、SOA 和 SRV)
querytype=X - 與類型相同
class=X - 設定查詢類(如 IN (Internet)和 ANY)
[no]msxfr - 使用 MS 快速區域傳送
ixfrver=X - 用于 IXFR 傳送請求的目前版本
server NAME - 将預設伺服器設定為 NAME,使用目前預設伺服器
lserver NAME - 将預設伺服器設定為 NAME,使用初始伺服器
root - 将目前預設伺服器設定為根伺服器
ls [opt] DOMAIN [> FILE] - 列出 DOMAIN 中的位址(可選: 輸出到檔案 FILE)
-a - 列出規範名稱和别名
-d - 列出所有記錄
-t TYPE - 列出給定 RFC 記錄類型(例如 A、CNAME、MX、NS 和 PTR 等)的記錄
view FILE - 對 'ls' 輸出檔案排序,并使用 pg 檢視
exit - 退出程式
>
執行個體:使用 nslookup 查詢主機 www.baidu.com 的 IP 位址
C:\>nslookup www.baidu.com
伺服器: cache1-cb
Address: 221.11.1.67
非權威應答:
名稱: www.a.shifen.com
Addresses: 61.135.169.121
61.135.169.125
Aliases: www.baidu.com
2 頂級域名 edu 的解析
執行個體:使用 nslookup 查詢頂級域名 edu
C:\WINDOWS\system32>nslookup ~進入互動查詢模式
預設伺服器: UnKnown
Address: 192.168.1.118 ~域名伺服器位址
> set type=ns ~設定查詢類型為 NS
> edu ~本地域名伺服器将向根伺服器發起類型為 NS 的關于 edu
~域的查詢。
伺服器: UnKnown
Address: 192.168.1.118
非權威應答:
edu nameserver = l.edu-servers.net ~應答資源記錄
edu nameserver = c.edu-servers.net
edu nameserver = f.edu-servers.net
edu nameserver = d.edu-servers.net
edu nameserver = g.edu-servers.net
edu nameserver = a.edu-servers.net
a.edu-servers.net internet address = 192.5.6.30
>exit
C:\WINDOWS\system32>
在上述執行個體中,nslookup 首先進入了互動查詢模式,然後使用 set 指令設定查詢類型
在查詢類型設定完畢後,輸入 edu 域名進行查詢。
3 域名 mit.edu 的解析 【美國麻省理工學院】
執行個體:使用 nslookup 查詢域名 mit.edu
C:\WINDOWS\system32>nslookup
預設伺服器: UnKnown
Address: 192.168.1.118
> set type=ns ~設定查詢類型為 NS
> mit.edu
伺服器: UnKnown
Address: 192.168.1.118
非權威應答:
mit.edu nameserver = asia2.akam.net
mit.edu nameserver = ns1-173.akam.net
mit.edu nameserver = use2.akam.net
mit.edu nameserver = usw2.akam.net
mit.edu nameserver = asia1.akam.net
mit.edu nameserver = ns1-37.akam.net
mit.edu nameserver = use5.akam.net
mit.edu nameserver = eur5.akam.net
eur5.akam.net internet address = 23.74.25.64
use2.akam.net internet address = 96.7.49.64
use5.akam.net internet address = 2.16.40.64
usw2.akam.net internet address = 184.26.161.64
asia1.akam.net internet address = 95.100.175.64
asia2.akam.net internet address = 95.101.36.64
ns1-37.akam.net internet address = 193.108.91.37
ns1-173.akam.net internet address = 193.108.91.173
use5.akam.net AAAA IPv6 address = 2600:1403:a::40 ~IPv6 類型應答資源記錄
ns1-37.akam.net AAAA IPv6 address = 2600:1401:2::25
ns1-173.akam.net AAAA IPv6 address = 2600:1401:2::ad
>exit
C:\WINDOWS\system32>
4 域名 www.mit.edu 的解析
執行個體:使用 nslookup 查詢主機 www.mit.edu
C:\WINDOWS\system32>nslookup
預設伺服器: UnKnown
Address: 192.168.1.118
>set type=A
> www.mit.edu
伺服器: UnKnown
Address: 192.168.1.118
DNS request timed out.
timeout was 2 seconds.
非權威應答:
名稱: e9566.dscb.akamaiedge.net
Address: 23.2.142.184
Aliases: www.mit.edu
www.mit.edu.edgekey.net
>exit
C:\WINDOWS\system32>