畫圖標準

OSI七層模型

7、應用層

作用:為使用者提供軟體/介面/介面 interface

協議:OICQ、HTTP、HTTPS、BT/P2P

6、表示層

作用:用於對使用者資料進行資料呈現。(資料格式、資料加密)

5、會話層

作用:用於實現會話管理(建立、維特、關閉、區分)

4、傳輸層

作用:用於實現資料的可靠戓不可靠傳輸

協議:TCP、UDP

TCP:傳輸過程中會確認傳輸的情況,在傳輸大檔案時可靠,但小檔案時確認次數太多佔用頻寬

3、網路層

作用:提供三層定址/IP地址和三層通訊(路由器)功能

協議:IP協議

2、鏈路層

作用:提供二層定址/MAC地址和二層通訊(交換機)功能。

協議:乙太網 Ethernet

區域網:mac地址、交煥機判斷、鏈路層

廣域網:ip地址、路由器判斷、網路層

1、物理層

作用:提供通訊介質和介面標準

舉例:RJ11、RJ45、802.11ac、802.11n

OSI實現過程(封裝和解封)









區分應用程序並實現可靠傳輸



可以被路由器轉發



讓主機檢查傳輸的資料是否有誤碼



讓目標主機做好接收幀的準備

封裝:簡單理解應用層傳送一個data資料;

到了傳輸層,從資料的基礎加一個頭部資訊port,構造一個segment段;

到了IP層,加一個IP地址形成一個package包;(面向路由器)

到了資料鏈路層,加上一個mac地址,構造一個frame幀;(面向交換機)

到了物理層,轉成二進位制資料進行01傳輸。

封裝:反向進行,則一層一層的校驗、分解(校驗、定址)。

總結

1、OSI封裝是一個為資料包加入定址資訊的過程(打包過程,類似快遞)

2、埠號(Port)用於標誌不同的應用程式,面向終端使用者

3、IP地址用於唯標誌通訊裝置,面向路由器

4、MAC地址用於唯標誌區域網裝置,面向交換機

TCP/IP協議棧

TCP/IP四層模型

4. 應用層

協議:HTTP、HTTPS、FTP、DNS、DHCP

3. 傳輸層

協議:TCP、UDP、SCTP

2. 網路層

協議:IP、ICMP、ARP

1. 資料鏈路層

協議:Ethernet

Ethernet(乙太網)協議

乙太網不等於區域網

乙太網:一種鏈路層協議

區域網:一種小型網路結構

區域網是用乙太網技術來組建

1、定義

Ethernet乙太網協議,用於實現鏈路層的資料傳輸和地址封裝(MAC)

DIX聯盟( Digital、Intel、 Xerox)開發

2、封裝

三個欄位:

Destination/目的欄位:標識目的通訊方的MAC地址

Source/源欄位:標識傳送端的MAC地址

Type/型別值:標誌上層協議(告訴解包時以什麼格式解包)

MAC地址:

  1. 所有裝置的MAC地址是全球唯一的

  2. MAC地址是16進製表示,長度為48bit,採用冒號分16進製表示 01010100 10101010

    10101111 11110000 2^48

  3. MAC地址前半部分被"OUI程式碼"廠商唯標誌符,用於唯一標誌一個企業/公司,例妙如思科、TP-LINK、華為;後半部分廠商自行分配

【補充】:乙太網協議僅僅是鏈路層/區域網通訊中的一種標準,還有其他鏈路層協議,令牌網、匯流排網、FDDI網

IP協議

定義

Internet

Protocol,網際網路協議,用於實現資料的不可靠面向無連線的通訊,實現三層資料封裝與IP定址(ip協議包含了ip地址)

原理



版本號 表示IP協議的版本
頭部長度/總長度 頭部長度(預設為20位元組),總長度;區分IP頭部和資料包,接收方根據長度欄位知道從哪裡解封裝
DSCP/TOS QoS服務質量技術用於實現流量標記
識別符號 用於標誌分片的程序
標誌符 MF更多位用於告知接收方是否還有分片,0表示沒有,1表示有;DF不要分片位告知途徑裝置不要進行分片
分片偏移 用於告知接收方每個分片距離IP頭部的位置,才能實現有序的重新組裝
生存時間 TTL,最大為255,標誌路徑長短,防止環路
協議號 標誌上層協議
頭部校驗和 驗證資料包的完整性
源地址 標誌傳送方IP地址
目的地址 標誌接收方IP地址

1、長度頭部/總長度

IP頭部標準20位元組,最大60位元組

用來區分資料包和IP頭部的大小,便於解包

2、DSCP/TOS:區分服務符/服務質量

3、TTL生存時間

IP資料包每經過一“跳”TTL減去一;當路由器收到一個TTL=0的資料包時,則宣告此資料包死亡並丟棄。TTL的本質是為了IP資料包的“環路”問題



4、協議號

小結:型別值、協議號、埠號都是用於標誌上層協議,方便接收方實現資料的解封裝。此功能稱為協議之間的“分用

5、頭部校驗和

通過校驗和(奇偶校驗)可以讓接收方驗證此資料包是否完整/篡改。

乙太網協議會在數包後面加FCS

5、源目IP地址

7、ip分片原理-標誌ID、標識Flags、偏移量FO

MTU(最大傳輸單元)乙太網1500bytes,大於1500將會被切分傳輸,網絡卡物理結構限制了大小

ID:當有多個數據傳輸時用ID來分辨每一個數據段屬於哪個資料

Flags:MF/DF等等的標誌位

FO:當一個數據分片時用來分辨資料段的順序

ARP協議

如果要給TCP/IP協議棧選擇個"最不安全的協議",那麼我會毫不猶豫把票投給ARP協議。我們經常聽到的這些術語,包括"網路掃描、內網滲透、中間人攔截"、"區域網流控"、"流量坎騙",基本都跟ARP脫不了干係。大量的安全工具,例如大名鼎鼎的cain、功能完備的Ettercap、操作傻瓜式的P2P終結者,底層都要基於ARP實現

①ARP( Address Resolution

Protocol)即地址解析協議,用於實現從IP地址到MAC地址的對映,即詢向目標IP對應的MAC地址

②在網路通訊中,主機和主機通訊的資料包需要依據OSI模型從上到下進行資料封裝,當資料封裝完整後,再向外發出。所以在區域網的通訊中,不僅需要源目IP地址的封裝,也需要源目MAC的封裝。

③一般情況下,上層應用程式更多關心IP地址而不關心MAC地址,所以需要通過ARP協議來獲知目的主機的MAC地址,完成資料封裝。

1、原理

同個局域網裡面,當PC1需要跟PC2進行通訊時,此時PC1是如何處理的?

根據OSI資料封裝順序,傳送方會自頂向下(從應用層到物理層)封裝資料,然後傳送出去這裡以PC1

ping PC2的過程舉例==>

PC1封裝資料並且對外發送資料時,上圖中出現了" failed",即資料封裝失敗了,為什麼?

我們給PC1指令- ping

ip2",這就告知了目的IP,此時PC1便有了通訊需要的源目IP地址,但是PC1仍然沒有通訊需要的目的MAC地址。這就好比我們要寄個快遞,如果在快遞單上僅僅寫了收件人的姓名(IP),卻沒有寫收件人的地址(MAC),那麼這個快遞就沒法寄出,因為資訊不完整

那麼,現在PC1已經有了PC2的地址資訊,如問獲取到PC2的MAC地址呢?此時,ARP協議就派上用場了。我們接著上面這張圖,繼續==>

通過第三和第四步驟,我們看到PC1和PC2進行了ー一次ARP請求和回覆過程,通過這個互動工程,PC1具備了PC2的MAC地址資訊。接下來PC1會怎麼做呢?在真正進行通訊之前,PC1還會將PC2的MAC資訊放入本地的[ARP快取表],表裡面放置了IP和MAC地址的對映資訊,例如IP2<->MAC2接下來,PC1再次進行資料封裝,正式進入PING通訊,如下==、

小結:經過上面6個步驟的處理,PC1終於把資料包傳送出去了,之後便可以進行正常的通訊了。看到了吧,ARP的功能和實現過程是如此的簡單:它在傳送方需要目標MAC地址的時及時出手,通過一問答"的方式獲取到待IP對應的MAC地址,然後儲存到本地[ARP快取表],後續需要的話,就到這裡查詢。既然是"快取表,意味著它有時效性,並且如果電腦或者通訊裝置重啟的話,這張表就會清空;也就是說,如果下次需要通訊,又需要進行ARP請求。在我們的

windows/macos系統下,可以通過命令列arp -a檢視具體資訊=>

ARP原理之廣播請求單播迴應

上面的圖解過程看上去簡單又純粹,好像我們就已經把這個協議的精髓全部get到,但其實,我們只是剛揭開了它的面紗,接下來我們才真正進入正題。例如,上面的圖解過程中,整個區域網(LAN)只有PC1和PC2兩個主機,所以這個問答過程非常的順暢。實際網路中,這個LAN可能有幾十上百的主機,那麼請問,PC1如問將這個【ARP請求包】順利的交給PC2,而PC2又如何順利的把【ARP迴應包】返回給PC1?我們看下面的圖:



為了營造出幾十上百"的效果,這裡多派加了2個主機進來,並目増加了有線和無線的環境。那麼,在多主機環境下,PC1現在發出的ARP請求包,怎麼交到PC2手裡?

這時,ARP協議就需要採用乙太網的廣播功能:將請求包以廣播的形式傳送,交換機或WFi裝置(無線路由器)收到廣播包時,會將此資料發給同一區域網的其他所有主機。

註明:什麼是廣播?對於初學者而言,我們只需要知道,大部分的廣播包,它們有一個共同

特徵:二層封裝時目的MAC是全f(ffff.ffff.ffff)或三層封裝時目的IP是全1(255.255.255.255)。可以這樣更方便的記住:目的地址最大的,就是廣播

接下來我們來看下這個ARP廣播請求包接下來是如何工作的?

根據上圖我們看到,PC1傳送的請求廣播包同時被其他主機收到,然後PC3和PC4收到之後(發現不是問自己)則丟棄。而PC2收到之後,根據請求包裡面的資訊(有自己的IP地址),判斷是給自己的,所以不會做丟棄動作,而是返回ARP迴應包(單播迴應)

ARP請求是通過廣播方式來實現的,那麼,PC2返回ARP迴應包,是否也需要通過廣播來實現呢?答案是否定的。大部分網路協議在設計的時候,都需要保持極度剋制,不需要的互動就砍掉,能合併的資訊就合持,能不用廣播就用單播,以此讓頻寬變得更多讓網路變得更快。那麼,ARP迴應包是如何處理的?這裡需要特別關注ARP請求包的內容,在上面的圖解裡面,ARP請求包的完整資訊是:我的IP地址是IP1,MAC地址是MAC1,請問誰是PC2,你的IP2對應的MAC地址是多少?簡單來說,ARP請求首先有"自我介紹"然後オ是詢向。這樣的話,PC2在收到請求之後,就可以將PC1的IP和MAC對映資訊儲存在本地的[ARP快取表],既然如道PC1在哪裡,就可以返回ARP單播迴應包。

這張圖我們需要得到兩個資訊:

①被詢曏者PC2先生成了ARP對映資訊,然後才是詢問者PC1;

②PC3和PC4等其他主機,無法收到這個ARP迴應包,因為是單播形式。

小結:ARP協議通過"一問一答"實現互動,但是"問"和"答"都有講究,"問"是通過廣播形式實現,"答"是通過單播形式。

ARP資料包解讀

為了讓大家更好的理解ARP協議以及廣播和單播的概念,我們來看一下用

Wireshark抓取到的真實網路中的ARP過程,通過資料包的方式來呈現,部分MAC資訊隱去。(建議初學者用GNS3配合

Wireshark來抓取協議包進行分析,相比真實網路更加乾淨,方便分析)

主機1<-->主機2

主機1:IP1 10.1.20.64 MAC1:00:08:ca:xx:xx:xx

主機2:IP2 10.1.20.109 MAC2:44:6d:57:xx:xx:xx

請求包

迴應包

ARP協議欄位解讀

Hardware type:硬體型別,標識鏈路層協議

Protocol type:協議型別,標識網路層協議

Hardware size:硬體地址大小,標識MAC地址長度,這裡是6個位元組(48bti)

Protocol size:協議地址大小,標識IP地址長度,這裡是4個位元組(32bit)

Opcode:操作程式碼,標識ARP資料包型別,1表示請求,2表示迴應

Sender MAC address:傳送者MAC

Sender IP address:傳送者IP

Target MAC address:目標MAC嗎,此處全0表示在請求

Target IP address:目標lP

ARP攻擊

ARP攻擊概述

在上篇文章裡,我給大家普及了ARP協議的基本原理,包括ARP請求應答、資料包結構以及分層標準,今天我們繼續討論大家最感興題的話題:ARP攻擊原理是什麼?通過ARP攻擊可以做什麼,賬號是否可以取?有些常見的ARP滲透(攻擊)工具可以用來練手?ARP掃描和攻擊有什麼區別,底層資料包特徵是怎樣的?

接下來,我們通過圖解的方式來深入瞭解ARP攻擊是如問實現的

ARP攻擊原理

但凡區域網存在ARP攻擊,都說明網路存在“中間人”,我們可以用下圖來解釋

在這個局域網裡面,PC1、PC2、PC3三臺主機共同連線到交換機SW1上面,對應3個介面port1/2/3。假設PC3這臺主機安裝了ARP攻擊軟體或遭受ARP病毒,成為這個網路的攻擊者(

hacker),接下來,PC3是如何攻擊的?先不急,先來回顧下PC1和PC2是如何通訊

  1. PC1需要跟PC2通訊,通過ARP請求包詢問PC2的MAC地址,由於採用廣播形式,所以交換機將ARP請求包從介面P1廣播到P2和PC3。(注:変換機收到廣播/組播/末知幀都會向其他介面泛洪)

  2. PC2根據詢可資訊,返回ARP單播迴應包;此時PC3作為攻擊者,沒有返回ARP包,但是處於'監聽'狀態,為後續攻擊做準備

  3. PC1和PC2根據ARP問答,將各自的ARP對映資訊(IP-MAC)儲存在本地ARP快取表,交換機根據其學習機制,記錄MAC地址對應的介面資訊,儲存在CAM快取表(也稱為MAC地址表),交換機收到資料包時,會解封裝資料包,根據目標MAC欄位進行轉發

關於上面的圖解,我們要記住這些關鍵知識(敲黑板!)

  • 主機通訊需要查詢ARP表,而交換機通訊需要查詢CAM表(路由則查詢 Route表)

注:ARP表:ip<-> mac CAM表:mac<->port( Route表:route<->port)

  • 交換機基於源MAC地址學習,基於目的MAC地址轉發

  • 同一局域內,攻擊者可以根據主機的ARP廣播請求監聽其IP和MAC資訊

注:這裡是”被動監聽“,跟後面要談到的”主動掃描“原理上有分別

接下來是重點,我們來看看PC3( Hacker)是如何發起ARP攻擊的=>

正常情況下,若收到的ARP請求不是給自己的,則直接丟棄;而這裡PC3(

Hacker)在監聽之後,發起了ARP迴應包:我就是PC2(IP2-MAC3)。從拓撲可以出現,PC3明明是IP3對應MAC3,很顯然這就是一個ARP欺騙行為。於此同時,PC2正常的ARP迴應包也交到了PC1手中,我們來看PC1接下來如何處理的

PC1收到兩個ARP迴應包,內容分別如下

  • 我是PC2,我的IP地址是IP2,我的MAC地址是MAC2

  • 我是PC2,我的IP地址是IP2,我的MAC地址是MAC3

PC1臉懵:咋回事?還有這操作?不管了,我選最新的!(後到優先)

這裡給大家便普及下網路協議裡各種表在處理快取資訊的方式

要麼”先到先得”要麼後到優先,上面提到的ARP和CAM表,就是遵循後到優先原則,而後面章節我們會講到的DHCP表,則循'先到先得”原則

那麼問題來了,上面兩個ARP迴應包到底郡個先到郡個後到呢?

作為初學者,可能還在糾結前後這種 naive的問題;而作為

hacker,只要持續不停發出ARP欺騙包,就一定能夠覆蓋掉正常的ARP迴應包。穩健的ARP嗅探/滲透工具,能在短時間內高併發做網路掃描(例如1秒鐘成幹上百的資料包),能夠持對外發送欺騙包

無論如何,當PC1和PC2這種”小白使用者遇到PC3( hacker)時,最終的結果一定是這樣的



小白vs黑客,很明顯的較量,PC1最終記錄的是虛假的ARP對映:IP2<->MAC3,得到錯誤資訊的PC1,接下來會發生什麼情兄呢?(我們以PC1

ping PC2為例)

根據資料封裝規則,當PC1要跟PC2進行通訊時,無論是發生PING包還是傳送其他資料首先要查詢ARP表,然後在網路層打上源目IP,在鏈路層打了上源目MAC,然後將數包傳送給交換機。交換機收到之後對資料進行解封裝,井目査看CAM表(基於目的MAC轉發),

由於目標MAC3對應Port3,所以交換機自然而然將其轉發給PC3就這樣,PC1本來要發給PC2的資料包,落到了PC3(

Hacker)手裡,這就完成了一次完整的ARP攻擊。

反過來,如果PC2將資料包傳送PC1,PC3仍然可以以同樣的ARP欺騙現攻擊,這就有了下面這張圖(PC3既欺編了PC1,也欺編了PC2)



此時,PC1和PC2的通訊資料流PC3攔截,形成了典型的中間人攻擊。那麼,一旦被攻擊井攔截,攻擊者能做什麼,普通使用者又會受什麼提失?這裡給大家舉幾個常見的例子=

  • 攻擊者既然操控了資料流,那麼直接斷開通訊是輕而易舉的,即"斷網攻擊”,例如,PC1

給PC2的資料在PC3這裡可以直接丟棄,而如果這裡的PC2是臺出口路由器(無線路由器),那就意味著

PC1直接無法連上網際網路

  • "斷網攻擊"顯然容易被發現,而目比較殘忍”,所以就有了更加常見的應用-“限速”。例

如,在宿含上網突然很慢,在網咖上網突然不開網頁,如果這個網路沒有安全防禦,那麼很有可能有”內

鬼。

  • 其實無論是斷網攻擊還是限速”,整體還是比較”善良”,因為這裡流量裡面的核心資料還沒有被”提取”出來。如果攻擊者是一名真正的黑客,他的目的定不會這麼無聊,因為內網流量對於黑客是沒有太大價值的,而只有"使用者隱私”,例如常見網貼的登入賬號碼,這些才是最有價值的

向:受ARP取擊之後,些賬號可能取?

答:任何基於明文傳輸的應用,都可以被竊取,例如,如果個網站不是HTPS協議,而是基於HTP明文傳輸,那麼當你登入這個網站時,你的密碼就會被取。除了http(web應用),常見的還有

telnet.、ftp、pop3/ smtp/imap(郵箱)等應用,都很容易洩密碼

ARP滲透工具底層原理分析

這裡我通過wireshark給大家還原真實網路中常見的ARP歸描和欺騙攻擊

在這張圖裡面,

Hacker(就是我)接入了個WFi網路,這個10.1.20.0/24便是所在的網段。剛進來一個陌生網路,

Hacker只知道自己的IP資訊,例妙如P地址是10.1.20.253,閘道器地址是10.1.20.254,而這個區域網的其他裝置是什麼?有多少臺?地址分佈是多少?Hacker都不知道,接下來怎麼呢?是不是要直接發動ARP攻擊了?

不用這麼著急,咋們至少要先了解下這個網路,進行基本的掃描和踩點。這個時候通過ARP工具對這個WiFi網路進行ARP掃描,具體的資料包圖如下:



其實,這就是典型的盲掃或者'暴力掃描":反正我不道網路到底有多少主機,那我就嘗試一下把整個網段全部問遍得了

那麼,這個實際網路裡面,到底誰'舉手了呢?我們來看 Wireshark抓包情況



掃描後得到以下圖片

接下來,如何進行ARP欺攻擊呢?這裡將最重點的資料包截取出來>

根據之前的資訊,我們知道00:08:ca:86:f8:0f其實就是hacker的mac地址,並且對應的真正的IP地址應該是10.1.20.253。而這裡很明顯是

hacker在欺騙區域網其他主機,它對外聲稱:自己就是"所有人”。尤其是上面標紅的主機,我們已經知道是小米思科蘋果等裝置,但是

hacker?都宣告是自己!這樣的意義在於覆蓋掉其他主機的ARP快取表資訊,井生成錯誤的ARP對映,最終將通訊流量交給

hacker。當然,還有另外一種



依此類推,Hackers會告訴區域網所有主機:自己就是閘道器,井且後續可資料都丟給我,我來轉發到網際網路

ARP攻擊總結

  1. ARP快取表基於後到優先原則,IP與MAC的對映資訊能被覆蓋

  2. ARP攻擊基於偽造的ARP迴應包,黑客通過構造'錯位”的IP和MAC對映,覆蓋主機的ARP表(也被稱為ARP毒化),最終擷取使用者的資料流

  3. 一遭受ARP攻擊,賬號密碼都可能取(如果通訊協議不是加密的)

  4. 通過 Wireshark資料包分析,我們掌握了真實網路中ARP底層攻擊原理及資料包組成。

ARP防禦

在講解ARP防禦之前,我們先回顧下ARP攻擊最經典的一幕=>



當PC1詢問PC2的MAC地址時,攻擊者PC3返回ARP欺迴應包:我的IP地址是IP2,MAC地址是MAC3。-且PC1記錄了錯誤的ARP對映,則發給與PC2的資料,都會落到PC3手裡

也就是說,ARP攻擊的罪首便是這種”欺編包”,若針對欺騙包的處理是不相信或不接收的話,則不會出現問題。處理這種欺行為我們去提前在黑客端做手腳,因為"敵在暗處我在明處。這樣的話,我們就剩下兩個解決方法

  1. 保證電腦不接收欺包

  2. 保證電腦收到包之後不相信

目前網路安全行業現有的ARP防禦方案,基本都是上面兩個方法的具體實現。我們來看看這張防禦圖:

  1. 當黑客發起ARP欺騙包時,會途徑局域網裡面的交換機或無線路由器等網路裝置;

  2. 如果網路裝置能夠識別別種欺騙包,井且提前丟棄掉,則電腦手機端就不會被欺騙;

  3. 如果網路裝置沒有攔截這種欺編包,則電腦/手機端需要做安全防禦,然後再丟棄。

簡單來說,ARP防禦可以在網裝置上實現,也可以在使用者端實現,更可以在網路裝置和使用者端同時實現。接下來,我們先來了解下網路裝置(例如這裡的交換機)的防禦技術

上面這張圖,展現的是交처換機的ARP防禦能力,當PC2傳送ARP迴應包時,交換機將其轉發給PC1,而當PC3傳送ARP迴應包(欺騙)時,交換機直接丟棄

但是,人家PC3上臉上又沒有寫著"

hacker,憑什麼交機要丟棄它的ARP迴應包?憑什麼判斷它的包就是”欺騙的呢?接下來,我就要給大家個紹下局城網安全裡比較常用的防禦技術,這種防禦技術被稱為DAI(

Dynamic ARP Inspection)動態ARP檢測,原理可以用兩句話簡單概括:

  1. 交換機記錄每個介面對應的IP地址和MAC,即port->mac<->ip,生成DAI檢測表

  2. 交換機檢測每個介面傳送過來的ARP迴應包,根據DAI表判斷是否違規,若違視則丟棄此

資料包井對介面進行懲罰

我們知道,PC3是在交換機的Port3、MAC地址是MAC3,IP地址是IP3,所以本地DAI表項內容是<port3-mac3-ip3>。當交換機從介面Port3收到ARP迴應包,內容卻是P2和MAC3對映,即<port3-mac3-ip2>,經判斷,這個包就是虛假的騙包,交換機馬上丟棄這個包,並且可以時介面做懲罰(不同裝置的懲罰方式有所不同,可以直接將介面軟關閉”,直接將攻擊者斷網;也可以'靜默處理",僅丟棄欺騙包,其他通訊正常)

上面這個動態ARP監測技術,可以說是目前防禦ARP攻擊最有效的方法之一。但是,作為初者,大家可能還會有疑問:

  1. 一般的交換機或網路裝置能部署動態ARP監技術嗎?

  2. 連線使用者的交換機,怎麼能識別IP地址資訊呢?

  3. 上面這張DAI表是如何生成的?是不是像CAM表一樣能自動識別?

大部能支援這種動態ARP監測技術的交換機成者無線路由器,都基本是企級的產品。所以,簡單的交換機不具備動態ARP監技術,即便市面上有帶安全防禦的網路產品,企業、學校、醫院等大量網路,仍然在早期採購的時侯,用的是比較基礎版本的交換機

另外,交換機能識別IP地址資訊嗎?

從現在的網路技術來看,分層界限越來越模糊,融合式的網路裝置才是主流,現在的接入交換機基本能被

Telnet/

SSH/Web管理,更專業的交換機同時支援動態ARP監測(dai)、IP源防護(ipsg)、DHCP偵聽(

dhcp

snooping)、埠安全、AAA、802.1x等區域網安全技術,已經超越了原有二層交換機的定義所以,交換機能讀三層甚至七層的資料包已經不是什麼新鮮事了,不要被"交換機就是一層裝置"給束縛了,這只是紙面上的定義

最後一個向題,DA檢測表是如問生成的?

在上面圖解中,我們看到交換機檢視的表已經不是原來的CAM表了,內容也不太一樣,CAM表的內容主要是MAC和Port的對映,而DAI檢測表則表則是Port、MAC、IP三個資訊對映。目前這張表支援兩種方式來生成:第一種方式就是手工靜態繫結:即使用者接入網路之後,管理員根據此使用者電腦的MAC和P地址,然後在介面上綁死,缺點就是使用者數太多的話,手工繫結管不過來;第二種方式就是目前最主流的做法,即在交換機上開啟DHCP偵聽技術,當用戶第一次通過DHCP獲取到地址的時候,交換機就把使用者電腦的IP、MAC、Port資訊記錄在DHCP偵聽表,後面ARP檢則直接呼叫這張DHCP偵聽表即可。

ICMP協議

定義

網際網路資訊控制協議, Internet Control Message

Protocol用於實現鏈路連通性測試和鏈路蹤,可以實現鏈路差錯報告。ICMP雲行存在傳輸層協議、服條於IP協議

ping的原理

Ping的原理(探測目的主機是否有問題,探測本地到目的的延遲等)

Echo request 回顯請求

Echo reply 回顯應答



型別值|程式碼值:8 | 0請求0 | 0回覆=>區分資料包型別

校驗和:實現資料包完整性校驗

識別符號:用於標誌不同的Ping程序

序列號:表示在此程序下的第幾個包

DDos攻擊

DOS Deny of service拒絕服務式攻擊

DDOS Distributed deny of service分散式拒絕服務式攻擊

使用ICMP協議原理,向目標伺服器傳送大量請求,迫使伺服器傳送大量回復,消耗伺服器頻寬

鏈路追蹤

在命令列輸入命令:traceroute www.baidu.com



顯示資料傳輸途徑的所有使用IP協議裝置的地址

Tracert/Traceroute的原理(探測本地到目的路徑,“踩點",利用TTL超時來實現)

(1) Windows鏈路追蹤的實現原理

不斷髮送ICMP請求,然而每一個請求的TTL值不一樣

第一個包的TTL值為:1,當它遇到第一個路由裝置時TTL就會被-1=0,然後第一個路由裝置就會回覆主機宣告包的死亡,同時回覆中攜帶著自己的IP地址,以此獲得裝置的IP

第二個的ICMP資料包TTL為:2,當他被第一個路由轉發後就會-1=1,然後傳給第二個路由,到第二個路由時TTL就會又-1=0,然後宣告包已死亡並且回覆自己的IP地址,以此類推,就可以獲取訪問www.baidu.com網站資料途徑的所有使用IP協議裝置的IP地址

追蹤過程中帶*的資料有兩種情況

  1. 路由器離得太遠,迴應時間太長導致超時

  2. 裝置是類似防火牆或帶有反追蹤功能的裝置

(2)Linux/Unix鏈路追蹤原理

和Windows區別在於Windows全都是ICMP包,而Linux/Unix是UDP包+ICMP包





當UDP高階口包傳送到百度時,百度沒有開啟對應的埠服務,因此會回覆一個“埠不可達”包

同時,這些包的結構也不一樣,在ICMP層裡面還包含著原來的IP層,目的是告訴使用者錯誤的包的內容

UDP協議

大檔案一般用TCP協議傳輸,而一般實時傳輸或者是小檔案用UDP協議傳輸

定義

使用者資料報協議, user datagram

protocol,用於實現面向無連線的不可靠協議,傳輸層協議

特徵

資料包結構非常簡潔

處理速度快

實時互動(社交軟體、視訊流、實時互動協議)

協議(基於UDP開發的應用、協議)

DHCP、DNS、QICQ、TFTP

源埠

目標埠

資料包長度

校驗和

拓展:

1、(埠範圍1-65535)通訊過程中,源埠般屬於隨機高階口,目的埠屬於固定知名埠

2、1-1023為知名埠號範圍,已經被佔用的。

3、DHCP的源目埠都固定,客戶嫦埠為68、服務端為67。

4、DNS域名解析協議基於UDP埠號53;通過DNS請求和回覆過程,獲取域名對應IP

DHCP協議

定義

動態主機配置協議, Dynamic Host Configuration

Protocol,用於實現對終裝置的動態IP資訊分配(IP地址、閘道器地址、DNS伺服器、WINS服務。。)

原理

ipconfig/release //釋放IP地址(抓到 DHCP Releasef包)

ipconfig/renew //重新獲取IP地址(抓到DHCP完整互動包)

Linux/Unix

Windows

0.0.0.0:沒設定地址

255.255.255.255(ff:ff:ff:ff):廣播



在Linux環境下,無論是發現/提供/請求/確認包,目標地址都為255.255.255.255,即都為廣播,原因是當配置有多個DHCP伺服器時,當其中一個DHCP伺服器的地址池被分配出去時其他的伺服器能收到廣播,不會使地址再次使用;

在Windows/macos則會以單播來提供/確認,目的是減少廣播對其他使用者的影響,同時節約頻寬

小結

資料包的功能:

發現包用於廣播發現區域網的DHCP伺服器;提供包用於預回覆客戶端,告知其即將給的P地址;請求包正式對感興趣的伺服器/IP地址發起請求;確認包對客戶端進行最終的正式確認(這個時候伺服器會將此分配出去的IP地址移開本地地址池)。

DHCP初始請求過程中,客戶端本地是沒有IP地址的,那麼如向對外發送發現和請求包呢?:

將自己的地址設定為0.0.0.0

為什麼發現/請求包需要使用廣播的方式,有一些情況下,提供/確認包也需要使用廣播的方式?:

當局域網配置多個DHCP伺服器時,當地址池裡的一個地址被分配出去時,若其他DHCP伺服器不知情,則可

能導致一個IP地址被多次公用

DHCP的互動過程都是廣播包形式來實現的,目的IP採用255.255.255.255

DHCP互動過程中,服務端為67,客戶端為68

為什麼需要4個包來獲取地址,而不是2個包?:

2個包無法解決多伺服器環境下,地址浪費/衝突的問題。

同時,DHCP是不可靠協議,當提供的步驟提供地址時丟失或者被攔截,則會導致使用者得不到地址但是DHCP伺服器將地址清除,增加多兩個確認包可以增加協議的穩定性

為什麼有的時候會抓到多個提供包,若收到多個提供包該如何選擇?:

有可能多個提供包是由多個DHCP伺服器提供的,DHCP協議採用先到先得原則,若收到多個IP地址則選擇第一個,但由於請求包只會發出一個,所以只有一個IP地址會從地址池消除

DHCP發現包:





DHCP提供包:



DHCP請求包:

DHCP回覆包:

TCP協議

定義

Transmission Control

Protocol,傳輸控制協議,是TCP/IP協議棧中演算法最多,功能最繁雜的協議

基於TCP的應用層協議

HTTP:80

HTTPS:443

FTP:20/21

SSH: 22

TELNET: 23

SMTP/POP: 25/110

功能

面向連線(三次握手、四次揮手)

可靠傳輸(經典重傳、超時重傳、快速重傳/選擇性重傳)

流量控制(滑動視窗、擁塞管理)

多路複用(套接字)

原理

面向連線(三次握手、四次揮手;SYN/ACK/FIN位)

三次握手:





四次揮手:



可靠傳輸(序列號SEQ+確認號ACK+重傳演算法)

經典重傳

超時重傳



小結:

1、正常不丟包情況下,ACK(n+1)=SEQ(n)+Len(n),即下一次的確認號等於上一次的序列號加資料包長度值;若丟包情況下,則ACK(n+1)

< SEQ( n ) + Len(n)

2、下一次的序列號等於上一次的確認號 Seq(n+1) = ACK(n)

流量控制(視窗大小)



當視窗大小為0時意思為暫時沒有空間來儲存?告訴伺服器不要繼續傳輸

多路複用(埠號Port、套接字socket、會話session、五元組)



註明:TCP通過埠號(port)或套接字(ip+port)實現多路複用

源目IP+源目Port+協議號=唯一的五元組

Telnet協議

定義

遠端登入協議,用於對裝置進行遠端管理,基於明文,目前不建議使用,建議採用SSH協議

採用TCP23號埠