本次呢,要說的是arp協定,那麼什麼是arp協定呢?有什麼作用呢?
什麼是arpARP(Address Resolution Protocol)位址解析協定,位址解析協定由網際網路工程任務組(IETF)在1982年11月釋出的RFC 826中描述制定。
Arp的作用我們知道OSI把網絡工作分為七層,當網絡裝置有資料要發送給另一台網絡裝置時,必須要知道對方的網絡層位址(ip位址),ip位址由網絡層來提供,但是僅有ip位址是不夠的,ip資料封包必須封裝成幀才能通過資料鍊路層進行發送,資料幀必須要包含目的mac位址,是以發送端還必須擷取到目的mac位址,通過目的ip位址來擷取目的mac位址的過程是由ARP協定來實作的。
arp解析過程 1、每個主機都設有一個ARP高速緩存,裡面有所在區域網路上的各主機和路由器的ip位址到硬體位址的映射 2、當主機a向本區域網路的某個主機b發送ip資料包時,現在本機arp表中産看是否有主機b的ip位址對應關系,如果有查處其mac位址,寫入MAC幀,然後通過區域網路将MAC幀發往主機b 3、也有可能找不到主機b的mac位址,有可能主機b剛剛接入網絡,這種情況下,就要按照步驟找到主機b的mac位址①發送端廣播發送arp請求包,請求對應主機的mac位址
②本區域網路所有主機都會收到此ARP請求,隻有對應主機才會做出應答
③接收端學習arp緩存
④接收端回複arp響應(單點傳播)
⑤發送端學習arp緩存
4、每一條映射都設定生存時間(10-20分鐘),超過時間删除此條目 5、如果目标裝置位于其他網絡,則源裝置會在ARP快取記錄中查找網關的MAC位址,然後将資料發送給網關,網關再把資料轉發給目的裝置。![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yYkNWZ4EjZmZ2YjVGMlhDZmFjZyczNjZmZ0IjZihjNi9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
取個例子:
如圖,當主機A想向主機B發送資料時,首先将B的位址和自己的位址進行一個與運算來确認兩主機是否處于同一個網段。
如果在同一個網段首先主機A會檢視本地的ARP表,是否有B主機位址所對應的MAC位址。
①如果存在:就直接把IP資料封裝成幀進行通信。
②如果不存在:
1.則a先緩存該資料封包,然後廣播發送arp請求包詢問主機b的mac位址是多少
2.交換機收到廣播包,從接收端口以外的所有端口轉發出去,這時候c收到之後發現不是請求自己,就丢棄此廣播包。
3.b收到之後看到再問自己的mac,首先将廣播包的源mac和ip綁定到自己的arp表
4.然後單點傳播回複給a,告訴主機a自己的mac位址,a收到之後主機b的mac位址,将主機b的ip和mac進行綁定到自己的arp表
如果不在同一個網段在進行跨網段傳輸的時候需要把資料交給網關,然後由網關進行轉發,是以隻需要封裝網關的mac位址就好,如果不知道網關的mac位址還是會發arp請求網關的mac位址。請求步驟和上面一樣。
Hardware Type:表示硬體位址類型,一般為以太網
Protocol Type:表示三層協定位址類型,一般為IP
Hardware Length和Protocol Length:為MAC位址和IP位址的長度,機關是位元組
Operation Code:指定了ARP封包的類型,包括ARP request(請求)和ARP reply(應答)
Source Hardware Address:指的是發送ARP封包的裝置MAC位址
Source Protocol Address:指的是發送ARP封包的裝置IP位址
Destination Hardware Address:指的是接收者MAC位址,在ARP request封包中,該字段值為0
Destination Protocol Address:指的是指接收arp封包的IP位址
ARP代理我們說到對于不同網段的通路會封裝網關的mac位址,如果此時主機a沒有網關,他将會以廣播的形式發送arp request封包,請求b的mac位址,但是廣播封包無法被路由器傳遞,是以主機b無法收到主機a的arp請求封包,也就無法應答。
這時候可以通過在路由器上開啟arp代理功能解決此問題,啟用arp代理的路由器收到請求包之後,會查找路由表,如果存在主機b的路由表項,路由器會使用自己的g0/0/0接口的mac位址來回應a發的arp request,主機a收到arp reply後,将以路由器的g0/0/0接口mac位址作為目的mac位址進行轉發資料。
Arp缺陷在ARP快取記錄機制存在一個缺陷,就是當請求主機收到ARP應答包後,不會去驗證自己是否向對方主機發送過ARP請求包就直接把這個傳回包中的IP位址與MAC位址的對應關系儲存進ARP快取記錄中,如果原有相同IP對應關系,則原有的會被替換。這樣就導緻了一種攻擊方式叫做arp欺騙攻擊。
還用這張圖,上面我們說到arp的缺陷是不會驗證自己有沒有向目的主機發送arp request,a請求一個包,b就應答一個包。
假如說a沒有請求的時候,主機a b c工作正常,這時候c作為攻擊者直接給a發送一個應答包,說自己是12.1.1.2(主機b),mac位址是cccc,這時候a會認為12.1.1.2對應的mac位址是cccc,a的緩存當中就存在了一條假記錄,這時候a往主機b發的資料包mac位址就是cccc,交換機轉發資料隻讀取mac位址,這時候發現cccc這個mac綁定在自己的e0/3接口,這時候就将資料發給了主機c,這時候主機c就竊取到了a發給b的資料包。
C再使用相同的方法告訴b說自己就是a,這時候a和b的通訊完全經過了主機c。這就是利用arp缺陷而産生的攻擊方式。
Arp攻擊的防禦方法:
Arp綁定将ip與mac進行綁定
通過arp防火牆來防禦arp攻擊