DNS(Domain Name System)域名系統,它是一個將域名和 IP 地址相互映射的一個分佈式數據庫,把容易記憶的主機名轉換成主機 IP 地址。html
DNS使用 TCP 和 UDP 端口 53。當前,對於每一級域名長度的限制是 63 個字符,域名總長度則不能超過 253 個字符。git
爲防止服務中斷和網絡攻擊,全球共有13臺根DNS服務器,嚴格意義上來講不是13臺,而是13個服務集羣,爲何是13?github
www.lbinin.com
域名爲例,首先,它會去檢查當前瀏覽器緩存,若是有,就直接響應,若是沒有,就繼續往下找遞歸查詢
,DNS 服務器首先會到自身解析數據庫中去查com
的後綴,就會把 com
所在的 ns 服務器告訴咱們的 DNScom
所在的 ns 服務器(權威域名服務器)com
ns 服務器時,com
一看域名是在 lbinin
這個域下的,就會把 lbinin
所在的 ns 服務器再告訴咱們的 DNS 服務器lbinin
這個域的 ns 服務器lbinin
這個域的 ns 服務器一看是要訪問 www
就直接找到了 www
對應的「A記錄」的 IP,並把它丟給咱們的 DNS,上面逐個詢問的過程,即 迭代查詢
瀏覽器緩存 👉🏻 host 文件 👉🏻 系統 DNS 緩存 👉🏻 DNS 服務器進行「迭代查詢」web
其中上面 1-3 爲遞歸查詢。4-10 爲迭代查詢。數據庫
客戶端收到的是最終的查詢結果瀏覽器
遞歸查詢是一種 DNS 服務器的查詢模式,在該模式下 DNS 服務器接收到客戶機請求,必須使用一個準確的查詢結果回覆客戶機。若是 DNS 服務器本地沒有存儲查詢DNS 信息,那麼該服務器會詢問其餘服務器,並將返回的查詢結果提交給客戶機。緩存
客戶端中途會收到下一臺服務器地址服務器
DNS 服務器另一種查詢方式爲迭代查詢,DNS 服務器會向客戶機提供其餘可以解析查詢請求的 DNS 服務器地址,當客戶機發送查詢請求時,DNS 服務器並不直接回複查詢結果,而是告訴客戶機另外一臺 DNS 服務器地址,客戶機再向這臺 DNS 服務器提交請求,依次循環直到返回查詢的結果爲止。微信
Time to Live 即生存時間,就是一條域名解析記錄在 DNS 服務器中的存留時間。網絡
當各地的 DNS 服務器接受到解析請求時,就會向域名指定的 NS 服務器(權威域名服務器)發出解析請求從而得到解析記錄;
在得到這個記錄以後,記錄會在 DNS 服務器(各地的緩存服務器,也叫遞歸域名服務器)中保存一段時間,這段時間內若是再接到這個域名的解析請求,DNS 服務器將再也不向 NS 服務器發出請求,而是直接返回剛纔得到的記錄;到期則重複請求過程。
DNS 劫持又稱「域名劫持」,是指在劫持的網絡範圍內攔截域名解析的請求,分析請求的域名,把審查範圍之外的請求放行,不然返回假的 IP 地址或者什麼都不作使請求失去響應,其效果就是對特定的網絡不能訪問或訪問的是假網址。其實本質就是對 DNS 解析服務器作手腳,或者是使用僞造的 DNS 解析服務器能夠經過下圖來展現。
不使用運營商的 NDS 解析,使用本身的或者著名的 DNS,如:114.114.114.114
和 8.8.8.8
其實內容劫持一開始的出發點是好的,是運營商爲了加快用戶的訪問速度同時減小本身的流量損耗而作的一個緩存機制。
用戶在像服務器請求數據的時候運營商會把用戶的請求轉移到這個緩存池中,若是緩存中有就直接返回,沒有的話再去向服務器請求。而後運營商攔截並緩存服務端給用戶的回調數據,這樣一來能夠極大的下降運營商像服務器請求的次數,也能加快用戶的訪問,因此出發點是好的。
可是一些非法的商家對緩存池內部作一些處理就是直接對返回的內容進行修改,這樣一來咱們就會接受到錯誤的數據。
nslookup 域名
DNS 深度理解 一 - klion’s blog 歡迎轉載,轉載請註明出處! 獨立域名博客:flywill.com 歡迎關注公衆微信號:Java小鎮V 分享本身的學習 & 學習資料 & 生活 想要交流的朋友也能夠加微信號備註入羣:EscUpDn