一種地址解析協(xié)議表的擴展方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡路由技術(shù),尤其涉及一種地址解析協(xié)議(ARP)表的擴展方法和裝置。
【背景技術(shù)】
[0002]隨著城域網(wǎng)的快速發(fā)展,接入和匯聚網(wǎng)絡設備的帶寬越來越大,同時運營商要求一個設備接入的用戶越來越多。接入模式除了層2(L2)接入以外,還有層3(L3)接入。對于L3接入模式,接入設備如DSLAM、P0N、城域網(wǎng)交換機等,需要使用交換芯片進行數(shù)據(jù)匯聚和L3轉(zhuǎn)發(fā)。由于接入用戶越來越多,所以交換芯片存儲ARP表的容量無法滿足這一需求?,F(xiàn)有的做法一般是更換更大ARP表容量的交換芯片,但這種方法受限于兩個條件:一是芯片廠家是否能及時提供這樣的產(chǎn)品,二是芯片的成本會很高。
【發(fā)明內(nèi)容】
[0003]為解決現(xiàn)有存在的技術(shù)問題,本發(fā)明主要提供一種地址解析協(xié)議表的擴展方法和
目-ο
[0004]本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0005]本發(fā)明提供一種ARP表的擴展方法,該方法包括:
[0006]CPU獲得ARP表,將ARP表的聯(lián)網(wǎng)協(xié)議(IP)地址設置到交換芯片的主機路由表中;
[0007]當所述主機路由表發(fā)生哈希(hash)沖突時,CPU將hash沖突的ARP表的IP地址設置到交換芯片的子網(wǎng)路由表中。
[0008]上述方案中,所述CPU獲得ARP表包括:所述CPU接收ARP報文,進行ARP學習,所述ARP學習為建立IP地址、下一跳信息、接口三者之間的映射關(guān)系,形成ARP表。
[0009]上述方案中,該方法還包括:CPU將hash沖突的ARP表的IP地址設置到交換芯片的子網(wǎng)路由表中后,還對所述IP地址設置全匹配的子網(wǎng)掩碼,所述子網(wǎng)路由表的查表方式采用三態(tài)內(nèi)容尋址存儲器(TCAM)查表方式。
[0010]上述方案中,該方法還包括:CPU設置一個門限,當設置到子網(wǎng)路由表的ARP表的IP地址個數(shù)達到所述門限后,不再將ARP表的其他IP地址設置到子網(wǎng)路由表中。
[0011]上述方案中,該方法還包括:CPU將設置到主機路由表的ARP表的IP地址的標志(flag)標記為主機(host);將設置到子網(wǎng)路由表的ARP表的IP地址的flag標記為子網(wǎng)(subnet)。
[0012]上述方案中,該方法還包括:交換芯片在對數(shù)據(jù)包進行主機路由查找時,優(yōu)先對主機路由表進行IP地址的匹配查找,如果查找到,則按照查找到的IP地址直接轉(zhuǎn)發(fā)數(shù)據(jù)包,如果沒有查找到,則對子網(wǎng)路由表進行最長IP掩碼的匹配查找,如果查找到,則按照查找到的IP地址直接轉(zhuǎn)發(fā)數(shù)據(jù)包,如果沒有查到,則將數(shù)據(jù)包丟棄或發(fā)送到CPU。
[0013]上述方案中,該方法還包括:當ARP條目老化或被刪除時,CPU先檢查老化或刪除的ARP條目的IP地址的flag,如果為host,就從交換芯片的主機路由表中查找并刪除所述IP地址的IP表項;如果為subnet,就從交換芯片的子網(wǎng)路由表中查找并刪除所述IP地址的IP表項。
[0014]本發(fā)明提供一種地址解析協(xié)議表的擴展裝置,該裝置包括:CPU、交換芯片;其中,
[0015]CPU,用于獲得ARP表,將ARP表的IP地址設置到交換芯片的主機路由表中;當所述主機路由表發(fā)生hash沖突時,將hash沖突的ARP表的IP地址設置到交換芯片的子網(wǎng)路由表中;
[0016]交換芯片,用于提供主機路由表和子網(wǎng)路由表。
[0017]上述方案中,所述CPU,還用于設置一個門限,當設置到子網(wǎng)路由表的ARP表的IP地址個數(shù)達到所述門限后,不再將ARP表的其他IP地址設置到子網(wǎng)路由表中。
[0018]上述方案中,所述CPU,還用于將設置到主機路由表的ARP表的IP地址的flag標記為host ;將設置到子網(wǎng)路由表的ARP表的IP地址的flag標記為subnet。
[0019]本發(fā)明提供了一種地址解析協(xié)議表的擴展方法和裝置,CPU獲得ARP表,將ARP表的IP地址設置到交換芯片的主機路由表中;當所述主機路由表發(fā)生哈希(hash)沖突時,將hash沖突的ARP表的IP地址設置到交換芯片的子網(wǎng)路由表中。如此,可以大大提高交換芯片存儲ARP表的IP地址的容量,解決用戶主機路由IP地址hash沖突后導致網(wǎng)絡不通的問題。
【附圖說明】
[0020]圖1為本發(fā)明實施例實現(xiàn)地址解析協(xié)議表的擴展方法的流程示意圖一;
[0021]圖2為本發(fā)明實施例提供的ARP條目老化或手工被刪除的流程示意圖;
[0022]圖3為本發(fā)明實施例實現(xiàn)地址解析協(xié)議表的擴展裝置的結(jié)構(gòu)示意圖;
[0023]圖4為本發(fā)明實施例實現(xiàn)地址解析協(xié)議表的擴展方法的流程示意圖二。
【具體實施方式】
[0024]交換芯片一般有主機路由表和子網(wǎng)路由表,主機路由表用于存儲ARP表的IP地址和下一跳索引,子網(wǎng)路由表用于存儲子網(wǎng)IP地址前綴和下一跳索引。主機路由表一般使用hash算法,而子網(wǎng)路由表由于需要優(yōu)先進行最長路由匹配,所以一般使用三態(tài)內(nèi)容尋址存儲器(TCAM, Ternary Content Addressable Memory), TCAM具有查找速度快、操作簡單的優(yōu)點,但同時它也具有明顯的缺點:成本高、功耗大和路由更新復雜。交換芯片中主機路由表雖然比較大,但使用hash算法,容易沖突;子網(wǎng)路由表雖然比較小,但查找精確。根據(jù)這兩個表的特點,提出一種地址解析協(xié)議表的擴展方法和裝置。
[0025]本發(fā)明實施例中,CPU獲得ARP表,將ARP表的IP地址設置到交換芯片的主機路由表中;當所述主機路由表發(fā)生hash沖突時,將hash沖突的ARP表的IP地址設置到交換芯片的子網(wǎng)路由表中。這樣,可以使得交換芯片存儲ARP表的IP地址的容量大大提高。
[0026]下面通過附圖及具體實施例對本發(fā)明做進一步的詳細說明。
[0027]本發(fā)明實施例實現(xiàn)一種地址解析協(xié)議表的擴展方法,如圖1所示,該方法主要包括以下幾個步驟:
[0028]步驟101:CPU 獲得 ARP 表;
[0029]步驟102:CPU將ARP表的IP地址設置到交換芯片的主機路由表中;
[0030]步驟103:當所述主機路由表發(fā)生hash沖突時,CPU將hash沖突的ARP表的IP地址設置到交換芯片的子網(wǎng)路由表中。
[0031]上述步驟中,CPU對所述主機路由表的設置或CPU對所述子網(wǎng)路由表的設置,均可以是:CPU通過PCI總線對交換芯片的主機路由表或子網(wǎng)路由表所在的寄存器進行寫操作。
[0032]所述步驟101中,CPU通過ARP協(xié)議或動態(tài)主機配置協(xié)議(DHCP,Dynamic HostConfigurat1n Protocol)獲得ARP表,所述ARP表包括IP地址、下一跳信息、接口三者之間的映射關(guān)系;在步驟101中,所述CPU接收ARP報文,進行ARP學習,所述ARP學習就是建立IP地址、下一跳信息、接口三者之間的映射關(guān)系,形成ARP表。
[0033]所述步驟103中,所述CPU根據(jù)收到的設置失敗消息確定所述主機路由表發(fā)生hash沖突,所述設置失敗消息為主機路由表中具有相同hash索引的IP地址的個數(shù)超出hash桶深時交換芯片反饋的消息,所述hash桶深一般可以為8。
[0034]優(yōu)選的,CPU將hash沖突的ARP表的IP地址設置到交換芯片的子網(wǎng)路由表中后,還需要對所述IP地址設置全匹配的子網(wǎng)掩碼,所述子網(wǎng)掩碼為32位(IPV4)或128位(IPV6),所述子網(wǎng)路由表的查表方式采用TCAM查表方式。
[0035]考慮到子網(wǎng)路由的需要,子網(wǎng)路由表不能全部用于存儲ARP表的IP地址,因此,需要設置一個門限,當設置到子網(wǎng)路由表的ARP表的IP地址個數(shù)達到所述門限后,不再將ARP表的其他IP地址設置到子網(wǎng)路由表中。
[0036]優(yōu)選的,對于設置到主機路由表的ARP表的IP地址,CPU將各IP地址的標志(flag)標記為主機(host);對于設置到子網(wǎng)路由表的ARP表的IP地址,CPU將各IP地址的flag標記為子網(wǎng)(subnet)。
[0037]交換芯片在對數(shù)據(jù)包進行主機路由查找時,優(yōu)先對主機路由表進行IP地址的匹配查找,如果查找到,