天天看點

2016-12-29 DNS簡介上 域名空間、域、疊代解析、遞歸解析、DNS伺服器

2016-12-29 DNS簡介上 域名空間、域、疊代解析、遞歸解析、DNS伺服器

Domain name system

    域名系統(Domain Name System,DNS)是把名字映射到位址的目錄系統。其将資訊分布在世界上的很多台計算機中。需要映射的計算機可尋找到最近一台持有所需資訊的計算機。

    DNS也分用戶端和伺服器,以調用檔案傳輸向伺服器傳送檔案為例子。檔案傳輸用戶端首先要調用本地DNS用戶端,DNS用戶端向DNS伺服器查詢伺服器名對應的位址,随後檔案用戶端使用此位址與檔案伺服器端建立連接配接,傳送資料。

名字空間

名字空間将每一個位址映射到一個唯一的名字,它可以按兩種方式組織:平面的和層次的。

    在平面名字空間(flat name space)中,一個名字配置設定給一個位址。空間的名字是一個無結構的字元序列。名字之間可能有也可能沒有公共部分;即使有公共部分,也沒有實際含義。平面名字空間的缺點是必須集中控制才能避免二義性和重複,因而不能用于如網際網路這樣的大規模系統中。

    在層次名字空間(hierarchical name space)中,每一個名字由幾個部分組成。每個部分由不同的層級,中央管理機構可以配置設定名字的一部分,這部分定義組織的性質群組織的名字。其他部分由組織自己管理,這個組織還可以以此類推進行分層管理。

域名空間

    為了獲得層次名字空間,設計了域名空間(domain name space)。所有的名字有一個根在頂部的倒置數結構定義。該數最多有128級:0級(根結點)至127級。可表示X的0次方+X的1次方+X的2次方+........+X的127次方個節點。

    标簽 樹上的每一個節點有一個标簽。标簽是一個最多為63個字元的字元串。根結點的符号是空字元串(空串)。DNS要求每一個節點的子節點(從同一個節點分支出來的節點)有不同的标簽,這樣就確定了域名的唯一性。

    域名 (由底部向根部依次用“.”符号連接配接各個标簽,構成一個域名)

        樹上的每一個節點都有一個域名。一個完整的域名(domain name)是用點“.”分隔的标簽序列。域名總是從節點向上讀到根結點。最後一個标簽是根結點的标簽(空)。這表示一個完整的域名總是以一個空符号結束,也意味着最後一個字元是一個點(.),因為空字元串表示什麼也沒有。

    如上所訴:如果一個标簽以一個空字元串結束(其實就是以一個“.”符号結束),則他就稱為全稱域名(fully qualified domian name,FDQN)。

    反之稱為部分域名(partially qualified domain name,PQDN),部分域名起始于一個結點,但沒有到達根結點。

當這個需要解析的名字屬于和客戶機相同的站點時可使用部分域名。這種情況下,解析程式能夠提供省略的部分,稱為字尾(suffix),以建立FQDN。

域(Domain)

    域是域命名空間的子樹。域的名稱是子樹頂端節點的名稱。注意域本身仍可能被分割成多個域。

名字空間的分布:

    把域名空間所包含的資訊存儲在一台計算機中顯然是不合适的。

名字伺服器的層次結構

    将資訊分布在多台稱為 DNS伺服器(DNS server)的計算機中。

    與建立名字的層次結構一樣,建立伺服器的也是類似的層次結構。每一台伺服器負責(授權的)域或者較小的域。

區域

    一台伺服器也無法完全維護一個較大的域,我們講一個區域(Zone)定義為整個樹中的一個連續部分。如果伺服器負責一個域,且這個域沒有被劃分成更小的子域時,“域”和“區域”是相同的。

DNS伺服器有一個資料庫,稱為區域檔案,他儲存這個區域裡所有節點的資訊。

    如果伺服器将他的域劃分為多個子域,并将其部分授權委托給其他伺服器,那麼“域”和“區域”就不同了。在子域結點的資訊會儲存在較低層次的伺服器中,原來的伺服器則儲存到這些較低層次伺服器的某種參照。

DNS伺服器

    根伺服器(root server)的區域由整顆樹組成。根伺服器通常不儲存關于域的任何資訊,隻是将其授權委托給其他伺服器,并儲存這些伺服器的參照關系。

    目前世界上有多個根伺服器,每一台都覆寫整個域名空間。這些伺服器分布在世界各地。

    主伺服器和輔助伺服器

        主伺服器(primary server)是指存儲了授權區域有關檔案的伺服器。他負責建立、維護和更新區域檔案,并将區域檔案存儲在本地磁盤中。

        輔助伺服器(secondary server)負責從另一個伺服器(主伺服器或輔助伺服器)傳輸一個區域的全部資訊,并将檔案存儲在他的本地磁盤中。輔助伺服器不建立或更改更新區域檔案。如果需要則有主伺服器完成,由主伺服器發送更新的版本到輔助伺服器中。

    主伺服器和輔助伺服器對他服務的區域都有服務能力,主要是為了建立資料的備援備份,增加健壯性。

    注意,一台伺服器可能是某個特定域區的主伺服器,同時也是另一個區域的輔助伺服器。是以,當提到一個伺服器作為主伺服器或者輔助伺服器時,需要弄清楚所指的是哪個區域。

網際網路中的DNS

    在網際網路中,域名空間(樹)被劃分為三個部分:通用域、國家域和反向域(可以用在給定IP位址中找到主機名,已廢止)。

        通用域(generic domain)

        國家域(country domain)部分使用雙字母的國家縮寫,第二級标号可以是機構,或者更具體一些,有各個國家自己制定。

    将名字映射為位址或者将位址映射為名字的過程,稱為名字-位址解析(name-address resolution)。

    DNS是一個客戶/伺服器應用程式。需要服務時主機要調用一個稱為解析程式(resolver)的DNS客戶程式。

一次解析可能是遞歸的或者疊代的

    遞歸解析

    在疊代解析中,每個不知道映射的伺服器将下一台伺服器的IP位址發送回到請求查詢的主機上,由請求查詢的的主機繼續查詢。

高速緩存

    DNS伺服器有一種稱為高速緩存(cache)的機制。當一個伺服器向另一個伺服器請求映射并得到回應時,他将該回應發送給用戶端之前會緩存此資料。當其他的使用者請求統一映射時,會傳回次資料,不過該伺服器獲獎這一響應标志為非授權的。

    授權伺服器會将一個稱為生存時間(TTL)的資訊添加到映射上。緩存此資料的伺服器會根據此資料檢查緩存的有效性。高速緩存也會定期檢查資料,清除過期緩存。

資源紀錄

    與每個伺服器相關的區域資訊以資源紀錄(resource record)集的形式實作。換言之,域名伺服器存儲了資源紀錄的資料庫。

    資源紀錄由5部分組成

        域名、類型(定義了數值應該如何被解釋)、類别、TTL、數值

DNS封包

查詢封包(query)

響應封包(response)

nslookup

1:

nslookup www.baidu.com

Server: 10.1.12.80

Address: 10.1.12.80#53

Non-authoritative answer:

www.baidu.com canonical name = www.a.shifen.com.

Name: www.a.shifen.com

Address: 115.239.210.27

Name: www.a.shifen.com

Address: 115.239.211.112

2:

nslookup www.a.shifen.com

Server: 10.1.12.80

Address: 10.1.12.80#53

Non-authoritative answer:

Name: www.a.shifen.com

Address: 115.239.210.27

Name: www.a.shifen.com

Address: 115.239.211.112

使用http://115.239.210.27即可通路baidu網頁

3:

nslookup www.sina.com

Server: 10.1.12.80

Address: 10.1.12.80#53

Non-authoritative answer:

www.sina.com canonical name = us.sina.com.cn.

us.sina.com.cn canonical name = news.sina.com.cn.

news.sina.com.cn canonical name = jupiter.sina.com.cn.

jupiter.sina.com.cn canonical name = auriga.sina.com.cn.

Name: auriga.sina.com.cn

Address: 61.172.201.194

Name: auriga.sina.com.cn

Address: 61.172.201.195

Name: auriga.sina.com.cn

Address: 61.172.201.237

Name: auriga.sina.com.cn

Address: 61.172.201.239

注意上面有寫名字後面有一個 “.”,這個應該是所謂的規範名。

封裝

    DNS可以隻用UDP或者TCP協定。當相應的封包小于512位元組時,就使用UDP否者使用TCP,如果解析程式預先知道響應封包超過512位元組,則會使用TCP。若不知道大小,則使用UDP。但是,如果響應封包超過512位元組,那麼伺服器會截斷這一封包。此時解析程式會啟動TCP連接配接,并重複該請求,從伺服器中擷取完整響應。

注冊機構

    新的域名如何加入到DNS中呢?通過注冊機構,注冊機構首先确認詢問的域名是唯一的。然後将它輸入到DNS資料庫中,這是需要收費的。為了能夠組冊,組織機構需要給出域名伺服器的主機名和IP位址。

    今天的網際網路已經不再允許使用手動方式更新資料庫。DNS主檔案必須能夠動态更新。動态域名系統(Dynamic Domain Name System,DDNS)應運而生。

DNS安全

1:讀取DNS伺服器的響應,擷取到的資訊可能被利用。

2:截獲DNS的響應,并加以改變,僞造響應将客戶導向危險的站點。

3:用泛洪攻擊淹沒DNS伺服器,最終使之癱瘓。

//————————---———————---—————------————————————--———————------—————————————------———————————————//

史上最嚴重DDoS攻擊!今早大半個美國“斷網”了

2016-10-22 10:09:07  /http://news.mydrivers.com/1/504/504214.htm

随着人們對網際網路的依賴增強,很難想象沒有網絡該如何生活。今天早晨,大半個美國的使用者就遭遇了一次集體“斷網”事件,讓很多人都陷入混亂當中。

據外媒報道,各大美國熱門網站今天早些時候都出現了無法通路的情況,根據使用者回報,包括Twitter、Spotify、Netflix、Github、Airbnb、Visa、CNN、華爾街日報等上百家網站都無法通路、登入。

目前可斷定,此次“斷網”事件是由于美國最主要DNS服務商Dyn遭遇了大規模DDoS攻擊所緻。媒體将此次事件形容為“史上最嚴重DDoS攻擊”,不僅規模驚人,而且對人們生活産生了嚴重影響。

由于Dyn主要職責就是将域名解析為IP位址,進而準确跳轉到使用者想要通路的網站。是以當其遭受攻擊,就意味着來自使用者的網頁通路請求無法被正确接收解析,進而導緻通路錯誤。

Dyn表示,雖然目前仍在追查攻擊的來源,但可以肯定這是一次有組織有預謀的網絡攻擊行為,攻擊行為來自超過一千萬IP來源。此外,Dyn也表示攻擊者利用了大量物聯網裝置實施了攻擊。

此次大規模網絡攻擊甚至引起了美國國土安全部的注意,該部門發言人Todd Breasseal稱,正在對可能發起攻擊的“各種潛在原因進行調查”。

DDoS攻擊,也叫拒絕式服務攻擊,其攻擊方式相當的簡單粗暴,通過堆砌大量的垃圾資料,使得使用者的正常登入被“堵塞”。

三種常見DNS攻擊及應對辦法

2015-03-03 10:15:03

  DNS伺服器能夠将IP位址翻譯成域名,這就是為什麼你可以在浏覽器輸入域名來通路我們的網站,而不需要記住IP位址。

  當DNS被攻擊時,可能發生各種情況,不過,攻擊者經常使用兩種方法來利用被攻擊的DNS伺服器。首先,攻擊者可以做的第一件事情是重定向所有入站流量到他們選擇的伺服器。這使他們能夠發動更多的攻擊,或者收集包含敏感資訊的流量日志。

  攻擊者可以做的第二件事情是捕捉所有入站電子郵件。更重要的是,第二種做法還允許攻擊者發送電子郵件,利用受害者企業的域名以及其良好的聲譽。讓事情更糟的是,攻擊者還可以選擇同時做上述兩種攻擊行為。

  專注于流量管理和DNS的Dyn公司首席技術官Cory von Wallenstein在一篇部落格文章中介紹了三種常見的DNS攻擊類型以及應對方法。

  第一種DNS攻擊類型被稱為緩存中毒攻擊,這種攻擊發生在攻擊者成功将惡意DNS資料注入到遞歸DNS伺服器(由很多ISP運作)之後。從網絡拓撲的角度來看,這行類型的DNS伺服器是最接近使用者的伺服器,是以,對這些伺服器的攻擊将會直接影響到連接配接這些伺服器的特定使用者。

  我們有阻止這種攻擊的有效辦法,并且,DNSSEC等标準能夠提供額外的保護。如果DNSSEC不可行,另一種解決方法就是限制需要保護的名稱伺服器上的遞歸。遞歸用來确定伺服器是僅處理其儲存在緩存中的資料,還是伺服器會到網際網路與其他伺服器通信來找出最佳答案。

  第二種類型的DNS攻擊需要攻擊者掌控一個或多個授權DNS伺服器。授權DNS托管是Dyn公司向Twitter提供的服務類型。不過,Dyn沒有成為黑客集團叙利亞電子軍隊(SEA)的目标,是以其向Twitter提供的服務在周二的事件中沒有受到影響。

  如果攻擊者能夠攻擊授權DNS伺服器,這種攻擊的影響将是全球性的。雖然SEA最近的一次攻擊中沒有這樣做,但此前出現過。

  在2009年,Twitter遭受了伊朗網絡軍隊的攻擊。該組織修改了DNS記錄,并重定向流量到他們控制的伺服器。該組織之是以能夠修改DNS設定,是因為他們攻擊了一個Twitter員工的電子郵件賬戶,然後使用該賬戶來授權DNS更改。

  抵禦這些類型的攻擊的方法通常包括:高強度密碼,以及基于IP的ACL(可接受通路控制清單)。此外,還應該對員工進行徹底的教育訓練,來防止社會工程學。

  第三種類型的DNS攻擊也是很棘手的問題。這種攻擊是攻擊者攻擊域本身的注冊,然後使用這種通路來更改配置設定到它的DNS伺服器。

這也正是SEA攻擊的做法,在攻擊Twitter和紐約時報時,他們獲得了MelbourneIT的通路權,該注冊機構負責這兩個目标域名,然後,攻擊者把授權DNS伺服器改為他們自己的伺服器。企業最好将授權伺服器托管在企業内部,進而對其完全控制。

//————————---———————---—————------————————————--———————------—————————————------———————————————//

繼續閱讀