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