天天看點

DNS域名解析了解

DNS域名解析

      • 什麼是DNS
        • 基本使用
        • DHCP機制
      • 域名層級關系
      • DNS解析域名過程---找人問路時指指路不帶路的過程
      • DNS記錄類型:
      • 其他DNS工具
      • 手動清理本地DNS緩存方法
          • MacOS
          • Windows
          • Linux

什麼是DNS

Domain Name System的縮寫,就是域名解析系統,作用就是根據域名網址解析出對應的IP位址

  1. 基本使用

    1. 查詢DNS:dig url/dig +short url
    2. 分級查詢:dig +trace url
  2. DHCP機制

    DNS伺服器的IP位址,是由網管動态配置設定,儲存在/etc/resolv.conf中,---->nameserver:10.226.146.254

域名層級關系

DNS中的域名都是用句點來分割,代表了不同層次之間的界限。越靠後表示層次越高。

主機名.初級域名.頂級域名.根域名(baike.baidu.com.root)

host.sld.tld.root

www.example.com.root

root根域名一般情況下都省略了。全球總共才14個,ipv6下中國才有根

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伺服器為了節省時間,也為了盡量不去打擾各位老大哥,就把這個查詢結果偷偷地記在了自己的小本本上,友善下次有人來查詢時,可以快速回應。
  10. 總結起來就是三句話:

    從"根域名伺服器"查到"頂級域名伺服器"的NS記錄和A記錄(IP位址)

    從"頂級域名伺服器"查到"次級域名伺服器"的NS記錄和A記錄(IP位址)

    從"次級域名伺服器"查出"主機名"的IP位址

    DNS域名解析了解

DNS記錄類型:

A:位址記錄(Address),傳回域名指向的IPV4位址。

NS:域名伺服器記錄(Name Server),傳回儲存下一級域名資訊的伺服器位址。該記錄隻能設定為域名,不能設定為IP位址。

MX:郵件記錄(Mail eXchange),傳回接收電子郵件的伺服器位址。

CNAME:規範名稱記錄(Canonical Name),傳回另一個域名,即目前查詢的域名是另一個域名的跳轉

AAAA:将域名指向一個IPV6位址

PTR:逆向查詢記錄(Pointer Record),隻用于從IP位址查詢域名。

其他DNS工具

host url -->可以看作dig指令的簡化版本,傳回目前請求域名的各種記錄

nslookup url

nslookup url 114.114.114.114 -->指定公網的域名伺服器進行DNS查詢

whois url–>檢視域名的注冊情況

手動清理本地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

繼續閱讀