1.ARP是什麼?
地址解析協議ARP是用來将IP地址解析為MAC地址的協議。
在局域網中,當主機或其它三層網絡設備有數據要發送給另一台主機或三層網絡設備時,它需要知道對方的網絡層地址(即IP地址)。但是僅有IP地址是不夠的,因為IP報文必須封裝成幀才能通過物理網絡發送,因此發送方還需要知道接收方的物理地址(即MAC地址),因此需要一個從IP地址到MAC地址的映射。ARP即可以實現将IP地址解析為MAC地址。主機或三層網絡設備上會維護一張ARP表,用于存儲IP地址和MAC地址的關系。一般ARP表項包括動态ARP表項和靜态ARP表項。
2.動态ARP
2.1.原理描述
動态ARP表項由ARP協議通過ARP報文(廣播ARP請求和單播ARP應答)自動生成和維護,可以被老化,可以被新的ARP報文更新,可以被靜态ARP表項覆蓋。
動态ARP适用于拓撲結構複雜、通信實時性要求高的網絡。
2.2.當需要通信的兩台主機處于
1)同一網段時,源主機直接發送ARP廣播,請求目的主機的MAC地址。目的主機收到後,單播回複自己IP地址對應的MAC地址的ARP應答報文給源主機,源主機收到ARP應答報文後,将數據報文封裝二層幀并發送目的主機。
2)不同網段時,源主機已經配置缺省網關,則會發送ARP廣播,請求網關的IP地址對應的MAC地址。網關收到後,單播回複自己該接口的IP地址對應的MAC地址的ARP應答報文給源主機,源主機收到ARP應答報文後,将數據報文封裝二層幀并發給網關,再由網關将數據報文發送給目的主機。
3.ARP請求報文
3.1.ARP廣播包
二層幀中的目的MAC是全F(廣播),ARP數據包裡面的目的MAC是全0(未知用0表示)。
在eNSP模拟器中抓取的ARP請求ARP數據包裡面的目的MAC可能是全F,與理論不符,抓取物理網卡數據包正常為全0。
3.2.ARP應答報文
1)免費ARP報文
免費ARP是一種特殊的ARP請求,所以二層幀的目的MAC也是全F,區别在于ARP數據包裡面的源和IP目的IP是同一個IP地址。
---------------------------------------------------------------------------------------------------
4.靜态ARP
定義和分類
靜态ARP表項是由網絡管理員手工建立的IP地址和MAC地址之間固定的映射關系。靜态ARP表項不會被老化,不會被動态ARP表項覆蓋。
4.1.短靜态ARP表項:
手工建立IP地址和MAC地址之間固定的映射關系,未同時指定VLAN和出接口。
如果出接口是處于二層模式的以太網接口,短靜态ARP表項不能直接用于報文轉發。當需要發送報文時,設備會先發送ARP請求報文,如果收到的ARP應答報文中的源IP地址和源MAC地址與所配置的IP地址和MAC地址相同,則将收到ARP應答報文的VLAN和接口加入該靜态ARP表項中,後續設備可直接用該靜态ARP表項轉發報文。
4.2.長靜态ARP表項:
手工建立IP地址和MAC地址之間固定的映射關系,并同時指定該ARP表項所在VLAN和出接口。
長靜态ARP表項可以直接用于報文轉發。建議用戶采用長靜态ARP表項。
作用和應用
1)作用:
正常情況下網絡中設備可以通過ARP協議進行ARP表項的動态學習,生成的動态ARP表項可以被老化,可以被更新。
靜态ARP表項不會被老化,也不會被動态ARP表項覆蓋,可以保證網絡通信的安全性。
靜态ARP表項可以限制本端設備和指定IP地址的對端設備通信時隻使用指定的MAC地址,此時攻擊報文無法修改本端設備的ARP表中IP地址和MAC地址的映射關系,從而保護了本端設備和對端設備間的正常通信。一般在網關設備上配置靜态ARP表項。
2)應用:
對于網絡中的重要設備,如服務器等,可以在路由器上配置靜态ARP表項。這樣可以避免路由器上重要設備IP地址對應的ARP表項被ARP攻擊報文錯誤更新,從而保證用戶與重要設備之間正常通信。
當網絡中用戶設備的MAC地址為組播MAC地址時,可以在路由器上配置靜态ARP表項。缺省情況下,設備收到源MAC地址為組播MAC地址的ARP報文時不會進行ARP學習。
當希望禁止某個IP地址訪問設備時,可以在路由器上配置靜态ARP表項,将該IP地址與一個不存在的MAC地址進行綁定。
5.免費ARP
5.1.作用
IP地址沖突檢測:當設備接口的協議狀态變為Up時,設備主動對外發送免費ARP報文。正常情況下不會收到ARP應答,如果收到,則表明本網絡中存在與自身IP地址重複的地址。如果檢測到IP地址沖突,設備會周期性的廣播發送免費ARP應答報文,直到沖突解除。
用于通告一個新的MAC地址:發送方更換了網卡,MAC地址變化了,為了能夠在動态ARP表項老化前通告網絡中其他設備,發送方可以發送一個免費ARP。
在VRRP備份組中用來通告主備發生變換:發生主備變換後,MASTER設備會廣播發送一個免費ARP報文來通告發生了主備變換。
5.2.處理
如果免費ARP報文中源IP地址和自己的IP地址相同,則周期性的廣播發送免費ARP應答報文,告知此IP地址在網絡中存在沖突,直到沖突解除。
如果免費ARP報文中源IP地址和自己的IP地址不同,免費ARP報文是在VLANIF接口收到的,并且設備上已經有免費ARP報文中源IP地址對應的動态ARP表項,則進行ARP學習,即根據收到的免費ARP報文更新該ARP表項。其餘情況收到免費ARP報文後均不進行ARP學習。
6.代理ARP
6.1.定義
一個網絡的主機發往同一網段不同物理網絡的另一台主機的ARP請求,連接這兩個網絡的設備回答該ARP請求的過程。
6.2.作用
Proxy ARP部署在網關上,網絡中的主機不必做任何改動。
Proxy ARP可以隐藏物理網絡細節,使兩個物理網絡可以使用同一個網絡号。
Proxy ARP隻影響主機的ARP表,對網關的ARP表和路由表沒有影響。
路由式ARP代理
路由式ARP代理就是使那些在同一網段卻不在同一物理網絡上的網絡設備能夠相互通信的一種功能。
在實際應用中,如果連接設備的主機上沒有配置缺省網關地址,此時将無法進行數據轉發。
如圖所示,Host_1的IP地址為172.16.1.10/16,Host_2的IP地址為172.16.2.20/16,Host_1與Host_2處于同一網段。Router通過VLAN10和VLAN20連接兩個網絡,VLANIF10和VLANIF20的IP地址不在同一個網段。
當Host_1需要與Host_2通信時,由于目的IP地址與本機的IP地址為同一網段,因此Host_1以廣播形式發送ARP請求報文,請求Host_2的MAC地址。但是,由于兩台主機處于不同的物理網絡(不同廣播域)中,Host_2無法收到Host_1的ARP請求報文,因此也就無法應答。
通過在Router上啟用路由式Proxy ARP後,Router收到ARP請求報文後會查找路由表,由于Host_2與Router直連,因此Router上存在到Host_2的路由表項。Router使用自己的MAC地址給Host_1發送ARP應答報文。Host_1将以Router的MAC地址進行數據轉發。此時,Router相當于Host_2的代理。如圖所示,Host_1上的ARP表項中到目的地址Host_2的IP地址對應的MAC地址為Router的VLANIF10接口的MAC地址。
VLAN内ARP代理
如果兩個用戶屬于相同的VLAN,但VLAN内配置了端口隔離。此時用戶間需要三層互通,可以在關聯了VLAN的接口上啟動VLAN内Proxy ARP功能。
如圖所示,Host_1和Host_2是Router設備下的兩個用戶。連接Host_1和Host_2的兩個接口在Router屬于同一個VLAN10。
由于在Router上配置了VLAN内不同接口彼此隔離,因此Host_1和Host_2不能直接在二層互通。
若Router的接口使能了VLAN内Proxy ARP功能,可以使Host_1和Host_2實現三層互通。Router的接口在接收到目的地址不是自己的ARP請求報文後,Router并不立即丢棄該報文,而是查找該接口的ARP表項。如果存在Host_2的ARP表項,則将自己的MAC地址發送給Host_1,并将Host_1發送給Host_2的報文代為轉發。實際上此時Router相當于Host_2的代理。
VLAN間ARP代理
由于Host_1和Host_2屬于不同的Sub-VLAN,Host_1和Host_2不能直接實現二層互通。
如果Router上使能了VLAN間Proxy ARP功能,可以使Host_1和Host_2實現三層互通。Router的接口在接收到目的地址不是自己的ARP請求報文後,并不立即丢棄該報文,而是查找ARP表項(包括動态學習的ARP表項和靜态配置的ARP表項)。如果存在Host_2的ARP表項,則将自己的MAC地址發送給Host_1,并将Host_1發送給Host_2的報文代為轉發。實際上此時Router相當于Host_2的代理。
7.ARP-Ping
ARP-Ping IP通過發送ARP請求報文确定特定的IP地址是否被網絡中其他設備使用。
ARP-Ping MAC通過發送ICMP請求報文來确定特定的MAC地址是否被網絡中其他設備使用。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!