❶ DNS原理總結及其解析過程詳解
域名系統DNS(Domain Name System)是網際網路使用的命名系統,用來把便於人們使用的機器名字轉換成為IP地址。域名系統其實就是名字系統。為什麼不叫「名字」而叫「域名」呢?這是因為在這種網際網路的命名系統中使用了許多的「域(domain)」,因此就出現了「域名」這個名詞。「域名系統」明確地指明這種系統是應用在網際網路中。
我們都知道,IP地址是由32位的二進制數字組成的。用戶與網際網路上某台主機通信時,顯然不願意使用很難記憶的長達32位的二進制主機地址。即使是點分十進制IP地址也並不太容易記憶。相反,大家願意使用比較容易記憶的主機名字。但是,機器在處理IP數據報時,並不是使用域名而是使用IP地址。這是因為IP地址長度固定,而域名的長度不固定,機器處理起來比較困難。
因為網際網路規模很大,所以整個網際網路只使用一個域名伺服器是不可行的。因此,早在1983年網際網路開始採用層次樹狀結構的命名方法,並使用分布式的域名系統DNS。並採用客戶伺服器方式。DNS使大多數名字都在本地解析(resolve),僅有少量解析需要在網際網路上通信,因此DNS系統的效率很高。由於DNS是分布式系統,即使單個計算機除了故障,也不會妨礙整個DNS系統的正常運行。
域名到IP地址的解析是由分布在網際網路上的許多域名伺服器程序共同完成的。域名伺服器程序在專設的結點上運行,而人們也常把運行域名伺服器程序的機器稱為域名伺服器。
域名到IP地址的解析過程的要點如下:當某一個應用需要把主機名解析為IP地址時,該應用進程就調用解析程序,並稱為DNS的一個客戶,把待解析的域名放在DNS請求報文中,以UDP用戶數據報方式發給本地域名伺服器。本地域名伺服器在查找域名後,把對應的IP地址放在回答報文中返回。應用程序獲得目的主機的IP地址後即可進行通信。
若本地域名伺服器不能回答該請求,則此域名伺服器就暫時稱為DNS的另一個客戶,並向其他域名伺服器發出查詢請求。這種過程直至找到能夠回答該請求的域名伺服器為止。此過程在後面作進一步討論。
由於網際網路的用戶數量較多,所以網際網路在命名時採用的是層次樹狀結構的命名方法。任何一個連接在網際網路上的主機或路由器,都有一個唯一的層次結構的名字,即域名(domain name)。這里,「域」(domain)是名字空間中一個可被管理的劃分。
從語法上講,每一個域名都是有標號(label)序列組成,而各標號之間用點(小數點)隔開。
這是中央電視台用於手法電子郵件的計算機的域名,它由三個標號組成,其中標號com是頂級域名,標號cctv是二級域名,標號mail是三級域名。
DNS規定,域名中的標號都有英文和數字組成,每一個標號不超過63個字元(為了記憶方便,一般不會超過12個字元),也不區分大小寫字母。標號中除連字元(-)外不能使用其他的標點符號。級別最低的域名寫在最左邊,而級別最高的字元寫在最右邊。由多個標號組成的完整域名總共不超過255個字元。DNS既不規定一個域名需要包含多少個下級域名,也不規定每一級域名代表什麼意思。各級域名由其上一級的域名管理機構管理,而最高的頂級域名則由ICANN進行管理。用這種方法可使每一個域名在整個互聯網范圍內是唯一的,並且也容易設計出一種查找域名的機制。
域名只是邏輯概念,並不代表計算機所在的物理地點。據2006年12月統計,現在頂級域名TLD(Top Level Domain)已有265個,分為三大類:
如果採用上述的樹狀結構,每一個節點都採用一個域名伺服器,這樣會使得域名伺服器的數量太多,使域名伺服器系統的運行效率降低。所以在DNS中,採用劃分區的方法來解決。
一個伺服器所負責管轄(或有許可權)的范圍叫做區(zone)。各單位根據具體情況來劃分自己管轄范圍的區。但在一個區中的所有節點必須是能夠連通的。每一個區設置相應的許可權域名伺服器,用來保存該區中的所有主機到域名IP地址的映射。總之,DNS伺服器的管轄范圍不是以「域」為單位,而是以「區」為單位。區是DNS伺服器實際管轄的范圍。區 <= 域。
下圖是區的不同劃分方法的舉例。假定abc公司有下屬部門x和y,部門x下面有分三個分布們u,v,w,而y下面還有下屬部門t。圖a表示abc公司只設一個區abc.com。這是,區abc.com和域abc.com指的是同一件事。但圖b表示abc公司劃分為兩個區:abc.com和y.abc.com。這兩個區都隸屬於域abc.com,都各設置了相應的許可權域名伺服器。不難看出,區是域的子集。
下圖是以上圖b中abc公司劃分的兩個區為例,給出了DNS域名伺服器樹狀結構圖。這種DNS域名伺服器樹狀結構圖可以更准確地反映出DNS的分布式結構。圖中的每一個域名伺服器都能夠部分域名到IP地址的解析。當某個DNS伺服器不能進行域名到IP地址的轉換時,它就會設法找網際網路上別的域名伺服器進行解析。
從下圖可以看出,網際網路上的DNS伺服器也是按照層次安排的。每一個域名伺服器只對域名體系中的一部分進行管轄。根據域名伺服器所起的作用,可以把域名伺服器劃分為下面四種不同的類型。
根域名伺服器:最高層次的域名伺服器,也是最重要的域名伺服器。所有的根域名伺服器都知道所有的頂級域名伺服器的域名和IP地址。不管是哪一個本地域名伺服器,若要對網際網路上任何一個域名進行解析,只要自己無法解析,就首先求助根域名伺服器。所以根域名伺服器是最重要的域名伺服器。假定所有的根域名伺服器都癱瘓了,那麼整個DNS系統就無法工作。需要注意的是,在很多情況下,根域名伺服器並不直接把待查詢的域名直接解析出IP地址,而是告訴本地域名伺服器下一步應當找哪一個頂級域名伺服器進行查詢。
頂級域名伺服器:負責管理在該頂級域名伺服器注冊的二級域名。
許可權域名伺服器:負責一個「區」的域名伺服器。
本地域名伺服器:本地伺服器不屬於下圖的域名伺服器的層次結構,但是它對域名系統非常重要。當一個主機發出DNS查詢請求時,這個查詢請求報文就發送給本地域名伺服器。
注意:
下面舉一個例子演示整個查詢過程:
❷ 簡述DNS進行域名解析的過程
1、 客戶機將域名查詢請求發送到本地DNS伺服器,當本地DNS伺服器接到查詢後,首先在該伺服器管理的區域的記錄中查找,如果找到該記錄,則利用此記錄進行解析;如果沒有區域信息可以滿足查詢要求,則在本地緩存中查找。
2、 如果本地伺服器櫻態不能在本地找到客戶機查詢的信息,將客戶機請求發送到根域名DNS伺服器。
3、 根域名伺服器負責解析客戶機請求的根域部分,它將包含下一級域名信息的DNS伺服器地址返回給客戶機的DNS伺服器地址。
孝頌姿4、 客戶機的DNS伺服器利用根域名伺服器解析的地址訪問下一級DNS伺服器,得到再下一級域我的DNS伺服器地址。
按上述遞歸方法逐級接近查詢目標,最後在有目標域名的DNS伺服器上巧絕找到相應IP地址信息。客戶機的本地DNS伺服器將遞歸查詢結果返回客戶機。客戶機利用從本地DNS伺服器查詢得到的IP訪問目標主機,就完成了一個解析過程。
❸ dns解析什麼意思
DNS解析什麼意思?
DNS解析是指DNS伺服器將域名轉換成IP地址的過程。在互聯網上,每個網址都對應著一個唯一的IP地址,這個IP地址可以唯一地定位到一台伺服器上。由於人類更習慣用域名來訪問網站,因此需要將域名和IP地址進行對應。
原理:
當客戶端輸入要訪問的域名時,DNS伺服器會先查詢自己的緩存,如果緩存中存在對應的IP地址,則直接返回該IP地址;如果緩存中沒有,則繼續向上級DNS伺服器發起查詢,直至查詢到根DNS伺服器。
根DNS伺服器是互聯網上最高級別的DNS伺服器,它存儲著所有一級域名的IP地址。當根DNS伺服器慶亮差收到查詢請求時,會返回下一級DNS伺服器的IP地址,例如.com,.org等頂級域名伺服器的IP地址。
依此類推,逐級向下查詢,直至找到對應的IP地址,然後將該地址返回給客戶端,這樣客戶端才能正常訪問網站。
優化:
由於DNS解析的過程需要進行多次網路查詢,因此在高並發環境下,每次DNS解析的時間可能會累計成較長的時間,影響用戶的訪問體驗。
為了優化DNS解析的速度,可以採取以下措施:
1. DNS緩存:在本地計算機和路由器中設置DNS緩存,可有效減輕DNS解析的負擔,提高查詢速度。
2. DNS負載均衡:通過設置多個DNS伺服器,並使用負載均衡演算法將查詢請求分配到不同的DNS伺服器中,以提高解析速度。
3. CDN加速:利用CDN技術,在全球分布式節點部署DNS伺服器,使用戶就近訪問譽皮伺服器,降低DNS解析時間。
安全:
DNS解析在互聯網上占據了重要的地位,但也存在安全問題。
例如DNS劫持,是指黑客在域名伺服器或DNS緩存中植入惡意的解析結果,使用戶輸入正確的域名時,被指向惡意的IP地址從而遭受攻擊。為了防範DNS劫持,需要運用數字證書及數字簽名技術,確保DNS伺服器發布的解析結果的完整性和真實性。
此外,還應加強對DNS伺服器的安全管理,防範黑客攻擊。
結論:
DNS解析是指將域名轉換成IP地址的過程,它是互聯網上十分重要的技術之一。在優化DNS解析的同時,也需要關注安全問題,增強DNS伺服器的安全鍵握防範措施,確保用戶訪問的安全性。
❹ 舉例說明DNS三種解析方法的工作過程
● 指定的 DNS 域名,表示為完全合格的域名 (FQDN) 。
● 指定的查詢類型,它可根據類型指定資源記錄,或作為查詢操作的專門類型。
● DNS域名的指定類別。
對於DNS 伺服器,它始終應指定為 Internet 類別。例如,指定的名稱可以是計算機的完全合格的域名,如hosta.hello.company.com,並且指定的查詢類型用於通過該名稱搜索地址資 源記錄。系統將把DNS 查詢當作客戶機向伺服器提出的兩部分問題,如「對於名為 hostname.hello.company.com 的計算機,你有沒有地址資源記錄?」當客戶機從伺服器接收應答時,它讀取並解釋應答的地址資源記錄,以了解它通過名稱提問的計算機的 IP 地址。
DNS 查詢以各種不同的方式進行解析。客戶機有時也可通過使用從以前查詢獲得的緩存信息就地應答查詢。DNS 伺服器可使用其自身的資源記錄信息緩存來應答查詢,也可代表請求客戶機來查詢或聯系其他 DNS 伺服器,以完全解析該名稱,並隨後將應答返回至客戶機。這個過程稱為遞歸。
另外,客戶機自己也可嘗試聯系其他的 DNS 伺服器來解析名稱。如果客戶機這么做,它會使用基於伺服器應答的獨立和附加的查詢,該過程稱作迭代。
總之,DNS 的查詢過程按兩部分進行:首選,名稱查詢從客戶機開始並傳送至解析程序(DNS客戶服務)進行解析;其次,不能就地解析查詢時,可根據需要查詢DNS伺服器來解析名稱。DNS 查詢的過程如下圖所示。
如查詢過程的初始步驟所示,DNS 域名由本機的程序使用。該請求隨後傳送至 DNS 客戶服務,以通過使用就地緩存的信息進行解析。如果可以解析查詢的名稱,則查詢將被應答,並且此過程完成。其中,本地
解析程序的緩存可從以下2個可能的來源獲取名稱信息:
● 如果主機文件就地配置,則來自該文件的任何主機名稱到地址的映射都將在DNS 客戶服務啟動時預先載入到緩存中。
● 從以前DNS查詢應答的響應中獲取的資源記錄將被添加至緩存並保留一段時間。
如果此查詢不匹配緩存中的項目,則解析過程繼續進行,客戶機查詢 DNS 伺服器來解析名稱。
接下來查詢 DNS 伺服器,當本地的DNS不能就地解析查詢時,可根據需要查詢 DNS 伺服器來解析名稱。如圖4-1所示,客戶機將查詢首選 DNS 伺服器。在此過程中使用的實際伺服器是從全局列表中選擇的。當 DNS 伺服器接收到查詢時,首先檢查它能否根據在伺服器的就地配置區域中獲取的資源記錄信息作出權威性的應答。如果查詢的名稱與本地區域信息中的相應資源記錄匹 配,則伺服器作出權威性的應答,並且使用該信息來解析查詢的名稱。
如果查詢的名稱沒有區域信息,則伺服器檢查它能否通過本地緩存的先前查詢信息來解析名稱。如果從中發現匹配的信息,則伺服器使用它應答查詢。接著,如果首選伺服器可使用來自其緩存的肯定匹配響應來應答發出請求的客戶機,則此次查詢完成。
如果查詢名稱在首選伺服器中未發現來自緩存或區域信息的匹配應答,則查詢過程可繼續進行,使用遞歸來完全解析名稱,包括來自其他 DNS 伺服器的支持,以幫助解析名稱。在默認情況下,DNS 客戶服務要求伺服器在返回應答前使用遞歸過程來代表客戶機完全解析名稱。在大多數情況下,DNS 伺服器的默認配置支持遞歸過程,如下圖所示。
為了使 DNS 伺服器正確執行,首先需要在DNS 域名空間內存放其他DNS伺服器的一些有用的聯系信息。該信息以根線索的形式提供,它是記錄初步資源的一個列表,可用來定位一些 DNS 伺服器,這些伺服器對 DNS 域名空間樹的根具有絕對控制權。根伺服器對 DNS 域名空間樹中的根域和頂級域具有絕對控制權。DNS 伺服器可通過使用根線索搜索根伺服器來完成遞歸過程。
例如,當客戶機查詢單個DNS伺服器時,考慮使用遞歸過程來定位名稱 host.example.microsoft.com。此過程在 DNS 伺服器和客戶機首次啟動,並且沒有可幫助解析名稱查詢的當地緩存信息時進行。
首先,首選伺服器分析全名並確定對於頂級域com具有絕對控制權的伺服器的位置。隨後,對com DNS 伺服器使用迭代查詢,以獲取microsoft.com伺服器的參考信息。然後參考性應答從microsoft.com伺服器傳送到 example.microsoft.com的 DNS 伺服器。最後,與伺服器 example.microsoft.com 聯繫上。因為該伺服器包括作為其配置區域一部分的查詢名稱,所以,它向啟動遞歸的源伺服器作出權威性的應答。當源伺服器接收到表明已獲得對請求查詢的權威 性應答的響應時,它將此應答轉發給發出請求的客戶機,這樣,遞歸查詢過程就完成了。
在實際應用過程中可能會遇到DNS解析錯誤的問題,就是說當我們訪問一個域名時無法完成將其解析到IP地址的工作,而直接輸入網站IP卻可以正常訪問,這就是因為DNS解析出現故障造成的。這個現象發生的機率比較大,所以本文將從零起步教給各位讀者一些基本的排除DNS解析故障的方法。
一、什麼是DNS解析故障?
一般來說像我們訪問的www.163.com這些地址都叫做域名,而眾所周知網路中的任何一個主機都是IP地址來標識的,也就是說只有知道了這個站點的IP地址才能夠成功實現訪問操作。
不過由於IP地址信息不太好記憶,所以網路中出現了域名這個名字,在訪問時我們這需要輸入這個好記憶的域名即可,網路中會存在著自動將相應的域名解析成IP地址的伺服器,這就是DNS伺服器。能夠實現DNS解析功能的機器可以是自己的計算機也可以是網路中的一台計算機,不過當DNS解析出現錯誤,例如把一個域名解析成一個錯誤的IP地址,或者根本不知道某個域名對應的IP地址是什麼時,我們就無法通過域名訪問相應的站點了,這就是DNS解析故障。
出現DNS解析故障最大的症狀就是訪問站點對應的IP地址沒有問題,然而訪問他的域名就會出現錯誤。
二、如何解決DNS解析故障:
當我們的計算機出現了DNS解析故障後不要著急,解決的方法也很簡單。
(1)用nslookup來判斷是否真的是DNS解析故障:
要想百分之百判斷是否為DNS解析故障就需要通過系統自帶的NSLOOKUP來解決了。
第一步:確認自己的系統是windows 2000和windows xp以上操作系統,然後通過「開始->運行->輸入CMD」後回車進入命令行模式。
第二步:輸入nslookup命令後回車,將進入DNS解析查詢界面。
第三步:命令行窗口中會顯示出當前系統所使用的DNS伺服器地址,例如筆者的DNS伺服器IP為202.106.0.20。
第四步:接下來輸入你無法訪問的站點對應的域名。例如筆者輸入www.softer.com,假如不能訪問的話,那麼DNS解析應該是不能夠正常進行的。我們會收到DNS request timed out,timeout was 2 seconds的提示信息。這說明我們的計算機確實出現了DNS解析故障。
小提示:如果DNS解析正常的話,會反饋回正確的IP地址,例如筆者用www.sohu.com這個地址進行查詢解析,會得到name:sohu.com,addresses:61.135.133.103,61.135.133.104的信息。
2)查詢DNS伺服器工作是否正常:
這時候我們就要看看自己計算機使用的DNS地址是多少了,並且查詢他的運行情況。
第一步:確認自己的系統是windows 2000和windows xp以上操作系統,然後通過「開始->運行->輸入CMD」後回車進入命令行模式。
第二步:輸入ipconfig /all命令來查詢網路參數。
第三步:在ipconfig /all顯示信息中我們能夠看到一個地方寫著DNS SERVERS,這個就是我們的DNS伺服器地址。例如筆者的是202.106.0.20和202.106.46.151。從這個地址可以看出是個外網地址,如果使用外網DNS出現解析錯誤時,我們可以更換一個其他的DNS伺服器地址即可解決問題。
第四步:如果在DNS伺服器處顯示的是自己公司的內部網路地址,那麼說明你們公司的DNS解析工作是交給公司內部的DNS伺服器來完成的,這時我們需要檢查這個DNS伺服器,在DNS伺服器上進行nslookup操作看是否可以正常解析。解決DNS伺服器上的DNS服務故障,一般來說問題也能夠解決。
(3)清除DNS緩存信息法:
當計算機對域名訪問時並不是每次訪問都需要向DNS伺服器尋求幫助的,一般來說當解析工作完成一次後,該解析條目會保存在計算機的DNS緩存列表中,如果這時DNS解析出現更改變動的話,由於DNS緩存列表信息沒有改變,在計算機對該域名訪問時仍然不會連接DNS伺服器獲取最新解析信息,會根據自己計算機上保存的緩存對應關系來解析,這樣就會出現DNS解析故障。這時我們應該通過清除DNS緩存的命令來解決故障。
第一步:通過「開始->運行->輸入CMD」進入命令行模式。
第二步:在命令行模式中我們可以看到在ipconfig /?中有一個名為/flushdns的參數,這個就是清除DNS緩存信息的命令。
第三步:執行ipconfig /flushdns命令,當出現「successfully flushed the dns resolver cache」的提示時就說明當前計算機的緩存信息已經被成功清除。
第四步:接下來我們再訪問域名時,就會到DNS伺服器上獲取最新解析地址,再也不會出現因為以前的緩存造成解析錯誤故障了。
(4)修改HOSTS文件法:
修改HOSTS法就是把HOSTS文件中的DNS解析對應關系進行修改,從而實現正確解析的目的。因為在本地計算機訪問某域名時會首先查看本地系統中的HOSTS文件,HOSTS文件中的解析關系優先順序大於DNS伺服器上的解析關系。
這樣當我們希望把某個域名與某IP地址綁定的話,就可以通過在HOSTS文件中添加解析條目來實現。
第一步:通過「開始->搜索」,然後查找名叫hosts的文件。
第二步:當然對於已經知道他的路徑的讀者可以直接進入c:\windows\system32\drivers\etc目錄中找到HOSTS文件。如果你的系統是windows 2000,那麼應該到c:\winnt\system32\drivers\etc目錄中尋找。
第三步:雙擊HOSTS文件,然後選擇用「記事本」程序將其打開。
第四步:之後我們就會看到HOSTS文件的所有內容了,默認情況下只有一行內容「127.0.0.1 localhost」。(其他前面帶有#的行都不是真正的內容,只是幫助信息而已)
第五步:將你希望進行DNS解析的條目添加到HOSTS文件中,具體格式是先寫該域名對應的IP地址,然後空格接域名信息。例如筆者添加了「211.153.80.1 www.fte.gov.cn」與「10.82.0.1 www.fte.gov.cn」兩個條目。
第六步:設置完畢後我們訪問www.fte.gov.cn時就會自動根據是在內網還是外網來解析了。
三、總結:
通過上面介紹的四個步驟,我們就可以解決大部分DNS解析問題了,這幾個方法中前三個是循序漸進的一步步解決DNS解析故障,而最後一個修改HOSTS文件則是在實在沒有辦法的時候,一種權宜之計。當然不管是通過哪種方法,我們都可以解決因為DNS解析錯誤帶來的網路故障。
❺ dns伺服器中如何將域名映射到IP地址
步驟如下:
1、DNS的解析過程,主要有以下幾個步驟:1.如果現在要訪問某網站站點,客戶機會提出解析請求,並且將請求發送給本地的域名伺服器。
5、重復上一步,直到查詢到正確晌或前的緩存記錄為止。
6、本地域名伺服器將查到的結果保存到緩存中,為下一次的使用做好准備,與此同時會將結果返回給客戶機。