專利名稱:一種基于免費(fèi)arp實(shí)現(xiàn)代理arp的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)通信領(lǐng)域,尤其涉及一種基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的方法及系統(tǒng)。
背景技術(shù):
地址解析協(xié)議(Address Resolution Protocol, ARP)實(shí)現(xiàn)了通過(guò)IP地址得知其物理地址。免費(fèi)ARP (Gratuitous ARP)報(bào)文是一種特殊的ARP報(bào)文,該報(bào)文中攜帶的發(fā)送端互聯(lián)網(wǎng)協(xié)議(Internet Protocol, IP)地址和目標(biāo)IP地址都是本機(jī)IP地址,源介質(zhì)訪問(wèn)控制(Media Access Control, MAC)地址是本機(jī)MAC地址,目的MAC地址是廣播地址。主機(jī)通過(guò)對(duì)外發(fā)送免費(fèi)ARP報(bào)文來(lái)實(shí)現(xiàn)以下功能(1)確定其它主機(jī)的IP地址是否與本機(jī)的IP地址沖突。當(dāng)其它主機(jī)收到免費(fèi)ARP報(bào)文后,如果發(fā)現(xiàn)該報(bào)文中的IP地址和自己的IP地址相同,則返回一個(gè)ARP回應(yīng)給發(fā)送免費(fèi)ARP報(bào)文的主機(jī),告知該主機(jī)所用的IP地址有沖突。(2)當(dāng)主機(jī)改變MAC地址時(shí),通過(guò)發(fā)送免費(fèi)ARP報(bào)文通知其它主機(jī)更新 ARP緩存表。其中,ARP緩存表用于存儲(chǔ)網(wǎng)絡(luò)中各主機(jī)和路由器的IP地址到MAC地址映射關(guān)系。在主機(jī)的ARP緩存表中沒(méi)有存儲(chǔ)需要與其通信的主機(jī)的MAC地址時(shí),則向該主機(jī)發(fā)送ARP請(qǐng)求報(bào)文。如果ARP請(qǐng)求報(bào)文是從一個(gè)網(wǎng)絡(luò)的主機(jī)發(fā)往同一網(wǎng)段卻不在同一物理網(wǎng)絡(luò)上的另一臺(tái)主機(jī),那么連接它們的具有代理ARP功能的設(shè)備就可以回答該請(qǐng)求,這個(gè)過(guò)程稱作代理ARP (Proxy ARP)。代理ARP功能屏蔽了分離的物理網(wǎng)絡(luò)這一事實(shí),使用戶使用起來(lái)好像在同一個(gè)物理網(wǎng)絡(luò)上,可以只被應(yīng)用在一個(gè)設(shè)備上(此時(shí)該設(shè)備的作用相當(dāng)于網(wǎng)關(guān)),不會(huì)影響到網(wǎng)絡(luò)中其他設(shè)備的路由表。而且代理ARP功能可以在主機(jī)沒(méi)有配置缺省網(wǎng)關(guān)或者主機(jī)沒(méi)有任何路由能力的情況下使用。但是,代理ARP存在如下不足具有代理ARP功能的設(shè)備在沒(méi)有檢測(cè)目標(biāo)IP的可達(dá)性的情況下,就直接向發(fā)送ARP請(qǐng)求報(bào)文的請(qǐng)求端發(fā)送ARP回應(yīng),使得請(qǐng)求端的ARP緩存表中存在目標(biāo)終端的IP地址和硬件地址的映射關(guān)系,請(qǐng)求端根據(jù)這種硬件關(guān)系發(fā)起與目標(biāo)終端的通信,然而,由于沒(méi)有檢測(cè)目標(biāo)IP的可達(dá)性,目標(biāo)終端可能并不存在,最終無(wú)法完成通信。
發(fā)明內(nèi)容
針對(duì)上述技術(shù)問(wèn)題,本發(fā)明的目的在于提供一種基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的方法及系統(tǒng),其實(shí)現(xiàn)了代理ARP中目標(biāo)終端的可達(dá)性檢測(cè)。為達(dá)到上述目的,本發(fā)明是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的一種基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的方法,包括如下步驟A、接入交換機(jī)通過(guò)監(jiān)聽(tīng)I(yíng)P主機(jī)的免費(fèi)ARP過(guò)程,創(chuàng)建和保存主機(jī)IP地址信息,并將該主機(jī)IP地址信息發(fā)送至匯聚交換機(jī);B、匯聚交換機(jī)接收所述主機(jī)IP地址信息,并將其保存到主機(jī)IP地址信息表中;
C、匯聚交換機(jī)在接收到IP主機(jī)發(fā)送的ARP請(qǐng)求報(bào)文后,檢測(cè)該報(bào)文中的目標(biāo)IP 地址是否在所述主機(jī)IP地址信息表中,如果在,則向IP主機(jī)發(fā)送ARP回應(yīng)報(bào)文,如果不在, 則丟棄該ARP請(qǐng)求報(bào)文。特別的,所述步驟A中接入交換機(jī)監(jiān)聽(tīng)I(yíng)P主機(jī)的免費(fèi)ARP過(guò)程包括接入交換機(jī)向交換芯片下發(fā)規(guī)則,在交換芯片收到ARP報(bào)文后,均將其復(fù)制一份發(fā)送給接入交換機(jī)處理器進(jìn)行軟件解析,然后,ARP報(bào)文由交換芯片執(zhí)行硬件轉(zhuǎn)發(fā),其中,所述ARP報(bào)文包括免費(fèi)ARP報(bào)文、ARP請(qǐng)求報(bào)文及ARP回應(yīng)報(bào)文。特別的,所述步驟A具體包括接入交換機(jī)通過(guò)監(jiān)聽(tīng)I(yíng)P主機(jī)的免費(fèi)ARP過(guò)程,創(chuàng)建和保存主機(jī)IP地址信息,將所述主機(jī)IP地址信息加入到主機(jī)IP地址信息報(bào)文中,并對(duì)該報(bào)文進(jìn)行加密和散列處理,然后,根據(jù)接入交換機(jī)配置的接收主機(jī)IP地址信息的匯聚交換機(jī)的地址,將所述主機(jī)IP地址信息報(bào)文發(fā)送至匯聚交換機(jī)。特別的,所步驟B具體包括匯聚交換機(jī)解析出與所述匯聚交換機(jī)連接的所有接入交換機(jī)傳入的主機(jī)IP地址信息報(bào)文中的主機(jī)IP地址信息,并將該主機(jī)IP地址信息保存到本地的主機(jī)IP地址信息表中。特別的,所述步驟C具體包括匯聚交換機(jī)在接收到IP主機(jī)發(fā)送的ARP請(qǐng)求報(bào)文后,判斷ARP請(qǐng)求是否滿足代理 ARP的條件,如果滿足代理ARP的條件,則檢測(cè)該報(bào)文中的目標(biāo)IP地址是否在所述主機(jī)IP 地址信息表中,如果在,則向IP主機(jī)發(fā)送ARP回應(yīng)報(bào)文,如果不在,則丟棄該ARP請(qǐng)求報(bào)文; 其中,所述代理ARP的條件是指ARP請(qǐng)求報(bào)文中的目標(biāo)IP地址處在該匯聚交換機(jī)另一個(gè)三層接口的網(wǎng)段中,與發(fā)送ARP請(qǐng)求報(bào)文的IP主機(jī)不在同一個(gè)廣播域。本發(fā)明還公開了一種基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的系統(tǒng),包括接入交換機(jī),與IP主機(jī)連接,通過(guò)監(jiān)聽(tīng)I(yíng)P主機(jī)的免費(fèi)ARP過(guò)程,創(chuàng)建和保存主機(jī) IP地址信息,并將該主機(jī)IP地址信息發(fā)送至匯聚交換機(jī);匯聚交換機(jī),與接入交換機(jī)連接,在其接口上使能ARP代理功能,將收到的主機(jī)IP 地址信息保存到主機(jī)IP地址信息表中;并在接收到IP主機(jī)發(fā)送的ARP請(qǐng)求報(bào)文后,檢測(cè)該報(bào)文中的目標(biāo)IP地址是否在所述主機(jī)IP地址信息表中,如果在,則向IP主機(jī)發(fā)送ARP回應(yīng)報(bào)文,如果不在,則丟棄該ARP請(qǐng)求報(bào)文。特別的,所述接入交換機(jī)還用于向交換芯片下發(fā)規(guī)則,在交換芯片收到ARP報(bào)文后,均將其復(fù)制一份發(fā)送給接入交換機(jī)處理器進(jìn)行軟件解析,然后,ARP報(bào)文由交換芯片執(zhí)行硬件轉(zhuǎn)發(fā)。特別的,所述接入交換機(jī)具體用于通過(guò)監(jiān)聽(tīng)I(yíng)P主機(jī)的免費(fèi)ARP過(guò)程,創(chuàng)建和保存主機(jī)IP地址信息,將所述主機(jī)IP 地址信息加入到主機(jī)IP地址信息報(bào)文中,并對(duì)該報(bào)文進(jìn)行加密和散列處理,然后,根據(jù)接入交換機(jī)配置的接收主機(jī)IP地址信息的匯聚交換機(jī)的地址,將所述主機(jī)IP地址信息報(bào)文發(fā)送至匯聚交換機(jī)。特別的,所述匯聚交換機(jī),在其接口上使能ARP代理功能后,解析出與所述匯聚交換機(jī)連接的所有接入交換機(jī)傳入的主機(jī)IP地址信息報(bào)文中的主機(jī)IP地址信息,并將該主機(jī)IP地址信息保存到本地的主機(jī)IP地址信息表中。特別的,所述匯聚交換機(jī),在接收到IP主機(jī)發(fā)送的ARP請(qǐng)求報(bào)文后,判斷ARP請(qǐng)求是否滿足代理ARP的條件,如果滿足代理ARP的條件,則檢測(cè)該報(bào)文中的目標(biāo)IP地址是否在所述主機(jī)IP地址信息表中,如果在,則向IP主機(jī)發(fā)送ARP回應(yīng)報(bào)文,如果不在,則丟棄該 ARP請(qǐng)求報(bào)文;其中,所述代理ARP的條件是指ARP請(qǐng)求報(bào)文中的目標(biāo)IP地址處在該匯聚交換機(jī)另一個(gè)三層接口的網(wǎng)段中,與發(fā)送ARP請(qǐng)求報(bào)文的IP主機(jī)不在同一個(gè)廣播域。本發(fā)明的技術(shù)方案根據(jù)通過(guò)監(jiān)聽(tīng)I(yíng)P主機(jī)的免費(fèi)ARP過(guò)程獲得的主機(jī)IP地址信息表,判斷ARP請(qǐng)求報(bào)文中的目標(biāo)IP地址是否在主機(jī)IP地址信息表中,實(shí)現(xiàn)了代理ARP中目標(biāo)終端的可達(dá)性檢測(cè)。
圖1為本發(fā)明實(shí)施例提供的基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的方法流程圖;圖2為本發(fā)明實(shí)施例提供的主機(jī)IP地址信息報(bào)文格式示意圖;圖3為本發(fā)明實(shí)施例提供的基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的系統(tǒng)框圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。請(qǐng)參照?qǐng)D1所示,圖1為本發(fā)明實(shí)施例提供的基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的方法流程圖。本實(shí)施例中基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的方法包括如下步驟步驟101、在接入交換機(jī)上使能免費(fèi)地址解析協(xié)議(ARP)監(jiān)聽(tīng),并配置接收主機(jī)互聯(lián)網(wǎng)協(xié)議(IP)地址信息的匯聚交換機(jī)的地址。接入交換機(jī)使能免費(fèi)ARP監(jiān)聽(tīng)后,向交換芯片下發(fā)規(guī)則,具體規(guī)則如下在交換芯片收到ARP報(bào)文后,均將其復(fù)制一份發(fā)送給接入交換機(jī)處理器進(jìn)行軟件解析,但是,所述匯聚交換機(jī)處理器不轉(zhuǎn)發(fā)復(fù)制的ARP報(bào)文,交換芯片收到的ARP報(bào)文依然由交換芯片執(zhí)行硬件轉(zhuǎn)發(fā),其中,所述ARP報(bào)文是指所有傳入交換芯片的與地址解析協(xié)議相關(guān)的報(bào)文,例如, 免費(fèi)ARP報(bào)文,ARP請(qǐng)求報(bào)文,ARP回應(yīng)報(bào)文。步驟102、接入交換機(jī)監(jiān)聽(tīng)I(yíng)P主機(jī)的免費(fèi)ARP過(guò)程,并創(chuàng)建和保存主機(jī)IP地址信
肩、ο具體監(jiān)聽(tīng)過(guò)程如下接入交換機(jī)接收到IP主機(jī)發(fā)送的免費(fèi)ARP報(bào)文后,根據(jù)該免費(fèi)ARP報(bào)文中攜帶的信息,例如,源IP地址和源介質(zhì)訪問(wèn)控制(MAC)地址,對(duì)自身維護(hù)的主機(jī)IP地址表進(jìn)行修改。接入交換機(jī)先判斷主機(jī)IP地址表中是否存在與該免費(fèi)ARP報(bào)文中的源IP地址對(duì)應(yīng)的主機(jī)IP地址表項(xiàng),如果不存在對(duì)應(yīng)的主機(jī)IP地址表項(xiàng),則接入交換機(jī)將根據(jù)該免費(fèi)ARP報(bào)文中攜帶的信息,新建主機(jī)IP地址表項(xiàng),新建的主機(jī)IP地址信息中記錄了 IP主機(jī)的MAC地址、IP地址、虛擬局域網(wǎng)(VLAN)號(hào)和端口號(hào);如果存在對(duì)應(yīng)的主機(jī)IP 地址表項(xiàng),則接入交換機(jī)將根據(jù)該免費(fèi)ARP報(bào)文中攜帶的信息更新對(duì)應(yīng)的主機(jī)IP地址表項(xiàng)。步驟103、接入交換機(jī)將主機(jī)IP地址信息加入到主機(jī)IP地址信息報(bào)文中,并對(duì)該報(bào)文進(jìn)行加密和散列處理,然后,根據(jù)接入交換機(jī)配置的接收主機(jī)IP地址信息的匯聚交換機(jī)的地址,將所述主機(jī)IP地址信息報(bào)文發(fā)送至匯聚交換機(jī)。接入交換機(jī)和匯聚交換機(jī)之間的主機(jī)IP地址信息報(bào)文使用用戶數(shù)據(jù)包協(xié)議 (User Datagram Protocol, UDP)連接在網(wǎng)絡(luò)上傳播。為了保證安全性和防篡改,可以對(duì)主機(jī)IP地址信息報(bào)文進(jìn)行加密和散列處理。本發(fā)明的加密采用共享密鑰的數(shù)據(jù)加密標(biāo)準(zhǔn) (Data Encryption Standard, DES)方式,散列采用消息摘要算法第五版(Message Digest Algorithm MD5,簡(jiǎn)稱 MD5)方式。如圖2所示,圖2為本發(fā)明實(shí)施例提供的主機(jī)IP地址信息報(bào)文格式示意圖。主機(jī)IP地址信息報(bào)文承載于用戶數(shù)據(jù)包協(xié)議中,該報(bào)文各字段的含義如下Version 版本號(hào),目前為1 ;Type 類型,目前為1,表示包含主機(jī)IP地址信息;SeqNo 序列號(hào),每發(fā)送一個(gè)報(bào)文,加1 ;SecretLen 被加密報(bào)文的長(zhǎng)度;Signature 主機(jī)IP地址信息報(bào)文所有字段的MD5散列結(jié)果,其中160ctetS代表 16個(gè)位組;SwitchIPAddr 交換機(jī)的 IP 地址;SwitchID 交換機(jī)標(biāo)識(shí)號(hào)(ID),一般取交換機(jī)處理器的介質(zhì)訪問(wèn)控制地址,其中 6octets代表6個(gè)位組;Count 主機(jī)IP地址數(shù)量;HostMAC 租用地址的IP主機(jī)的介質(zhì)訪問(wèn)控制地址,其中60ctetS代表6個(gè)位組;Reserved 保留,填入 0 ;HostVlanIchIP主機(jī)接入交換機(jī)的虛擬局域網(wǎng)標(biāo)識(shí)號(hào)(Vlan ID);PortNum IP主機(jī)所在的交換機(jī)端口號(hào);HostIP =IP 主機(jī)的 IPv4 地址;DES密鑰由用戶配置,而且接入交換機(jī)與匯聚交換機(jī)的密鑰必須確保一致。發(fā)送主機(jī)IP地址信息報(bào)文前,先進(jìn)行加密,后進(jìn)行散列處理,具體過(guò)程如下自SwitchIPAddr字段開始,一直到結(jié)尾的所述主機(jī)IP地址信息報(bào)文的內(nèi)容進(jìn)行 DES加密,密文與明文等長(zhǎng),密文放入主機(jī)IP地址信息報(bào)文中的SwitchIPAddr字段開始的報(bào)文區(qū)域,密文長(zhǎng)度置于主機(jī)IP地址信息報(bào)文的kcretLen字段,然后交給散列處理單元。對(duì)于交換機(jī)DES加密后的主機(jī)IP地址信息報(bào)文,在計(jì)算MD5散列時(shí),Signature字段首先清零,然后對(duì)整個(gè)主機(jī)IP地址信息報(bào)文作散列運(yùn)算,散列操作完成后,將散列值填入 Signature字段,這時(shí)主機(jī)IP地址信息報(bào)文就可以發(fā)出接入交換機(jī)了。步驟104、匯聚交換機(jī)解析出與所述匯聚交換機(jī)連接的所有接入交換機(jī)傳入的主機(jī)IP地址信息報(bào)文中的主機(jī)IP地址信息,并將該主機(jī)IP地址信息保存到本地的主機(jī)IP 地址信息表中。匯聚交換機(jī)在接收到主機(jī)IP地址信息報(bào)文后,先進(jìn)行散列計(jì)算,再解密,最終解析出其中的主機(jī)IP地址信息,具體過(guò)程如下在進(jìn)行散列計(jì)算時(shí),先備份Signature字段的值,再將Signature字段清零,然后計(jì)算整個(gè)報(bào)文的MD5散列值;如果散列值與備份的Signature字段的值一樣,則散列驗(yàn)證成功,繼續(xù)對(duì)主機(jī)IP地址信息報(bào)文作DES解密處理。如果散列驗(yàn)證失敗,則丟棄該主機(jī)IP 地址信息報(bào)文。對(duì)于接收到的MD5散列驗(yàn)證成功的主機(jī)IP地址信息報(bào)文,匯聚交換機(jī)對(duì)從 Signature字段之后位置開始,且長(zhǎng)度由SecretLen字段指定的主機(jī)IP地址信息報(bào)文的內(nèi)容進(jìn)行DES解密處理,還原出自SwitchIPAddr字段開始的主機(jī)IP地址信息報(bào)文的內(nèi)容。步驟105、匯聚交換機(jī)在接收到IP主機(jī)發(fā)送的ARP請(qǐng)求報(bào)文后,檢測(cè)該報(bào)文中的目標(biāo)IP地址是否在主機(jī)IP地址信息表中,如果在,則向IP主機(jī)發(fā)送ARP回應(yīng)報(bào)文,如果不在,則丟棄該ARP請(qǐng)求報(bào)文。IP主機(jī)發(fā)送ARP請(qǐng)求報(bào)文,ARP請(qǐng)求報(bào)文通過(guò)接入交換機(jī)傳入?yún)R聚交換機(jī)。匯聚交換機(jī)在接收到ARP請(qǐng)求報(bào)文后,判斷ARP請(qǐng)求是否滿足代理ARP的條件。如果接收ARP請(qǐng)求報(bào)文的三層接口使能了代理ARP,并且IP主機(jī)的ARP請(qǐng)求報(bào)文中的目標(biāo)IP地址處在匯聚交換機(jī)的另一個(gè)三層接口的網(wǎng)段中,與發(fā)送ARP請(qǐng)求報(bào)文的IP主機(jī)不在同一個(gè)廣播域,則滿足代理ARP的條件。匯聚交換機(jī)將根據(jù)ARP請(qǐng)求報(bào)文中的目標(biāo)IP地址,查詢主機(jī)IP地址信息表,如果目標(biāo)IP地址在主機(jī)IP地址信息表中,說(shuō)明與目標(biāo)IP地址對(duì)應(yīng)的目標(biāo)終端可達(dá),則發(fā)送ARP回應(yīng)報(bào)文給IP主機(jī),其中,ARP回應(yīng)報(bào)文中的目標(biāo)MAC地址為接收該ARP 請(qǐng)求報(bào)文的三層接口的MAC地址;如果目標(biāo)IP地址不在主機(jī)IP地址信息表中,說(shuō)明與目標(biāo) IP地址對(duì)應(yīng)的目標(biāo)終端不可達(dá),則丟棄該ARP請(qǐng)求報(bào)文,不做處理。請(qǐng)參照?qǐng)D3所示,圖3為本發(fā)明實(shí)施例提供的基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的系統(tǒng)框圖。本實(shí)施例中基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的系統(tǒng)包括接入交換機(jī)302和匯聚交換機(jī)303。其中,所述匯聚交換機(jī)303為三層網(wǎng)絡(luò)交換設(shè)備。所述接入交換機(jī)302,與IP主機(jī)301連接,通過(guò)監(jiān)聽(tīng)I(yíng)P主機(jī)301的免費(fèi)ARP過(guò)程, 創(chuàng)建和保存主機(jī)IP地址信息,并將主機(jī)IP地址信息發(fā)送至匯聚交換機(jī)303。接入交換機(jī)302使能免費(fèi)ARP監(jiān)聽(tīng)后,向交換芯片下發(fā)規(guī)則,具體規(guī)則如下在交換芯片收到ARP報(bào)文后,均將其復(fù)制一份發(fā)送給接入交換機(jī)302處理器進(jìn)行軟件解析,但是,所述匯聚交換機(jī)303處理器不轉(zhuǎn)發(fā)復(fù)制的ARP報(bào)文,交換芯片收到的ARP報(bào)文依然由交換芯片執(zhí)行硬件轉(zhuǎn)發(fā),其中,所述ARP報(bào)文是指所有傳入交換芯片的與地址解析協(xié)議相關(guān)的報(bào)文,例如,免費(fèi)ARP報(bào)文,ARP請(qǐng)求報(bào)文,ARP回應(yīng)報(bào)文。監(jiān)聽(tīng)的具體過(guò)程接入交換機(jī)302接收到IP主機(jī)301發(fā)送的免費(fèi)ARP報(bào)文后,根據(jù)該免費(fèi)ARP報(bào)文中攜帶的源IP地址和源MAC地址,對(duì)自身維護(hù)的主機(jī)IP地址表進(jìn)行修改。接入交換機(jī)302先判斷主機(jī)IP地址表中是否存在與該免費(fèi)ARP報(bào)文中的源IP地址對(duì)應(yīng)的主機(jī)IP地址表項(xiàng),如果不存在對(duì)應(yīng)的主機(jī)IP地址表項(xiàng),則接入交換機(jī)302將根據(jù)該免費(fèi)ARP報(bào)文中攜帶的信息,新建主機(jī)IP地址表項(xiàng),新建的主機(jī)IP地址信息中記錄了 IP主機(jī)301的MAC地址、IP地址、虛擬局域網(wǎng)號(hào)和端口號(hào);如果存在對(duì)應(yīng)的主機(jī)IP地址表項(xiàng),則接入交換機(jī)302將根據(jù)該免費(fèi)ARP報(bào)文中攜帶的信息更新對(duì)應(yīng)的主機(jī)IP地址表項(xiàng)。接入交換機(jī)302將監(jiān)聽(tīng)得到的主機(jī)IP地址信息加入到主機(jī)IP地址信息報(bào)文中, 并對(duì)該報(bào)文進(jìn)行加密和散列處理,然后,根據(jù)接入交換機(jī)302配置的接收主機(jī)IP地址信息的匯聚交換機(jī)303的地址,將所述主機(jī)IP地址信息報(bào)文發(fā)送至匯聚交換機(jī)303。由于接入交換機(jī)302和匯聚交換機(jī)303之間的主機(jī)IP地址信息報(bào)文使用用戶數(shù)據(jù)包協(xié)議連接在網(wǎng)絡(luò)上傳播。為了保證安全性和防篡改,可以對(duì)主機(jī)IP地址信息報(bào)文進(jìn)行加密和散列處理。本發(fā)明的加密采用共享密鑰的數(shù)據(jù)加密標(biāo)準(zhǔn)方式,散列采用消息摘要算法第五版方式。DES密鑰由用戶配置,而且接入交換機(jī)302與匯聚交換機(jī)303的密鑰必須確保一致。發(fā)送主機(jī)IP地址信息報(bào)文前,先進(jìn)行加密,后進(jìn)行散列處理,具體過(guò)程如下自SwitchIPAddr字段開始,一直到結(jié)尾的所述主機(jī)IP地址信息報(bào)文的內(nèi)容進(jìn)行 DES加密,密文與明文等長(zhǎng),密文放入主機(jī)IP地址信息報(bào)文中的SwitchIPAddr字段開始的報(bào)文區(qū)域,密文長(zhǎng)度置于主機(jī)IP地址信息報(bào)文的kcretLen字段,然后交給散列處理單元。對(duì)于交換機(jī)DES加密后的主機(jī)IP地址信息報(bào)文,在計(jì)算MD5散列時(shí),Signature字段首先清零,然后對(duì)整個(gè)主機(jī)IP地址信息報(bào)文作散列運(yùn)算,散列操作完成后,將散列值填入 Signature字段,這時(shí)主機(jī)IP地址信息報(bào)文就可以發(fā)出接入交換機(jī)302 了。所述匯聚交換機(jī)303,與若干個(gè)接入交換機(jī)302連接,在其接口上使能ARP代理功能,將收到的主機(jī)IP地址信息保存到主機(jī)IP地址信息表中;并在接收到IP主機(jī)301發(fā)送的ARP請(qǐng)求報(bào)文后,檢測(cè)該報(bào)文中的目標(biāo)IP地址是否在所述主機(jī)IP地址信息表中,如果在,則向IP主機(jī)301發(fā)送ARP回應(yīng)報(bào)文,如果不在,則丟棄該ARP請(qǐng)求報(bào)文。匯聚交換機(jī)303在接收到主機(jī)IP地址信息報(bào)文后,先進(jìn)行散列計(jì)算,再解密,最終解析出其中的主機(jī)IP地址信息,具體過(guò)程如下在進(jìn)行散列計(jì)算時(shí),先備份Signature字段的值,再將Signature字段清零,然后計(jì)算整個(gè)報(bào)文的MD5散列值;如果散列值與備份的Signature字段的值一樣,則散列驗(yàn)證成功,繼續(xù)對(duì)主機(jī)IP地址信息報(bào)文作DES解密處理。如果散列驗(yàn)證失敗,則丟棄該主機(jī)IP地址信息報(bào)文。對(duì)于接收到的MD5散列驗(yàn)證成功的主機(jī)IP地址信息報(bào)文,匯聚交換機(jī)303對(duì)從Signature字段之后位置開始,且長(zhǎng)度由kcretLen字段指定的主機(jī)IP地址信息報(bào)文的內(nèi)容進(jìn)行DES解密處理,還原出自SwitchIPAddr字段開始的主機(jī)IP地址信息報(bào)文的內(nèi)容。匯聚交換機(jī)303在接收到ARP請(qǐng)求報(bào)文后,判斷ARP請(qǐng)求是否滿足代理ARP的條件。如果接收ARP請(qǐng)求報(bào)文的三層接口使能了代理ARP,并且IP主機(jī)301的ARP請(qǐng)求報(bào)文中的目標(biāo)IP地址處在匯聚交換機(jī)303的另一個(gè)三層接口的網(wǎng)段中,與發(fā)送ARP請(qǐng)求報(bào)文的 IP主機(jī)301不在同一個(gè)廣播域,則滿足代理ARP的條件。此時(shí),匯聚交換機(jī)303將根據(jù)ARP 請(qǐng)求報(bào)文中的目標(biāo)IP地址,查詢主機(jī)IP地址信息表,如果目標(biāo)IP地址在主機(jī)IP地址信息表中,則發(fā)送ARP回應(yīng)報(bào)文給IP主機(jī)301,其中,ARP回應(yīng)報(bào)文中的目標(biāo)MAC地址為接收該 ARP請(qǐng)求報(bào)文的三層接口的MAC地址;如果目標(biāo)IP地址不在主機(jī)IP地址信息表中,則丟棄該ARP請(qǐng)求報(bào)文。本發(fā)明實(shí)施例提供的基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的系統(tǒng),根據(jù)通過(guò)監(jiān)聽(tīng)I(yíng)P主機(jī) 301的免費(fèi)ARP過(guò)程獲得的主機(jī)IP地址信息表,判斷ARP請(qǐng)求報(bào)文中的目標(biāo)IP地址是否在主機(jī)IP地址信息表中,實(shí)現(xiàn)了代理ARP中目標(biāo)終端的可達(dá)性檢測(cè)。上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的方法,其特征在于,包括如下步驟A、接入交換機(jī)通過(guò)監(jiān)聽(tīng)I(yíng)P主機(jī)的免費(fèi)ARP過(guò)程,創(chuàng)建和保存主機(jī)IP地址信息,并將該主機(jī)IP地址信息發(fā)送至匯聚交換機(jī);B、匯聚交換機(jī)接收所述主機(jī)IP地址信息,并將其保存到主機(jī)IP地址信息表中;C、匯聚交換機(jī)在接收到IP主機(jī)發(fā)送的ARP請(qǐng)求報(bào)文后,檢測(cè)該報(bào)文中的目標(biāo)IP地址是否在所述主機(jī)IP地址信息表中,如果在,則向IP主機(jī)發(fā)送ARP回應(yīng)報(bào)文,如果不在,則丟棄該ARP請(qǐng)求報(bào)文。
2.根據(jù)權(quán)利要求1所述的基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的方法,其特征在于,所述步驟A 中接入交換機(jī)監(jiān)聽(tīng)I(yíng)P主機(jī)的免費(fèi)ARP過(guò)程包括接入交換機(jī)向交換芯片下發(fā)規(guī)則,在交換芯片收到ARP報(bào)文后,均將其復(fù)制一份發(fā)送給接入交換機(jī)處理器進(jìn)行軟件解析,然后,ARP報(bào)文由交換芯片執(zhí)行硬件轉(zhuǎn)發(fā),其中,所述 ARP報(bào)文包括免費(fèi)ARP報(bào)文、ARP請(qǐng)求報(bào)文及ARP回應(yīng)報(bào)文。
3.根據(jù)權(quán)利要求2所述的基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的方法,其特征在于,所述步驟A 具體包括接入交換機(jī)通過(guò)監(jiān)聽(tīng)I(yíng)P主機(jī)的免費(fèi)ARP過(guò)程,創(chuàng)建和保存主機(jī)IP地址信息,將所述主機(jī)IP地址信息加入到主機(jī)IP地址信息報(bào)文中,并對(duì)該報(bào)文進(jìn)行加密和散列處理,然后,根據(jù)接入交換機(jī)配置的接收主機(jī)IP地址信息的匯聚交換機(jī)的地址,將所述主機(jī)IP地址信息報(bào)文發(fā)送至匯聚交換機(jī)。
4.根據(jù)權(quán)利要求3所述的基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的方法,其特征在于,所步驟B具體包括匯聚交換機(jī)解析出與所述匯聚交換機(jī)連接的所有接入交換機(jī)傳入的主機(jī)IP地址信息報(bào)文中的主機(jī)IP地址信息,并將該主機(jī)IP地址信息保存到本地的主機(jī)IP地址信息表中。
5.根據(jù)權(quán)利要求4所述的基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的方法,其特征在于,所述步驟C 具體包括匯聚交換機(jī)在接收到IP主機(jī)發(fā)送的ARP請(qǐng)求報(bào)文后,判斷ARP請(qǐng)求是否滿足代理ARP 的條件,如果滿足代理ARP的條件,則檢測(cè)該報(bào)文中的目標(biāo)IP地址是否在所述主機(jī)IP地址信息表中,如果在,則向IP主機(jī)發(fā)送ARP回應(yīng)報(bào)文,如果不在,則丟棄該ARP請(qǐng)求報(bào)文;其中,所述代理ARP的條件是指ARP請(qǐng)求報(bào)文中的目標(biāo)IP地址處在該匯聚交換機(jī)另一個(gè)三層接口的網(wǎng)段中,與發(fā)送ARP請(qǐng)求報(bào)文的IP主機(jī)不在同一個(gè)廣播域。
6.一種基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的系統(tǒng),其特征在于,包括接入交換機(jī),與IP主機(jī)連接,通過(guò)監(jiān)聽(tīng)I(yíng)P主機(jī)的免費(fèi)ARP過(guò)程,創(chuàng)建和保存主機(jī)IP地址信息,并將該主機(jī)IP地址信息發(fā)送至匯聚交換機(jī);匯聚交換機(jī),與接入交換機(jī)連接,在其接口上使能ARP代理功能,將收到的主機(jī)IP地址信息保存到主機(jī)IP地址信息表中;并在接收到IP主機(jī)發(fā)送的ARP請(qǐng)求報(bào)文后,檢測(cè)該報(bào)文中的目標(biāo)IP地址是否在所述主機(jī)IP地址信息表中,如果在,則向IP主機(jī)發(fā)送ARP回應(yīng)報(bào)文,如果不在,則丟棄該ARP請(qǐng)求報(bào)文。
7.根據(jù)權(quán)利要求6所述的基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的系統(tǒng),其特征在于,所述接入交換機(jī)還用于向交換芯片下發(fā)規(guī)則,在交換芯片收到ARP報(bào)文后,均將其復(fù)制一份發(fā)送給接入交換機(jī)處理器進(jìn)行軟件解析,然后,ARP報(bào)文由交換芯片執(zhí)行硬件轉(zhuǎn)發(fā)。
8.根據(jù)權(quán)利要求7所述的基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的系統(tǒng),其特征在于,所述接入交換機(jī)具體用于通過(guò)監(jiān)聽(tīng)I(yíng)P主機(jī)的免費(fèi)ARP過(guò)程,創(chuàng)建和保存主機(jī)IP地址信息,將所述主機(jī)IP地址信息加入到主機(jī)IP地址信息報(bào)文中,并對(duì)該報(bào)文進(jìn)行加密和散列處理,然后,根據(jù)接入交換機(jī)配置的接收主機(jī)IP地址信息的匯聚交換機(jī)的地址,將所述主機(jī)IP地址信息報(bào)文發(fā)送至匯聚交換機(jī)。
9.根據(jù)權(quán)利要求8所述的基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的系統(tǒng),其特征在于,所述匯聚交換機(jī),在其接口上使能ARP代理功能后,解析出與所述匯聚交換機(jī)連接的所有接入交換機(jī)傳入的主機(jī)IP地址信息報(bào)文中的主機(jī)IP地址信息,并將該主機(jī)IP地址信息保存到本地的主機(jī)IP地址信息表中。
10.根據(jù)權(quán)利要求9所述的基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的系統(tǒng),其特征在于,所述匯聚交換機(jī),在接收到IP主機(jī)發(fā)送的ARP請(qǐng)求報(bào)文后,判斷ARP請(qǐng)求是否滿足代理ARP的條件, 如果滿足代理ARP的條件,則檢測(cè)該報(bào)文中的目標(biāo)IP地址是否在所述主機(jī)IP地址信息表中,如果在,則向IP主機(jī)發(fā)送ARP回應(yīng)報(bào)文,如果不在,則丟棄該ARP請(qǐng)求報(bào)文;其中,所述代理ARP的條件是指ARP請(qǐng)求報(bào)文中的目標(biāo)IP地址處在該匯聚交換機(jī)另一個(gè)三層接口的網(wǎng)段中,與發(fā)送ARP請(qǐng)求報(bào)文的IP主機(jī)不在同一個(gè)廣播域。
全文摘要
本發(fā)明公開一種基于免費(fèi)ARP實(shí)現(xiàn)代理ARP的方法,包括如下步驟A、接入交換機(jī)通過(guò)監(jiān)聽(tīng)I(yíng)P主機(jī)的免費(fèi)ARP過(guò)程,創(chuàng)建和保存主機(jī)IP地址信息,并將該主機(jī)IP地址信息發(fā)送至匯聚交換機(jī);B、匯聚交換機(jī)接收所述主機(jī)IP地址信息,并將其保存到主機(jī)IP地址信息表中;C、匯聚交換機(jī)在接收到IP主機(jī)發(fā)送的ARP請(qǐng)求報(bào)文后,檢測(cè)該報(bào)文中的目標(biāo)IP地址是否在所述主機(jī)IP地址信息表中,如果在,則向IP主機(jī)發(fā)送ARP回應(yīng)報(bào)文,如果不在,則丟棄該ARP請(qǐng)求報(bào)文。本發(fā)明實(shí)現(xiàn)了代理ARP中目標(biāo)終端的可達(dá)性檢測(cè)。
文檔編號(hào)H04L29/12GK102572013SQ20121003493
公開日2012年7月11日 申請(qǐng)日期2012年2月16日 優(yōu)先權(quán)日2012年2月16日
發(fā)明者梁小冰 申請(qǐng)人:神州數(shù)碼網(wǎng)絡(luò)(北京)有限公司