問題:工作生活中常見的現象
調試和排查步驟
1、確認一下域名解析的問題?是否可以解析成對應的IP--- DNS -- 重點
2、Ping或者telnet這個IP確實連接是否可達?
3、tracert跟蹤,確定哪個節點出現問題。
4、不可達,服務器是否開機?服務是否開啟?
Linux 命令查看進程:ps -ef
5、是否開啟防火牆?雲服務器--安全策略組?
tcp 8080 端口
一、了解什么是域名 VS IP
1、什么是域名?
-
- www.baidu.com
2、為什么用域名通信,不直接用IP通信?
-
- ip地址不好記憶,如:124.56.78.333
3、為什么又要轉化為IP地址呢?
-
- ip地址長度固定,域名不固定
總結:IP地址是面向主機的,而域名則是面向用戶的。
二、DNS協議概念
1、在沒有 DNS 協議的時候我們用什么來進行 IP 和 域名地址 轉換
- 在沒有 DNS 協議的時候,電腦上都會有一個 hosts 文件
- 主機有個 hosts 文件可以保存域名和 IP 的對應關系
- C:Windows\System32\drivers\etc
- 可以自己編輯一些 IP 地址 和 域名 的匹配綁定,如下圖;綁定之后我們的電腦在訪問域名:www.某.com 的時候就會去優先去查找這個文件中有沒有匹配的映射 IP地址,那么訪問 域名:www.某.com 就相當於訪問 對應的 IP地址
- 作用
- 加快域名解析:對於經常訪問的網站,直接將映射關系添加在 Hosts 文件中,不需請求網絡上的 DNS 服務器
- 方便局域網用戶:局域網很少假設DNS服務器,為了訪問方便直接建立 Hosts 文件
- 可以自己編輯一些 IP 地址 和 域名 的匹配,如下圖
但是如果有很多的域名和IP地址那就要長期的維護這個文件很不方便,才有了 DNS 協議
2、DNS協議工作原理
DNS:域名系統(Domain Name System)是一個 應用層 協議,人類可讀的域名(如,www.qq.com) 轉換為機器可讀的IP地址(如:119.147.15.13)
DNS協議建立在 UDP 或 TCP 協議 之上,默認使用 UDP 協議的 53 號端口
問題:www. baidu.com每個點隔開的代表什么呢?
域名是分層結構,域名服務器也是對應的層級結構。
根域:最高層次的服務器,本地服務器無法解析時會找根服務器。
頂級域名:用來指示某個國家、地區或者組織。如com-商業公司,edu-教育機構,,mil-軍事部門,net-網絡, org-非盈利組織; 中國-cn,美國-us,
二級域名:個人或者組織在Internet使用的注冊名稱
。。。。
- 例子:cs.nankai.edu.cn
3、DNS協議交互過程
用戶希望通過客戶端瀏覽器訪問百度服務器域名為www.baidu.com:
1.用戶在瀏覽器里輸入www.baidu.com域名,默認優先查找瀏覽器緩存,看緩存中是否含有域名對應的IP地址
2.當瀏覽器中找不到時,會檢測系統中的Hosts文件中是否有對應的IP地址
3.如果hosts里沒有這個域名的映射,則查找本地DNS服務器;
4.若沒有,通過DNS服務器就向根域名服務器中進行查找;根域名服務返回可供查詢的頂級域名服務器IP地址;
5.頂級域名服務器返回DNS響應消息;
6.主機收到響應消息后,可以正常訪問該服務器了;並將結果保存,已備下一次使用
4、DNS 解析過程
(1)輸入域名后,先查找自己主機對應的域名服務器,域名服務器先查找自己的數據庫中的數據.
(2)如果沒有,就向上級域名服務器進行查找,依次類推
(3)最多回溯到根域名服務器,肯定能找到這個域名的IP地址
(4)域名服務器自身也會進行一些緩存, 把曾經訪問過的 域名 和 對應的 IP地址 緩存起來, 可以加速查找過程
優先級:瀏覽器緩存 > Hosts > DNS緩存 > 本地DNS服務器
5、DNS查詢方法
- 遞歸查詢:本機向本地域名服務器發出一次查詢請求,就靜待最終的結果。如果本地域名服務器無法解析,自己會以DNS客戶機的身份向根域名服務器查詢,根域名如果不知道,會自己去向頂級域名服務器查詢;直到得到最終的IP地址告訴本機;
- 迭代查詢:本地域名服務器向根域名服務器查詢,根域名服務器告訴它下一.步到哪里去查詢,然.后它再去查,每次它都是以客戶機的身份去各個服務器查詢。
====
總結:通常情況下,主機向本地域名服務器的查詢一般都是采用遞歸查詢,本地域名服務器向根域名服務器的查詢通常采用迭代查詢。
*******請大家尊重原創,如要轉載,請注明出處:轉載自:https://www.cnblogs.com/shouhu/,謝謝!!*******