DNS伺服器是一個外行聽起來比較專業的辭彙,大部分只是聽說過DNS,卻不知道DNS伺服器是什麼鬼;即便知道了DNS伺服器是什麼東西,卻也很難明白DNS伺服器背後的「翻譯邏輯」是什麼,DNS伺服器又能幫我們做些什麼,還有如何防止惡意攻擊 保護DNS伺服器……今天,筆者就帶大家來認識一下這位喜歡躲在小黑屋中的「翻譯官」:DNS伺服器。
電腦聯網必備技能——DNS
相信大多數人對DNS的初識都和筆者一樣,來自於大學時候在宿舍給筆記本聯網,一個月20塊,交完網費,學校會給你一個IP地址,然後你自己設置聯網就好了。
這聽起來很簡單,但是很多妹子真的對泛IT知識一無所知(擼韓劇、逛淘寶才是他們的專業),於是大學四年,筆者擔任了同學、學妹、甚至部分學姐的網路問題相關工作,後來即便不用學校相關部門給地址,都能推算出來……
DNS伺服器聯網設置
正所謂實踐出真知,筆者對於IPv4地址、默認網關、DNS等名詞也是在實際應用中學習的。但是,從專業概念來講,DNS又是什麼呢?
DNS是Domain Name Service的縮寫,翻譯過來就是計算機域名伺服器(也有擴寫成Domain Name System,譯為計算機域名系統)。而之所以本文稱DNS伺服器為「翻譯官」,是因為DNS是進行域名(domain name)和與之相對應的IP地址(IP address)轉換的伺服器。雖然我們每天都會用到DNS伺服器,但是卻很少有人知道它,足以體現DNS容易被視而不見的特性了。
也就是說,在Internet上域名與IP地址之間是一一對應的,域名雖然便於人們記憶,但機器之間只能互相認識IP地址,它們之間的轉換工作稱為域名解析,而域名解析需要由專門的域名解析伺服器來完成,這就是DNS域名伺服器。
附錄:
名稱類型說明 示例根域 一般認為全球共有13台根邏輯域名伺服器單個句點(.)或句點用於末尾的名稱 頂級域 用來指示某個國家/地區或組織使用的名稱的類型名稱 .com 第二層域 個人或組織在網上使用的註冊名稱 zol.com 子域 已註冊的二級域名派生的域名 www.zol.com DNS域名稱cn/rucomneteduMilgov 組織類型/俄羅斯商業公司網路公司教育機構軍事政府機構非軍事政府機構 2DNS伺服器背後的「翻譯邏輯」
說白了,DNS伺服器起到的作用是把我們輸入的字元域名轉換為主機的IP地址。計算機在網路上進行通訊時只能識別如「201.59.72.14」之類的IP地址(此處為任意IP地址舉例),而不能認識域名(如:zol.com.cn)。但是,我們打開瀏覽器,在地址欄中輸入字元域名后,就能看到所需要的頁面,就是因為有一個叫「DNS伺服器」的存在自動把我們的域名「翻譯」成了相應的IP地址,然後調出IP地址所對應的網頁。也正因此,也有人將DNS伺服器比喻成「翻譯官」和「電話簿」。
就像大多數同傳大神一樣,DNS伺服器這個翻譯官也常常躲在一個小黑屋中工作,不同於同傳翻譯人員使用一支筆、一個本和大腦來翻譯,DNS伺服器的翻譯邏輯似乎有些不同,畢竟他們只能是0和1的組合。
如果簡單來講,可以將DNS分為C/S(Client/Server,客戶機/伺服器)兩種模式,Client扮演詢問角色,由Client向Server詢問Domain Name(域名),Server負責給出域名對應的真正IP地址。
具體而言,要分八步走(注,為實現冗餘和負載均衡,部分地址解析結果有可能是一個,也可能是多個,本文均以一個為例)。
1、客戶端發出請求:我需要訪問zol.com.cn,請告訴我它得IP地址。
2、本地DNS伺服器(向DNS根伺服器)分發需求:緩存中沒有zol.com.cn的記錄,向d.root-servers.net.請求域名對應IP地址。
3、DNS根伺服器給出範圍:該域名由.com.cn區域管理,給你.com.cn域伺服器地址ns.cernet.net.
4、本地DNS伺服器(向.com.cn域伺服器)分發需求:域名zol.com.cn對應的IP地址是多少?
5、.com.cn域伺服器給出範圍:負責zol.com.cn的域伺服器應該知道IP地址,你去問它
6、本地DNS伺服器(向zol.com.cn域伺服器)分發需求:請問域名zol.com.cn對應的IP地址是多少?
7、zol.com.cn域伺服器給出答案:經查詢得知,該域名對應的IP地址是123.101.57.11
8、本地DNS伺服器(向網路客戶端)回復答案:域名zol.com.cn對應的IP地址是123.101.57.11
zol DNS解析過程
一般來講,DNS伺服器一般會在獲得域名對應IP地址之後,將該IP地址與域名對應關係記入緩存中,以備下次別的用戶查詢時可以直接返回結果,以加快網路訪問速度。
完成以上8步,正向解析完成,除了正向解析(域名轉換成IP地址的操作)之外,還有反向解析,即通過IP地址轉換成域名的操作,這裡再不做詳盡解釋。
3DNS可以幫你優化網速和查漏洞
除了基本的翻譯工作之外,DNS還能為我們帶來哪些優勢呢?今天,筆者就向大家簡單介紹三種DNS能夠告訴我們的事兒。
一、檢測垃圾郵件和Botnet殭屍網路
檢測垃圾郵件
眾所周知,Botnet殭屍網路就是許多台被惡意代碼感染、控制的與互聯網相連接的計算機。而當一個運行一個垃圾郵件的時候,會有大量的郵件被發送到一個預定的域名列表裡;就導致一個已經不存在的域名,被高頻率的訪問。另外,在圖示一圾郵件和Botnet殭屍網路,並迅速識別受損及其,解決問題。
二、優化網路速度,降低網路成本
圖片來自網路
DNS數據可以告訴我們是否出現網路堵塞,並識別網路堵塞的原因。上圖是未經過濾的圖片,根據顏色的不同,可以看出網路速度的不同。繼續研究的話你可以調節DNS伺服器配置,改善網路速度,減少在某些應用程序上的等待時間,甚至有可能節省網路成本。
三、發現軟體漏洞
正常的DNS應該是穩定的,但如果你發現Servfail響應異常,那可能意味著出現了網路漏洞。它或者意味著軟體漏洞,或這意味著你的伺服器配置相對較差,可能會增加你的風險。
惡意DNS劫持(圖片來源於網路)
Google DNS伺服器平均每天處理超過1500億個查詢。在2014年3月17日,根據網路監測公司BGPMon數據,Google的公開DNS伺服器IP 8.8.8.8被劫持到了委內瑞拉和巴西超過22分鐘。類似這樣的事件時有發生,我們所需要做的就是利用一切手段,防止這樣的事件發生。
長久以來,DNS一直未作為分析網路問題的標準,甚至可能性。但是如今根據相關測試我們可以看出,DNS可以告訴我們的還有很多。比如檢測垃圾郵件和Botnet殭屍網路;優化網路速度,降低網路成本和發現軟體漏洞。
儘管DNS看起來優勢多多,但是DNS域名伺服器安全問題由來已久,比如2009年的519事件,因為DNSPOD用戶域名相互攻擊造成DNSPOD宕機,大量請求壓力讓運營商伺服器受到了影響,導致南方六省斷網、伺服器崩潰。後來的DNS域名被篡改、DDOS攻擊、內部威脅等問題也持續存在。
如何防止惡意攻擊 保護DNS伺服器
一般來講,只要不是網路服務供應商受到重大攻擊,企業網路完全陷入癱瘓的可能性不大。而企業DNS伺服器會面臨的漏洞主要包括:DNS IPv6漏洞、公用DNS伺服器上的漏洞、內部威脅和社會工程學四大方面。而要提高企業DNS伺服器安全問題也十分簡單。
1、控制入口。即對主要網路資源訪問許可權進行管控。從DNS伺服器從主力DNS伺服器接收這些區域文件的只讀拷貝。比如,你可以配置企業的DNS伺服器,禁止區域傳輸請求,或者僅允許針對組織內特定伺服器進行區域傳輸,以此來進行安全防範;在基於Windows的DNS伺服器中,你也應該在DNS伺服器相關的文件系統入口處設置訪問控制,這樣只有需要訪問的帳戶才能夠閱讀或修改這些文件。
2、做好Plan B。幾乎在所有企業級IT應用場景中冗餘和備份都是不可缺少的一部分,所以做好災難備份和恢復、做好風險評估方面就顯得異常重要。此外,在管理方面,企業還需要制定相關規範,遇到問題形成快速反應機制。
3、專業支持。俗話說,網路安全工作要靠三分技術、七分管理,所謂管理就是控制入口、做好備用方案,而三分技術才是企業穩定運行的基礎。這就需要企業找到專業的軟硬體伺服器供應商,匹配專業的技術人員,建立一個健康的IT生產環境,保證DNS伺服器及企業網路安全。
根域解析故障(圖片來自知乎)
對於普通消費者而言,除了遇到類似2014年1月21日互聯網根域名伺服器(DNS)故障這種所有通用頂級域名的根域解析出現異常,導致大量網站域名解析不正常,網站無法打開的情況之外,大多數時候,DNS伺服器只是躲在小黑屋中,幫助我們實現正向/反向解析的翻譯官,似乎沒什麼大用。但是正因為大量默默無名的DNS伺服器在刻苦工作,才有了我們發達的互聯網生態。