国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

            手機站
            千鋒教育

            千鋒學習站 | 隨時隨地免費學

            千鋒教育

            掃一掃進入千鋒手機站

            領(lǐng)取全套視頻
            千鋒教育

            關(guān)注千鋒學習站小程序
            隨時隨地免費學習課程

            當前位置:首頁  >  技術(shù)干貨  > DNS故障診斷及問題分析示例

            DNS故障診斷及問題分析示例

            來源:千鋒教育
            發(fā)布人:wjy
            時間: 2023-01-11 10:36:00 1673404560

              1、DNS基礎(chǔ)知識

              互聯(lián)網(wǎng)基于 TCP/IP 協(xié)議。為了方便管理網(wǎng)絡(luò)內(nèi)的主機,整個互聯(lián)網(wǎng)分為若干個域 (domain),每 個域又可以再分為若干個子域,例如,.com,.org,.edu 都是頂級域,而 google.com 是.com 下面的子域。

              網(wǎng)絡(luò)中的任意一臺主機(host)都會屬于某個域,并且有自己的名字,稱為主機名( hostname)。例如 example.com 就是.com 域中一臺主機名為 example.com(或 example,hostname 和 domain name 的區(qū)別,見這里 )的主機。

              域名/主機名是為了方便人記憶,而機器之間通信最終用的還是 IP 地址,因此需要一個將主 機名(域名)轉(zhuǎn)換成 IP 地址的服務(wù)。域名服務(wù)系統(tǒng)(DNS, domain name system)做的就是 這個事情,對應(yīng)的服務(wù)器稱為域名服務(wù)器(Domain Name Server)。

              例如,當通過瀏覽器訪問 example.com,瀏覽器會首先訪問 DNS 服務(wù)器,查找 example.com 對應(yīng)的 IP 地址,然后和這個 IP 建立 TCP 連接,接下來才發(fā)起 HTTP 請求。一個域名可以對應(yīng)一個 IP 地址,也可以對應(yīng)多個。對于后者,DNS 服務(wù)算法會從中選擇一個 地址返回。大部分網(wǎng)絡(luò)服務(wù)為了實現(xiàn)高可用,都是對應(yīng)多個地址,我們后面會看到, baidu.com 就對應(yīng)多個 IP。

              有一些場景會導致訪問 DNS 服務(wù)不穩(wěn)定,例如 DNS 服務(wù)器的設(shè)置有問題、網(wǎng)絡(luò)有丟包、主機 DNS 配置錯誤等等。我們接下來查看幾種 case。

              2、準備測試環(huán)境

              為方便大家跟著上手練習,本文將搭建一個容器環(huán)境。

              Pull Docker 鏡像:

            DNS故障診斷及問題分析示例1

              運行容器,注意這里一定要帶--privileged 參數(shù) [2],否則后面的部分 tc 命令無法執(zhí)行:

            DNS故障診斷及問題分析示例2

              進入容器:

            DNS故障診斷及問題分析示例3

              查看容器網(wǎng)絡(luò)信息:

            DNS故障診斷及問題分析示例4

              3、DNS配置

              3.1 查看 DNS 配置

              Linux 上的 DNS 配置在/etc/resolv.conf 里面。我們先來查看容器的配置:

            DNS故障診斷及問題分析示例5

              這其實是繼承了宿主機的 DNS 配置,在宿主機上執(zhí)行 cat /etc/resolv.conf 會看到一樣的 結(jié)果。

              3.2 修改 DNS 配置

              可以通過修改/etc/resolv.conf 里面的 nameserver 來配置自己想用的 DNS 服務(wù)器。例如內(nèi)網(wǎng)環(huán)境可能都會使用自己的 DNS 服務(wù)器,因為它除了 提供內(nèi)網(wǎng)域名解析之外,公網(wǎng)域名解析也會比較快(相比于網(wǎng)絡(luò)供應(yīng)商的公網(wǎng) DNS 服務(wù)器)

              4、DNS問題排查

              本節(jié)模擬幾種導致 DNS 查詢變慢的場景,如果在實際環(huán)境中遇到類似現(xiàn)象,可以考慮往這些 方向排查。

              4.1 機器未配置 DNS 導致域名查找失敗

              現(xiàn)象:網(wǎng)絡(luò)是通的(例如 ping IP 通),但是 DNS 查詢總是失敗

              可能的原因:機器沒有配置 DNS 服務(wù)器

              解決辦法:修改/etc/resolv.conf,給機器配置合適的 DNS 服務(wù)器 有時新啟動的機器(不管是物理機、虛擬機還是容器)沒有設(shè)置 DNS,導致訪問域名不通。我們來復現(xiàn)一下。

              在正常的容器里用 nslookup 工具查看域名對應(yīng)的 IP 地址:

            DNS故障診斷及問題分析示例6

              可以看到,我們獲取到了該域名一個 IPv4 地址和一個 IPv6 地址。

              將/etc/resolv.conf 里的 DNS 服務(wù)器列表用#注釋掉,模擬沒有配置 DNS 服務(wù)器的場景。

              再次測試:

            DNS故障診斷及問題分析示例7

              所以遇到這種問題,可以先去排查/etc/resolv.conf 里面是否配置了 DNS 服務(wù)器。

              4.2 DNS 服務(wù)太慢

              現(xiàn)象:DNS 查詢太慢

              可能的原因:配置的 DNS 服務(wù)器不合理

              解決辦法:修改/etc/resolv.conf,配置合適的 DNS 服務(wù)器

              每個公司一般都有自維護的 DNS 服務(wù)器,不僅用來解析內(nèi)網(wǎng) DNS,而且可以加速解析公網(wǎng)域名 。

              dig 是另外一個功能更強大的 DNS 查詢工具,安裝:

            DNS故障診斷及問題分析示例8

              首先查看使用內(nèi)網(wǎng) DNS,查詢域名的延遲:

            DNS故障診斷及問題分析示例9

              可以看到非???,在 1ms 以內(nèi)。

              然后我們測試如果使用 Google 的公網(wǎng) DNS 服務(wù)器 8.8.8.8 [1],延遲會是多少。

              修改/etc/resolv.conf,將其他 nameserver 注釋掉,添加一行 nameserver 8.8.8.8。

              再次測試:

            DNS故障診斷及問題分析示例10

              延遲變成了 150ms,比原來大了 150 多倍。

              因此,對于 DNS 查詢特別慢的場景,首先要查看配置的 DNS 服務(wù)器是否合理。

              4.3 hardcode /etc/hosts 導致跳過 DNS 查詢

              現(xiàn)象:某域名訪問太慢、某域名總是指向相同 IP(多 IP 情況下)、特定機器不可訪問 某域名等等

              可能的原因:/etc/hosts 有 hardcode 域名及 IP

              解決辦法:修改/etc/hosts

              前面提到,大部分公網(wǎng)域名都對應(yīng)多個 IP 地址,因此每次 DNS 查詢拿到的 IP 地址都可能不一 樣,我們用 ping 來測試一下:

            DNS故障診斷及問題分析示例11

              可以看到,兩次 ping 測試(內(nèi)部首先查詢 baidu.com 對應(yīng)的 IP 地址)拿到的 IP 地址是不一樣 的。用 nslookup 可以看到它們都是 baidu.com 對應(yīng)的 IP 地址:

            DNS故障診斷及問題分析示例12

              /etc/hosts 里面可以直接 harcode 一個域名對應(yīng)的 IP 地址,這會導致機器跳過 DNS 查詢,直接拿這個 IP 作 為該域名的 IP。我們來驗證一下。

              修改/etc/hosts,添加一行 123.125.115.110 baidu.com,再次 ping 測試

            DNS故障診斷及問題分析示例13

              這是不管執(zhí)行多少次,baidu.com 對應(yīng)的 IP 地址都不會變了。而實際上,這個 IP 地址并不一定是最優(yōu)的 IP 地址,甚至有可能這 個 IP 不可用,導致訪問 baidu.com 失敗。因此,實際中要極力避免在/etc/hosts 中 hardcode。

              4.4 DNS 查詢不穩(wěn)定

              現(xiàn)象:DNS 查詢不穩(wěn)定,時快時慢

              可能的原因:機器上有 tc 或 iptables 規(guī)則,導致到 DNS 服務(wù)器的 packet 變慢或丟失

              解決辦法:修改或刪除 tc/iptables 規(guī)則

              我們用 tc 來模擬網(wǎng)絡(luò)延遲:

            DNS故障診斷及問題分析示例14

              首先查看有沒有 tc 規(guī)則:

            DNS故障診斷及問題分析示例15

              默認沒有任何規(guī)則。

              然后我們加一條:每個 packet 延遲 600ms:

            DNS故障診斷及問題分析示例16

              測試:

            DNS故障診斷及問題分析示例17

              可以看到,DNS 查詢變成了 600ms。

              這里我們測試的是固定延遲,這種問題很容易發(fā)現(xiàn)。我們還可以測試隨機延遲,或者按 比例延遲等 [2]:

            DNS故障診斷及問題分析示例18

              此類規(guī)則會導致 DNS 查詢速度更有隨機性。

              最后刪除 tc 規(guī)則:

            DNS故障診斷及問題分析示例19

              iptables 規(guī)則也會導致類似的問題。

              很多軟件在運行之后,會在宿主機上添加 tc 或 iptables 規(guī)則,例如 OpenStack,K8S 等等 。因此遇到這種隨機延遲問題,首先可以查看機器上是否有 tc 或 iptables 規(guī)則。

              4.5 DNS 反向查詢不穩(wěn)定

              線上遇到過這樣一個問題:從一臺機器 ping 一個內(nèi)網(wǎng)域名,每個 ping 包看起來都會卡 5 ~ 30s 不等,但是 CTL-C 關(guān)閉 ping 之后,打印出來的統(tǒng)計信息里,既沒有丟包,ping 的延遲也很低 (毫秒級),這就很奇怪。接下來:

              dig,很快,毫秒級,說明 DNS 查詢沒有問題

              dig 能看到域名對應(yīng)的 IP,直接 ping 這個 IP,發(fā)現(xiàn)是沒有卡頓的

              仍然 ping 域名,用 tcpdump 抓包,tcpdump -i eth0 hostand icmp,發(fā)現(xiàn) ping 包都是立即響應(yīng)的,印證了統(tǒng)計信息里,ping 延遲很低的事實

              根據(jù)以上信息,說明 ping 卡頓的問題出在這臺機器,而且應(yīng)該就是 ping 程序本身在做什么耗 時的操作。繼續(xù):

              仍然 ping 域名,同時,用 ltrace -p跟蹤 ping 進程,發(fā)現(xiàn)卡在一個叫 gethostbyaddr()的函數(shù)

              查閱文檔,發(fā)現(xiàn)這個函數(shù)是根據(jù) IP 反向查詢 hostname,需要和 DNS 交互

              到這里,基本確定了是 DNS 服務(wù)器反向查詢的問題,我們用另外幾個命令行工具驗證一下, 以下三個命令都是根據(jù) IP 反查 hostname:

              nslookup

              host

              dig -x

              果然,以上三個命令都會卡住。修改/etc/resolv.conf,換一個 DNS 服務(wù)器之后,問題 消失了。接下來,就去查 DNS 服務(wù)器的問題吧。

            tags:
            聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
            請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
            免費領(lǐng)取
            今日已有369人領(lǐng)取成功
            劉同學 138****2860 剛剛成功領(lǐng)取
            王同學 131****2015 剛剛成功領(lǐng)取
            張同學 133****4652 剛剛成功領(lǐng)取
            李同學 135****8607 剛剛成功領(lǐng)取
            楊同學 132****5667 剛剛成功領(lǐng)取
            岳同學 134****6652 剛剛成功領(lǐng)取
            梁同學 157****2950 剛剛成功領(lǐng)取
            劉同學 189****1015 剛剛成功領(lǐng)取
            張同學 155****4678 剛剛成功領(lǐng)取
            鄒同學 139****2907 剛剛成功領(lǐng)取
            董同學 138****2867 剛剛成功領(lǐng)取
            周同學 136****3602 剛剛成功領(lǐng)取
            相關(guān)推薦HOT
            工業(yè)機器人、自動化、PLC三者是什么關(guān)系?

            一、工業(yè)機器人和自動化工業(yè)機器人是自動化技術(shù)的一部分,是自動化生產(chǎn)線的關(guān)鍵組件之一。在自動化生產(chǎn)線中,工業(yè)機器人被廣泛應(yīng)用于執(zhí)行各種任...詳情>>

            2023-10-15 01:41:38
            為什么Redis要對一種數(shù)據(jù)類型存儲兩次呢?

            一、實現(xiàn)快速數(shù)據(jù)訪問Redis是一種高性能的內(nèi)存數(shù)據(jù)庫,將數(shù)據(jù)存儲在內(nèi)存中可以實現(xiàn)非??焖俚臄?shù)據(jù)讀取和訪問。為了進一步提高數(shù)據(jù)的訪問速度,R...詳情>>

            2023-10-15 01:40:32
            什么是編程思想?

            一、編程思想的定義和理念編程思想可以理解為一套指導編程活動的理念和原則。它包括如何定義問題,如何設(shè)計解決方案,以及如何實現(xiàn)和測試這個解...詳情>>

            2023-10-15 01:22:38
            迭代開發(fā)模型中最容易出問題的階段是什么?

            一、迭代開發(fā)模型中最容易出問題的階段是什么 在迭代開發(fā)模型中,最容易出問題的階段通常是需求收集和分析階段。在這個階段,開發(fā)團隊需要與客...詳情>>

            2023-10-15 01:03:52
            軟件測試中bug管理工具Jira怎么樣?

            一、Jira是什么 Jira是一款由澳大利亞軟件公司Atlassian開發(fā)的項目管理和問題跟蹤工具。它是一種用于敏捷項目開發(fā)和軟件開發(fā)過程中的工具,廣泛...詳情>>

            2023-10-15 01:02:32