瀏覽器解析
1.地址欄輸入地址后,瀏覽器檢查自身DNS緩存
地址欄輸入chrome://net-internals/#dns 查看。
2.瀏覽器緩存中未找到,那么Chrome會搜索操作系統自身的DNS緩存。
windows平台 ipconfig /flushdns 來清空dns 緩存內容。你也可以用命令 ipconfig /displaydns 來查看dns 緩存內容。
linux下由nscd守護進程進行管理 nscd也許需要自己安裝,使用man nscd
The daemon will try to watch for changes in configuration files appropriate for each database (e.g., /etc/passwd for the
passwd database or /etc/hosts and /etc/resolv.conf for the hosts database), and flush the cache when these are changed.
However, this will happen only after a short delay
大概就是這個守護進程會對密碼,域名,域名服務器地址信息維護一個數據庫,並且當對應的配置文件修改時,會自動更新,但有延遲。
因此重置dns緩存可以重啟nscd服務 service nscd restart。
3.操作系統緩存也沒有,瀏覽器發起DNS調用,進入DNS解析過程。
DNS
什么是DNS
1.一個由分層的DNS服務器實現的分布式數據庫
2.使得一個主機能夠查詢分布式數據庫的應用層協議,運行在UDP上,使用53號端口。
DNS服務器分類
1.根DNS服務器,所謂的13台並非正確的稱法,應該說具有13個根DNS IP
2.頂級域名服務器 TLD
按性質或國家地區,有com,gov,org,net,edu, cn,jp等
頂級域名又叫一級域名,baidu.com就是一個一級域名,而www.baidu.com則是該域名空間下的一台主機。
www.baidu.com還可以是二級域名,此時a.www.baidu.com才是域名下的一台主機。
3.權威DNS服務器
一般每個組織或機構都維護自己的域名系統
4.本地DNS服務器 Local DNS Server
當主機發出DNS請求時,該請求被發往本地DNS服務器,它起到了代理作用
DNS解析過程
例如主機cis.poly.edu查詢 gaia.cs.umass.edu 的IP,其中前者本地DNS為dns.poly.edu,后者的權威DNS為 dns.umass.edu
1.主機將查詢發送至 local dns server dns.poly.edu
2.本地dns不包含此主機,向根dns發送查詢。
3.根dns返回edu的TLD的IP列表。
4.本地dns向TLD列表中的一個主機發送dns查詢
5.TLD返回目的主機對應的權威dns地址。
6.本地dns再向該權威dns dns.umass.edu發送查詢報文。
7.目的主機的權威dns返回目的主機的ip地址
DNS緩存
由以上過程可見,一條dns查詢可能會產生8條d'ns報文,采用緩存技術,可以減少dns查詢鏈的長度。
緩存原理
在一個請求鏈中,當某個DNS服務器接收一個DNS應答時,它能夠將信息緩存在本地存儲器中。當下次查詢時,就能避免到根dns,TLD和權威dns的查詢。
由於主機和主機名的映射不是永久的,DNS緩存將在一段時間后被丟棄。