dns異常處理方法 dns域名查詢的兩種方式
一、IP協議1.1 背景網絡層一般有兩種服務:
- 一種是面向連接的虛電路服務,能夠保證可靠通信,建立虛電路連接,然后通過這個連接發送分組,完了后釋放虛電路 。
- 另一種是無連接的數據包服務,走什么路經都隨便,但是為了到達目的地必須攜帶目的主機的地址,雖然如此,發送的分組還是可能誤碼、丟失、重復或者亂序 。
這種服務的好處是節省成本,那么復雜的網絡處理功能都交給了更上一層的運輸層,他們的位置在各個主機,是處于整個互聯網的邊緣,那么中間的因特網核心就只用完成簡單的分組交換功能 。IP協議之上,要保證傳輸可靠,就有了TCP協議 。
1.2 IP協議IP協議(Internet Protocol)直譯網際協議 。對上是傳輸層,對下是數據鏈路層 。IP協議就是給因特網上的每一個主機/路由器的接口分配全世界范圍內唯一的標識符,就是地址 。
這里需要區別MAC地址和IP地地址 。關于MAC地址,也就是媒體介入控制地址,他也是唯一的,但是他是針對于設備-設備,而異構網絡很復雜,IP協議是解決網絡和網絡之間的通信,加上小的網絡內部劃分可能就沒必要更多的協議來通信,就更加方便 。
目前IP協議的地址有IPv4和IPv6兩個版本,在2011年,IPv4地址已經分配完畢了 。IPv4的地址編址方法經歷了三個階段,分類編址、劃分子網、無分類編址 。
1.2.1 分類編址分了ABCDE,只有ABC給網絡中的各設備接口用,D和E是保留不往外分配的 。基本是都是前幾位網絡號、后面分配,然后就有很多的不同IP地址的組合可以用 。
- A:8位網絡號+24主機號,網絡號首位固定為0
- B:16位網絡號+16位主機號,網絡號前兩位固定10
- C:24位網絡號+8位主機號,網絡號前兩位篤定110
1.2.2 劃分子網引入子網掩碼,可以表明分類的IP地址有哪幾個作為了子網號,這樣本來后面全都是IP的號,就可以繼續利用子網掩碼再進行細分 。子網掩碼用連續的1來對應網絡號和子網號,0對應主機號,然后子網掩碼和IP地址相與操作就可以得到這個IPv4的地址所在的子網的網絡地址 。
1.2.3 無分類編址C類空間太小,沒有得到充分利用,后來又提出了無分類編址(當然也提出了IPv6)來解決問題 。無分類編址采用:
網絡地址 + ” / ” + 網絡前綴數量的格式,比如”128.14.35.7 / 20“【dns異常處理方法 dns域名查詢的兩種方式】就代表,這個IP地址,前面20位都是網絡號,剩下12位是主機號,這樣的話就能把整個IP地址分的更多,而不是分各種類別,各個塊里限制的比較死 。
二、IP數據報首部格式2.1 IP數據報首部字段

文章插圖
和其他協議的報文首部格式一樣,IP協議的功能也在這里體現 。
- 版本:表示Ip協議的版本,通信雙方必須一致;
- 首部長度:表示這個數據報首部的長度,顯然范圍就是5-15(以8字節為單位,化成比特*8)
- 區分服務:一半不用;
- 總長度:IP數據報整體長度(最大2^16-1);
- 標識、標志、片偏移:這三個就是用來將IP數據報分片用的,因為向下層的時候可能太長,下層的傳輸幀受到MTU最大傳輸單元限制,就是會把IP數據報分片,那么就會查看這三個字段,表示分片的情況;標識:同一個IP數據報各分片的標識一樣;標志:標志允不允許分片、后面還有沒有分片;片偏移:分片數據報的數據載荷部分偏移了在原數據報位置有多少單位(8字節為單位,必須整數)
- 生存時間:TTL,以前表示多少秒、現在表示多少”跳“;
- 協議:常用值對應一個數字,比如ICMP對應1;
- 首部檢驗和:檢驗差錯的;
- 源IP地址;
- 目的IP地址;
- 可選字段:很少使用;
- 填充:因為要是8的整數倍,不夠就填 。
這個協議是為了更有效地轉發IP數據報,提高交付成功的機會 。主機或者路由器使用ICMP協議發送差錯報文和詢問報文,ICMP報文被封裝在IP數據報里發送 。
差錯報文分為五種:1.終點不可達;2.源點抑制;3.時間超過;4.參數問題;5.改變路由 。(都是目的主機或路由器反饋給源主機或路由器的)
詢問報文有兩種:1.回送請求和回答;2.時間戳請求和回答 。(都是源主機或者路由器向目的主機或路由器的)
2.3 ICMP協議應用分組網間探測(Packet InterNet Groper)也就是,常說的PING命令 。這個命令沒有經過運輸層的TCP或者UDP,直接使用了網際層的ICMP,來發送請求和回答報文 。用來測試主機或者路由器的連通性 。
跟蹤路由TraceRoute命令,比如windows的tracert命令 。這個命令也是應用層直接使用了網際層的ICMP協議(Unix系統并是使用了UDP協議),發送請求和回答報文以及差錯報告報文,用來測試IP數據報從源主機到目的主機要經過哪些路由器 。
2.4 其他關于IP數據報的轉發,主要是設計到路由器的一些路由選擇協議、ARP(Address Resolution Protocol)地址解析協議,根據IP獲取MAC地址的過程 。其中直接交付、間接交付的區別就是有沒有經過路由器轉發,路由器可以隔離沖突域、廣播域等等 。
三、NAT網絡地址轉換NAT英文全稱是“Network Address Translation”,中文意思是“網絡地址轉換”,是一種把內部私有網絡地址(IP地址)翻譯成合法網絡IP地址的技術 。NAT 可以讓那些使用私有地址的內部網絡連接到Internet或其它IP網絡上 。NAT路由器在將內部網絡的數據包發送到公用網絡時,在IP包的報頭把私有地址轉換成合法的IP地址 。
ipv4本來都要用光了,但是有了NAT,讓ipv4又挺了20年 。
3.1 原理RFC1918規定了三個保留地址段落:10.0.0.0-10.255.255.255;172.16.0.0-172.31.255.255;192.168.0.0-192.168.255.255 。這三個范圍分別處于A,B,C類的地址段,不向特定的用戶分配 。
這些地址可以在任何組織或企業內部使用,和其他Internet地址的區別就是,僅能在內部使用,不能作為全球路由地址 。對于一個封閉的組織,如果其網絡不連接到Internet,就可以使用這些地址,而不用申請 。
對于有Internet訪問需求、內部又使用私有地址的網絡,就要在組織的出口位置部署NAT網關,在報文離開私網進入Internet時,將源IP替換為公網地址,通常是出口設備的接口地址 。依據這種模型,NAT網關夾在中間做一個轉換,數量龐大的內網主機就不再需要公有IP地址了 。
一般使用私網ip作為局域網內部的主機標識,使用公網ip作為互聯網上通信的標識,在整個NAT的轉換中,最關鍵的流程有以下幾點:
- 網絡被分為私網和公網兩個部分,NAT網關設置在私網到公網的路由出口位置,雙向流量必須都要經過NAT網關
- 網絡訪問只能先由私網側發起,公網無法主動訪問私網主機;
- NAT網關在兩個訪問方向上完成兩次地址的轉換或翻譯,出方向做源信息替換,入方向做目的信息替換;
- NAT網關的存在對通信雙方是保持透明的;
- NAT網關為了實現雙向翻譯的功能,需要維護一張關聯表,把會話的信息保存下來 。
顯然,這種方式對節約公網IP沒有太大意義,主要是為了實現一些特殊的組網需求 。比如用戶希望隱藏內部主機的真實IP,或者實現兩個IP地址重疊網絡的通信 。
3.3 動態NAT它能夠將未注冊的IP地址映射到注冊IP地址池中的一個地址 。
不像使用靜態NAT那樣,你無需靜態地配置路由器,使其將每個內部地址映射到一個外部地址,但必須有足夠的公有因特網IP地址,讓連接到因特網的主機都能夠同時發送和接收分組
3.4 NAT重載這是最常用的NAT類型 。NAT重載也是動態NAT,它利用源端口將多個私網ip地址映射到一個公網ip地址,它也被稱為網絡地址端口轉換NAPT(Network Address Port Translation)(Port-Level NAT)(多對一) 。
通過使用PAT(NAT重載),只需使用一個公網ip地址,就可將數千名用戶連接到因特網 。其核心之處就在于利用端口號實現公網和私網的轉換 。面對私網內部數量龐大的主機,如果NAT只進行IP地址的簡單替換,就會產生一個問題:當有多個內部主機去訪問同一個服務器時,從返回的信息不足以區分響應應該轉發到哪個內部主機 。此時,需要NAT設備根據傳輸層信息或其他上層協議去區分不同的會話,并且可能要對上層協議的標識進行轉換,比如TCP或UDP端口號 。
這樣NAT網關就可以將不同的內部連接訪問映射到同一公網IP的不同傳輸層端口,通過這種方式實現公網IP的復用和解復用 。
這種方式也被稱為端口轉換PAT、NAPT或IP偽裝,但更多時候直接被稱為NAT,因為它是最典型的一種應用模式 。
也就是說,我們利用端口號的唯一性實現了公網ip轉換為私網ip的這一步 。PAT(NAT重載)能夠使用傳輸層端口號來標識主機,因此,從理論上說,最多可讓大約65000臺主機共用一個公有IP地址 。
3.5 NAT優缺點優點:
最大優點就是節省大量的IP資源
缺點:
NAT最大的弊端,破壞了IP端到端通信的能力,因此無法進行端到端的ip跟蹤 。
同時,NAT實現了對UDP或TCP報文頭中的的IP地址及端口轉換功能,但有些應用層的協議比如FTP載荷中帶有地址或者端口信息,這些內容不能被NAT進行有效的轉換,就可能導致問題 。
四、DNS4.1 介紹DNS(Domain Name System)域名系統
我們知道計算機之間的通信,其實都是基于IP地址的,可是我們訪問的時候往往使用的網址髕骨是ip地址,這是因為IP地址太難記了啊!
那么輸入網址如何訪問IP,其實就是DNS服務器在幫助我們做地址解析 。
因特網采用的是層次結構命名樹作為域名,各層分量用點隔開,總共組成一個域名 。格式如下:
xxx . 三級域名 . 二級域名 . 頂級域名各級的域名是由上一級管理機構管理,頂級域名則由一個機構:因特網名稱與數字地址分配機構ICANN管理 。
- 國家頂級域名例如 cn 中國,us 美國,通用頂級域名例如com公司企業、net網絡服務機構、org非營利性組織;
- 二級域名例如edu教育機構,行政區劃分域名;
- 再往下都是自由發揮,因特網沒有做規定 。
- 根域名服務器;
- 頂級域名服務器;
- 權限域名服務器;
- 本地域名服務器 。
比如:如果我現在要訪問 www.baidu.com,那么過程是這樣的:
- 瀏覽器從瀏覽器的DNS緩存中檢查是否有這個網址的映射關系,如果有,就返回IP,完成域名解析,沒有則轉向2;
- 操作系統會先檢查自己本地的hosts文件是否有這個網址的映射關系,如果有,就返回IP,完成域名解析,沒有則轉向3;
- 電腦就要向本地DNS服務器發起請求查詢www.baidu.com這個域名,如果緩存中有的話直接返回,沒有則轉向4;
- 本地DNS服務器,拿出一個根DNS服務器的地址,然后向其中一臺發起請求;
- 根DNS服務器拿到請求,查出一個IP,也就是com對應的服務器的IP,返回給本地DNS服務器;
- 本地DNS服務器根據返回的IP向其發起請求;
- com的服務器拿到請求,查出一個IP,也就是baidu.com對應的服務器的IP,返回給本地DNS服務器;
- 本地DNS服務器根據返回的IP向其發起請求;
- baidu.com的服務器拿到請求,查出www.baidu.com的IP地址,返回給本地DNS服務器;
- 本地DNS服務器給客戶端,并進行緩存,客戶端就可以直接訪問了 。
Windows的命令:ipconfig/displaydns -查看被緩存的域名解析ipconfig/flushdns -清空DNS緩存問題:根服務器在哪里?
按照百度百科的說法是原有的13臺加上為ipv6新建的25臺,在世界各地選址的 。
4.3 DNS 劫持顯然,域名和IP的對應過程是一個DNS解析過程,那么解析的服務器本人是可能被綁架的 。
攻擊者劫持了DNS服務器,通過某些手段取得某域名的解析記錄控制權,進而修改此域名的解析結果,導致用戶對該域名地址進行訪問的時候,由原來的IP地址轉入到修改后的IP地址 。結果就是讓正確的網址不能解析或者是被解析到另一個網址的IP,實現獲取用戶資料或者破壞原有網址正常服務的目的 。
4.4 DNS 污染又稱域名服務器緩存投毒,是指一些刻意制造或無意中制造出來的域名服務器數據包,把域名指往不正確的IP地址 。它和DNS劫持的不同之處,在于污染針對的是DNS緩存,是在查詢信息到達目標DNS服務器前,經過的節點上做手腳,也就是說,這個假的數據包并不是在網絡數據包經過的路由器上,而是在其旁路產生的,因為是UDP協議,最快返回的會被認為是答案,那么最后會先返回一個錯誤答案 。
需要說明的是,傳統來理解,這個查詢過程需要快速,并且可能要訪問很多個服務器去查詢,所以是采用UDP協議進行傳輸的,比TCP快 。但也不一定,比如報文長度和DNS污染各種各樣的攻擊出現,UDP的不可靠因素太大,所以加上了TLS版本(像https一樣),所以其實是基于TCP協議了 。
推薦閱讀
- ip地址異常修復方法 wifi一直在獲取ip地址是怎么回事
- 甲魚怎么炒
- 空調f0怎么處理
- 如何處理燙傷處 被開水燙了怎么辦
- intel處理器性能排名 e系列cpu和i系列cpu哪個好
- 木地板生螞蟻怎么處理
- 買了一箱檸檬怎么處理
- 牛肉稍微變質如何處理
- 刑事拘留審查后如何處理
- dns異常修復技巧 ipv4無網絡訪問權限怎么解決
