1 ARP
ARP全稱地址解析協議,就是把IP地址解析成二層MAC地址(物理地址)的協議。應用場景:在局域網中的一臺主機或設備需要發生數據到另一臺主機或設備時,需要知道對方的網絡地址即IP地址。僅僅只有IP地址是不夠的,因爲IP數據報文需要封裝層幀從能通過物理網絡發送,因此發送站還需要接受站的物理地址,所以需要一個從IP地址到物理地址的映射關係,ARP就是實現這種關係的協議。
1.2 ARP報文結構
ARP報文分爲ARP請求報文和ARP應答報文,總字節爲28字節。
ARP報文結構如下:
1. 硬件類型:表示硬件地址的類型,它的值爲1是表示以太網報文——2字節
2. 協議類型:表示要映射的協議地址的類型,它的值爲0X0800即表示IP地址——2字節
3. 硬件地址長度和協議地址長度:指硬件地址和協議地址的長度,以字節爲單位,對於以太網上IP地址的ARP請求和應答報文,其長度分別是6和4——硬件地址和協議地址長度各佔1字節.
4. 類型操作(OP):1表示ARP請求,2表示ARP應答。——佔2字節
5. 源MAC地址:發送設備的硬件地址——佔6字節
6. 源IP地址:發送設備的IP地址——佔4字節
7. 目的MAC地址:接受設備的硬件地址——佔6字節
8. 目的IP地址:接受設備的IP地址——佔4字節
1.3 ARP地址解析過程
當主機A向主機B發送數據時,首先將B的地址跟A的地址進行一個與運算來確認兩主機是否處於同一個網段。
當確認處於同一網段時,首先主機A會查看本地的ARP表,是否有B主機地址所對應的MAC地址。
如果存在,就直接把IP數據封裝成幀進行通信,如果不存在,則先緩存該數據報文,然後發送一個以本地MAC爲源MAC地址,以本地IP爲源IP,以B主機IP地址爲目的IP地址,以MAC地址全爲0的地址爲目的MAC地址的ARP請求廣播包。
該網段上的所以主機都會收到該ARP請求廣播包,所有主機先比較自己IP地址跟廣播中的目的IP,如不匹配,就丟棄該包。如果匹配,會把該廣播包的源IP地址和源MAC地址存入自己的ARP表項中,然後向A發送一個以本地IP地址爲源IP地址,以本地MAC地址爲源MAC地址,以A主機IP地址爲目的IP地址,以A主機的MAC地址爲目的MAC地址的單播,當主機A收到該報文之後,把B主機的IP地址和MAC地址添加到ARP表項中,然後把IP數據封裝成幀與主機B進行通信。
當將主機B的地址跟主機A的地址進行一個與運算確認兩主機處於不同網段。
主機A先向網關發送ARP請求報文,當收到網關ARP應答時,先把網關的MAC地址和IP地址記錄的ARP表項中,然後把IP數據包封裝成幀發送給網關,然後網關再查看ARP表項有沒有主機B的arp記錄,如果有,就直接封裝再發送,如果沒有就發送廣播,再獲取主機B的MAC地址,再封裝發送。
1.4 ARP表
1.4.1 動態ARP表項
動態ARP表項是由ARP協議通過ARP報文自動生成和維護,可以被被老化,可以被新的ARP報文更新,可以被靜態ARP表項覆蓋。到了老化時間,當接口down時會刪除相應的ARP表項 。
1.4.2 靜態ARP表項
靜態ARP表項通過手動配置和維護,不能被動態ARP表項覆蓋,不老化。配置動態的ARP表項可以增加通信的安全性 。
長靜態ARP表項:配置IP +MAC+該ARP表項所在的VLAN+出接口。長靜態ARP表項可以用來直接轉發報文。
短靜態ARP表項:配置IP+MAC
當出接口爲三層以太網接口時,可以直接用來轉發報文。
當出接口爲虛擬VLAN接口時,不能直接轉發報文,先要發送ARP請求報文,如果收到的請求報文中的源IP地址和源MAC地址與所配置的IP地址和MAC地址相同時,則將接收ARP響應報文的接口加入該靜態ARP表項中,之後就可以用於IP報文的轉發。
2 免費ARP
免費ARP報文是一種特殊的報文,該報文中攜帶的的源IP地址和目的IP地址均爲本地IP地址,源MAC地址爲本地MAC地址,目的MAC地址爲全0的廣播MAC地址。實現如下兩個功能:
1. 檢測局域網中的其他設備的IP地址是否與本機IP地址衝突。
2. 當更改硬件地址之後,用來通知他設備來更新ARP表項 。
2.1 免費ARP報文學習功能的作用
1. 使用免費ARP學習功能之後,設備會根據免費ARP表中的IP地址和MAC地址來更新本地ARP表項。
2. 如果ARP表項中沒有對應的ARP表項,會根據免費ARP中攜帶的信息來創建ARP表項 。
3. 如果ARP表項中有對應的ARP表項,則會根據免費ARP中攜帶的信息來更新ARP表項 。
4. 當關閉免費ARP報文學習功能之後,設備不會重新創建ARP表項,但會更新ARP表項 。
2.2 定時發送免費ARP功能的作用
使用定時發送免費ARP功能及時通知下行設備更新ARP表項和MAC地址表項,應用場景如下:
1. 防止仿冒網關的ARP***:***者仿冒網關發送免費ARP,把網關定向到一個錯誤的MAC,從而使得該網絡中的主機無法正確訪問網絡。
2. 防止主機ARP表項老化:當接受端網絡負載較大或CPU使用率過高時,可能會存在ARP報文的丟棄或無法及時出來ARP報文的情況,使得動態ARP表項因超時而是ARP表項老化。造成的後果是在重新學習ARP表項之前,兩設備之間流量會發生中斷。
3. 防止VRRP虛擬IP地址衝突:當網絡中存在VRRP備份組時,需要由VRRP備份組中的Master路由器週期性的向網絡中發送免費ARP,使主機更行ARP表項,確保網絡中不會存在於虛擬機與VRRP虛擬IP相同的設備。
2.3 及時更新模糊終結VLAN內設備的MAC地址表
3 ARP代理
如果ARP請求是從一個網絡的主機發往同一網段而處於不同物理網絡的主機,那麼連接他們的具有代理ARP功能的設備就可以回答該請求,這個過程就叫做代理ARP 。
1. 普通代理ARP:想要互通的主機處於同一網段,但連接在不同的三層接口下,且這兩主機處於不同的廣播域。
2. 本地代理ARP:想要互通的主機處於同一網段,並連接在同一的三層接口下,但這兩臺主機處於不同的廣播域,比如:兩臺主機連接在二層交換機下,並都屬於同一VLAN,但是配置了端口隔離 。Super VLAN下不同sub VLAN下的主機之間的通信。Isolate-user-vlan下Secondary VLAN下主機之間的通信。
4 ARP Snooping
4.1 ARP Snooping作用
ARP Snooping功能是一個用於二層交換環境下的特性,通過偵聽ARP報文建立ARP Snooping表項,從而提供給ARP快速應答和MFF手動方式等使用。
4.2 ARP Snooping工作原理
設備上的一個VLAN是能了ARP Snooping之後,該VLAN上所有接口收到的ARP報文都會重定向到CPU,經過CPU的分析,獲取該報文中的源IP地址、源MAC地址、源VLAN、入端口信息,建立用戶信息ARP Snooping表項。
ARP Snooping老化時間爲25分鐘,有效時間爲15分鐘。當一個ARP Snooping表項自最後一次更新15分鐘之後再收到更新時,該表項就處於失效狀態,不再對外提供服務,當重新收到更新之後,該表項將重新啓效,並重新老化計時 。
當ARP Snooping收到ARP報文時檢查到相同IP地址的ARP Snooping表項,但MAC地址發送改變,它會認爲設備收到***,此時ARP Snooping處於衝突狀態,表項失效,並在25分鐘之後刪除該表項。
4.3 ARP快速應答
4.3.1 ARP快速應答作用
在無線組網中,AP通過隧道與AC連接,client通過AP連接到AC,通過AC,Client可以與網關連接。當Client發起ARP請求廣播報文時,AC向所有AP複製該報文,這樣會導致ARP請求報文佔用過多的隧道資源,導致性能下降。開啓ARP快速應答之後,AC會收集用戶信息(通過DHCP Snooping收集用戶信息或通過ARP Snooping收集用戶信息),在指定VLAN內,儘可能快的對ARP請求進行應答。
4.3.2 ARP 快速應答機制
1. 當收到的ARP報文中的目的IP地址是設備VLAN的虛ip地址時,通過ARP特性應答 。
2. 當收到的ARP報文中的目的IP地址不是設備的VLAN的虛IP時,它會根據目的IP查找DHCP Snooping表項:
如果查找成功,但查到的表項的接口跟收到報文的接口一致,並接口爲以太網接口,則不進行應答,否則快速應答。
如果查找設備,它會根據目的IP地址來查找ARP Snooping表項,如果查找成功,但查到的表項的接口跟收到報文的接口一致,並接口爲以太網接口,則不進行應答,否則快速應答。
5 ARP***防禦
***類型如下:
1. ***者仿冒用戶、仿冒網關發送僞造ARP報文,是網關或主機的ARP表項不正確,從而對網絡*** 。
2. ***者向設備發送大量目的IP地址不可解析的arp報文,使得設備反覆嘗試解析,從而到導致CPU負荷過重以及網絡流量過大 。
3. ***者向設備發送大量ARP報文,對設備的CPU形成衝擊 。
5.1 ARP防止IP報文***功能簡介
如果網絡中的主機向設備發送大量目的ip不能解析的ARP報文,會造成如下危害:
1. 設備向目的網段發送大量ARP請求報文,加重了目的網段的負載 。
2. 設備會嘗試反覆對目的Ip進行解析,增加了設備CUP的負擔。
爲了避免這種IP報文***所帶來的危害,可以開啓如下功能:
1. 如果***源是固定的,可以採用ARP源抑制功能 :在接口上設定單位時間內IP報文觸發的的ARP請求流量的大小,當超過這個值時,設備將不允許其觸發ARP請求,或經過一段時間之後,再進行處理 。
2. 如果***源不是固定的,可以採用ARP黑洞路由功能:當設備收到一個目的IP不能解析的報文時,設備會立即產生一個黑洞路由,使得設備在一段時間內收到去往該地址的報文直接丟棄 。當該黑洞路由老化之後,當收到該地址的報文時,如果解析成功將直接轉發。如果不能解析成功,設備將再次啓用黑洞路由 。
5.2 ARP報文限速功能簡介
ARP報文限速是指對上送CPU的arp報文進行限速,可以防止ARP報文對CPU進行衝擊 。
5.3 源MAC地址固定的ARP***檢測功能簡介
當在單位時間內,從某個接口收到同一個源MAC地址的ARP報文超過一定的閥值,設備將會該源MAC地址添加到***檢測列表中。
當該***檢測列表沒有在老化之前,如果設置的檢查模式爲過濾模式,則會打印警告信息並過濾源MAC地址發過來的ARP報文。如果設置的監控模式,則只會發打印警告 。
對於網關或一些重要的服務器,可能會發送大量的ARP報文,爲了使的這些ARP報文不被過濾掉,可以將這類MAC地址配置成保護MAC地址,這樣,即使該MAC地址存在***也不回被過濾,只會對上送CPU的ARP進行統計。
5.4 ARP報文源MAC地址一致性檢查功能簡介
APP報文源MAC地址一致性檢查功能主要應用於網關設備上,網關設備在進行ARP學習時先檢查ARP報文,如果以太網中的源MAC地址與ARP報文中的源MAC地址是否一致。如果不一致,則會認爲是***報文,如果一致,則添加到ARP表項中 。
6 MFF
MFF(MAC-Forced Forwarding)爲同一廣播域內實現客戶端主機間的二層隔離和三層互通,提供了一種解決方案 。
MFF截獲用戶ARP報文,通過ARP代答機制,回覆網關MAC地址的ARP應答報文。通過這種方式可以強制用戶將所有流量都發送到網關,從而使得網關能監控所有的流量,防止用戶之間的惡意***,保證網絡部署的安全性 。