產生原因
由於ARP只適用於同一物理網絡,所以當設備需要將數據報文發往另一個物理網絡時,通常需要藉助網關路由器上的路由功能查詢路由表,實現不同物理網絡之間的通信。但是,查詢路由表會佔用部分系統資源,影響系統處理其他業務的效率。這種情況下,可以在需要互通的主機之間的中介設備上部署ARP代理功能,由中介設備執行代理的角色,減少設備因查詢路由表而消耗的系統資源,提高系統的運行效率。
三種代理模式
路由式代理
a. HostA發送ARP請求報文,請求目的主機HostB的MAC地址。
b. PE收到此ARP請求報文,檢查報文的目的IP地址發現並不是請求自己的MAC地址。 PE檢查是否存在到達HostB的路由,
- 發現有到HostB的路由,於是判斷Interface1上是否使能了路由式ARP代理功能。
如果使能了路由式ARP代理功能, PE將自己的端口Interface1的MAC地址發送給HostA。
如果沒有使能路由式ARP代理功能, PE丟棄HostA發送的ARP請求報文。
- 發現沒有到HostB的路由,於是丟棄HostA發送的ARP請求報文,不執行任何操作。
c. HostA學到Interface1的MAC地址之後,將根據此MAC地址把數據報文發送給設備PE。PE收到數據報文之後,由其完成將數據報文發送給HostB的過程。
VLAN內代理
HostA、 HostB和HostC屬於同一個VLAN,但是在CE上配置了不同接口間彼此隔離,因此HostA和HostC不能直接在二層互通。此時,可以在CE上通過配置接口Interface1,並且使能VLAN內ARP代理功能,實現HostA和HostC的互通。
a. HostA發送ARP請求報文,請求目的主機HostC的MAC地址。
b. CE收到此ARP請求報文,檢查報文的目的IP地址發現並不是請求自己的Interface1接口的MAC地址。CE查找自己的ARP表:
- 發現有HostC對應的ARP表項,於是判斷Interface1上是否使能了VLAN內ARP代理功能。
如果使能了VLAN內ARP代理功能, CE將自己的Interface1接口的MAC地址發送給HostA。
如果沒有使能VLAN內ARP代理功能, CE丟棄該ARP請求報文。
- 發現沒有HostC對應的ARP表項,於是丟棄HostA發送的ARP請求報文,同時判斷本設備是否使能了VLAN內ARP代理功能。
如果使能了VLAN內ARP代理功能, CE在VLAN4內廣播發送ARP請求報文,該請求報文的目的IP地址為HostC的IP地址。收到HostC發送的ARP響應報文後, CE在ARP表中生成相應的ARP表項。
如果沒有使能VLAN內ARP代理功能, CE不執行任何操作。
c. HostA學到Interface1接口的MAC地址之後,將根據此MAC地址把數據報文發送給設備CE。CE收到數據報文之後,由其完成將數據報文發送給HostC的過程
VLAN間代理
HostA屬於VLAN 3,而HostB屬於VLAN 2,顯然在未對PE配置接口Interface1並且使能VLAN間ARP代理的時候,兩者是不能夠進行通信的。此時,可以在PE上配置接口Interface1,並且使能VLAN間ARP代理,實現HostA和HostB的互通。
a. HostA發送ARP請求報文,請求目的主機HostB的MAC地址。
b. PE收到此ARP請求報文,檢查報文的目的IP地址發現並不是請求自己的Interface1接口的MAC地址。 PE查找自己的ARP表,
- 發現有HostB對應的ARP表項,於是判斷Interface1上是否使能了VLAN間ARP代理功能。
如果使能了VLAN間ARP代理功能, PE將自己的Interface1接口的MAC地址發送給HostA。
如果沒有使能VLAN間ARP代理功能, PE丟棄該ARP請求報文。
- 發現沒有HostB對應的ARP表項,於是丟棄HostA發送的ARP請求報文,同時判斷本設備是否使能了VLAN間ARP代理功能。
如果使能了VLAN間ARP代理功能, PE在VLAN2內廣播發送ARP請求報文,該請求報文的目的IP地址為HostB的IP地址。收到HostB發送的ARP響應報文後, PE在ARP表中生成相應的ARP表項。
如果沒有使能VLAN間ARP代理功能, PE不執行任何操作。
c. HostA學到接口Interface1的MAC地址之後,將根據此MAC地址把數據報文發送給設備PE。PE收到數據報文之後,由其完成將數據報文發送給HostB的過程。
適用場景
使用價值
- ARP代理實際上是使用了簡單的欺騙手段,使網絡內的主機錯誤地認為目的主機和自己處於同一網段內,這樣可隱藏物理網絡的細節,從而達到透明化子網劃分的目的。
- ARP代理的所有處理都是在網關進行,不需要對所連網絡中的主機做任何配置。並且, ARP代理隻影響主機的ARP表,對網關的ARP表和路由表沒有任何影響
- ARP代理功能可以在主機沒有配置缺省網關或者主機沒有任何路由能力的情況下使用。
閱讀更多 通信人的自我修養 的文章