上好,我是老楊,今天和你聊聊DNS。
我們知道,TCP/IP提供了通過IP地址來連接到設備的功能。
但對用戶來講,記住某臺設備的IP地址是相當困難的,因此,有人專門設計了一種字符串形式的主機命名機制,這些主機名與IP地址相對應。
在IP地址與主機名之間需要有一種轉換和查詢機制,提供這種機制的系統就是域名系統DNS(Domain Name System)。
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
可能還有小白對DNS的概念有那么一點不清晰,老楊今天這篇文章就從DNS是啥、DNS配置、好用DNS服務器推薦這仨方面入手,都說道說道。
一句話解釋DNS功能:
DNS就相當于電話簿, 電話簿可以根據人名查找對應的電話號碼,而DNS可以根據域名查找對應的IP地址。
有小白可能會問:為啥非要整個IP地址,就域名不行嗎?這就要從互聯網通信協議相關知識講起。
簡單的講,IP地址是每一個計算機的唯一標識, 就像每個人的身份證號一樣是獨一無二的, 只有通過IP地址才來唯一確定一臺計算機。
但是由于IP地址一連串的數字, 記憶麻煩,因此就產生了域名, 域名相當于IP地址的昵稱,但它和IP地址是一對多的關系,即一個域名可能對應多個IP地址, 用戶訪問時,只會被導向其中一個。
?
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
所以,通過DNS查詢IP地址是必要的。那DNS到底是怎么工作的?
簡單舉個例子來說明DNS的工作流程,就用www.baidu.com為例吧:
com被稱為”頂級域名“(top-level domain);
baidu和被稱為”次級域名“(second-level domain);
www被稱為主機名, 也叫做“三級域名”。
常見的域名往往只顯示了三個層級, 比如上面所說的www.baidu.com。這是因為所有域名的最后一個根域名都是一樣的都是.root, 所以平時都省略了。
實際上應該是:www.baidu.com.root
因此,域名實際上是一個擁有四個層級的層級結構,即:
主機名.次級域名.頂級域名.根域名,也就是host.sld.tld.root
DNS解析域名時就是按照層級結構, 從根域名開始逐級向下分級查詢,比如咱們來查查www.baidu.com。
首先訪問根域名服務器, 查詢.com(頂級域名)由哪一個頂級域名服務器維護;
根據返回結果, 訪問頂級域名服務器, 查詢.baidu(次級域名)由哪一個次級域名服務器維護;
根據返回結果, 訪問次級域名服務器, 查詢www(主機名)的IP地址;
上述的查詢流程是由本地的DNS服務器完成, 而并非本地主機。
?
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
本地主機通過瀏覽器訪問一個域名時:
首先會查詢本地主機的/etc/hosts文件, 查看是否進行了域名和IP映射自定義設置 (比如在/etc/hosts文件中將www.baidu.com映射成了127.0.0.1, 那么瀏覽器訪問www.baidu.com時訪問的將是本地主機)
如果沒有相應的自定義設置, 則會訪問本地DNS服務器。
本地DNS服務器的IP地址可查看/etc/resolv.conf文件
本地DNS服務器會先查看本地緩存, 是否有對應域名和IP的映射,如果有則直接返回給本地主機,如果沒有則進行上述查詢流程。
光說不練假把式,咱們來手把手操作試試,最好是轉發到你的朋友圈收藏一波,方便之后有空時隨時打開操作。
?
編輯
添加圖片注釋,不超過 140 字(可選)
由于IP地址難于記憶,用戶希望通過DNS域名請求方式訪問網絡服務器。用戶希望輸入域名部分字段,DNS服務器就可以正確解析,達到用戶訪問正確網絡服務的效果。
例如DNS客戶端在訪問該服務器huawei.com時,用戶只需要輸入“huawei”即可。對于一些常用的域名,用戶希望能夠快速訪問,提高域名解析的效率。
DNS的配置思路如下:
(1)在RouterA上配置靜態DNS表項,實現與服務器B和服務器C進行通信的功能。
(2)在RouterA上配置動態DNS功能,實現RouterA以動態DNS查詢方式與網絡服務器進行通信的功能。
(3)在RouterA配置域名后綴,實現RouterA可以實現域名后綴列表功能。
(4)配置Router上的OSPF路由,實現Router的路由可達。
(1)配置設備RouterA
# 配置GE1/0/0接口的IP地址。
<Huawei> system-view
[Huawei] sysname RouterA
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] ip address 10.1.1.2 255.255.0.0
[RouterA-GigabitEthernet1/0/0] quit
# 配置OSPF。
[RouterA] ospf
[RouterA-ospf-1] area 0
[RouterA-ospf-1-area-0.0.0.0] network 10.1.0.0 0.0.255.255
[RouterA-ospf-1-area-0.0.0.0] quit
[RouterA-ospf-1] quit
# 配置靜態DNS表項。
[RouterA] ip host serverB 10.4.1.1
[RouterA] ip host serverC 10.4.1.2
# 使能DNS域名解析功能。
[RouterA] dns resolve
# 配置DNS服務器的IP地址。
[RouterA] dns server 10.3.1.2
# 配置域名后綴net。
[RouterA] dns domain net
# 配置域名后綴com。
[RouterA] dns domain com
[RouterA] quit
說明:
若要完成對域名的解析,還需要在RouterB和RouterC上配置ospf,以保證設備之間路由可達。
(2)驗證配置結果
# 在設備RouterA上執行ping serverB命令,可以ping通,且對應的目的地址為10.4.1.1。
<RouterA> ping serverB
PING serverB (10.4.1.1): 56 data bytes, press CTRL_C to break
Reply from 10.4.1.1: bytes=56 Sequence=1 ttl=126 time=4 ms
Reply from 10.4.1.1: bytes=56 Sequence=2 ttl=126 time=1 ms
Reply from 10.4.1.1: bytes=56 Sequence=3 ttl=126 time=1 ms
Reply from 10.4.1.1: bytes=56 Sequence=4 ttl=126 time=1 ms
Reply from 10.4.1.1: bytes=56 Sequence=5 ttl=126 time=1 ms
# 在設備RouterA上執行ping huawei.com命令,可以ping通,且對應的目的地址為10.2.1.3。
<RouterA> ping huawei.com
Trying DNS server (10.3.1.2)
PING huawei.com (10.2.1.3): 56 data bytes, press CTRL_C to break
Reply from 10.2.1.3: bytes=56 Sequence=1 ttl=126 time=6 ms
Reply from 10.2.1.3: bytes=56 Sequence=2 ttl=126 time=4 ms
Reply from 10.2.1.3: bytes=56 Sequence=3 ttl=126 time=4 ms
Reply from 10.2.1.3: bytes=56 Sequence=4 ttl=126 time=4 ms
Reply from 10.2.1.3: bytes=56 Sequence=5 ttl=126 time=4 ms
# 在設備RouterA上執行ping huawei命令,可以ping通,且對應的域名變為huawei.com,目的地址為10.2.1.3。
<RouterA> ping huawei
Trying DNS server (10.3.1.2)
PING huawei.com (10.2.1.3): 56 data bytes, press CTRL_C to break
Reply from 10.2.1.3: bytes=56 Sequence=1 ttl=126 time=6 ms
Reply from 10.2.1.3: bytes=56 Sequence=2 ttl=126 time=4 ms
Reply from 10.2.1.3: bytes=56 Sequence=3 ttl=126 time=4 ms
Reply from 10.2.1.3: bytes=56 Sequence=4 ttl=126 time=4 ms
Reply from 10.2.1.3: bytes=56 Sequence=5 ttl=126 time=4 ms
# 在RouterA用display ip host命令可以查看到靜態DNS表項中主機名和IP地址的對應關系。
<RouterA> display ip host
Host Age Flags Address
serverB 0 static 10.4.1.1
serverC 0 static 10.4.1.2
# 在RouterA用display dns dynamic-host命令可以查看到動態緩存區中的動態DNS表項信息。
<RouterA> display dns dynamic-host
Host TTL Type Address(es)
huawei.com 114 IP 10.2.1.3
這組 DNS 是由阿里巴巴提供的,國內連通性還是不錯的,海外部分地區連通性不是特別好,具體可以測試一下。
阿里 DNS 同時提供了 IPv4/IPv6 DNS 和 DoT/DoH 服務。
?
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
IPv4:
223.5.5.5 223.6.6.6
IPv6:
2400:3200::1 2400:3200:baba::1
DoH 地址:
https://dns.alidns.com/dns-query
DoT 地址:
dns.alidns.com
?
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
由 DNSPod 提供的公共免費 DNS,后來 DNSPod 被騰訊(Tencent)收購,現在屬于騰訊公司所有,穩定性和連通性也是不錯的,經測試海外也可以使用。
DNSPod 除了 IPv4,現在同時支持 IPv6 DNS 和 DoT/DoH 服務。
IPv4:
119.29.29.29
IPv6:
2402:4e00::
DoH 地址:
https://doh.pub/dns-query
DoH (國密 SM2,基于騰訊云政企國密解決方案) 地址:
https://sm2.doh.pub/dns-query
DoT 地址:
dot.pub
Google Public DNS 是最流行的免費DNS服務器之一,它的服務器托管在全球各地的數據中心,一旦連接到他們的IP地址,它會自動分配距離最近的服務器,能夠為不同地區的人們都提供穩定和快速的訪問體驗
谷歌DNS擁有非常好記的IP地址 8.8.8.8,通過將你的默認DNS改為谷歌的公共DNS服務器,你可以擁有更快的瀏覽速度和更高的安全性,而且它提供了兩個DNS服務器地址,你可以分別設置為自己的首選和備用DNS服務器
地址:
8.8.8.8
8.8.4.4
360 提供的 DNS 服務,只提供了 IPv4 和 DoT/DoH 服務。
針對中國電信/鐵通/移動的 IPv4:
101.226.4.6 218.30.118.6
針對中國聯通的 IPv4:
123.125.81.6 140.207.198.6
DoH 地址:
https://doh.360.cn
DoT 地址:
dot.360.cn
中國電信 IPv6 DNS
如果用中國電信的寬帶應該會自動分配這兩個IP
240e:4c:4008::1 240e:4c:4808::1
中國聯通 IPv6 DNS
如果用中國聯通的寬帶應該會自動分配這兩個IP
2408:8899::8 2408:8888::8
中國移動 IPv6 DNS
中國移動寬帶自動分配的兩個IP
2409:8088::a 2409:8088::b
114DNS
114.114.114.114 114.114.115.115
?
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
中國最大的搜索引擎百度提供的公共 DNS,經測試海外連通性也是不錯的,暫時百度只提供了一組 IPv4 和 IPv6 DNS 地址。
IPv4:
180.76.76.76
IPv6:
2400:da00::6666
是由中國互聯網信息中心 CNNIC 提供的免費公共 DNS,同時支持 IPv4 和 IPv6。
IPv4:
1.2.4.8 210.2.4.8
IPv6:
2001:dc7:1000::1
整理:老楊丨9年資深網絡工程師,更多網工提升干貨,請關注公眾號:網絡工程師俱樂部
DNS又是什么?
在DHCP獲取的參數中,IP、掩碼、網關之前學過都知道是干什么用的了,但是另外一個參數,DNS沒有接觸過,那它在網絡中起到什么樣的作用呢?
相信大家都使用過手機通訊錄(聯系人的功能),因為手機號碼太長了,所以給他起一個別名來對應這個手機號碼,查找的時候方便,有電話過來也知道是誰,同樣的在網絡世界中,IP地址作為通信地址,但是對于普通用戶而言,還是過于復雜,所以也出現了一個解決辦法,叫做域名,方便人類記憶,也就是我們打開瀏覽器的時候,輸入baidu.com、163.com,比起IP地址來說是不是好記多了。
不知道有沒有這樣的經歷,有時候微信、QQ可以發送消息,也能登錄,但是打不開網頁,咨詢有經驗的大佬或者運營商的客服都會告訴你一件事,檢查DNS是不是對的,那為什么要檢查DNS呢?
學過之前的理論都知道在如今TCP/IP為主流的互聯網中,不管訪問什么應用都得知道對方的IP地址,那么我們在瀏覽器中輸入baidu.com,ccieh3c.com的時候,主機怎么會知道這個域名對應的IP是多少呢?
這就是要使用到一個協議,叫做DNS,域名解析協議,它可以將域名轉換成具體的IP地址。
DNS中的域名是使用句點來分割,來劃分層次,比如zhidao.baidu.com,越往右邊表示層此越高。這里可能初學者一看有點迷糊,因為域名這個內容是外國人發明的,思維與我們正好相反,外國稱呼一個具體地點為XX 街 XX 區 XX 市 XX 省,而中國的順序 XX 省 XX 市 XX 區 XX街道,域名也是根據這樣的思維排序的,最頂層是根域,下一層是頂級域(com)、再下一層是二級域名(baidu),再下一層就是三級域名(zhidao),連起來就是zhidao.baidu.com,可以發現域名的層次關系比較類似于樹狀結構。(其中根域是最后用【.】表示,但是在實際使用中并不表示出來)
這里可以填下第二篇的一個坑,在第二篇里面介紹過打開一個網頁它首先要知道對方的IP地址,所以瀏覽器會查看緩存里面是否有記錄,如果沒有,則向DNS服務器詢問,具體步驟如下
作為IT實施人員或者維護人員,在規劃、搭建一個網絡經常要考慮的一件事件就是,給客戶分配什么樣的DNS,錯誤的DNS會造成網頁打不開等情況。
在國內的話,分為兩種類型(1)公共DNS (2)運營商DNS,那這兩種什么情況下使用呢?
這個就可以直接打開wireshark,選擇自己的上網網卡,抓取即可
使用DNS過濾下,只看DNS的內容,可以看到本地使用的是223.5.5.5的公用DNS。
通常客戶端發送的DNS一個A記錄的查詢,訊問對應域名的IP是都是,可以看到DNS協議使用的是UDP的53端口號,DNS的查詢還有另外的,比如郵件使用的(MX記錄)、別名(CHAME)等。
回應報文中會發現有多個IP地址,這其實是DNS的輪詢技術,作用就是實現負載均衡,因為像B站這樣的日活訪問特別高的WEB服務,都會有多臺服務器提供服務,所以在客戶端請求的時候就可以相應多個地址,客戶端隨機選取一個,達到均衡的效果,不然一臺服務器頂不住這么大的訪問量,直接死機。
Windows命令學習
1、地址釋放:ipconfig/release,釋放掉獲取的地址,通常是在測試的環境下使用,比如我們做了某些地址綁定,釋放掉這個在重新獲取看下是否成功。
2、重新獲取:ipconfig/renew,重新獲取IP地址,跟上面類似,測試的時候使用。
3、清空DNS緩存:ipconfig/flushdns,清空本機已經緩存的DNS記錄,在獲取到錯誤的解析的時候,可以使用該命令清空
4、查看DNS緩存:ipconfig/displaydns,查看本地緩存的DNS記錄
結束
整個計算機網絡基礎內容就到這里結束了,對于初學者來說,這些內容大部分都是需要掌握了解的,而且不是看一遍就能理解的了,很多知識點,只能懂個大概意思,那博主建議是大家可以先過一遍,能學到多少內容算多少,在學習完路由交換的入門知識后,在反過來把基礎在過一遍,你會有不一樣的收獲,說實話,博主在寫這個基礎也是收獲不少的,有些知識點也需要查詢大量資料,然后驗證,另外對于初學者一個學習建議,就是多抓抓包看看協議本身的字段,可以通過eNSP模擬,也可以直接抓取本地網卡的包,另外還一個重點,就是做好筆記,把自己學習到的做一個記錄,一來可以加深印象,二來后續鞏固復習方便。好的筆記軟件,我個人早期用的是myBaseDesktop,現在講課的話用的是OneNote,360筆記也不錯,最后有測試題,如果大家能夠完成70%~80%說明已經對于基礎掌握的不錯了。
互聯網世界中,域名和IP地址相互對應,使我們的電腦能夠輕松地訪問網站、郵箱等資源。但是,對于那些不常使用電腦的人來說,DNS服務器是什么,可能還不知道。接下來,我將為您介紹一下DNS服務器的作用和原理。
DNS(域名系統)是一種將域名轉換為IP地址的系統。當我們輸入一個網址時,DNS服務器會將該域名解析為相應的IP地址,使我們能夠訪問網站。DNS服務器在全球范圍內有很多個,它們會根據您所在的地理位置來查找最適合的DNS服務器,以確保您的訪問速度和穩定性。
那么,我們如何知道我們使用的是哪個DNS服務器呢?通常,您的手機、電腦或平板電腦都會自動獲取DNS服務器地址,如果您使用的是有線網絡,那么運營商的DNS服務器也是一個可能的選擇。當然,您也可以在網絡設置中更改DNS服務器,以使用更優的 DNS服務器。
一、中國移動DNS服務器地址大全
二、 中國聯通DNS服務器地址大
三、 中國電信DNS服務器地址大全
四、 中國公共DNS服務器地址大全
總之,DNS服務器是我們互聯網生活中不可或缺的一部分,它為我們實現了域名和IP地址之間的轉換,使得我們在互聯網中能夠更加便捷地進行交流和操作。