ARP/RARP 地址解析協(xié)議

2020-06-15 15:41 更新

一、簡介

1.作用

地址解析協(xié)議,即ARP(Address Resolution Protocol),是根據(jù)IP地址獲取物理地址的一個(gè)TCP/IP協(xié)議。主機(jī)發(fā)送信息時(shí)將包含目標(biāo)IP地址的ARP請求廣播到局域網(wǎng)絡(luò)上的所有主機(jī),并接收返回消息,以此確定目標(biāo)的物理地址;收到返回消息后將該IP地址和物理地址存入本機(jī)ARP緩存中并保留一定時(shí)間,下次請求時(shí)直接查詢ARP緩存以節(jié)約資源。地址解析協(xié)議是建立在網(wǎng)絡(luò)中各個(gè)主機(jī)互相信任的基礎(chǔ)上的,局域網(wǎng)絡(luò)上的主機(jī)可以自主發(fā)送ARP應(yīng)答消息,其他主機(jī)收到應(yīng)答報(bào)文時(shí)不會檢測該報(bào)文的真實(shí)性就會將其記入本機(jī)ARP緩存;由此攻擊者就可以向某一主機(jī)發(fā)送偽ARP應(yīng)答報(bào)文,使其發(fā)送的信息無法到達(dá)預(yù)期的主機(jī)或到達(dá)錯(cuò)誤的主機(jī),這就構(gòu)成了一個(gè)ARP欺騙。ARP命令可用于查詢本機(jī)ARP緩存中IP地址和MAC地址的對應(yīng)關(guān)系、添加或刪除靜態(tài)對應(yīng)關(guān)系等。相關(guān)協(xié)議有RARP、代理ARP。NDP用于在IPv6中代替地址解析協(xié)議。

2.原理

1)發(fā)送ARP廣播請求   
  ARP報(bào)文內(nèi)容:我是10.1.1.1 我的mac:AA 
  誰是10.1.1.3 你的mac:
2)接收ARP單播應(yīng)答 



第一步:首先,每個(gè)主機(jī)都會有自己的ARP緩存區(qū)中建立一個(gè)ARP列表,以表示IP地址和MAC地址之間的對應(yīng)關(guān)系

第二步:當(dāng)源主機(jī)要發(fā)送數(shù)據(jù)時(shí), 首先檢測ARP列表中是否對應(yīng)IP地址的目的主機(jī)的MAC地址 如果有,則直接發(fā)送數(shù)據(jù) 如果沒有,就向本網(wǎng)段的所有主機(jī)發(fā)送ARP數(shù)據(jù)包,內(nèi)容: 我是IP地址,mac地址,誰是IP地址,mac?

第三步:當(dāng)本網(wǎng)絡(luò)的所有主機(jī)收到該ARP數(shù)據(jù)包時(shí), 首先檢查數(shù)據(jù)包中的IP地址是否是自己的IP地址, 如果不是,則忽略該數(shù)據(jù)包 如果是,則首先從數(shù)據(jù)包中取出源主機(jī)的IP和mac地址寫入到ARP列表中,如果以存在,則覆蓋 然后將自己的mac地址寫入arp響應(yīng)包中,告訴源主機(jī)自己是它想要找的mac地址

第四步:源主機(jī)收到ARP響應(yīng)包后,將目的主機(jī)的IP和mac地址寫入arp列表,并利用此信息發(fā)送數(shù)據(jù) 如果源主機(jī)一直沒有收到arp響應(yīng)數(shù)據(jù)包,表示arp查詢失敗。

二、報(bào)文

1.報(bào)文格式

三、要點(diǎn)

1.ARP映射表

無論是主機(jī),還是交換機(jī)都會有一個(gè)用來緩存同一網(wǎng)段設(shè)備IP地址和MAC地址的ARP映射表,用于數(shù)據(jù)幀的轉(zhuǎn)發(fā)。設(shè)備通過ARP解析到目的MAC之后,將會在自己的ARP映射表中增加IP地址到MAC地址的映射表,以用于后續(xù)到同一目的地?cái)?shù)據(jù)幀的轉(zhuǎn)發(fā)。ARP表項(xiàng)分為動態(tài)ARP表項(xiàng)和靜態(tài)ARP表項(xiàng)。

2.免費(fèi)ARP

設(shè)置地址產(chǎn)生ARP報(bào)文,源MAC為自己,目的MAC為4個(gè)0,源IP與目的IP為一個(gè)

四、命令

ARP命令 ARP緩存中包含一個(gè)或多個(gè)表,它們用于存儲IP地址及其經(jīng)過解析的MAC地址。ARP命令用于查詢本機(jī)ARP緩存中IP地址-->MAC地址的對應(yīng)關(guān)系、添加或刪除靜態(tài)對應(yīng)關(guān)系等。如果在沒有參數(shù)的情況下使用,ARP命令將顯示幫助信息。

常見用法

arp -a或arp –g 用于查看緩存中的所有項(xiàng)目。-a和-g參數(shù)的結(jié)果是一樣的,多年來-g一直是UNIX平臺上用來顯示ARP緩存中所有項(xiàng)目的選項(xiàng),而Windows用的是arp -a(-a可被視為all,即全部的意思),但它也可以接受比較傳統(tǒng)的-g選項(xiàng)。

arp -a Ip 如果有多個(gè)網(wǎng)卡,那么使用arp -a加上接口的IP地址,就可以只顯示與該接口相關(guān)的ARP緩存項(xiàng)目。

arp -s Ip 物理地址 可以向ARP緩存中人工輸入一個(gè)靜態(tài)項(xiàng)目。該項(xiàng)目在計(jì)算機(jī)引導(dǎo)過程中將保持有效狀態(tài),或者在出現(xiàn)錯(cuò)誤時(shí),人工配置的物理地址將自動更新該項(xiàng)目。

arp -d Ip 使用該命令能夠人工刪除一個(gè)靜態(tài)項(xiàng)目。

五、考題

1.簡述ARP協(xié)議的缺點(diǎn)?

正確答案: 答:ARP協(xié)議不會對回復(fù)的數(shù)據(jù)包進(jìn)行驗(yàn)證。

六、ARP欺騙的防范

1.運(yùn)營商可采用Super VLAN或PVLAN技術(shù)

所謂Super VLAN也叫VLAN聚合,這種技術(shù)在同一個(gè)子網(wǎng)中化出多個(gè)Sub VLAN,而將整個(gè)IP子網(wǎng)指定為一個(gè)VLAN聚合(Super VLAN),所有的Sub VLAN都使用Super VLAN的默認(rèn)網(wǎng)關(guān)IP地址,不同的Sub VLAN仍保留各自獨(dú)立的廣播域。子網(wǎng)中的所有主機(jī)只能與自己的默認(rèn)網(wǎng)關(guān)通信。如果將交換機(jī)或IP DSLAM設(shè)備的每個(gè)端口(網(wǎng)絡(luò)中的一對端其一端輸入的電流與另一端輸出的電流是相等的)化為一個(gè)Sub VLAN,則實(shí)現(xiàn)了所有端口(網(wǎng)絡(luò)中的一對端其一端輸入的電流與另一端輸出的電流是相等的)的隔離,也就避免了ARP欺騙。

PVLAN即私有VLAN(Private VLAN) ,PVLAN采用兩層VLAN隔離技術(shù),只有上層VLAN全局可見,下層VLAN相互隔離。如果將交換機(jī)或IP DSLAM設(shè)備的每個(gè)端口(網(wǎng)絡(luò)中的一對端其一端輸入的電流與另一端輸出的電流是相等的)化為一個(gè)(下層)VLAN,則實(shí)現(xiàn)了所有端口(網(wǎng)絡(luò)中的一對端其一端輸入的電流與另一端輸出的電流是相等的)的隔離。

PVLAN和SuperVLAN技術(shù)都可以實(shí)現(xiàn)端口(網(wǎng)絡(luò)中的一對端其一端輸入的電流與另一端輸出的電流是相等的)隔離,但實(shí)現(xiàn)方式、出發(fā)點(diǎn)不同。PVLAN是為了節(jié)省VLAN,而SuperVlan的初衷是節(jié)省IP地址。

2.單位局域網(wǎng)可采用IP與MAC綁定

在PC上IP+MAC綁,網(wǎng)絡(luò)設(shè)備上IP+MAC+端口(網(wǎng)絡(luò)中的一對端其一端輸入的電流與另一端輸出的電流是相等的)綁。但不幸的是Win 98/me、未打arp補(bǔ)丁的win 2000/xp sp1(現(xiàn)在大多都已經(jīng)打過了)等系統(tǒng) 使用arp -s所設(shè)置的靜態(tài)ARP項(xiàng)還是會被ARP欺騙所改變。

如果網(wǎng)絡(luò)設(shè)備上只做IP+MAC綁定,其實(shí)也是不安全的,假如同一二層下的某臺機(jī)器發(fā)偽造的arp reply(源ip和源mac都填欲攻擊的那臺機(jī)子的)給網(wǎng)關(guān),還是會造成網(wǎng)關(guān)把流量送到欺騙者所連的那個(gè)(物理)端口(網(wǎng)絡(luò)中的一對端其一端輸入的電流與另一端輸出的電流是相等的)從而造成網(wǎng)絡(luò)不通。

對于采用了大量傻瓜交換機(jī)的局域網(wǎng),用戶自己可以采取支持arp過濾的防火墻(防止外部網(wǎng)絡(luò)用戶以非法手段通過外部網(wǎng)絡(luò)進(jìn)入內(nèi)部網(wǎng)絡(luò))等方法。推薦Look ‘n’Stop防火墻,支持arp協(xié)議規(guī)則自定義。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號