1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        探討 DNS 解析

        共 3006字,需瀏覽 7分鐘

         ·

        2022-05-11 02:51

        點(diǎn)擊上方“碼農(nóng)突圍”,馬上關(guān)注
        這里是碼農(nóng)充電第一站,回復(fù)“666”,獲取一份專屬大禮包
        真愛,請?jiān)O(shè)置“星標(biāo)”或點(diǎn)個“在看”

        DNS 服務(wù)器

        在現(xiàn)實(shí)世界中,當(dāng)您進(jìn)行閱覽新聞、在線下單、下載文件或觀看直播時,您需要通過訪問域名來訪問目標(biāo)網(wǎng)站,例如 youtube.com、google.com 等。您只需記住這些網(wǎng)站的名稱,而非它們的 IP 地址,因?yàn)榕c網(wǎng)站名稱相比,IP 地址是很難記住的。因此,您需要一個作為 DNS 服務(wù)器的網(wǎng)站/域名地址本。

        DNS 在日常生活中非常重要。每個在線的人都需要訪問它,但同時,這對它來說也是一個非常大的挑戰(zhàn)。如果 DNS 服務(wù)器出現(xiàn)故障,整個 Internet 網(wǎng)絡(luò)都將關(guān)閉。

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

        因此,它應(yīng)具有如下樹狀層次結(jié)構(gòu):

        • 根 DNS 服務(wù)器:返回頂級域 DNS 服務(wù)器的 IP 地址。
        • 頂級域 DNS 服務(wù)器:返回權(quán)威 DNS 服務(wù)器的 IP 地址。
        • 權(quán)威 DNS 服務(wù)器:返回對應(yīng)主機(jī)的 IP 地址。

        DNS 解析過程

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

        • 客戶端會發(fā)出 DNS 請求,詢問 google.com 的 IP 是什么,它會先在瀏覽器緩存中查找 google.com 的 IP 地址。

        • 然后請求將被發(fā)送到本地 DNS 服務(wù)器。本地 DNS 服務(wù)器由您的網(wǎng)絡(luò)服務(wù)供應(yīng)商 (ISP, Internet Service Provider) 自動分配,這通常是您的 ISP 提供的路由器。

        • 本地 DNS 服務(wù)器收到來自客戶端的 DNS 請求,它會在其緩存中查找 google.com 的 IP 地址。如果它可以找到對應(yīng)的條目,它將直接將 IP 地址返回給客戶端。否則,本地 DNS 服務(wù)器會詢問它的根域名服務(wù)器:“你能告訴我 google.com 的 IP 地址嗎”?根域名服務(wù)器作為最高級別的 DNS 服務(wù)器,全球共 13 臺。它不會直接解析域名,而起到一個“指路”的作用。

        • 根 DNS 服務(wù)器收到本地 DNS 的請求,發(fā)現(xiàn)要查找域名的后綴是 .com,然后告訴本地 DNS 服務(wù)器:“好的,你要找的既然是 .com 后綴的域名,它是由 .com 管理的。這里是 .com 區(qū)域的頂級域 DNS 服務(wù)器的 IP 地址,去找它問吧”。

        • 本地 DNS 服務(wù)器轉(zhuǎn)向 .com 區(qū)域的頂級域名服務(wù)器,并請求 google.com 的 IP 地址。頂級 .com 區(qū)域 DNS 服務(wù)器再次為該請求指明了方向。它提供了負(fù)責(zé) google.com 的權(quán)威 DNS 服務(wù)器的 IP 地址。

        • 本地 DNS 服務(wù)器然后轉(zhuǎn)向了權(quán)威 DNS 服務(wù)器并詢問 google.com 的 IP 地址。這次,google.com 的權(quán)威 DNS 服務(wù)器是域名解析結(jié)果的原始來源。它會將 google.com 的 IP 地址直接返回到本地 DNS 服務(wù)器。

        • 然后本地 DNS 服務(wù)器將 IP 返回給客戶端并將其緩存。至此,DNS 解析完成。

        總結(jié)一下,我畫了下面這張圖:

        DNS 負(fù)載均衡

        內(nèi)部負(fù)載均衡

        DNS 服務(wù)器首先進(jìn)行內(nèi)部負(fù)載均衡。比如,應(yīng)用要訪問數(shù)據(jù)庫,應(yīng)該在應(yīng)用中配置數(shù)據(jù)庫的 IP 地址,還是應(yīng)該配置數(shù)據(jù)庫的域名呢?

        很明顯,應(yīng)該配置域名,因?yàn)橐坏?shù)據(jù)庫因?yàn)槟撤N原因換到另一臺機(jī)器上,如果多個應(yīng)用都配置了這個數(shù)據(jù)庫,一旦 IP 地址改變了,所有這些應(yīng)用都需要重新修改。

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

        在此基礎(chǔ)上,我們可以走得更遠(yuǎn)。例如,如何在訪問它的多個應(yīng)用程序之間進(jìn)行負(fù)載均衡?只需將其配置為域名即可。在域名解析中,我們只需要配置策略,這次返回第一個 IP,下次返回第二個 IP,就可以實(shí)現(xiàn)負(fù)載均衡了。

        全局負(fù)載均衡

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

        當(dāng)用戶訪問一個域名時,這個 IP 地址可以輪詢多個數(shù)據(jù)中心。如果某個數(shù)據(jù)中心由于某種原因宕機(jī)了,只要在 DNS 服務(wù)器中刪除該數(shù)據(jù)中心對應(yīng)的 IP 地址即可。這樣就可以實(shí)現(xiàn)一定程度的高可用。

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

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

        • 當(dāng)客戶端要訪問 app.metaleap.com 時,需要將域名轉(zhuǎn)換為 IP 地址才能訪問,所以需要請求本地 DNS 解析器。

        • 本地 DNS 解析器首先檢查本地緩存是否有此記錄。如果有,直接使用。

        • 如果沒有本地緩存,則需要請求本地 DNS 服務(wù)器。

        • 本地 DNS 服務(wù)器也需要檢查本地是否有緩存,如果有則返回。

        • 如果沒有本地 DNS,需要從根 DNS 服務(wù)器遞歸查找 .com 的頂級域名服務(wù)器,直到找到 metaleap.com 的權(quán)威 DNS 服務(wù)器,交給本地 DNS 服務(wù)器。權(quán)威 DNS 服務(wù)器通常會返回真實(shí) IP 地址。

        對于不需要全局負(fù)載均衡的簡單應(yīng)用,metaleap.com 的權(quán)威 DNS 服務(wù)器可以直接將域名 app.metaleap.com 解析為一個或多個 IP 地址,然后客戶端可以使用多個 IP 地址進(jìn)行輪詢來實(shí)現(xiàn)簡單的負(fù)載均衡。

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

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

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

        結(jié)論

        DNS 是網(wǎng)絡(luò)世界的通訊錄,可以通過域名搜索地址,因?yàn)橛蛎?wù)器是按樹狀結(jié)構(gòu)組織的,所以域名搜索采用遞歸的方式,通過緩存來提升性能。

        在域名和 IP 的映射過程中,應(yīng)用程序有機(jī)會進(jìn)行基于域名的負(fù)載均衡,可以是簡單的負(fù)載均衡,也可以是基于地址、數(shù)據(jù)中心和區(qū)域的全局負(fù)載均衡。

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

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

        (完)

        碼農(nóng)突圍資料鏈接

        1、臥槽!字節(jié)跳動《算法中文手冊》火了,完整版 PDF 開放下載!
        2、計算機(jī)基礎(chǔ)知識總結(jié)與操作系統(tǒng) PDF 下載
        3、艾瑪,終于來了!《LeetCode Java版題解》.PDF
        4、Github 10K+,《LeetCode刷題C/C++版答案》出爐.PDF

        歡迎添加魚哥個人微信:smartfish2020,進(jìn)粉絲群或圍觀朋友圈

        瀏覽 28
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            天天日天天色天天操 | 国产农村妇女露脸对白视频 | 国产大黄在线观看 | 又粗又硬视频 | freegaygvxxxxtv 办公室荡乳欲伦交换bd电影 | 国产一卡二卡在线观看 | 国产精品色视频 | 精品久久视频 | 26uuu国产电影一区二区 | 91精品国产综合久久久婷婷小蝌蚪 |