動態ARP表項學習
大多數情況下,設備可以通過ARP協議動態學習和更新ARP表項。設備是如何進行動態學習的呢?其實動態ARP主要是通過廣播ARP請求報文和單播ARP應答報文這兩個過程完成地址解析的。
例如:小A和小C在一次聚會上互留了IP位址。如上圖所示,小A需要與小C進行通信時,知道了小C的IP位址為10.1.1.3/24,判斷後發現與自己在同一網段10.1.1.0/24,於是小A會廣播發送一個ARP請求報文,請求小C的MAC地址。
小C收到ARP請求報文後,會單播發送一個ARP應答報文,告訴對方自己的MAC地址是3-3-3。(在同一網段的小B也會收到ARP請求報文,但是由於ARP請求報文中的目的IP位址不是小B的IP位址,因此小B不會進行應答。)
小A收到ARP應答報文後,就會在自己的ARP表中增加一條動態表項:IP位址10.1.1.3對應MAC地址3-3-3,這樣小A就可以與小C進行通信啦。
說明:一方面由於ARP表的容量限制,另一方面也為了保證動態ARP表項的準確性,PC或交換機會對學習到的動態ARP表項進行老化。交換機上動態ARP表項有一定的老化時間,預設值是20分鐘,一般建議使用預設值。
設備上動態ARP表項到達老化時間後,設備會發送老化探測報文(即ARP請求報文),如果能收到ARP應答報文,則更新該動態ARP表項,本次老化探測結束;如果超過設置的老化探測次數後仍沒有收到ARP應答報文,則刪除該動態ARP表項,本次老化探測結束。
靜態ARP表項配置
對於網絡中的重要設備,如伺服器等,我們可以在交換機上配置靜態ARP表項。這樣可以避免交換機上重要設備IP位址對應的ARP表項被ARP攻擊報文錯誤更新,從而保證用戶與重要設備之間正常通信。
靜態ARP表項不會老化,不會被動態ARP表項覆蓋。用戶可以通過手工方式配置靜態ARP表項
例如,網絡中有一臺重要的伺服器,伺服器的IP位址為172.16.10.2,MAC地址為0023-0045-0067。如果交換機與這臺伺服器相連的接口GE1/0/1處於二層模式,並加入VLAN100。這時可以在交換機上為伺服器配置一條對應的ARP表項,具體配置如下。
還是上面的那臺伺服器,如果交換機與伺服器相連的接口處於三層模式,這時在交換機上配置靜態ARP表項,可以參考如下配置。
ARP代理(即Proxy ARP)
前面我們提到,主機進行動態ARP學習時,如果發現目的IP位址與自己在同一網段,會發送廣播ARP請求報文進行ARP學習。但是呢,有些情況下兩臺主機雖然在同一網段,但不在同一廣播域,目的主機是無法收到ARP請求報文的,因而也就無法成功學習到ARP表項。
在連接兩臺主機的交換機上使能ARP代理後,交換機相當於一個中介,Host_1發送ARP請求報文請求Host_2的MAC地址的時候,交換機會將自己的MAC地址告訴Host_1。這樣Host_1發給Host_2的數據報文會先發給交換機,再由交換機轉發給Host_2。
例如下面的三種情況,我們就可以用到ARP代理。
情況一:需要互通的主機Host_1與Host_2(主機上沒有配置預設網關)處於相同的網段但不在同一物理網絡(即不在同一廣播域)。由於在不同的廣播域,Host_1發送的ARP請求報文Host_2是收不到的,這時可以在交換機的VLANIF10和VLANIF20接口上使能路由式Proxy ARP功能(arp-proxy enable),實現Host_1與Host_2之間的互通。
情況二:需要互通的主機Host_1與Host_2處於相同網段,並且屬於相同VLAN,但是VLAN內接口IF_1與IF_2配置了埠隔離。由於IF_1與IF_2之間埠隔離,Host_1發送的ARP請求報文Host_2是收不到的,這時可以在Switch上關聯了VLAN10的VLANIF接口上使能VLAN內Proxy ARP功能(arp-proxy inner-sub-vlan-proxy enable),實現Host_1與Host_2之間的三層互通。
情況三:需要互通的主機Host_1與Host_2處於相同網段,但屬於不同VLAN。由於不在同一VLAN,Host_1發送的ARP請求報文Host_2當然也是收不到的,這時可以在Switch上關聯了VLAN10和VLAN20的VLANIF30接口上使能VLAN間Proxy ARP功能(arp-proxy inter-sub-vlan-proxy enable),實現Host_1與Host_2之間的三層互通。
如何保證ARP表安全?
1. 保證合法用戶的ARP報文可以上送CPU處理
預設情況下,為了保證CPU的正常運行,交換機對每種上送CPU的協議報文都設置了CPCAR值,對於超過CPCAR值的報文就會被丟棄。如果非法用戶發送大量的ARP報文,就會導致合法用戶的ARP報文無法上送CPU,也就無法正常生成ARP表項。
(1) ARP報文限速功能
基於源MAC地址對ARP報文限速。
基於源IP位址對ARP報文限速。
基於全局對ARP報文限速。
基於VLAN對ARP報文限速。
基於接口對ARP報文限速。
(2) ARP Miss消息限速功能
如果網絡中有用戶向設備發送大量目標IP位址不能解析的IP報文(即路由表中存在該IP報文的目的IP對應的路由表項,但設備上沒有該路由表項中下一跳對應的ARP表項),將導致設備觸發大量的ARP Miss消息。這種觸發ARP Miss消息的IP報文會被上送到CPU進行處理,設備會根據ARP Miss消息生成和下發大量臨時ARP表項並向目的網絡發送大量ARP請求報文,這樣就增加了設備CPU的負擔。
通過對ARP Miss消息進行限速,可以減少設備CPU的負擔,這樣合法用戶的ARP報文就有可能會被上送處理。
基於源IP位址的ARP Miss消息限速。
在全局對ARP Miss消息限速。另外也可以基於VLAN或接口對ARP Miss消息限速。
(3) 出口ARP檢測功能
出口ARP檢測就是通過減少VLAN內廣播報文較少CPU的負擔。其核心原理是根據DHCP Snooping表查找目的IP位址對應的出接口,將ARP請求報文直接從查找到的出接口發送出去,減少VLAN內廣播的ARP報文,從而減少CPU的負擔。
出口ARP檢測功能主要是為了減少網關設備處理的ARP報文個數。如圖1所示,通過在L2switch上使能出口ARP檢測功能,可以在L2switch廣播ARP請求報文之前,查找DHCP Snooping綁定表,如果能夠找到ARP報文中目的IP位址對應的出接口,則將ARP請求報文從找到的出接口發送出去,有效減少網關收到的ARP請求報文數量。
出口ARP檢測功能配置方法如下:
2. 保證ARP表項的正確性
(1) 防止仿冒網關攻擊
提供下面幾種方法防止仿冒網關的攻擊
配置方法如下:
配置網關定時發送免費ARP報文。
配置ARP防網關衝突檢測。
配置ARP網關保護功能。
(2) 防止仿冒合法用戶攻擊
ARP表項固化:
動態ARP檢測功能:
設備將根據DHCP Snooping綁定表對收到的ARP報文的IP位址、MAC地址、VLAN或接口信息與綁定表中記錄的表項內容進行檢查,不匹配則直接丟棄。
配置ARP表項固化,可以基於全局和接口分別進行配置。
配置動態ARP檢測功能,可以基於接口和VLAN分別進行配置。
3. 保證合法用戶的ARP表項可以正常生成
(1) 限制可以學習的ARP表項數量
當發現某個接口下存在攻擊者,佔用大量ARP表資源時,通過限制該接口可以學習的ARP表項數量,可以避免ARP表被耗盡。當接口上學習到的ARP表達到指定的限制值時,該接口不再學習新的ARP表項。
(2) ARP表項嚴格學習
只有本設備主動發送的ARP請求報文的應答報文才能觸發本設備進行ARP學習,其他設備主動向本設備發送的ARP報文不能觸發本設備進行ARP學習。
配置方法如下:
限制ARP表項。
配置ARP表項嚴格學習。
查看ARP表
【編輯推薦】
【責任編輯:
趙寧寧TEL:(010)68476606】