
下面描述一下VLAN聚合情況下,兩個聚合的Sub-VLAN之間通信的過程,如上圖所示:
Sub-VLAN1和Sub-VLAN2聚合成Super-VLAN3,為Super-VLAN3分配一個IP子網,則Sub-VLAN1和Sub-VLAN2都位于此子網。此處所指的ARP表是指RPS中的所有ARP表項。
若Sub-VLAN1中的一臺主機PC1要與子網中的另一臺主機PC2通信,PC1發現對方與自己處于同一網段,則直接發出目的IP為10.110.1.33的ARP請求報文。三層交換機收到后,由微碼將其在Sub-VLAN1的范圍內直接通過二層廣播此報文,并抄送一份給接口板的ARP模塊。經過接口板ARP的分析,發現它來自SubVLAN,就將此ARP請求報文交給主控板ARP模塊處理。
主控板ARP首先在ARP表中查找ARP請求報文中的目的IP地址,如果找到對應項,看看目的IP地址是不是在SubVLAN1中,是就丟棄該報文,不是就將SuperVLAN3的MAC地址應答給PC1,完成代理工作。
如果在ARP表中沒有找到對應項,主控板ARP就查VLAN聚合與VLAN的邏輯映射表,知道Sub-VLAN1屬于Super-VLAN3,將此報文中的源MAC地址替換成SuperVLAN3的MAC地址,VLAN ID的值由1分別替換成屬于SuperVLAN3的其它Sub-VLAN的值,之后逐個向屬于此SuperVLAN的其它Sub-VLAN(本例中為Sub-VLAN2)廣播,并同時將此請求報文中的信息學習加入動態ARP表中。
此后若收到PC2的ARP應答報文(其目的MAC地址為Super-VLAN3的MAC地址),主控板ARP模塊發現此ARP應答報文的VLAN ID是Sub-VLAN2,即PC2位于Sub-VLAN2中,主控板CPU根據應答報文中的信息,搜索ARP表中的各項,找到對應項后把SuperVLAN3對應的MAC地址通過ARP應答報文回給PC1(若PC2位于Sub-VLAN1,PC2響應的ARP應答報文直接通過二層轉發回給PC1,交換機就不再應答)。同時在接口板上將SubVLAN2中的響應報文信息記錄在ARP表及FIB表中,以后再收到來自主機X的報文就可以通過查詢FIB表進行三層轉發了。
ARP Proxy放在主控板上,這樣可以避免由于不同接口板在同步上造成的差異,如我們從板A發出ARP ,從板B收到響應,但由于數據表格還沒有同步到位板B,則引起錯誤。