筆者在工作中,經(jīng)常碰到有用戶(hù)反映IP地址沖突、上網(wǎng)時(shí)斷時(shí)續(xù)、上網(wǎng)速度時(shí)快時(shí)慢等問(wèn)題。通過(guò)解決問(wèn)題,發(fā)現(xiàn)主要原因是部分用戶(hù)感染了ARP病毒,給交換機(jī)造成了巨大負(fù)擔(dān),導(dǎo)致交換機(jī)無(wú)法正常工作,雖然查殺了ARP病毒后,問(wèn)題得到了解決,卻已經(jīng)造成其他用戶(hù)較長(zhǎng)時(shí)間無(wú)法正常辦公。只有對(duì)癥下藥,發(fā)揮交換機(jī)自身防護(hù)功能,讓交換機(jī)免疫ARP攻擊,才能最小程度地減小影響,本文從ARP工作原理入手,分析ARP攻擊類(lèi)型及原理,交換機(jī)防范ARP攻擊技術(shù),并以華為交換機(jī)為例,通過(guò)具體配置方法實(shí)現(xiàn)交換機(jī)對(duì)ARP攻擊免疫。
圖1 同一網(wǎng)段HOSTA與HOSTB通信
圖2 其他終端收到HOSTA請(qǐng)求報(bào)文
ARP(Address Resolution Protocol),地址解析協(xié)議,其基本功能就是知道目標(biāo)設(shè)備的IP地址,查詢(xún)目標(biāo)設(shè)備的MAC地址。在TCP/IP網(wǎng)絡(luò)環(huán)境下,每個(gè)終端或三層設(shè)備正常均有一個(gè)IP地址,這是標(biāo)識(shí)終端或三層設(shè)備的邏輯地址,位于三層,為了正常通信須知道終端或三層設(shè)備的二層地址即MAC地址,這樣就存在將IP地址解析為MAC地址的問(wèn)題,而這個(gè)“翻譯官”就是ARP協(xié)議。ARP地址解析過(guò)程由ARP請(qǐng)求和ARP應(yīng)答兩個(gè)過(guò)程完成。
如圖1所示,HOSTA和HOSTB在同一網(wǎng)段,HOSTA要 和HOSTB通信,HOSTA首先查看自己的ARP緩存表,查看表中是否有HOSTB的IP和MAC地址相應(yīng)的ARP表項(xiàng),如果存在,則HOSTA直接利用ARP表中HOSTB的MAC地址,對(duì)IP數(shù)據(jù)包進(jìn)行封裝,并將數(shù)據(jù)包發(fā)送給HOSTB,如果HOSTA在ARP表中找不到HOSTB對(duì)應(yīng)的MAC地址,則先緩存該報(bào)文數(shù)據(jù),然后以廣播方式發(fā)送一個(gè)ARP請(qǐng)求報(bào)文(即ARP Request報(bào)文)。ARP請(qǐng)求報(bào)文中的發(fā)送端IP地址和發(fā)送端MAC地址為HOSTA的IP地址和MAC地址,目標(biāo)IP地址為HOSTB的IP地址,目標(biāo)MAC地址為全0的MAC地址。由于ARP請(qǐng)求報(bào)文以廣播方式發(fā)送,該網(wǎng)段上的所有終端都可以接收到該請(qǐng)求,HOSTB發(fā)現(xiàn)ARP請(qǐng)求報(bào)文中的IP地址是自己的IP地址,就會(huì)對(duì)該ARP請(qǐng)求報(bào)文予以回應(yīng)。
如圖2所示,網(wǎng)絡(luò)中的其他終端在收到HOSTA的請(qǐng)求報(bào)文后,會(huì)將ARP請(qǐng)求報(bào)文中的HOSTA的IP地址和MAC地址存入自己的ARP緩存表中,同時(shí)將請(qǐng)求報(bào)文中的IP地址跟自己的IP地址進(jìn)行對(duì)比,當(dāng)IP地址不同時(shí),則直接丟棄該報(bào)文。HOSTB接收到該ARP請(qǐng)求報(bào)文后,發(fā)現(xiàn)報(bào)文中的IP地址與自己的IP地址相同,會(huì)以單播方式發(fā)送ARP響應(yīng)報(bào)文(即ARP Reply報(bào)文)給HOSTA,HOSTA收到ARP響應(yīng)報(bào)文后,將HOSTB的MAC地址加入到自己的ARP緩存表中。
如果每次終端通信前都要廣播發(fā)送一個(gè)ARP請(qǐng)求報(bào)文的話(huà),網(wǎng)絡(luò)中所有終端都必須接收和處理這個(gè)ARP請(qǐng)求報(bào)文,會(huì)極大地增加網(wǎng)絡(luò)負(fù)擔(dān)。為解決這個(gè)問(wèn)題,每個(gè)終端都維護(hù)著一個(gè)高速緩存,在這個(gè)高速緩存中,存放著獲得的IP地址到MAC地址的映射關(guān)系,每次通信時(shí),各終端都會(huì)在各自的高速緩存中查找目標(biāo)IP地址所對(duì)應(yīng)的MAC地址,如果ARP緩存中有對(duì)應(yīng)的MAC地址,終端就不會(huì)再發(fā)送ARP請(qǐng)求報(bào)文,如果ARP緩存中沒(méi)有對(duì)應(yīng)的MAC地址時(shí),終端才會(huì)發(fā)送廣播的ARP請(qǐng)求報(bào)文。當(dāng)然,這個(gè)映射關(guān)系不可能永遠(yuǎn)保持不變或一直存在,在每個(gè)網(wǎng)絡(luò)設(shè)備或終端的高速緩存中都設(shè)有一個(gè)動(dòng)態(tài)ARP表項(xiàng)老化超時(shí)定時(shí)器(不同的網(wǎng)絡(luò)設(shè)備或操作系統(tǒng)中這個(gè)老化時(shí)間不同,在Windows 2010、Windows 7等環(huán)境中,該值是2分鐘,在思科網(wǎng)絡(luò)設(shè)備中,該值一般是5分鐘,在華為網(wǎng)絡(luò)設(shè)備中,該值一般是20分鐘。在操作系統(tǒng)中,可以通過(guò)修改注冊(cè)表修改該值,在網(wǎng)絡(luò)設(shè)備中可使用相關(guān)命令修改該值),當(dāng)時(shí)間達(dá)到動(dòng)態(tài)ARP表項(xiàng)的老化超時(shí)時(shí)間,網(wǎng)絡(luò)設(shè)備或終端會(huì)進(jìn)行老化探測(cè),如果探測(cè)失敗,則刪除該映射表項(xiàng),否則,保留該表項(xiàng)。
ARP表項(xiàng)老化之前,接口會(huì)發(fā)送ARP老化探測(cè)報(bào)文,這個(gè)老化探測(cè)報(bào)文可以是單播報(bào)文,也可以是廣播報(bào)文。缺省情況下,接口以廣播模式發(fā)送ARP老化探測(cè)報(bào)文,在華為網(wǎng)絡(luò)設(shè)備中,默認(rèn)探測(cè)次數(shù)為3次,除原有的老化時(shí)間探測(cè),交換機(jī)會(huì)在1/2時(shí)間點(diǎn)和3/4時(shí)間點(diǎn)發(fā)送探測(cè)報(bào)文,這兩個(gè)探測(cè)時(shí)間點(diǎn)的探測(cè)次數(shù)都為3次且不能修改,在這兩個(gè)時(shí)間點(diǎn),如果接收到響應(yīng)報(bào)文則老化時(shí)間初始化,未接收到則會(huì)在達(dá)到老化時(shí)間后,每隔5s發(fā)送一個(gè)探測(cè)報(bào)文,如果3次沒(méi)有收到應(yīng)答消息則刪除該表項(xiàng)。
動(dòng)態(tài)ARP表項(xiàng)由ARP協(xié)議通過(guò)ARP報(bào)文自動(dòng)生成和維護(hù),可被老化、被靜態(tài)ARP表項(xiàng)覆蓋和被更新,當(dāng)?shù)竭_(dá)老化時(shí)間、接口不工作時(shí)會(huì)刪除相應(yīng)的動(dòng)態(tài)ARP表項(xiàng)。靜態(tài)ARP一般由管理人員手動(dòng)配置IP地址和MAC的映射關(guān)系,不可被老化、更新。
ARP協(xié)議工作原理簡(jiǎn)單,網(wǎng)絡(luò)應(yīng)用簡(jiǎn)單便捷,是網(wǎng)絡(luò)通信的根本協(xié)議,但ARP協(xié)議缺乏有效的安全機(jī)制,也就給攻擊者提供了機(jī)會(huì)。ARP攻擊按攻擊方式分為ARP泛洪攻擊和ARP欺騙攻擊。
終端在轉(zhuǎn)發(fā)IP報(bào)文時(shí),如果高速緩存中沒(méi)有對(duì)應(yīng)的ARP表項(xiàng),需要發(fā)送ARP請(qǐng)求,攻擊者利用這一點(diǎn),發(fā)送大量IP地址不可達(dá)報(bào)文,侵占網(wǎng)絡(luò)設(shè)備和用戶(hù)終端的ARP緩存資源,導(dǎo)致資源耗盡,大量的ARP請(qǐng)求報(bào)文還會(huì)造成網(wǎng)絡(luò)帶寬阻塞,從而使正常用戶(hù)業(yè)務(wù)受到影響,嚴(yán)重時(shí)導(dǎo)致設(shè)備重啟和網(wǎng)絡(luò)癱瘓。如圖3所示,ARP泛洪攻擊可細(xì)分為拒絕服務(wù)攻擊、緩存溢出攻擊和掃描攻擊3種。
拒絕服務(wù)攻擊流程如下:攻擊者發(fā)送大量偽造的ARP請(qǐng)求、應(yīng)答報(bào)文報(bào)文,造成網(wǎng)絡(luò)設(shè)備資源長(zhǎng)期忙于ARP報(bào)文處理,影響其他業(yè)務(wù)處理,正常用戶(hù)請(qǐng)求ARP或者其他業(yè)務(wù)報(bào)文被阻塞,從而導(dǎo)致業(yè)務(wù)中斷。
緩存溢出攻擊流程如下:攻擊者向網(wǎng)絡(luò)設(shè)備發(fā)送大量偽造的ARP請(qǐng)求報(bào)文或免費(fèi)ARP報(bào)文,超出網(wǎng)絡(luò)設(shè)備ARP高速緩存空間,ARP緩存表溢出,無(wú)法緩存正常的ARP表項(xiàng),從而導(dǎo)致業(yè)務(wù)流量中斷。
掃描攻擊流程如下:攻擊者掃描本網(wǎng)段終端或其他網(wǎng)段時(shí),網(wǎng)絡(luò)設(shè)備在發(fā)送回應(yīng)報(bào)文前,會(huì)查找ARP表項(xiàng),如果目的MAC地址不存在,網(wǎng)絡(luò)設(shè)備會(huì)向上層發(fā)送消息,要求上層發(fā)送ARP請(qǐng)求報(bào)文到其他網(wǎng)段以獲得目的端的MAC地址。大量的掃描報(bào)文會(huì)導(dǎo)致大量的消息,導(dǎo)致網(wǎng)絡(luò)設(shè)備資源浪費(fèi),影響對(duì)其他業(yè)務(wù)的處理,從而阻礙正常報(bào)文轉(zhuǎn)發(fā),正常用戶(hù)請(qǐng)求ARP或者其他業(yè)務(wù)報(bào)文被阻塞,從而導(dǎo)致業(yè)務(wù)中斷。
圖3 ARP泛洪攻擊類(lèi)型
圖4 仿冒用戶(hù)終端流程
圖5 仿冒網(wǎng)關(guān)流程
ARP協(xié)議規(guī)定終端或網(wǎng)絡(luò)設(shè)備在收到ARP響應(yīng)包時(shí),如果有此項(xiàng)映射信息則進(jìn)行刷新時(shí),若無(wú)此項(xiàng)映射信息,則進(jìn)行記錄。攻擊者利用這個(gè)特點(diǎn),發(fā)送大量偽造的IP地址和MAC地址映射ARP請(qǐng)求報(bào)文,惡意修改網(wǎng)關(guān)或網(wǎng)絡(luò)內(nèi)其他終端的ARP表項(xiàng),造成用戶(hù)或網(wǎng)絡(luò)的報(bào)文轉(zhuǎn)發(fā)異常。ARP欺騙攻擊可細(xì)分為仿冒用戶(hù)終端、仿冒網(wǎng)關(guān)2種。
仿冒用戶(hù)終端流程如圖4所示:三層網(wǎng)關(guān)發(fā)送ARP廣播請(qǐng)求,詢(xún)問(wèn)用戶(hù)A的地址,用戶(hù)A發(fā)送ARP回應(yīng)報(bào)文,三層網(wǎng)關(guān)會(huì)在ARP緩存中建立用戶(hù)A的ARP映射表項(xiàng),攻擊者發(fā)出仿冒用戶(hù)A的ARP回應(yīng)報(bào)文,報(bào)文中的MAC地址可以攻擊MAC地址,也可以是網(wǎng)絡(luò)中其他用戶(hù)地址甚至是不存在的地址。三層網(wǎng)關(guān)中的用戶(hù)A合法的ARP映射表項(xiàng)被修改為仿冒的ARP映射表項(xiàng)。這種正常發(fā)送給用戶(hù)A的數(shù)據(jù)包會(huì)轉(zhuǎn)發(fā)給攻擊者,使用其他用戶(hù)地址,則流量被轉(zhuǎn)發(fā)到其他用戶(hù),如果仿冒的是不存在的地址,則流量會(huì)在網(wǎng)絡(luò)中被阻斷。
仿冒網(wǎng)關(guān)流程如圖5所示:用戶(hù)A廣播ARP請(qǐng)求,詢(xún)問(wèn)網(wǎng)關(guān)的MAC地址,網(wǎng)關(guān)回應(yīng)自己的MAC地址。用戶(hù)A終端建立合法網(wǎng)關(guān)的ARP表項(xiàng),用戶(hù)B發(fā)出仿冒的網(wǎng)關(guān)ARP表項(xiàng),可以是自己的MAC地址,也可以是網(wǎng)絡(luò)中其他用戶(hù)地址甚至是不存在的地址。用戶(hù)A終端合法網(wǎng)關(guān)的ARP表項(xiàng)被修改為仿冒的ARP表項(xiàng),用戶(hù)A的流量轉(zhuǎn)發(fā)到用戶(hù)B,如果仿冒的是其他用戶(hù)的地址,則流量被轉(zhuǎn)發(fā)到其他用戶(hù),如果仿冒的是不存在的地址,則流量在網(wǎng)絡(luò)中被阻斷。
定位ARP攻擊源時(shí),需先排除鏈路、環(huán)路或路由問(wèn)題,網(wǎng)絡(luò)受到了ARP攻擊時(shí),用戶(hù)終端會(huì)出現(xiàn)時(shí)斷時(shí)續(xù)、上網(wǎng)速度時(shí)快時(shí)慢、業(yè)務(wù)中斷或無(wú)法上網(wǎng),Ping網(wǎng)關(guān)和其他用戶(hù)終端時(shí)延變長(zhǎng)、丟包率高或不通等現(xiàn)象,交換機(jī)會(huì)出現(xiàn)CPU占用率較高、外連設(shè)備掉線(xiàn)、設(shè)備主備狀態(tài)震蕩、設(shè)備端口指示燈閃爍速度快等現(xiàn)象,可以在網(wǎng)絡(luò)中抓出大量ARP垃圾數(shù)據(jù)包,利用交換機(jī)定位ARP攻擊接口和排除ARP故障流程圖如圖6所示,通過(guò)對(duì)接口ARP報(bào)文的統(tǒng)計(jì)數(shù)量可以快速找到攻擊源所在的交換機(jī)端口。
針對(duì)不同的ARP攻擊技術(shù),交換機(jī)采取不同的防范技術(shù)。
目前交換機(jī)針對(duì)ARP泛洪攻擊的方法主要以抑制攻擊源的ARP包為主,一般在交換機(jī)設(shè)置一個(gè)防ARP攻擊閾值,當(dāng)設(shè)定時(shí)間段內(nèi)交換機(jī)接收到的ARP報(bào)文超過(guò)閾值時(shí),交換機(jī)會(huì)對(duì)該MAC進(jìn)行限制或直接對(duì)所在交換機(jī)端口進(jìn)行阻斷,阻斷時(shí)間內(nèi)對(duì)該MAC地址或端口所發(fā)的ARP包不進(jìn)行任何處理,直接丟棄,以保證網(wǎng)絡(luò)通暢。
圖6 利用交換機(jī)定位ARP攻擊接口和排除ARP故障流程圖
交換機(jī)防范的具體常用措施有:一是針對(duì)源MAC地址、源IP地址、全局、VLAN和接口進(jìn)行ARP報(bào)文限速報(bào)文限速。網(wǎng)絡(luò)中一旦有ARP攻擊,就會(huì)產(chǎn)生大量ARP包,會(huì)增加交換機(jī)CPU負(fù)荷,為了防止這種情況出現(xiàn),可以在交換機(jī)上配置ARP報(bào)文速率抑制,配置后,交換機(jī)會(huì)對(duì)接到的ARP報(bào)文進(jìn)行數(shù)量統(tǒng)計(jì),如果在規(guī)定時(shí)間內(nèi),接收到的ARP報(bào)文數(shù)量超出了配置的閾值,交換機(jī)不會(huì)處理超出部分的ARP報(bào)文,將交換機(jī)處理的ARP報(bào)文數(shù)量限制在一個(gè)合理的范圍內(nèi),可以有效減輕交換機(jī)CPU的處理壓力;二是針對(duì)源IP地址、全局、VLAN和接口進(jìn)行ARP Miss報(bào)文限速。如果交換機(jī)收到大量目標(biāo)IP地址不能解析的IP報(bào)文時(shí),會(huì)觸發(fā)交換機(jī)發(fā)送大量的ARP Miss報(bào)文,也會(huì)給交換機(jī)CPU造成很大負(fù)荷,同時(shí)嚴(yán)重消耗目的網(wǎng)絡(luò)的帶寬資源,對(duì)ARP Miss報(bào)文進(jìn)行限速也是非常必要的,同限制ARP報(bào)文一樣,在規(guī)定時(shí)間內(nèi),如果ARP Miss報(bào)文的數(shù)量超過(guò)了配置的閾值,交換機(jī)則不會(huì)處理超出部分的ARP Miss消息;三是修改ARP表項(xiàng)的老化時(shí)間。當(dāng)觸發(fā)交換ARP Miss報(bào)文時(shí),會(huì)生成臨時(shí)ARP表項(xiàng),同時(shí)向目標(biāo)終端發(fā)送ARP請(qǐng)求報(bào)文,尋求目標(biāo)終端的ARP響應(yīng)報(bào)文,以確認(rèn)目標(biāo)終端是否存在,交換機(jī)在收到ARP應(yīng)答報(bào)文前,在臨時(shí)ARP表項(xiàng)老化時(shí)間內(nèi),交換機(jī)將不會(huì)處理收到的ARP無(wú)效報(bào)文且不會(huì)觸發(fā)ARP Miss報(bào)文,只有在收到ARP應(yīng)答報(bào)文后,才會(huì)將正確的ARP表項(xiàng)來(lái)更新臨時(shí)ARP表項(xiàng)。當(dāng)超過(guò)配置的老化時(shí)間,仍未收到ARP應(yīng)答報(bào)文,交換機(jī)就會(huì)清除臨時(shí)ARP表項(xiàng),所以,可以通過(guò)修改交換機(jī)表項(xiàng)的老化時(shí)間來(lái)控制ARP Miss報(bào)文的觸發(fā)時(shí)間,適當(dāng)調(diào)大可以有效減少ARP Miss報(bào)文數(shù)量;四是針對(duì)接口的ARP表項(xiàng)進(jìn)行限制。一個(gè)交換機(jī)可以緩存的ARP數(shù)量有限,哪怕遭到一個(gè)或幾個(gè)用戶(hù)終端的攻擊都會(huì)造成整個(gè)交換機(jī)的ARP緩存溢出,從而造成整個(gè)網(wǎng)絡(luò)癱瘓,故對(duì)這一個(gè)或幾個(gè)用戶(hù)終端端口的ARP表項(xiàng)數(shù)量進(jìn)行限制是非常必要的,這樣,當(dāng)指定接口下的動(dòng)態(tài)ARP表項(xiàng)達(dá)到配置的最大數(shù)量后,將不允許增加新的ARP表項(xiàng)。
防范ARP欺騙攻擊有很多方法,比較常用的方法有兩種:一是交換機(jī)正常關(guān)閉ARP學(xué)習(xí)功能,同時(shí)對(duì)正常用戶(hù)的IP地址和MAC地址進(jìn)行綁定,這樣,交換機(jī)就不會(huì)自動(dòng)刷新ARP表,只要是同IP地址和MAC綁定表不一致的報(bào)文都會(huì)被丟棄;二是交換機(jī)發(fā)送免費(fèi)報(bào)文,免費(fèi)ARP報(bào)文就是廣播正確的ARP信息,使得收到此報(bào)文的終端強(qiáng)制學(xué)習(xí),以防止被欺騙,還可以有效防止局域網(wǎng)內(nèi)IP地址沖突。
交換機(jī)防范的具體常用措施有:一是使用靜態(tài)ARP和禁止接口學(xué)習(xí)ARP表項(xiàng)。在用戶(hù)終端比較少的情況下或?qū)W(wǎng)絡(luò)中比較重要的用戶(hù)終端和網(wǎng)絡(luò)設(shè)備時(shí),為防止ARP攻擊,可以采取靜態(tài)ARP,即手動(dòng)配置IP地址和MAC地址之間的映射關(guān)系,在這種情況下,可以禁止接口學(xué)習(xí)ARP表項(xiàng),交換機(jī)將不會(huì)處理新的ARP表項(xiàng),可以保護(hù)重要用戶(hù)和網(wǎng)絡(luò)設(shè)備;二是動(dòng)態(tài)ARP檢測(cè)(DAI:Dynamic ARP Inspection)。ARP攻擊的主要目的之一就是竊取合法用戶(hù)的數(shù)據(jù),為防止這種攻擊,一般在交換機(jī)上使能動(dòng)態(tài)ARP檢測(cè)DAI功能,交換機(jī)會(huì)將ARP報(bào)文對(duì)應(yīng)的源IP、源MAC、接口、VLAN信息和緩存表中的信息進(jìn)行比較,如果信息相匹配,則該用戶(hù)為合法用戶(hù),否則就被認(rèn)定為攻擊,丟棄該ARP報(bào)文;三是發(fā)送ARP免費(fèi)報(bào)文。這主要針對(duì)仿冒網(wǎng)關(guān)的ARP攻擊,避免其他用戶(hù)終端ARP表中記錄錯(cuò)誤的網(wǎng)關(guān)地址映射,造成其他用戶(hù)終端的正常數(shù)據(jù)不能被網(wǎng)關(guān)接收,在交換機(jī)上配置發(fā)送免費(fèi)ARP報(bào)文的功能,用來(lái)定時(shí)更新合法用戶(hù)的ARP表項(xiàng),使得合法用戶(hù)ARP表項(xiàng)中記錄的是正確的網(wǎng)關(guān)地址映射關(guān)系;四是ARP報(bào)文內(nèi)MAC地址一致性檢查。主要對(duì)要學(xué)習(xí)的ARP報(bào)文進(jìn)行一致性檢查,是交換機(jī)對(duì)收到的用戶(hù)終端ARP報(bào)文和收到的該用戶(hù)的正常數(shù)據(jù)報(bào)文進(jìn)行比對(duì),如果以正常數(shù)據(jù)報(bào)文首部中的源/目的MAC地址和ARP報(bào)文中的源/目的MAC地址不同,則認(rèn)為是攻擊報(bào)文,將其丟棄不予處理,否則,則對(duì)ARP報(bào)文進(jìn)行學(xué)習(xí);五是ARP報(bào)文合法性檢查。為防止非法ARP報(bào)文攻擊,交換機(jī)對(duì)ARP報(bào)文中的MAC地址和IP地址進(jìn)行分析,對(duì)認(rèn)為不合法的ARP報(bào)文進(jìn)行過(guò)濾,一般對(duì)ARP應(yīng)答報(bào)文的源IP地址和目的IP地址進(jìn)行合法性檢查,對(duì)ARP請(qǐng)求報(bào)文的源IP地址進(jìn)行合法性檢查,一般認(rèn)為ARP報(bào)文中的源IP和目的IP地址,全0、全1或者組播IP地址不正常時(shí)視為不合法ARP報(bào)文。對(duì)ARP報(bào)文中的源MAC地址和正常數(shù)據(jù)報(bào)的源MAC地址進(jìn)行比對(duì),一致則為合法,不一致則為不合法。對(duì)ARP應(yīng)答報(bào)文中的目的MAC地址是否和以太網(wǎng)數(shù)據(jù)報(bào)文目的MAC地址進(jìn)行比對(duì),一致則認(rèn)為合法,不一致則為不合法;六是ARP表項(xiàng)嚴(yán)格學(xué)習(xí)。這主要是針對(duì)仿冒用戶(hù)的ARP攻擊,為避免攻擊者假冒正常用戶(hù)向交換機(jī)發(fā)送ARP請(qǐng)求報(bào)文,交換機(jī)可使其具有嚴(yán)格表項(xiàng)學(xué)習(xí)功能,配置該功能后,交換機(jī)將不處理任何來(lái)自用戶(hù)終端的ARP請(qǐng)求報(bào)文,只有在交換機(jī)向用戶(hù)終端發(fā)送ARP請(qǐng)求報(bào)文,接收到用戶(hù)終端的ARP響應(yīng)報(bào)文才觸發(fā)交換機(jī)學(xué)習(xí)ARP;七是配置DHCP觸發(fā)ARP學(xué)習(xí)。在一般局域網(wǎng)環(huán)境下,交換機(jī)除正常的數(shù)據(jù)交換功能外,還具備DHCP功能,當(dāng)DHCP用戶(hù)數(shù)目較多時(shí),交換機(jī)會(huì)處理巨量的ARP表項(xiàng),對(duì)交換機(jī)性能和網(wǎng)絡(luò)帶寬造成巨大負(fù)荷,為了避免此問(wèn)題,可在交換機(jī)上使其具有DHCP觸發(fā)ARP學(xué)習(xí)功能,當(dāng)DHCP服務(wù)器給用戶(hù)分配了IP地址,網(wǎng)關(guān)設(shè)備會(huì)根據(jù)VLANIF接口上收到的DHCP ACK報(bào)文直接生成該用戶(hù)的ARP表項(xiàng),較大程度地減少了ARP報(bào)文的交互。
以華為交換機(jī)為例,所有初始配置界面均為系統(tǒng)視圖,在用戶(hù)視圖執(zhí)行命令systemview,可進(jìn)入系統(tǒng)視圖,配置中H-H-H為MAC地址,X.X.X.X為IP地址,Y為子網(wǎng)掩碼,***為設(shè)定數(shù)值,N/A為接口,[ ]中為可選項(xiàng),{ }為必選項(xiàng),|為多選項(xiàng)。
(1)配置ARP報(bào)文限速,可根據(jù)MAC地址、源IP地址、針對(duì)全局、VLAN和接口進(jìn)行限速。
根據(jù)MAC地址進(jìn)行限速,配置方法如下:執(zhí)行命令arp speed-limit source-mac H-H-H maximum***,配置根據(jù)源MAC地址進(jìn)行ARP報(bào)文限速的限速值。
根據(jù)源IP地址進(jìn)行限速,配置方法如下:執(zhí)行命令arp speed-limit source-ip X.X.X.X maximum***,配置對(duì)指定IP地址用戶(hù)的ARP報(bào)文進(jìn)行限速的限速值,正常取值范圍0-16384。
針對(duì)全局、VLAN和接口進(jìn)行限速,配置方法如下:執(zhí)行命令arp anti-attack ratelimit enable,使能 ARP 報(bào)文限速功能,需進(jìn)入VLAN和接口模式。執(zhí)行命令arp antiattack rate-limit packet***[interval interval-value|block-timer***],配置ARP報(bào)文的限速值、限速時(shí)間,以及當(dāng)某個(gè)接口的ARP報(bào)文超過(guò)限速值時(shí),在后續(xù)一段時(shí)間內(nèi)持續(xù)丟棄該接口下收到的所有ARP報(bào)文的功能(即開(kāi)啟黑洞模式)。
(2)配置ARP Miss消息限速,可以根據(jù)源IP地址進(jìn)行配置。
根據(jù)源IP地址進(jìn)行限速,配置方法如下:執(zhí)行命令arp-miss speed-limit source-ip X.X.X.X mask Y maximum *** [ noneblock|block timer *** ]。
針對(duì)全局、VLAN和接口進(jìn)行限速,配置方法如下:執(zhí)行命令arp-miss anti-attack rate-limit enable,使能 ARP Miss消息限速功能,在VLAN和接口模式下需進(jìn)入相應(yīng)接口。
執(zhí)行命令arp-miss antiattack rate-limit packet *** [interval ***],配置 ARP Miss消息的限速值和限速時(shí)間。
執(zhí)行命令arp-miss antiattack rate-limit alarm threshold ***,配置ARP Miss消息限速丟棄告警閾值。
(3)配置臨時(shí)ARP表項(xiàng)的老化時(shí)間,其配置方法如下。
執(zhí)行命令interface interface-type N/A,進(jìn)入接口視圖。
執(zhí)行命令arp-fake expire-time***,配 置 臨 時(shí)ARP表項(xiàng)的老化時(shí)間。
(4)配置ARP表項(xiàng)嚴(yán)格學(xué)習(xí),可在全局或接口模式下進(jìn)行配置。
全局使能,配置方法如下:執(zhí)行命令arp learning strict,配置全局ARP表項(xiàng)嚴(yán)格學(xué)習(xí)功能。
接口使能,配置方法如下:執(zhí)行命令interface interfacetype N/A,進(jìn)入接口視圖,支持的接口類(lèi)型包括VLANIF接口、三層以太網(wǎng)接口和以太網(wǎng)子接口。
執(zhí)行命令arp learning strict{force-enable|forcedisable|trust},配置接口的ARP表項(xiàng)嚴(yán)格學(xué)習(xí)功能。
(5)配置基于接口的ARP表項(xiàng)限制,可以基于二層以太網(wǎng)接口、三層接口和以太網(wǎng)子接口進(jìn)行配置,配置方法如下。
執(zhí)行命令interface interface-type N/A,進(jìn) 入接口視圖。執(zhí)行命令arplimit vlan vlan-id1[to vlanid2] maximum***,配置基于二層以太網(wǎng)接口的ARP表項(xiàng)限制。(執(zhí)行命令arp-limit maximum ***,配置基于三層接口或以太網(wǎng)子接口ARP表項(xiàng)限制)。
(6)配置禁止接口學(xué)習(xí)ARP表項(xiàng),配置方法如下。
執(zhí)行命令interface vlanif N/A,進(jìn)入VLANIF接口視圖。執(zhí)行命令arp learning disable,禁止接口學(xué)習(xí)動(dòng)態(tài)ARP表項(xiàng)。
(1)配置ARP表項(xiàng)固化,可以在全局或接口使能該功能。
在全局使能配置方法如下:執(zhí)行命令arp anti-attack entry-check{fixed-mac|fixed-all|send-ack}enable。
在接口使能配置方法如下:執(zhí)行命令interface vlanif N/A,進(jìn)入VLANIF接口視圖。執(zhí)行命令arp antiattack entry-check{fixedmac|fixed-all|send-ack}enable。
(2)配置動(dòng)態(tài)ARP檢測(cè),交換機(jī)使能該功能的配置方法如下。
執(zhí)行命令interface interface-type N/A,進(jìn)入接口視圖。執(zhí)行命令vlan vlanid,進(jìn)入VLAN視圖。在接口視圖或VLAN視圖中執(zhí)行命令arp anti-attack check user-bind enable,使能動(dòng)態(tài)ARP檢測(cè)功能。在接口視圖下執(zhí)行命令arp anti-attack check user-bind alarm threshold***,配置動(dòng)態(tài)ARP檢測(cè)丟棄報(bào)文告警閾值。
(3)配置ARP防網(wǎng)關(guān)沖突,交換機(jī)使能該功能的配置方法如下。
執(zhí)行命令arp anti-attack gateway-duplicate enable,使能ARP防網(wǎng)關(guān)沖突功能。
(4)配置發(fā)送ARP免費(fèi)報(bào)文,交換機(jī)使能該功能的配置方法如下。
執(zhí)行命令arp gratuitousarp send enable,使能發(fā)送免費(fèi)ARP報(bào)文的功能。執(zhí)行命令arp gratuitous-arp send interval***,配置發(fā)送免費(fèi)ARP報(bào)文的時(shí)間間隔。
(5)配置ARP報(bào)文內(nèi)MAC地址一致性檢查,交換機(jī)使能該功能的配置方法如下。
執(zhí)行命令interface interface-type N/A,進(jìn)入接口視圖。執(zhí)行命令arp validate{ sourcemac|destination-mac },使能ARP報(bào)文內(nèi)MAC地址一致性檢查功能。
(6)配置ARP報(bào)文合法性檢查,交換機(jī)使能該功能的配置方法如下。
執(zhí)行命令arp anti-attack packet-check{ip|dst-mac|sender-mac},使能ARP 報(bào)文合法性檢查功能,并指定ARP報(bào)文合法性檢查項(xiàng)。
(7)配置ARP表項(xiàng)嚴(yán)格學(xué)習(xí),可以全局、接口使能該功能。
全局使能配置方法如下:執(zhí)行命令arp learning strict,配置全局ARP表項(xiàng)嚴(yán)格學(xué)習(xí)功能。在接口使能配置方法如下:執(zhí)行命令interface interface-type N/A,進(jìn) 入接口視圖。執(zhí)行命令arp learning strict{force-enable|force-disable|trust},配置接口的ARP表項(xiàng)嚴(yán)格學(xué)習(xí)功能。
(8)配置DHCP觸發(fā)ARP學(xué)習(xí),交換機(jī)使能該功能的配置方法如下。
執(zhí)行命令interface vlanif N/A,進(jìn)入VLANIF接口視圖。
執(zhí)行命令arp learning dhcp-trigger,使能 DHCP 觸發(fā)ARP學(xué)習(xí)功能。