2013-05-13 21:56:51| 分類: 網(wǎng)絡(luò)協(xié)議 |舉報(bào) |字號(hào) 訂閱
ARP
ARP作用
ARP(Address Resolution Protocol,地址解析協(xié)議)是將IP地址解析為以太網(wǎng)MAC地址(或稱物理地址)的協(xié)議。
在局域網(wǎng)中,當(dāng)主機(jī)或其它網(wǎng)絡(luò)設(shè)備有數(shù)據(jù)要發(fā)送給另一個(gè)主機(jī)或設(shè)備時(shí),它必須知道對(duì)方的網(wǎng)絡(luò)層地址(即IP地址)。但是僅僅有IP地址是不夠的,因?yàn)镮P數(shù)據(jù)報(bào)文必須封裝成幀才能通過物理網(wǎng)絡(luò)發(fā)送,因此發(fā)送站還必須有接收站的物理地址,所以需要一個(gè)從IP地址到物理地址的映射。APR就是實(shí)現(xiàn)這個(gè)功能的協(xié)議。
ARP報(bào)文結(jié)構(gòu)
ARP報(bào)文分為ARP請(qǐng)求和ARP應(yīng)答報(bào)文,報(bào)文格式如圖1-1所示。
圖 1 ARP報(bào)文結(jié)構(gòu)
硬件類型:表示硬件地址的類型。它的值為1表示以太網(wǎng)地址;
協(xié)議類型:表示要映射的協(xié)議地址類型。它的值為0x0800即表示IP地址;
硬件地址長(zhǎng)度和協(xié)議地址長(zhǎng)度分別指出硬件地址和協(xié)議地址的長(zhǎng)度,以字節(jié)為單位。對(duì)于以太網(wǎng)上IP地址的ARP請(qǐng)求或應(yīng)答來說,它們的值分別為6和4;
操作類型(OP):1表示ARP請(qǐng)求,2表示ARP應(yīng)答;
發(fā)送端MAC地址:發(fā)送方設(shè)備的硬件地址;
發(fā)送端IP地址:發(fā)送方設(shè)備的IP地址;
目標(biāo)MAC地址:接收方設(shè)備的硬件地址。
目標(biāo)IP地址:接收方設(shè)備的IP地址。
ARP地址解析過程
假設(shè)主機(jī)A和B在同一個(gè)網(wǎng)段,主機(jī)A要向主機(jī)B發(fā)送信息。如圖1-2所示,具體的地址解析過程如下:
(1) 主機(jī)A首先查看自己的ARP表,確定其中是否包含有主機(jī)B對(duì)應(yīng)的ARP表項(xiàng)。如果找到了對(duì)應(yīng)的MAC地址,則主機(jī)A直接利用ARP表中的MAC地址,對(duì)IP數(shù)據(jù)包進(jìn)行幀封裝,并將數(shù)據(jù)包發(fā)送給主機(jī)B。
(2) 如果主機(jī)A在ARP表中找不到對(duì)應(yīng)的MAC地址,則將緩存該數(shù)據(jù)報(bào)文,然后以廣播方式發(fā)送一個(gè)ARP請(qǐng)求報(bào)文。ARP請(qǐng)求報(bào)文中的發(fā)送端IP地址和發(fā)送端MAC地址為主機(jī)A的IP地址和MAC地址,目標(biāo)IP地址和目標(biāo)MAC地址為主機(jī)B的IP地址和全0的MAC地址。由于ARP請(qǐng)求報(bào)文以廣播方式發(fā)送,該網(wǎng)段上的所有主機(jī)都可以接收到該請(qǐng)求,但只有被請(qǐng)求的主機(jī)(即主機(jī)B)會(huì)對(duì)該請(qǐng)求進(jìn)行處理。
(3) 主機(jī)B比較自己的IP地址和ARP請(qǐng)求報(bào)文中的目標(biāo)IP地址,當(dāng)兩者相同時(shí)進(jìn)行如下處理:將ARP請(qǐng)求報(bào)文中的發(fā)送端(即主機(jī)A)的IP地址和MAC地址存入自己的ARP表中。之后以單播方式發(fā)送ARP響應(yīng)報(bào)文給主機(jī)A,其中包含了自己的MAC地址。
(4) 主機(jī)A收到ARP響應(yīng)報(bào)文后,將主機(jī)B的MAC地址加入到自己的ARP表中以用于后續(xù)報(bào)文的轉(zhuǎn)發(fā),同時(shí)將IP數(shù)據(jù)包進(jìn)行封裝后發(fā)送出去。
圖 2 ARP地址解析過程
當(dāng)主機(jī)A和主機(jī)B不在同一網(wǎng)段時(shí),主機(jī)A就會(huì)先向網(wǎng)關(guān)發(fā)出ARP請(qǐng)求,ARP請(qǐng)求報(bào)文中的目標(biāo)IP地址為網(wǎng)關(guān)的IP地址。當(dāng)主機(jī)A從收到的響應(yīng)報(bào)文中獲得網(wǎng)關(guān)的MAC地址后,將報(bào)文封裝并發(fā)給網(wǎng)關(guān)。如果網(wǎng)關(guān)沒有主機(jī)B的ARP表項(xiàng),網(wǎng)關(guān)會(huì)廣播ARP請(qǐng)求,目標(biāo)IP地址為主機(jī)B的IP地址,當(dāng)網(wǎng)關(guān)從收到的響應(yīng)報(bào)文中獲得主機(jī)B的MAC地址后,就可以將報(bào)文發(fā)給主機(jī)B;如果網(wǎng)關(guān)已經(jīng)有主機(jī)B的ARP表項(xiàng),網(wǎng)關(guān)直接把報(bào)文發(fā)給主機(jī)B。
ARP表
設(shè)備通過ARP解析到目的MAC地址后,將會(huì)在自己的ARP表中增加IP地址到MAC地址的映射表項(xiàng),以用于后續(xù)到同一目的地報(bào)文的轉(zhuǎn)發(fā)。
ARP表項(xiàng)分為動(dòng)態(tài)ARP表項(xiàng)和靜態(tài)ARP表項(xiàng)。
動(dòng)態(tài)ARP表項(xiàng)
動(dòng)態(tài)ARP表項(xiàng)由ARP協(xié)議通過ARP報(bào)文自動(dòng)生成和維護(hù),可以被老化,可以被新的ARP報(bào)文更新,可以被靜態(tài)ARP表項(xiàng)覆蓋。當(dāng)?shù)竭_(dá)老化時(shí)間、接口down時(shí)會(huì)刪除相應(yīng)的動(dòng)態(tài)ARP表項(xiàng)。
靜態(tài)ARP表項(xiàng)
靜態(tài)ARP表項(xiàng)通過手工配置和維護(hù),不會(huì)被老化,不會(huì)被動(dòng)態(tài)ARP表項(xiàng)覆蓋。
配置靜態(tài)ARP表項(xiàng)可以增加通信的安全性。靜態(tài)ARP表項(xiàng)可以限制和指定IP地址的設(shè)備通信時(shí)只使用指定的MAC地址,此時(shí)攻擊報(bào)文無法修改此表項(xiàng)的IP地址和MAC地址的映射關(guān)系,從而保護(hù)了本設(shè)備和指定設(shè)備間的正常通信。
靜態(tài)ARP表項(xiàng)分為短靜態(tài)ARP表項(xiàng)和長(zhǎng)靜態(tài)ARP表項(xiàng)。
在配置長(zhǎng)靜態(tài)ARP表項(xiàng)時(shí),除了配置IP地址和MAC地址項(xiàng)外,還必須配置該ARP表項(xiàng)所在VLAN和出接口。長(zhǎng)靜態(tài)ARP表項(xiàng)可以直接用于報(bào)文轉(zhuǎn)發(fā)。
在配置短靜態(tài)ARP表項(xiàng)時(shí),只需要配置IP地址和MAC地址項(xiàng)。如果出接口是三層以太網(wǎng)接口,短靜態(tài)ARP表項(xiàng)可以直接用于報(bào)文轉(zhuǎn)發(fā);如果出接口是VLAN虛接口,短靜態(tài)ARP表項(xiàng)不能直接用于報(bào)文轉(zhuǎn)發(fā),當(dāng)要發(fā)送IP數(shù)據(jù)包時(shí),先發(fā)送ARP請(qǐng)求報(bào)文,如果收到的響應(yīng)報(bào)文中的源IP地址和源MAC地址與所配置的IP地址和MAC地址相同,則將接收ARP響應(yīng)報(bào)文的接口加入該靜態(tài)ARP表項(xiàng)中,之后就可以用于IP數(shù)據(jù)包的轉(zhuǎn)發(fā)。
一般情況下,ARP動(dòng)態(tài)執(zhí)行并自動(dòng)尋求IP地址到以太網(wǎng)MAC地址的解析,無需管理員的介入。
當(dāng)希望設(shè)備和指定用戶只能使用某個(gè)固定的IP地址和MAC地址通信時(shí),可以配置短靜態(tài)ARP表項(xiàng),當(dāng)進(jìn)一步希望限定這個(gè)用戶只在某VLAN內(nèi)的某個(gè)特定接口上連接時(shí)就可以配置長(zhǎng)靜態(tài)ARP表項(xiàng)。
免費(fèi)ARP
免費(fèi)ARP報(bào)文是一種特殊的ARP報(bào)文,該報(bào)文中攜帶的發(fā)送端IP地址和目標(biāo)IP地址都是本機(jī)IP地址,報(bào)文源MAC地址是本機(jī)MAC地址,報(bào)文的目的MAC地址是廣播地址。
設(shè)備通過對(duì)外發(fā)送免費(fèi)ARP報(bào)文來實(shí)現(xiàn)以下功能:
確定其它設(shè)備的IP地址是否與本機(jī)的IP地址沖突。當(dāng)其它設(shè)備收到免費(fèi)ARP報(bào)文后,如果發(fā)現(xiàn)報(bào)文中的IP地址和自己的IP地址相同,則給發(fā)送免費(fèi)ARP報(bào)文的設(shè)備返回一個(gè)ARP應(yīng)答,告知該設(shè)備IP地址沖突。
設(shè)備改變了硬件地址,通過發(fā)送免費(fèi)ARP報(bào)文通知其它設(shè)備更新ARP表項(xiàng)。
免費(fèi)ARP報(bào)文學(xué)習(xí)功能的作用
使能了免費(fèi)ARP報(bào)文學(xué)習(xí)功能后,設(shè)備會(huì)根據(jù)收到的免費(fèi)ARP報(bào)文中攜帶的信息(源IP地址、源MAC地址)對(duì)自身維護(hù)的ARP表進(jìn)行修改。設(shè)備先判斷ARP表中是否存在與此免費(fèi)ARP報(bào)文源IP地址對(duì)應(yīng)的ARP表項(xiàng):
如果沒有對(duì)應(yīng)的ARP表項(xiàng),設(shè)備會(huì)根據(jù)該免費(fèi)ARP報(bào)文中攜帶的信息新建ARP表項(xiàng);
如果存在對(duì)應(yīng)的ARP表項(xiàng),設(shè)備會(huì)根據(jù)該免費(fèi)ARP報(bào)文中攜帶的信息更新對(duì)應(yīng)的ARP表項(xiàng)。
關(guān)閉免費(fèi)ARP報(bào)文學(xué)習(xí)功能后,設(shè)備不會(huì)根據(jù)收到的免費(fèi)ARP報(bào)文來新建ARP表項(xiàng),但是會(huì)更新已存在的對(duì)應(yīng)ARP表項(xiàng)。如果用戶不希望通過免費(fèi)ARP報(bào)文來新建ARP表項(xiàng),可以關(guān)閉免費(fèi)ARP報(bào)文學(xué)習(xí)功能,以節(jié)省ARP表項(xiàng)資源。
定時(shí)發(fā)送免費(fèi)ARP功能的作用
定時(shí)發(fā)送免費(fèi)ARP功能可以及時(shí)通知下行設(shè)備更新ARP表項(xiàng)或者M(jìn)AC地址表項(xiàng),主要應(yīng)用場(chǎng)景如下:
(1) 防止仿冒網(wǎng)關(guān)的ARP攻擊
如果攻擊者仿冒網(wǎng)關(guān)發(fā)送免費(fèi)ARP報(bào)文,就可以欺騙同網(wǎng)段內(nèi)的其它主機(jī),使得被欺騙的主機(jī)訪問網(wǎng)關(guān)的流量,被重定向到一個(gè)錯(cuò)誤的MAC地址,導(dǎo)致其它主機(jī)用戶無法正常訪問網(wǎng)絡(luò)。
為了盡量避免這種仿冒網(wǎng)關(guān)的ARP攻擊,可以在網(wǎng)關(guān)的接口上使能定時(shí)發(fā)送免費(fèi)ARP功能。使能該功能后,網(wǎng)關(guān)接口上將按照配置的時(shí)間間隔周期性發(fā)送接口主IP地址和手工配置的從IP地址的免費(fèi)ARP報(bào)文。這樣,每臺(tái)主機(jī)都可以學(xué)習(xí)到正確的網(wǎng)關(guān),從而正常訪問網(wǎng)絡(luò)。
(2) 防止主機(jī)ARP表項(xiàng)老化
在實(shí)際環(huán)境中,當(dāng)網(wǎng)絡(luò)負(fù)載較大或接收端主機(jī)的CPU占用率較高時(shí),可能存在ARP報(bào)文被丟棄或主機(jī)無法及時(shí)處理接收到的ARP報(bào)文等現(xiàn)象。這種情況下,接收端主機(jī)的動(dòng)態(tài)ARP表項(xiàng)會(huì)因超時(shí)而被老化,在其重新學(xué)習(xí)到發(fā)送設(shè)備的ARP表項(xiàng)之前,二者之間的流量就會(huì)發(fā)生中斷。
為了解決上述問題,可以在網(wǎng)關(guān)的接口上使能定時(shí)發(fā)送免費(fèi)ARP功能。使能該功能后,網(wǎng)關(guān)接口上將按照配置的時(shí)間間隔周期性發(fā)送接口主IP地址和手工配置的從IP地址的免費(fèi)ARP報(bào)文。這樣,接收端主機(jī)可以及時(shí)更新ARP映射表,從而防止了上述流量中斷現(xiàn)象。
(3) 防止VRRP虛擬IP地址沖突
當(dāng)網(wǎng)絡(luò)中存在VRRP備份組時(shí),需要由VRRP備份組的Master路由器周期性的向網(wǎng)絡(luò)內(nèi)的主機(jī)發(fā)送免費(fèi)ARP報(bào)文,使主機(jī)更新本地ARP地址表,確保網(wǎng)絡(luò)中不會(huì)存在與VRRP虛擬IP地址相同的設(shè)備。
由于用戶可以設(shè)定VRRP虛擬IP地址和MAC地址對(duì)應(yīng)關(guān)系,因此有以下兩種情況:
如果當(dāng)前VRRP虛擬IP地址和虛擬MAC地址對(duì)應(yīng),則免費(fèi)ARP報(bào)文中的源MAC地址為VRRP虛擬路由器對(duì)應(yīng)的虛擬MAC地址。
如果當(dāng)前VRRP虛擬IP地址和實(shí)際MAC地址對(duì)應(yīng),則免費(fèi)ARP報(bào)文中的源MAC地址為VRRP備份組中Master路由器接口的MAC地址。
(4) 及時(shí)更新模糊終結(jié)VLAN內(nèi)設(shè)備的MAC地址表
三層以太網(wǎng)子接口上同時(shí)配置了模糊終結(jié)多個(gè)VLAN和VRRP備份組時(shí),為了避免發(fā)送過多的VRRP通告報(bào)文,需要關(guān)閉VLAN終結(jié)支持廣播/組播功能,并配置VRRP控制VLAN。此時(shí),為了及時(shí)更新各個(gè)模糊終結(jié)VLAN內(nèi)設(shè)備的MAC地址表項(xiàng),可以在三層以太網(wǎng)子接口上使能定時(shí)發(fā)送免費(fèi)ARP功能。使能該功能后,三層以太網(wǎng)子接口將按照配置的時(shí)間間隔周期性發(fā)送VRRP虛擬IP地址、接口主IP地址和手工配置的從IP地址的免費(fèi)ARP報(bào)文。這樣,當(dāng)VRRP主備狀態(tài)切換時(shí),各個(gè)模糊終結(jié)VLAN內(nèi)設(shè)備上可以及時(shí)更新為正確的MAC地址表項(xiàng)。
代理ARP
如果ARP請(qǐng)求是從一個(gè)網(wǎng)絡(luò)的主機(jī)發(fā)往同一網(wǎng)段卻不在同一物理網(wǎng)絡(luò)上的另一臺(tái)主機(jī),那么連接它們的具有代理ARP功能的設(shè)備就可以回答該請(qǐng)求,這個(gè)過程稱作代理ARP(Proxy ARP)。
代理ARP功能屏蔽了分離的物理網(wǎng)絡(luò)這一事實(shí),使用戶使用起來,好像在同一個(gè)物理網(wǎng)絡(luò)上。
代理ARP分為普通代理ARP和本地代理ARP,二者的應(yīng)用場(chǎng)景有所區(qū)別:
普通代理ARP的應(yīng)用環(huán)境為:想要互通的主機(jī)分別連接到設(shè)備的不同三層接口上,且這些主機(jī)不在同一個(gè)廣播域中。
本地代理ARP的應(yīng)用環(huán)境為:想要互通的主機(jī)連接到設(shè)備的同一個(gè)三層接口上,且這些主機(jī)不在同一個(gè)廣播域中。
普通代理ARP
處于同一網(wǎng)段內(nèi)的主機(jī),當(dāng)連接到設(shè)備的不同三層接口時(shí),可以利用設(shè)備的代理ARP功能,通過三層轉(zhuǎn)發(fā)實(shí)現(xiàn)互通。
代理ARP的典型應(yīng)用環(huán)境如圖3-1所示。設(shè)備Router通過兩個(gè)三層接口Ethernet1/1和Ethernet1/2連接兩個(gè)網(wǎng)絡(luò),兩個(gè)三層接口的IP地址不在同一個(gè)網(wǎng)段,接口地址分別為192.168.10.99/24、192.168.20.99/24。但是兩個(gè)網(wǎng)絡(luò)內(nèi)的主機(jī)Host A和Host B的地址通過掩碼的控制,既與相連設(shè)備的接口地址在同一網(wǎng)段,同時(shí)二者也處于同一個(gè)網(wǎng)段。
圖 3 普通代理ARP的應(yīng)用環(huán)境
在這種組網(wǎng)情況下,當(dāng)Host A需要與Host B通信時(shí),由于目的IP地址與本機(jī)的IP地址為同一網(wǎng)段,因此Host A會(huì)直接發(fā)出請(qǐng)求Host B硬件地址的ARP請(qǐng)求。但是,此時(shí)的兩臺(tái)主機(jī)處于不同的廣播域中,Host B無法收到Host A的ARP請(qǐng)求報(bào)文,當(dāng)然也就無法應(yīng)答。
通過在Router上啟用代理ARP功能,可以解決此問題。啟用代理ARP后,Router可以應(yīng)答Host A的ARP請(qǐng)求。同時(shí),Router相當(dāng)于Host B的代理,把從其他主機(jī)發(fā)送過來的報(bào)文轉(zhuǎn)發(fā)給它。
代理ARP的優(yōu)點(diǎn)是,它可以只被應(yīng)用在一個(gè)設(shè)備上(此時(shí)該設(shè)備的作用相當(dāng)于網(wǎng)關(guān)),不會(huì)影響到網(wǎng)絡(luò)中其他設(shè)備的路由表。代理ARP功能可以在IP主機(jī)沒有配置缺省網(wǎng)關(guān)或者IP主機(jī)沒有任何路由能力的情況下使用。
本地代理ARP
本地代理ARP的應(yīng)用場(chǎng)景如圖3-2所示。Host A和Host B屬于同一個(gè)VLAN 2,但它們分別連接到被二層隔離的端口Ethernet1/3和Ethernet1/1上,通過在Router上啟用本地代理ARP功能,可以實(shí)現(xiàn)Host A和Host B的三層互通。
圖 4 本地代理ARP的應(yīng)用環(huán)境
本地代理ARP可以在下列三種情況下實(shí)現(xiàn)主機(jī)之間的三層互通:
想要互通的主機(jī)分別連接到同一個(gè)VLAN中的不同二層隔離端口下;
使能Super VLAN功能后,想要互通的主機(jī)屬于不同的Sub VLAN;
使能Isolate-user-vlan功能后,想要互通的主機(jī)屬于不同的Secondary VLAN。
ARP Snooping
ARP Snooping作用
ARP Snooping功能是一個(gè)用于二層交換網(wǎng)絡(luò)環(huán)境的特性,通過偵聽ARP報(bào)文建立ARP Snooping表項(xiàng),從而提供給ARP快速應(yīng)答和MFF手動(dòng)方式等使用。
ARP Snooping工作機(jī)制
設(shè)備上的一個(gè)VLAN使能ARP Snooping后,該VLAN內(nèi)所有端口接收的ARP報(bào)文會(huì)被重定向到CPU。CPU對(duì)重定向上送的ARP報(bào)文進(jìn)行分析,獲取ARP報(bào)文的源IP地址、源MAC地址、源VLAN和入端口信息,建立記錄用戶信息的ARP Snooping表項(xiàng)。
ARP Snooping表項(xiàng)的老化時(shí)間為25分鐘,有效時(shí)間為15分鐘。如果一個(gè)ARP Snooping表項(xiàng)自最后一次更新后15分鐘內(nèi)沒有收到ARP更新報(bào)文,則此表項(xiàng)開始進(jìn)入失效狀態(tài),不再對(duì)外提供服務(wù),其他特性查找此表項(xiàng)將會(huì)失敗。當(dāng)收到源IP地址和源MAC與已存在的ARP Snooping表項(xiàng)IP地址和MAC均相同的ARP報(bào)文時(shí),此ARP Snooping表項(xiàng)進(jìn)行更新,重新開始生效,并重新老化計(jì)時(shí)。當(dāng)ARP Snooping表項(xiàng)達(dá)到老化時(shí)間后,則將此ARP Snooping表項(xiàng)刪除。
如果ARP Snooping收到ARP報(bào)文時(shí)檢查到相同IP的ARP Snooping表項(xiàng)已經(jīng)存在,但是MAC地址發(fā)生了變化,則認(rèn)為發(fā)生了攻擊,此時(shí)ARP Snooping表項(xiàng)處于沖突狀態(tài),表項(xiàng)失效,不再對(duì)外提供服務(wù),并在25分鐘后刪除此表項(xiàng)。
ARP快速應(yīng)答
ARP快速應(yīng)答作用
在無線產(chǎn)品組網(wǎng)中,AC與AP會(huì)建立隧道連接,Client通過AP連接到AC,通過AC,Client可以與網(wǎng)關(guān)建立連接。當(dāng)Client發(fā)起ARP廣播請(qǐng)求時(shí),需要通過AC向所有的AP復(fù)制ARP請(qǐng)求,這樣會(huì)導(dǎo)致ARP廣播占用隧道的大量資源,導(dǎo)致性能下降。為了減少ARP廣播占用的隧道資源,可以在AC上啟用ARP快速應(yīng)答功能,減少ARP廣播報(bào)文的影響。
ARP快速應(yīng)答功能就是根據(jù)AC設(shè)備收集的用戶信息(用戶信息可以是DHCP Snooping表項(xiàng),也可以是ARP Snooping表項(xiàng)),在指定的VLAN內(nèi),盡可能的對(duì)ARP請(qǐng)求進(jìn)行應(yīng)答,從而減少ARP廣播報(bào)文。
ARP快速應(yīng)答工作機(jī)制
ARP快速應(yīng)答的工作機(jī)制如下:
(1) 設(shè)備接收到ARP請(qǐng)求報(bào)文時(shí),如果請(qǐng)求報(bào)文的目的IP地址是設(shè)備的VLAN虛接口的IP地址,則由ARP特性進(jìn)行處理;
(2) 如果ARP請(qǐng)求報(bào)文的目的IP地址不是VLAN虛接口的IP地址,則根據(jù)報(bào)文中的目的IP地址查找DHCP Snooping表項(xiàng):
如果查找成功,但是查找到的表項(xiàng)的接口和收到請(qǐng)求報(bào)文的接口一致,并且接口是以太網(wǎng)接口,則不進(jìn)行應(yīng)答,否則立即進(jìn)行應(yīng)答。
如果查找失敗,則繼續(xù)查找ARP Snooping表項(xiàng),如果查找成功,但是查找到的表項(xiàng)的接口和收到請(qǐng)求報(bào)文的接口一致,并且接口是以太網(wǎng)接口,則不進(jìn)行應(yīng)答,否則立即進(jìn)行應(yīng)答。
如果兩個(gè)表均查找失敗,則直接轉(zhuǎn)發(fā)請(qǐng)求報(bào)文或?qū)?bào)文交于其他特性處理。
ARP攻擊防御
ARP協(xié)議有簡(jiǎn)單、易用的優(yōu)點(diǎn),但是也因?yàn)槠錄]有任何安全機(jī)制而容易被攻擊發(fā)起者利用。
攻擊者可以仿冒用戶、仿冒網(wǎng)關(guān)發(fā)送偽造的ARP報(bào)文,使網(wǎng)關(guān)或主機(jī)的ARP表項(xiàng)不正確,從而對(duì)網(wǎng)絡(luò)進(jìn)行攻擊。
攻擊者通過向設(shè)備發(fā)送大量目標(biāo)IP地址不能解析的IP報(bào)文,使得設(shè)備試圖反復(fù)地對(duì)目標(biāo)IP地址進(jìn)行解析,導(dǎo)致CPU負(fù)荷過重及網(wǎng)絡(luò)流量過大。
攻擊者向設(shè)備發(fā)送大量ARP報(bào)文,對(duì)設(shè)備的CPU形成沖擊。
關(guān)于ARP攻擊報(bào)文的特點(diǎn)以及ARP攻擊類型的詳細(xì)介紹,請(qǐng)參見"ARP攻擊防范技術(shù)白皮書"。
目前ARP攻擊和ARP病毒已經(jīng)成為局域網(wǎng)安全的一大威脅,為了避免各種攻擊帶來的危害,設(shè)備提供了多種技術(shù)對(duì)攻擊進(jìn)行檢測(cè)和解決。
下面將詳細(xì)介紹一下這些技術(shù)的原理。
ARP防止IP報(bào)文攻擊功能簡(jiǎn)介
如果網(wǎng)絡(luò)中有主機(jī)通過向設(shè)備發(fā)送大量目標(biāo)IP地址不能解析的IP報(bào)文來攻擊設(shè)備,則會(huì)造成下面的危害:
設(shè)備向目的網(wǎng)段發(fā)送大量ARP請(qǐng)求報(bào)文,加重目的網(wǎng)段的負(fù)載。
設(shè)備會(huì)試圖反復(fù)地對(duì)目標(biāo)IP地址進(jìn)行解析,增加了CPU的負(fù)擔(dān)。
為避免這種IP報(bào)文攻擊所帶來的危害,設(shè)備提供了下列兩個(gè)功能:
如果發(fā)送攻擊報(bào)文的源是固定的,可以采用ARP源抑制功能。開啟該功能后,如果網(wǎng)絡(luò)中某主機(jī)向設(shè)備某端口連續(xù)發(fā)送目標(biāo)IP地址不能解析的IP報(bào)文,當(dāng)每5秒內(nèi)由此主機(jī)發(fā)出IP報(bào)文觸發(fā)的ARP請(qǐng)求報(bào)文的流量超過設(shè)置的閾值,那么對(duì)于由此主機(jī)發(fā)出的IP報(bào)文,設(shè)備不允許其觸發(fā)ARP請(qǐng)求,直至5秒后再處理,從而避免了惡意攻擊所造成的危害。
如果發(fā)送攻擊報(bào)文的源不固定,可以采用ARP黑洞路由功能。開啟該功能后,一旦接收到目標(biāo)IP地址不能解析的IP報(bào)文,設(shè)備立即產(chǎn)生一個(gè)黑洞路由,使得設(shè)備在一段時(shí)間內(nèi)將去往該地址的報(bào)文直接丟棄。等待黑洞路由老化時(shí)間過后,如有報(bào)文觸發(fā)則再次發(fā)起解析,如果解析成功則進(jìn)行轉(zhuǎn)發(fā),否則仍然產(chǎn)生一個(gè)黑洞路由將去往該地址的報(bào)文丟棄。這種方式能夠有效地防止IP報(bào)文的攻擊,減輕CPU的負(fù)擔(dān)。
ARP報(bào)文限速功能簡(jiǎn)介
ARP報(bào)文限速功能是指對(duì)上送CPU的ARP報(bào)文進(jìn)行限速,可以防止大量ARP報(bào)文對(duì)CPU進(jìn)行沖擊。例如,在配置了ARP Detection功能后,設(shè)備會(huì)將收到的ARP報(bào)文重定向到CPU進(jìn)行檢查,這樣引入了新的問題:如果攻擊者惡意構(gòu)造大量ARP報(bào)文發(fā)往設(shè)備,會(huì)導(dǎo)致設(shè)備的CPU負(fù)擔(dān)過重,從而造成其他功能無法正常運(yùn)行甚至設(shè)備癱瘓,這個(gè)時(shí)候可以啟用ARP報(bào)文限速功能來控制上送CPU的ARP報(bào)文的速率。
推薦用戶在配置了ARP Detection、ARP Snooping、ARP快速應(yīng)答、MFF,或者發(fā)現(xiàn)有ARP泛洪攻擊的情況下,使用ARP報(bào)文限速功能。
源MAC地址固定的ARP攻擊檢測(cè)功能簡(jiǎn)介
本特性根據(jù)ARP報(bào)文的源MAC地址進(jìn)行統(tǒng)計(jì),在5秒內(nèi),如果收到同一源MAC地址的ARP報(bào)文超過一定的閾值,則認(rèn)為存在攻擊,系統(tǒng)會(huì)將此MAC地址添加到攻擊檢測(cè)表項(xiàng)中。在該攻擊檢測(cè)表項(xiàng)老化之前,如果設(shè)置的檢查模式為過濾模式,則會(huì)打印告警信息并且將該源MAC地址發(fā)送的ARP報(bào)文過濾掉;如果設(shè)置的模式為監(jiān)控模式,則只打印告警信息,不會(huì)將該源MAC地址發(fā)送的ARP報(bào)文過濾掉。
對(duì)于網(wǎng)關(guān)或一些重要的服務(wù)器,可能會(huì)發(fā)送大量ARP報(bào)文,為了使這些ARP報(bào)文不被過濾掉,可以將這類設(shè)備的MAC地址配置成保護(hù)MAC,這樣,即使該MAC存在攻擊也不會(huì)被檢測(cè)過濾。
只對(duì)上送CPU的ARP報(bào)文進(jìn)行統(tǒng)計(jì)。
ARP報(bào)文源MAC一致性檢查功能簡(jiǎn)介
ARP報(bào)文源MAC一致性檢查功能主要應(yīng)用于網(wǎng)關(guān)設(shè)備上,防御以太網(wǎng)數(shù)據(jù)幀首部中的源MAC地址和ARP報(bào)文中的源MAC地址不同的ARP攻擊。
配置本特性后,網(wǎng)關(guān)設(shè)備在進(jìn)行ARP學(xué)習(xí)前將對(duì)ARP報(bào)文進(jìn)行檢查。如果以太網(wǎng)數(shù)據(jù)幀首部中的源MAC地址和ARP報(bào)文中的源MAC地址不同,則認(rèn)為是攻擊報(bào)文,將其丟棄;否則,繼續(xù)進(jìn)行ARP學(xué)習(xí)。
ARP主動(dòng)確認(rèn)功能簡(jiǎn)介
ARP的主動(dòng)確認(rèn)功能主要應(yīng)用于網(wǎng)關(guān)設(shè)備上,防止攻擊者仿冒用戶欺騙網(wǎng)關(guān)設(shè)備。
啟用ARP主動(dòng)確認(rèn)功能后,設(shè)備在新建或更新ARP表項(xiàng)前需進(jìn)行主動(dòng)確認(rèn),防止產(chǎn)生錯(cuò)誤的ARP表項(xiàng)。關(guān)于工作原理的詳細(xì)介紹請(qǐng)參見"ARP攻擊防范技術(shù)白皮書"。
授權(quán)ARP功能簡(jiǎn)介
所謂授權(quán)ARP(Authorized ARP),就是根據(jù)DHCP服務(wù)器生成的租約或者DHCP中繼生成的安全表項(xiàng)同步生成ARP表項(xiàng)。
使能接口的授權(quán)ARP功能后:
系統(tǒng)會(huì)啟動(dòng)接口下授權(quán)ARP表項(xiàng)的老化探測(cè)功能,可以檢測(cè)用戶的非正常下線;
系統(tǒng)會(huì)禁止該接口學(xué)習(xí)動(dòng)態(tài)ARP表項(xiàng),可以防止用戶仿冒其他用戶的IP地址或MAC地址對(duì)網(wǎng)絡(luò)進(jìn)行攻擊,保證只有合法的用戶才能使用網(wǎng)絡(luò)資源,增加了網(wǎng)絡(luò)的安全性。
ARP Detection功能簡(jiǎn)介
ARP Detection功能主要應(yīng)用于接入設(shè)備上,對(duì)于合法用戶的ARP報(bào)文進(jìn)行正常轉(zhuǎn)發(fā),否則直接丟棄,從而防止仿冒用戶、仿冒網(wǎng)關(guān)的攻擊。
ARP Detection包含三個(gè)功能:ARP報(bào)文有效性檢查、用戶合法性檢查、ARP報(bào)文強(qiáng)制轉(zhuǎn)發(fā)。
ARP報(bào)文有效性檢查
對(duì)于ARP信任端口,不進(jìn)行報(bào)文有效性檢查;對(duì)于ARP非信任端口,需要根據(jù)配置對(duì)MAC地址和IP地址不合法的報(bào)文進(jìn)行過濾??梢赃x擇配置源MAC地址、目的MAC地址或IP地址檢查模式。
對(duì)于源MAC地址的檢查模式,會(huì)檢查ARP報(bào)文中的源MAC地址和以太網(wǎng)報(bào)文頭中的源MAC地址是否一致,一致認(rèn)為有效,否則丟棄;
對(duì)于目的MAC地址的檢查模式(只針對(duì)ARP應(yīng)答報(bào)文),會(huì)檢查ARP應(yīng)答報(bào)文中的目的MAC地址是否為全0或者全1,是否和以太網(wǎng)報(bào)文頭中的目的MAC地址一致。全0、全1、不一致的報(bào)文都是無效的,無效的報(bào)文需要被丟棄;
對(duì)于IP地址檢查模式,會(huì)檢查ARP報(bào)文中的源IP和目的IP地址,全0、全1、或者組播IP地址都是不合法的,需要丟棄。對(duì)于ARP應(yīng)答報(bào)文,源IP和目的IP地址都進(jìn)行檢查;對(duì)于ARP請(qǐng)求報(bào)文,只檢查源IP地址。
用戶合法性檢查
對(duì)于ARP信任端口,不進(jìn)行用戶合法性檢查;對(duì)于ARP非信任端口,需要進(jìn)行用戶合法性檢查,以防止仿冒用戶的攻擊。
用戶合法性檢查是根據(jù)ARP報(bào)文中源IP地址和源MAC地址檢查用戶是否是所屬VLAN所在端口上的合法用戶,包括基于IP Source Guard靜態(tài)綁定表項(xiàng)的檢查、基于DHCP Snooping安全表項(xiàng)的檢查、基于802.1X安全表項(xiàng)的檢查和OUI MAC地址的檢查。
首先進(jìn)行基于IP Source Guard靜態(tài)綁定表項(xiàng)檢查。如果找到了對(duì)應(yīng)源IP地址和源MAC地址的靜態(tài)綁定表項(xiàng),認(rèn)為該ARP報(bào)文合法,進(jìn)行轉(zhuǎn)發(fā)。如果找到了對(duì)應(yīng)源IP地址的靜態(tài)綁定表項(xiàng)但源MAC地址不符,認(rèn)為該ARP報(bào)文非法,進(jìn)行丟棄。如果沒有找到對(duì)應(yīng)源IP地址的靜態(tài)綁定表項(xiàng),繼續(xù)進(jìn)行DHCP Snooping安全表項(xiàng)、802.1X安全表項(xiàng)和OUI MAC地址檢查。
在基于IP Source Guard靜態(tài)綁定表項(xiàng)檢查之后進(jìn)行基于DHCP Snooping安全表項(xiàng)、802.1X安全表項(xiàng)和OUI MAC地址檢查,只要符合三者中任何一個(gè),就認(rèn)為該ARP報(bào)文合法,進(jìn)行轉(zhuǎn)發(fā)。其中,OUI MAC地址檢查指的是,只要ARP報(bào)文的源MAC地址為OUI MAC地址,并且使能了Voice VLAN功能,就認(rèn)為是合法報(bào)文,檢查通過。
如果所有檢查都沒有找到匹配的表項(xiàng),則認(rèn)為是非法報(bào)文,直接丟棄。
ARP報(bào)文強(qiáng)制轉(zhuǎn)發(fā)
ARP報(bào)文強(qiáng)制轉(zhuǎn)發(fā)功能是將ARP非信任端口接收到的已經(jīng)通過用戶合法性檢查的ARP報(bào)文,按照一定的規(guī)則進(jìn)行轉(zhuǎn)發(fā)的防攻擊功能,此功能不對(duì)ARP信任端口接收到的通過用戶合法性檢查的ARP報(bào)文進(jìn)行限制。
對(duì)于從ARP非信任端口收到的已經(jīng)通過用戶合法性檢查的合法ARP報(bào)文的處理過程如下:
對(duì)于ARP請(qǐng)求報(bào)文,通過信任端口進(jìn)行轉(zhuǎn)發(fā);
對(duì)于ARP應(yīng)答報(bào)文,首先按照?qǐng)?bào)文中的以太網(wǎng)目的MAC地址進(jìn)行轉(zhuǎn)發(fā),若在MAC地址表中沒有查到目的MAC地址對(duì)應(yīng)的表項(xiàng),則將此ARP應(yīng)答報(bào)文通過信任端口進(jìn)行轉(zhuǎn)發(fā)。
ARP自動(dòng)掃描、固化功能簡(jiǎn)介
ARP自動(dòng)掃描功能一般與ARP固化功能配合使用:
啟用ARP自動(dòng)掃描功能后,設(shè)備會(huì)對(duì)局域網(wǎng)內(nèi)的鄰居自動(dòng)進(jìn)行掃描(向鄰居發(fā)送ARP請(qǐng)求報(bào)文,獲取鄰居的MAC地址,從而建立動(dòng)態(tài)ARP表項(xiàng))。
ARP固化功能用來將當(dāng)前的ARP動(dòng)態(tài)表項(xiàng)(包括ARP自動(dòng)掃描生成的動(dòng)態(tài)ARP表項(xiàng))轉(zhuǎn)換為靜態(tài)ARP表項(xiàng)。通過對(duì)動(dòng)態(tài)ARP表項(xiàng)的固化,可以有效的防止攻擊者修改ARP表項(xiàng)。
推薦在網(wǎng)吧這種環(huán)境穩(wěn)定的小型網(wǎng)絡(luò)中使用這兩個(gè)功能。
ARP網(wǎng)關(guān)保護(hù)功能簡(jiǎn)介
在設(shè)備上不與網(wǎng)關(guān)相連的端口上配置此功能,可以防止偽造網(wǎng)關(guān)攻擊。
在端口配置此功能后,當(dāng)端口收到ARP報(bào)文時(shí),將檢查ARP報(bào)文的源IP地址是否和配置的被保護(hù)網(wǎng)關(guān)的IP地址相同。如果相同,則認(rèn)為此報(bào)文非法,將其丟棄;否則,認(rèn)為此報(bào)文合法,繼續(xù)進(jìn)行后續(xù)處理。
ARP過濾保護(hù)功能簡(jiǎn)介
本功能用來限制端口下允許通過的ARP報(bào)文,可以防止仿冒網(wǎng)關(guān)和仿冒用戶的攻擊。
在端口配置此功能后,當(dāng)端口收到ARP報(bào)文時(shí),將檢查ARP報(bào)文的源IP地址和源MAC地址是否和允許通過的IP地址和MAC地址相同:
如果相同,則認(rèn)為此報(bào)文合法,繼續(xù)進(jìn)行后續(xù)處理;
如果不相同,則認(rèn)為此報(bào)文非法,將其丟棄。
MFF
MFF作用
在傳統(tǒng)的以太網(wǎng)組網(wǎng)方案中,為了實(shí)現(xiàn)不同客戶端主機(jī)之間的二層隔離和三層互通,通常采用在交換機(jī)上劃分VLAN的方法。但是當(dāng)彼此間需要二層隔離的用戶較多時(shí),這種方式會(huì)占用大量的VLAN資源;同時(shí),為實(shí)現(xiàn)客戶端之間三層互通,需要為每個(gè)VLAN規(guī)劃不同的IP網(wǎng)段,并配置VLAN接口的IP地址,因此劃分過多的VLAN會(huì)降低IP地址的分配效率。
為了改善這種現(xiàn)狀,MAC-Forced Forwarding(下文統(tǒng)一用"MFF"替代)為同一廣播域內(nèi)實(shí)現(xiàn)客戶端主機(jī)間的二層隔離和三層互通,提供了一種解決方案。
MFF截獲用戶的ARP請(qǐng)求報(bào)文,通過ARP代答機(jī)制,回復(fù)網(wǎng)關(guān)MAC地址的ARP應(yīng)答報(bào)文。通過這種方式,可以強(qiáng)制用戶將所有流量(包括同一子網(wǎng)內(nèi)的流量)發(fā)送到網(wǎng)關(guān),使網(wǎng)關(guān)可以監(jiān)控?cái)?shù)據(jù)流量,防止用戶之間的惡意攻擊,能更好的保障網(wǎng)絡(luò)部署的安全性。
圖 5 應(yīng)用組網(wǎng)圖
如圖7-1所示,Switch A和Switch B作為以太網(wǎng)接入節(jié)點(diǎn)(Ethernet Access Nodes,EAN),提供了客戶端主機(jī)與匯聚節(jié)點(diǎn)(Switch C)之間的連接。在以太網(wǎng)接入節(jié)點(diǎn)上配置MFF功能,可以使客戶端的數(shù)據(jù)報(bào)文交互全部通過網(wǎng)關(guān)轉(zhuǎn)發(fā),實(shí)現(xiàn)了客戶端之間的三層互通,又保證了二層數(shù)據(jù)的隔離。
MFF通常與DHCP Snooping、ARP Snooping、IP Source Guard、ARP Detection、VLAN映射等功能配合使用,在接入層交換機(jī)上實(shí)現(xiàn)客戶端的流量過濾、二層隔離和三層互通,提高接入層網(wǎng)絡(luò)的安全性。
MFF端口角色
MFF特性包括兩種端口角色:用戶端口及網(wǎng)絡(luò)端口。
用戶端口
MFF的用戶端口是指直接接入網(wǎng)絡(luò)終端用戶的端口。
用戶端口上對(duì)于不同的報(bào)文處理如下:
允許組播報(bào)文和DHCP報(bào)文通過;
對(duì)于ARP報(bào)文則上送CPU進(jìn)行處理;
若已經(jīng)學(xué)習(xí)到網(wǎng)關(guān)MAC地址,則僅允許目的MAC地址為網(wǎng)關(guān)MAC地址的單播報(bào)文通過,其他報(bào)文都將被丟棄;若沒有學(xué)習(xí)到網(wǎng)關(guān)MAC地址,目的MAC地址為網(wǎng)關(guān)MAC地址的單播報(bào)文也被丟棄。
網(wǎng)絡(luò)端口
MFF的網(wǎng)絡(luò)端口是指連接其他網(wǎng)絡(luò)設(shè)備如接入交換機(jī)、匯聚交換機(jī)或網(wǎng)關(guān)的端口。
網(wǎng)絡(luò)端口上對(duì)于不同的報(bào)文處理如下:
允許組播報(bào)文和DHCP報(bào)文通過;
對(duì)于ARP報(bào)文則上送CPU進(jìn)行處理;
拒絕其他廣播報(bào)文通過。
MFF運(yùn)行模式
MFF特性包括兩種運(yùn)行模式:手工方式和自動(dòng)方式。
手工方式
手工方式應(yīng)用于用戶靜態(tài)配置IP地址的場(chǎng)景中,這是因?yàn)樵谟脩綮o態(tài)配置IP地址時(shí),無法通過DHCP報(bào)文來獲取網(wǎng)關(guān)信息。另外,在用戶靜態(tài)配置IP時(shí),由于沒有依據(jù)進(jìn)行用戶與網(wǎng)關(guān)的映射,因此僅維護(hù)缺省網(wǎng)關(guān)的MAC地址,即,一個(gè)VLAN下僅維護(hù)一個(gè)網(wǎng)關(guān)MAC地址。
使能了手工方式后,MFF代答網(wǎng)關(guān)對(duì)用戶的ARP請(qǐng)求,以及偽造ARP請(qǐng)求探測(cè)網(wǎng)關(guān)MAC的依據(jù)都是ARP Snooping表項(xiàng)。
若在MFF學(xué)習(xí)到缺省網(wǎng)關(guān)MAC地址后,收到來自網(wǎng)關(guān)的攜帶了與記錄的MAC地址不同的源MAC地址的ARP報(bào)文,則需要更新記錄的網(wǎng)關(guān)MAC地址。
自動(dòng)方式
自動(dòng)方式應(yīng)用于用戶通過DHCP協(xié)議動(dòng)態(tài)獲取IP地址的場(chǎng)景中。DHCP Snooping功能通過偵聽DHCP ACK報(bào)文,并解析其中的Option 3字段(Router IP)來獲取網(wǎng)關(guān)IP地址。
在使能MFF自動(dòng)方式時(shí),每一個(gè)DHCP Snooping用戶綁定表項(xiàng)都應(yīng)該有相對(duì)應(yīng)的唯一網(wǎng)關(guān)IP地址。若DHCP ACK報(bào)文攜帶多個(gè)網(wǎng)關(guān)IP地址,則只記錄第一個(gè)。若學(xué)習(xí)到的用戶綁定表項(xiàng)不包含網(wǎng)關(guān)IP地址,或者沒有記錄在用戶綁定表項(xiàng)中,則自動(dòng)方式會(huì)根據(jù)當(dāng)前VLAN記錄的第一個(gè)網(wǎng)關(guān)作為用戶網(wǎng)關(guān)應(yīng)答該用戶的ARP請(qǐng)求,除非其請(qǐng)求的是一個(gè)已知的網(wǎng)關(guān)地址。
同時(shí),針對(duì)每一個(gè)網(wǎng)關(guān)IP地址,從第一個(gè)與其對(duì)應(yīng)的用戶綁定表項(xiàng)中獲取用戶IP地址及MAC地址,封裝并偽造ARP請(qǐng)求,用于探測(cè)網(wǎng)關(guān)的MAC地址。
自動(dòng)方式下,一個(gè)VLAN內(nèi)最多可以學(xué)習(xí)并維護(hù)20個(gè)網(wǎng)關(guān)信息,超過此限制的網(wǎng)關(guān)不再學(xué)習(xí)及處理。網(wǎng)關(guān)IP獲取之后不會(huì)進(jìn)行更新,即網(wǎng)關(guān)信息一旦生成就不會(huì)老化,除非去使能MFF。
若在MFF學(xué)習(xí)到網(wǎng)關(guān)MAC地址后,收到來自網(wǎng)關(guān)的ARP報(bào)文,攜帶了與記錄MAC地址不同的源MAC地址,則需要更新記錄的網(wǎng)關(guān)MAC地址。
MFF工作機(jī)制
用戶之間的三層互通是通過類似代理ARP的ARP代答機(jī)制保證。另外,這種代答機(jī)制也在一定程度上減少了網(wǎng)絡(luò)側(cè)和用戶側(cè)之間的廣播報(bào)文數(shù)量。
針對(duì)ARP報(bào)文,MFF具體進(jìn)行以下處理:
代答用戶ARP請(qǐng)求。替代網(wǎng)關(guān)給用戶主機(jī)回應(yīng)ARP報(bào)文,使用戶之間的報(bào)文交互都通過網(wǎng)關(guān)進(jìn)行三層轉(zhuǎn)發(fā)。這里,用戶主機(jī)的ARP請(qǐng)求,既包含對(duì)于網(wǎng)關(guān)的請(qǐng)求,也包含對(duì)于其他用戶IP的ARP請(qǐng)求。
代答網(wǎng)關(guān)ARP請(qǐng)求。替代用戶主機(jī)給網(wǎng)關(guān)回應(yīng)ARP報(bào)文。如果網(wǎng)關(guān)請(qǐng)求的表項(xiàng)在MFF設(shè)備上存在,就根據(jù)表項(xiàng)進(jìn)行代答。如果表項(xiàng)還沒有建立,則轉(zhuǎn)發(fā)請(qǐng)求。以便達(dá)到減少?gòu)V播的目的。
轉(zhuǎn)發(fā)用戶主機(jī)和網(wǎng)關(guān)發(fā)來的ARP應(yīng)答。
監(jiān)聽網(wǎng)絡(luò)中的ARP報(bào)文。更新網(wǎng)關(guān)IP地址和MAC地址對(duì)應(yīng)表并廣播。
聯(lián)系客服