久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

探討 DNS 解析

DNS 服務器

在現實世界中,當您進行閱覽新聞、在線下單、下載文件或觀看直播時,您需要通過訪問域名來訪問目標網站,例如 youtube.com、google.com 等。您只需記住這些網站的名稱,而非它們的 IP 地址,因為與網站名稱相比,IP 地址是很難記住的。因此,您需要一個作為 DNS 服務器的網站/域名地址本。

DNS 在日常生活中非常重要。每個在線的人都需要訪問它,但同時,這對它來說也是一個非常大的挑戰。如果 DNS 服務器出現故障,整個 Internet 網絡都將關閉。

另外,上網的人分布在世界各地,如果每個人都去同一個地方訪問某個服務器,延遲會非常大。因此,DNS 服務器必須設置為高可用高并發分布式的。

因此,它應具有如下樹狀層次結構:

探討 DNS 解析
  • 根 DNS 服務器:返回頂級域 DNS 服務器的 IP 地址。
  • 頂級域 DNS 服務器:返回權威 DNS 服務器的 IP 地址。
  • 權威 DNS 服務器:返回對應主機的 IP 地址。

DNS 解析過程

為了提高 DNS 解析性能,許多網絡會根據位置部署?DNS 緩存服務器DNS 解析過程如下:(這里以訪問 google.com 為例)

  • 客戶端會發出?DNS 請求,詢問 google.com 的 IP 是什么,它會先在瀏覽器緩存中查找 google.com 的 IP 地址。
  • 然后請求將被發送到本地 DNS 服務器。本地 DNS 服務器由您的網絡服務供應商?(ISP, Internet Service Provider) 自動分配,這通常是您的 ISP 提供的路由器。
  • 本地 DNS 服務器收到來自客戶端的 DNS 請求,它會在其緩存中查找 google.com 的 IP 地址。如果它可以找到對應的條目,它將直接將 IP 地址返回給客戶端。否則,本地 DNS 服務器會詢問它的根域名服務器:“你能告訴我 google.com 的 IP 地址嗎”?根域名服務器作為最高級別的 DNS 服務器,全球共 13 臺。它不會直接解析域名,而起到一個“指路”的作用。
  • 根 DNS 服務器收到本地 DNS 的請求,發現要查找域名的后綴是?.com,然后告訴本地 DNS 服務器:“好的,你要找的既然是?.com?后綴的域名,它是由?.com?管理的。這里是?.com?區域的頂級域 DNS 服務器的 IP 地址,去找它問吧”。
  • 本地 DNS 服務器轉向?.com?區域的頂級域名服務器,并請求 google.com 的 IP 地址。頂級?.com?區域 DNS 服務器再次為該請求指明了方向。它提供了負責 google.com 的權威 DNS 服務器的 IP 地址。
  • 本地 DNS 服務器然后轉向了權威 DNS 服務器并詢問 google.com 的 IP 地址。這次,google.com 的權威 DNS 服務器是域名解析結果的原始來源。它會將 google.com 的 IP 地址直接返回到本地 DNS 服務器
  • 然后本地 DNS 服務器將 IP?返回給客戶端并將其緩存。至此,DNS 解析完成

總結一下,我畫了下面這張圖:

探討 DNS 解析

DNS 負載均衡

內部負載均衡

DNS 服務器首先進行內部負載均衡。比如,應用要訪問數據庫,應該在應用中配置數據庫的 IP 地址,還是應該配置數據庫的域名呢?

很明顯,應該配置域名,因為一旦數據庫因為某種原因換到另一臺機器上,如果多個應用都配置了這個數據庫,一旦 IP 地址改變了,所有這些應用都需要重新修改。

但是,如果配置了域名,只要在 DNS 服務器中將域名映射到一個新的 IP 地址就完成了這項工作,如此大大簡化了運維工作。

在此基礎上,我們可以走得更遠。例如,如何在訪問它的多個應用程序之間進行負載均衡?只需將其配置為域名即可。在域名解析中,我們只需要配置策略,這次返回第一個 IP,下次返回第二個 IP,就可以實現負載均衡了。

全局負載均衡

為了保證我們的應用程序的高可用性,它們經常被部署在多個計算機數據中心,而每個地方都會有自己的 IP 地址。

當用戶訪問一個域名時,這個 IP 地址可以輪詢多個數據中心。如果某個數據中心由于某種原因宕機了,只要在 DNS 服務器中刪除該數據中心對應的 IP 地址即可。這樣就可以實現一定程度的高可用。

另外,我們肯定希望紐約的用戶訪問紐約的數據中心,西雅圖的用戶訪問西雅圖的數據中心,這樣客戶體驗會非常好,訪問速度會超級快。這就是全局負載均衡的概念。

我們來看看它是如何工作的,假設全國有多個地區,每個地區都有三個可用區域。

探討 DNS 解析
  • 當客戶端要訪問 app.metaleap.com 時,需要將域名轉換為 IP 地址才能訪問,所以需要請求本地 DNS 解析器。
  • 本地 DNS 解析器首先檢查本地緩存是否有此記錄。如果有,直接使用。
  • 如果沒有本地緩存,則需要請求本地 DNS 服務器。
  • 本地 DNS 服務器也需要檢查本地是否有緩存,如果有則返回。
  • 如果沒有本地 DNS,需要從根 DNS 服務器遞歸查找?.com?的頂級域名服務器,直到找到 metaleap.com 的權威 DNS 服務器,交給本地 DNS 服務器。權威 DNS 服務器通常會返回真實 IP 地址。

對于不需要全局負載均衡的簡單應用,metaleap.com 的權威 DNS 服務器可以直接將域名 app.metaleap.com 解析為一個或多個 IP 地址,然后客戶端可以使用多個 IP 地址進行輪詢來實現簡單的負載均衡

但是對于復雜的應用,尤其是跨區域、跨數據中心的大型應用,需要更復雜的全局負載均衡機制,這需要專門的設備或服務器來做這件事——全局負載均衡器(GSLB,Global Load Balancer)

在 metaleap.com 的 DNS 服務器中,一般通過配置?CNAME,給 app.metaleap.com 起一個別名,如 app.vip.metaleap.com,然后告訴本地 DNS 服務器去請求?GSLB?來解析域名,GSLB?在解析這個域名的過程中,可以通過自己的策略來實現負載均衡

圖中繪制了兩層?GSLB,分別為數據中心區域。我們希望不同數據中心的客戶可以訪問同一數據中心的資源,以提高吞吐量并減少延遲。

結論

DNS 是網絡世界的通訊錄,可以通過域名搜索地址,因為域名服務器是按樹狀結構組織的,所以域名搜索采用遞歸的方式,通過緩存來提升性能。

在域名和 IP 的映射過程中,應用程序有機會進行基于域名的負載均衡,可以是簡單的負載均衡,也可以是基于地址、數據中心和區域的全局負載均衡。

鏈接:https://medium.com/geekculture/dns-deep-dive-421e321a0a06

(版權歸原作者所有,侵刪)

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 海晏县| 勃利县| 怀仁县| 苍溪县| 双鸭山市| 且末县| 长丰县| 怀化市| 田林县| 四川省| 大方县| 鹤山市| 临清市| 常德市| 邹平县| 东光县| 南涧| 冷水江市| 肇州县| 玉树县| 黄骅市| 慈溪市| 义马市| 汕尾市| 宝鸡市| 喜德县| 新化县| 四会市| 明溪县| 沂南县| 清新县| 东阿县| 清水县| 信宜市| 舒城县| 桑日县| 陕西省| 瑞安市| 双峰县| 姚安县| 黄平县|