DNS協議——網絡世界的地址簿

DNS 運營商 數據庫 瀏覽器 三旺通信 2019-04-07

DNS(Domain Name System)網域名稱系統是互聯網的一項服務。它作為將域名和IP地址相互映射的一個分佈式數據庫,能夠使人更方便地訪問互聯網。

本文概要:

▶ DNS基本概念

▶ DNS服務器

▶ DNS解析流程

▶ 負載均衡

DNS協議——網絡世界的地址簿

DNS使用TCP和UDP端口53。當前,對於每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。

DNS基本概念

域名:如在瀏覽器地址欄輸入的www.baidu.com,www.hao123.com等我們稱之為域名,域名即網站名稱。

如果說互聯網的本質是連接一切,域名則為“一切”提供了身份標識功能,而IP為“一切”提供了尋址功能。域名和IP的關係可類比每個人的姓名與住址。

根域、頂級域、二級域、子域:域名採用層次化的方式進行組織,每一個點代表一個層級。一個域名完整的格式為www.baidu.com. 最末尾的點代表根域,常常省略;com即頂級域(TLD);baidu.com即二級域。

依次類推,還有三級域、四級域等等。子域是一個相對的概念,baidu.com是com的子域,www.baidu.com是baidu.com的子域。

域名系統:即DNS(Domain Name System)。DNS主要解決兩方面的問題:域名本身的增刪改查以及域名到IP如何映射。

正向解析:查找域名對應IP的過程。

反向解析:查找IP對應域名的過程。

解析器:即resolver,處於DNS客戶端的一套系統,用於實現正向解析或者反向解析。

權威DNS:處於DNS服務端的一套系統,該系統保存了相應域名的權威信息。權威DNS即通俗上“這個域名我說了算”的服務器。

遞歸DNS:又叫local dns。遞歸DNS可以理解為是一種功能複雜些的resolver,其核心功能一個是緩存、一個是遞歸查詢。

收到域名查詢請求後其首先看本地緩存是否有記錄,如果沒有則一級一級的查詢根、頂級域、二級域……直到獲取到結果然後返回給用戶。日常上網中運營商分配的DNS即這裡所說的遞歸DNS。

轉發DNS 轉發DNS是一種特殊的遞歸。如果本地的緩存記錄中沒有相應域名結果時,其將查詢請求轉發給另外一臺DNS服務器,由另外一臺DNS服務器來完成查詢請求。

公共DNS 公共DNS屬於遞歸DNS。其典型特徵為對外一個IP,為所有用戶提供公共的遞歸查詢服務。

DNS協議——網絡世界的地址簿

DNS服務器

DNS 服務器,一定要設置成高可用、高併發和分佈式的。

DNS協議——網絡世界的地址簿

根DNS服務器:返回頂級域 DNS 服務器的 IP 地址。

頂級域DNS服務器:返回區權威 DNS 服務器的 IP 地址。

權威DNS服務器:返回相應主機的 IP 地址。

DNS解析流程

為提高 DNS 解析性能,很多網絡都會就近部署 DNS 緩存服務器。

1. 客戶端向本地 DNS 發送 DNS 請求,解析 www.163.com 的 IP 地址。本地 DNS 由網路服務商(ISP)自動分配。

2. 本地 DNS 在緩存中找到與域名對應的 IP,返回;否則,請求根 DNS。根 DNS 是最高層次的,全球共13套,不直接解析域名,但能指出下一步訪問誰。

3. 根DNS 發現是後綴 .com,返回 .com 的頂級 DNS 的地址。

4. 本地 DNS 轉向問頂級 DNS。

5. 頂級 DNS 返回 www.163.com 區域的權威 DNS 的地址。

6. 本地 DNS 轉向問權威 DNS,權威 DNS 解析了 IP 後返回。

7. 本地 DNS 將 IP 地址返回給客戶端。

DNS協議——網絡世界的地址簿

負載均衡

1. 內部負載均衡

配置域名解析策略,這次返回第一個 IP,下次返回第二個 IP,就可以實現負載均衡了。

2. 全局負載均衡

用戶訪問某個域名時,用 IP 地址輪詢訪問多個數據中心。如何一個數據中心掛了,在 DNS 服務器中將其對應的 IP 刪掉,實現高可用。

每個用戶訪問離自己最近的數據中心。

DNS協議——網絡世界的地址簿

全局負載均衡器(GSLB, Global Server Load Balance)。在 yourcompany.com 的 DNS 服務器中,一般通過配置 CNAME 的方式,給 object.yourcompay.com 起一個別名,如 object.vip.yourcompany.com,然後告訴本地 DNS 服務器,去請求 GSLB 解析這個域名,GSLB 就可以在這個解析域名的過程中,通過自己的策略實現負載均衡。

圖中有兩層 GSLB,因為分運營商和地域。這樣,不同運營商的客戶可不跨運營商訪問,提高吞吐量,減少時延。

第一層 GSLB,通過查看請求它的本地 DNS 服務器所在運營商,知道用戶所在運營商。假設時移動,通過 CNAME 的方式,通過另一個別名 object.yd.yourcompay.com, 告訴 本地 GSLB 服務器去請求第二層的 GSLB。

第二層 GSLB,通過查看請求它的本地 DNS 服務器所在地址,知道用戶的地理位置,將離用戶近的 Region 裡的6個內部負載均衡(SLB,Server Load Balancer) 的地址返回給本地 DNS 服務器。

本地 DNS 服務器將結果返回給本地 DNS 解析器。

本地 DNS 解析器緩存結果後,返回給客戶端。

客戶會得到屬於相同運營商且距離較近的 Region 1 裡的6個IP地址,隨機/輪詢訪問即可。

明天就回家過年啦,祝大家擁有一個愉快的假期。感謝大家的支持與厚愛,記得要多多轉發,點擊關注噢!筆芯

點擊以下連接,發現更多精彩↓↓↓↓

什麼是邊緣計算,這是我見過最深刻詳細的解讀!

乾貨分享丨服務器常見故障的現象和解決方法大全!

這是最全面的IGMP協議總結,沒有之一!

SSH協議除了給傳輸數據加密外,還可以怎麼用?

看懂這些,ACL配置就難不倒你啦!

3分鐘弄懂LACP實現原理!

SNMP v1,v2,v3 版本詳細解析!

3分鐘全面瞭解串口服務器原理技術,掌握多種固件更新方法!

相關推薦

推薦中...