<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • dns服務器什么意思,國內dns最快的服務器推薦


    在找工作面試的過程中,面試官非常喜歡考察基礎知識,除了數據結構與算法之外,網絡知識也是一個非常重要的考察對象。

    而網絡知識,通常是很抽象,不容易理解的,有很多同學就在這里裁了跟頭。為了更好地通過面試,本文講進行一次網絡知識大掃盲,聊一聊網絡知識最基本的DNS。

    網絡知識掃盲,一文搞懂 DNS

    DNS 是什么?

    DNS是 Domain Name System 的縮寫,也就是 域名解析系統,它的作用非常簡單,就是根據域名查出對應的 IP地址。

    你可以把它想象成一本巨大的電話本,比如當你要訪問域名www.163.com,首先要通過DNS查出它的IP地址是112.48.162.8。

    網絡知識掃盲,一文搞懂 DNS

    域名的層級

    由于后面我會講到 DNS 的解析過程,因此需要你對域名的層級有一些了解

    • 根域名 :.root 或者 . ,通常是省略的
    • 頂級域名,如 .com,.cn 等
    • 次級域名,如 baidu.com 里的 baidu,這個是用戶可以進行注冊購買的
    • 主機域名,比如 baike.baidu.com 里的baike,這個是用戶可分配的
    主機名.次級域名.頂級域名.根域名baike.baidu.com.root
    網絡知識掃盲,一文搞懂 DNS

    DNS 解析過程

    咱們以訪問 www.163.com 這個域名為例,來看一看當你訪問 www.163.com 時,會發生哪些事:

    1. 先查找本地 DNS 緩存(自己的電腦上),有則返回,沒有則進入下一步
    2. 查看本地 hosts 文件有沒有相應的映射記錄,有則返回,沒有則進入下一步
    3. 向本地 DNS 服務器(一般都是你的網絡接入服務器商提供,比如中國電信,中國移動)發送請求進行查詢,本地DNS服務器收到請求后,會先查下自己的緩存記錄,如果查到了直接返回就結束了,如果沒有查到,本地DNS服務器就會向DNS的根域名服務器發起查詢請求:請問老大, www.163.com 的ip是啥?
    4. 根域名服務器收到請求后,看到這是個 .com 的域名,就回信說:這個域名是由 .com 老弟管理的,你去問他好了,這是.com老弟的聯系方式(ip1)。
    5. 本地 DNS 服務器接收到回信后,照著老大哥給的聯系方式(ip1),馬上給 .com 這個頂級域名服務器發起請求:請問 .com 大大,www.163.com 的ip 是啥?
    6. .com 頂級域名服務器接收到請求后,看到這是 163.com 的域名,就回信說:這個域名是 .163.com 老弟管理的,你就去問他就行了,這是他的聯系方式(ip2)
    7. 本地 DNS 服務器接收到回信后,按照前輩的指引(ip2),又向 .163.com 這個權威域名服務器發起請求:請問 163.com 大大,請問 www.163.com 的ip是啥?
    8. 163.com 權威域名服務器接收到請求后,確認了是自己管理的域名,馬上查了下自己的小本本,把 www.163.com 的ip告訴了 本地DNS服務器。
    9. 本地DNS服務器接收到回信后,非常地開心,這下總算拿到了www.163.com的ip了,馬上把這個消息告訴了要求查詢的客戶(就是你的電腦)。由于這個過程比較漫長,本地DNS服務器為了節省時間,也為了盡量不去打擾各位老大哥,就把這個查詢結果偷偷地記在了自己的小本本上,方便下次有人來查詢時,可以快速回應。

    總結起來就是三句話:

    1. 從”根域名服務器”查到”頂級域名服務器”的NS記錄和A記錄(IP地址)
    2. 從”頂級域名服務器”查到”次級域名服務器”的NS記錄和A記錄(IP地址)
    3. 從”次級域名服務器”查出”主機名”的IP地址
    網絡知識掃盲,一文搞懂 DNS
    網絡知識掃盲,一文搞懂 DNS

    DNS的緩存時間

    上面的幾個步驟里,可以看到有兩個地方會緩存 DNS 的查詢記錄,有了緩存,在一定程度上會提高查詢效率,但同時在準確率上會有所損失。

    因此我們在配置 DNS 解析的時候,會有一個 TTL 參數(Time To Live),意思就是這個緩存可以存活多長時間,過了這個時間,本地 DNS 就會刪除這條記錄,刪除了緩存后,你再訪問,就要重新走一遍上面的流程,獲取最新的地址。

    網絡知識掃盲,一文搞懂 DNS
    網絡知識掃盲,一文搞懂 DNS

    DNS 的記錄類型

    當我們在阿里云買了一個域名后,可以配置我們主機域名解析規則,也就是 記錄。

    網絡知識掃盲,一文搞懂 DNS

    阿里云 域名云解析

    常見的 DNS 記錄類型如下

    • A:地址記錄(Address),返回域名指向的IP地址。
    • NS:域名服務器記錄(Name Server),返回保存下一級域名信息的服務器地址。該記錄只能設置為域名,不能設置為IP地址。
    • MX:郵件記錄(Mail eXchange),返回接收電子郵件的服務器地址。
    • CNAME:規范名稱記錄(Canonical Name),返回另一個域名,即當前查詢的域名是另一個域名的跳轉,詳見下文。
    • PTR:逆向查詢記錄(Pointer Record),只用于從IP地址查詢域名,詳見下文。
    網絡知識掃盲,一文搞懂 DNS

    DNS 報文結構

    后面我將使用 wireshark 抓取 DNS 的數據包,但是在開始之前 ,得先了解一下 DNS 的報文結構

    網絡知識掃盲,一文搞懂 DNS
    • 事務 ID:DNS 報文的 ID 標識。對于請求報文和其對應的應答報文,該字段的值是相同的。通過它可以區分 DNS 應答報文是對哪個請求進行響應的。
    • 標志:DNS 報文中的標志字段。
    • 問題計數:DNS 查詢請求的數目。
    • 回答資源記錄數:DNS 響應的數目。
    • 權威名稱服務器計數:權威名稱服務器的數目。
    • 附加資源記錄數:額外的記錄數目(權威名稱服務器對應 IP 地址的數目)。
    網絡知識掃盲,一文搞懂 DNS

    Wireshark抓包實戰

    打開 Wireshark 后,使用 ping 163.com 來發起 DNS 解析請求,使用 DNS 關鍵字在Wireshark 過濾。

    從抓取的報文整體來看,我們可以粗略獲取幾個信息

    1. DNS 是應用層協議,傳輸層協議使用的是 UDP
    2. DNS 默認端口是 53
    網絡知識掃盲,一文搞懂 DNS

    請求和應答的報文的截圖我放在了下面,接下來我將逐個分析。

    請求

    網絡知識掃盲,一文搞懂 DNS

    應答

    網絡知識掃盲,一文搞懂 DNS

    Transaction ID

    請求和應答的事務ID應當是一個:0xd0d7

    Flags

    標志字段里的內容比較多,每個字段的含義如下:

    • QR(Response):查詢請求/響應的標志信息。查詢請求時,值為 0;響應時,值為 1。
    • Opcode:操作碼。其中,0 表示標準查詢;1 表示反向查詢;2 表示服務器狀態請求。
    • AA(Authoritative):授權應答,該字段在響應報文中有效。值為 1 時,表示名稱服務器是權威服務器;值為 0 時,表示不是權威服務器。
    • TC(Truncated):表示是否被截斷。值為 1 時,表示響應已超過 512 字節并已被截斷,只返回前 512 個字節。
    • RD(Recursion Desired):期望遞歸。該字段能在一個查詢中設置,并在響應中返回。該標志告訴名稱服務器必須處理這個查詢,這種方式被稱為一個遞歸查詢。如果該位為 0,且被請求的名稱服務器沒有一個授權回答,它將返回一個能解答該查詢的其他名稱服務器列表。這種方式被稱為迭代查詢。
    • RA(Recursion Available):可用遞歸。該字段只出現在響應報文中。當值為 1 時,表示服務器支持遞歸查詢。
    • Z:保留字段,在所有的請求和應答報文中,它的值必須為 0。
    • rcode(Reply code):返回碼字段,表示響應的差錯狀態。當值為 0 時,表示沒有錯誤;當值為 1 時,表示報文格式錯誤(Format error),服務器不能理解請求的報文;當值為 2 時,表示域名服務器失?。⊿erver failure),因為服務器的原因導致沒辦法處理這個請求;當值為 3 時,表示名字錯誤(Name Error),只有對授權域名解析服務器有意義,指出解析的域名不存在;當值為 4 時,表示查詢類型不支持(Not Implemented),即域名服務器不支持查詢類型;當值為 5 時,表示拒絕(Refused),一般是服務器由于設置的策略拒絕給出應答,如服務器不希望對某些請求者給出應答。

    Answer RRs

    回答資源記錄數,在應答包里為 2,說明返回了兩條查詢結果,你可以在 Answer 字段里看到。

    Authority RRs

    權威名稱服務器計數

    Additionnal RRs

    附加資源記錄數

    Answers

    應答的主要內容,這里返回兩條結果,每條結果里的字段有


    DNS 劫持 與 HTTP 劫持

    通過上面的講解,我們都知道了,DNS 完成了一次域名到 IP 的映射查詢,當你在訪問 www.baidu.com 時,能正確返回給你 百度首頁的 ip。

    但如果此時 DNS 解析出現了一些問題,當你想要訪問 www.baidu.com 時,卻返回給你 www.google.com 的ip,這就是我們常說的 DNS 劫持。

    與之容易混淆的有 HTTP 劫持。

    那什么是 HTTP 劫持呢?

    你一定見過當你在訪問 某個網站時,右下角也突然彈出了一個扎眼的廣告彈窗。這就是 HTTP 劫持。

    借助別人文章里的例子,它們倆的區別就好比是

    • DNS劫持是你想去機場的時候,把你給丟到火車站。
    • HTTP劫持是你去機場途中,有人給你塞小廣告。

    那么 DNS劫持 是如何產生的呢?

    下面大概說幾種DNS劫持方法:

    1.本機DNS劫持

    攻擊者通過某些手段使用戶的計算機感染上木馬病毒,或者惡意軟件之后,惡意修改本地DNS配置,比如修改本地hosts文件,緩存等。

    2. 路由DNS劫持

    很多用戶默認路由器的默認密碼,攻擊者可以侵入到路由管理員賬號中,修改路由器的默認配置。

    3.攻擊DNS服務器

    直接攻擊DNS服務器,例如對DNS服務器進行DDOS攻擊,可以是DNS服務器宕機,出現異常請求,還可以利用某些手段感染dns服務器的緩存,使給用戶返回來的是惡意的ip地址。

    網絡知識掃盲,一文搞懂 DNS

    工具的使用

    dig 命令

    dig是一個在類Unix命令行模式下查詢DNS包括NS記錄,A記錄,MX記錄等相關信息的工具。

    通過 dig (參數:+trace)命令,我們可以看到上面描述的 DNS 解析的詳細過程

    網絡知識掃盲,一文搞懂 DNS

    從返回的結果,我們可以看得出幾點信息:

    1. 我們的本地 DNS 服務器 ip 為 192.168.1.1,端口為53,你可以在 /etc/resolv.conf 里看到這個配置
    2. 根域名服務器目前全球一共只有十三臺,從a.root-servers.net. 到m.root-servers.net. ,它們對應的ip地址,已經內置在本地DNS服務器中。

    如果你只想看到結果,可以使用 +short 參數,可以直接返回 www.163.com 對應著哪幾個ip。

    網絡知識掃盲,一文搞懂 DNS

    你也可以加個 @ 參數 ,指定從某個 DNS 服務器進行查詢。

    網絡知識掃盲,一文搞懂 DNS

    如果你只想查看指定的記錄類型:

    網絡知識掃盲,一文搞懂 DNS

    host 命令

    host 命令 可以看作dig命令的簡化版本,返回當前請求域名的各種記錄。

    網絡知識掃盲,一文搞懂 DNS

    whois命令

    whois命令用來查看域名的注冊情況。

    網絡知識掃盲,一文搞懂 DNS

    nslookup命令

    nslookup也是常用的一個查詢 DNS 解析結果的工具

    網絡知識掃盲,一文搞懂 DNS

    你也可以指定公網的域名服務器進行查詢,比如常見的 114.114.114.114。

    網絡知識掃盲,一文搞懂 DNS
    網絡知識掃盲,一文搞懂 DNS

    手動清理本地緩存

    MacOS

    $ sudo dscacheutil -flushcache$ sudo killall -HUP mDNSResponder

    Windows

    $ ipconfig /flushdns
    Linux
    # 使用NSCD的DNS緩存$ sudo /etc/init.d/nscd restart# 服務器或者路由器使用DNSMASQ$ sudo dnsmasq restart

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费