局域網(wǎng)中的坑爹協(xié)議--ARP(地址解析協(xié)議)
在局域網(wǎng)中,當(dāng)主機(jī)或其它三層網(wǎng)絡(luò)設(shè)備有數(shù)據(jù)要發(fā)送給另一臺(tái)主機(jī)或三層網(wǎng)絡(luò)設(shè)備時(shí),它需要知道對(duì)方的網(wǎng)絡(luò)層地址(即IP地址)。但是僅有IP地址是不夠的,因?yàn)镮P報(bào)文必須封裝成二層幀才能通過(guò)物理網(wǎng)絡(luò)發(fā)送,因此發(fā)送方還需要知道接收方的物理地址(即MAC地址),這就需要一個(gè)從IP地址到MAC地址的映射。ARP協(xié)議就是實(shí)現(xiàn)將IP地址解析為MAC地址。主機(jī)或三層網(wǎng)絡(luò)設(shè)備上會(huì)維護(hù)一張ARP表,用于存儲(chǔ)IP地址和MAC地址的關(guān)系。
ARP協(xié)議是建立在網(wǎng)絡(luò)中所有節(jié)點(diǎn)都是可信的情況下,在可信的環(huán)境中,它是高效的;但是在我們實(shí)際的網(wǎng)絡(luò)環(huán)境中,由于ARP協(xié)議不會(huì)檢查自己是否發(fā)過(guò)請(qǐng)求包,也不管是否是合法的應(yīng)答,只要收到目標(biāo)MAC是自己的ARP reply包或arp廣播包(包括ARP request和ARP reply),都會(huì)接受并緩存。這就導(dǎo)致了局域網(wǎng)中各種ARP攻擊層出不窮。說(shuō)到底,如今ARP攻擊如此泛濫,還是因?yàn)閰f(xié)議上的缺陷。
下面介紹下集中ARP的應(yīng)用方式:
1. 動(dòng)態(tài)ARP
動(dòng)態(tài)ARP表項(xiàng)由ARP協(xié)議通過(guò)ARP報(bào)文自動(dòng)生成和維護(hù),可以被老化,可以被新的ARP報(bào)文更新;此方式不需要管理員手動(dòng)維護(hù)ARP表項(xiàng),適合于大型或者拓?fù)鋸?fù)雜的網(wǎng)絡(luò)環(huán)境中。(實(shí)際我們一般都是使用的動(dòng)態(tài)ARP)。
(1) 什么情況下才會(huì)新增arp表項(xiàng)
在實(shí)際的環(huán)境中,只有同時(shí)滿(mǎn)足以下兩個(gè)條件時(shí),設(shè)備的ARP表才會(huì)更新:
- 設(shè)備收到來(lái)自某IP的ARP請(qǐng)求包或者其他ARP包;
- 設(shè)備的現(xiàn)有ARP表中已經(jīng)存在該IP對(duì)應(yīng)的ARP表。
(2) ARP老化時(shí)間:
華為交換機(jī)默認(rèn)ARP的老化時(shí)間為20分鐘,當(dāng)達(dá)到配置的表項(xiàng)老化時(shí)間后,根據(jù)探測(cè)次數(shù)每隔5s發(fā)送一個(gè)探測(cè)報(bào)文,如果一直沒(méi)有收到應(yīng)答消息則表項(xiàng)被刪除。
2. 靜態(tài)ARP
靜態(tài)ARP表項(xiàng)是由網(wǎng)絡(luò)管理員手工建立的IP地址和MAC地址之間固定的映射關(guān)系。靜態(tài)ARP表項(xiàng)不會(huì)被老化,不會(huì)被動(dòng)態(tài)ARP表項(xiàng)覆蓋。
靜態(tài)ARP表項(xiàng)分為短靜態(tài)ARP表項(xiàng)和長(zhǎng)靜態(tài)ARP表項(xiàng)。
- 短靜態(tài)ARP表項(xiàng):手工建立IP地址和MAC地址之間固定的映射關(guān)系,未同時(shí)指定VLAN和出接口。
- 長(zhǎng)靜態(tài)ARP表項(xiàng):手工建立IP地址和MAC地址之間固定的映射關(guān)系,并同時(shí)指定該ARP表項(xiàng)所在VLAN和出接口。
對(duì)于以下場(chǎng)景,可以配置靜態(tài)ARP表項(xiàng):
- 對(duì)于網(wǎng)絡(luò)中的重要設(shè)備,如服務(wù)器等,可以在交換機(jī)上配置靜態(tài)ARP表項(xiàng)。
- 當(dāng)希望禁止某個(gè)IP地址訪問(wèn)設(shè)備時(shí),可以在交換機(jī)上配置靜態(tài)ARP表項(xiàng),將該IP地址與一個(gè)不存在的MAC地址進(jìn)行綁定。
3. 免費(fèi)ARP
設(shè)備主動(dòng)使用自己的IP地址作為目的IP地址發(fā)送ARP請(qǐng)求,此種方式稱(chēng)免費(fèi)ARP。
免費(fèi)ARP有如下作用:
- IP地址沖突檢測(cè):當(dāng)設(shè)備接口的協(xié)議狀態(tài)變?yōu)閁p時(shí),設(shè)備主動(dòng)對(duì)外發(fā)送免費(fèi)ARP報(bào)文。正常情況下不會(huì)收到ARP應(yīng)答,如果收到,則表明本網(wǎng)絡(luò)中存在與自身IP地址重復(fù)的地址。如果檢測(cè)到IP地址沖突,設(shè)備會(huì)周期性的廣播發(fā)送免費(fèi)ARP應(yīng)答報(bào)文,直到?jīng)_突解除。
- 用于通告一個(gè)新的MAC地址:發(fā)送方更換了網(wǎng)卡,MAC地址變化了,為了能夠在動(dòng)態(tài)ARP表項(xiàng)老化前通告網(wǎng)絡(luò)中其他設(shè)備,發(fā)送方可以發(fā)送一個(gè)免費(fèi)ARP。
4. 代理ARP
如果ARP請(qǐng)求是從一個(gè)網(wǎng)絡(luò)的主機(jī)發(fā)往同一網(wǎng)段但不在同一物理網(wǎng)絡(luò)上的另一臺(tái)主機(jī),那么連接這兩個(gè)網(wǎng)絡(luò)的設(shè)備就可以回答該ARP請(qǐng)求,這個(gè)過(guò)程稱(chēng)作ARP代理(Proxy ARP)。
Proxy ARP有以下特點(diǎn):
- Proxy ARP部署在網(wǎng)關(guān)上,網(wǎng)絡(luò)中的主機(jī)不必做任何改動(dòng)。
- Proxy ARP可以隱藏物理網(wǎng)絡(luò)細(xì)節(jié),使兩個(gè)物理網(wǎng)絡(luò)可以使用同一個(gè)網(wǎng)絡(luò)號(hào)。
- Proxy ARP只影響主機(jī)的ARP表,對(duì)網(wǎng)關(guān)的ARP表和路由表沒(méi)有影響。