專(zhuān)利名稱(chēng):一種提高鄰居發(fā)現(xiàn)監(jiān)聽(tīng)安全性的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種提高ND Snooping(鄰居發(fā)現(xiàn)監(jiān)聽(tīng))安全 性的方法及裝置。
背景技術(shù):
隨著IPv6技術(shù)的逐步應(yīng)用,IPv6用戶接入的安全問(wèn)題已經(jīng)不容忽視,并成為 迫切需要解決的問(wèn)題,也成了廣大通信設(shè)備商和運(yùn)營(yíng)商的關(guān)注熱點(diǎn)。IPv6地址欺騙攻擊 就是其中一類(lèi)安全性問(wèn)題,草案《Control Packet Snooping BasedBinding》中提出ND Snooping (Neighbor Discovery Snooping,鄰居發(fā)現(xiàn)監(jiān)聽(tīng))技術(shù),用于解決IPv6地址欺騙 攻擊的問(wèn)題。ND Snooping技術(shù)是通過(guò)監(jiān)聽(tīng)I(yíng)Pv6用戶終端的IPv6地址重復(fù)地址檢測(cè)過(guò) 程,建立起合法接入用戶信息表,從而阻止非法的IPv6用戶的接入及攻擊。ND Snooping 技術(shù)在一定程度上解決了 IPv6地址欺騙攻擊,并且能夠防止某些類(lèi)型的ND攻擊,但是ND Snooping技術(shù)自身帶有一定的缺陷性。通過(guò)ND Snooping技術(shù)建立起來(lái)的合法接入用戶信息表,需要利用IPv6SourCe Guard技術(shù)將合法的IPv6地址綁定到接入設(shè)備用戶端口,接入設(shè)備通過(guò)匹配IPv6報(bào)文的 源IPv6地址來(lái)實(shí)現(xiàn)報(bào)文的過(guò)濾。IPv6地址綁定的實(shí)現(xiàn)需要消耗接入設(shè)備的硬件策略資源, 即每個(gè)接入設(shè)備的IPv6地址綁定條目數(shù)不可能無(wú)限制的大,是存在瓶頸的,而這正被網(wǎng)絡(luò) 攻擊者所利用。目前的ND Snooping的技術(shù)對(duì)用戶表項(xiàng)的建立、狀態(tài)機(jī)維護(hù),都是基于單個(gè) IPv6地址,并且綁定狀態(tài)的超時(shí)老化時(shí)間為池,該機(jī)制導(dǎo)致ND Snooping存在兩個(gè)缺陷1、當(dāng)網(wǎng)絡(luò)攻擊者在IPv6用戶終端不斷地添加IPv6地址,就會(huì)導(dǎo)致接入設(shè)備不斷 為該用戶進(jìn)行IPv6地址綁定,并且在綁定狀態(tài)的超時(shí)老化時(shí)間內(nèi)都無(wú)法老化,很快就會(huì)出 現(xiàn)接入設(shè)備的IPv6地址綁定條目達(dá)到最大值,從而導(dǎo)致其他普通IPv6用戶的無(wú)法正常接 入;2,ND Snooping技術(shù)是基于單個(gè)IPv6地址建立的狀態(tài)機(jī),即同一 MAC地址下的不 同IPv6地址未進(jìn)行關(guān)聯(lián)性考慮,但實(shí)際用戶使用時(shí),通常同一MAC地址下的不同IPv6地址 可能同時(shí)上線或者同時(shí)下線,ND Snooping技術(shù)未考慮該關(guān)聯(lián)性,導(dǎo)致IPv6地址綁定消耗 的硬件資源未能夠及時(shí)有效的釋放。ND Snooping技術(shù)的是為了解決IPv6地址欺騙攻擊的問(wèn)題,但目前的NDSnooping 技術(shù)自身存在缺陷,將成為網(wǎng)絡(luò)攻擊者攻擊的對(duì)象,本發(fā)明提供的方法能夠解決該問(wèn)題,有 效地提高ND Snooping的安全性。
發(fā)明內(nèi)容
本發(fā)明提供一種提高ND Snooping安全性的方法及裝置,用于解決現(xiàn)有技術(shù)中用 戶惡意不斷新增IPv6地址,攻擊ND Snooping機(jī)制的問(wèn)題。本發(fā)明實(shí)施例提供一種提高ND Snooping安全性的方法,包括接入設(shè)備提取鄰居發(fā)現(xiàn)報(bào)文,判斷該鄰居發(fā)現(xiàn)報(bào)文是否為重復(fù)地址檢測(cè)的報(bào)文;
如果是重復(fù)地址檢測(cè)的報(bào)文,則判斷該鄰居發(fā)現(xiàn)報(bào)文的源MAC地址掛載的IPv6地 址是否已經(jīng)達(dá)到預(yù)設(shè)的最大限制條目數(shù),如果達(dá)到,則在ND Snooping機(jī)制中,設(shè)置該IPv6 地址的狀態(tài)為初始化狀態(tài);若沒(méi)有達(dá)到,則新增IPv6地址節(jié)點(diǎn),該新增的IPv6地址進(jìn)入開(kāi) 始狀態(tài),并將所述源MAC地址掛載的其他IPv6地址轉(zhuǎn)為查詢狀態(tài)。一種提高ND Snooping安全性的裝置,包括重復(fù)地址檢測(cè)模塊,用于提取鄰居發(fā)現(xiàn)報(bào)文,判斷該鄰居發(fā)現(xiàn)報(bào)文是否為重復(fù)地 址檢測(cè)的報(bào)文,如果確定是重復(fù)地址檢測(cè)的報(bào)文,則轉(zhuǎn)入接入數(shù)限制模塊;接入數(shù)限制模塊,用于判斷所述鄰居發(fā)現(xiàn)報(bào)文的源MAC地址掛載的IPv6地址是否 已經(jīng)達(dá)到預(yù)設(shè)的最大限制條目數(shù),如果是,則回到初始化狀態(tài);否則,新增IPv6地址節(jié)點(diǎn), 該新增的IPv6地址進(jìn)入開(kāi)始狀態(tài),并將所述源MAC地址掛載的其他IPv6地址轉(zhuǎn)為查詢狀 態(tài)。本發(fā)明提供的方法和裝置在接入設(shè)備上進(jìn)行配置允許同一 MAC地址能夠有效接 入的IPv6地址數(shù)目,避免網(wǎng)絡(luò)攻擊者不斷地在IPv6用戶終端上新增IPv6地址,惡意消耗 接入設(shè)備上的IPv6地址綁定資源,從而達(dá)到對(duì)ND Snooping機(jī)制進(jìn)行保護(hù)的目的。
圖1為本發(fā)明實(shí)施例一種提高鄰居發(fā)現(xiàn)監(jiān)聽(tīng)ND Snooping安全性的方法的流程 圖;圖2是ND Snooping報(bào)文為Neighbor Solicit報(bào)文時(shí),本發(fā)明實(shí)施例具體實(shí)現(xiàn)的 流程圖;圖3是ND Snooping報(bào)文為Neighbor Advertise報(bào)文時(shí),本發(fā)明實(shí)施例具體實(shí)現(xiàn) 的流程圖;圖4為本發(fā)明實(shí)施例一種提高鄰居發(fā)現(xiàn)監(jiān)聽(tīng)ND Snooping安全性的裝置的結(jié)構(gòu) 圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供一種提高鄰居發(fā)現(xiàn)監(jiān)聽(tīng)安全性的方法及裝置,該方法包括接 入設(shè)備提取鄰居發(fā)現(xiàn)報(bào)文,判斷該鄰居發(fā)現(xiàn)報(bào)文是否為重復(fù)地址檢測(cè)的報(bào)文;如果是重復(fù) 地址檢測(cè)的報(bào)文,則判斷該鄰居發(fā)現(xiàn)報(bào)文的源MAC地址掛載的IPv6地址是否已經(jīng)達(dá)到預(yù)設(shè) 的最大限制條目數(shù),如果達(dá)到,則在NDSnooping機(jī)制中,設(shè)置該IPv6地址的狀態(tài)為初始化 狀態(tài);若沒(méi)有達(dá)到,則新增IPv6地址節(jié)點(diǎn),該新增的IPv6地址進(jìn)入開(kāi)始狀態(tài),并將所述源 MAC地址掛載的其他IPv6地址轉(zhuǎn)為查詢狀態(tài)。如圖1所示,本發(fā)明實(shí)施例提供的一種提高鄰居發(fā)現(xiàn)監(jiān)聽(tīng)安全性的方法,具體包 括步驟101,接入設(shè)備對(duì)提取的鄰居發(fā)現(xiàn)(Neighbor Discovery)報(bào)文進(jìn)行合法性 檢查,如果為合法報(bào)文,則根據(jù)Neighbor Discovery報(bào)文的類(lèi)型及信息確定該Neighbor Discovery報(bào)文是否為重復(fù)地址檢測(cè)的報(bào)文。在本發(fā)明實(shí)施例中報(bào)文合法性檢查,主要包括兩類(lèi)Neighbor Discovery報(bào)文的 是否滿足標(biāo)準(zhǔn)協(xié)議的要求;Neighbor Discovery報(bào)文的源MAC地址和源IPv6地址是否為
5ND Snooping記錄里存在的用戶,但是源IPv6地址為空的鄰區(qū)請(qǐng)求(Neighbor Solicit)報(bào) 文不進(jìn)行第二類(lèi)檢查。如果不滿足合法性檢查的報(bào)文,直接進(jìn)入丟棄流程,能夠有效地阻止 非法 Neighbor Discovery 攻擊。步驟102,如果所述Neighbor Discovery報(bào)文為重復(fù)地址檢測(cè)的報(bào)文,則判斷該 Neighbor Discovery報(bào)文的源MAC地址掛載的IPv6地址是否已經(jīng)達(dá)到預(yù)設(shè)的最大限制條 目數(shù),如果是,則回到初始化狀態(tài);否則,新增IPv6地址節(jié)點(diǎn),該新增的IPv6地址進(jìn)入開(kāi)始 狀態(tài),并且通知該MAC地址用戶的其他IPv6地址,并將該MAC地址用戶的其他IPv6地址轉(zhuǎn) 為查詢狀態(tài)。其中,根據(jù)Neighbor Discovery報(bào)文的類(lèi)型及信息確定該NeighborDiscovery報(bào) 文是否為重復(fù)地址檢測(cè)的報(bào)文包括根據(jù)Neighbor Discovery報(bào)文的ICMPv6報(bào)文頭中的type字段,確定所述報(bào)文是 鄰區(qū)請(qǐng)求(Neighbor Solicit)報(bào)文或鄰區(qū)通知(Neighbor Advertise)報(bào)文;若所述Neighbor Discovery 報(bào)文為 Neighbor Solicit 報(bào)文,則根據(jù) NeighborSolicit報(bào)文的源IPv6地址是否為空,如果不是,則確定為重復(fù)地址檢測(cè)的 Neighbor Solicit 的報(bào)文。若所述Neighbor Discovery報(bào)文為Neighbor Advertise報(bào)文,解析該報(bào)文的 ICMPv6報(bào)文頭(Head)的目標(biāo)地址(Target Address),根據(jù)目標(biāo)地址查找地址節(jié)點(diǎn),如果該 IPv6地址處于開(kāi)始狀態(tài),則刪除該IPv6地址節(jié)點(diǎn);如果該IPv6地址處于查詢狀態(tài),則修改 IPv6地址狀態(tài)為綁定狀態(tài),設(shè)置該綁定狀態(tài)的最大有效生命值。步驟103,定時(shí)訪問(wèn)用戶記錄,確定各IPv6地址的狀態(tài)是否超時(shí),如果是則具體包 括一下超時(shí)處理IPv6地址的開(kāi)始狀態(tài)超時(shí),則確定該IPv6地址通過(guò)了重復(fù)地址檢測(cè),將該IPv6地 址節(jié)點(diǎn)遷移到綁定狀態(tài),調(diào)用IPv6SourCe Guard模塊,將IPv6地址綁定到用戶側(cè)端口 ;IPv6地址的綁定狀態(tài)超時(shí),則確定發(fā)起鄰居不可達(dá)檢測(cè),確認(rèn)該IPv6地址是否仍 由用戶在使用,將該IPv6地址節(jié)點(diǎn)遷移到查詢狀態(tài),接入設(shè)備主動(dòng)發(fā)起鄰居不可達(dá)檢測(cè);IPv6地址的查詢狀態(tài)超時(shí),則確定該IPv6地址已經(jīng)不被使用,調(diào)用IPv6SourCe Guard模塊刪除該IPv6地址綁定,將該IPv6地址節(jié)點(diǎn)刪除,并將同一 MAC下的其他處于綁 定狀態(tài)的IPv6地址遷移到查詢狀態(tài),接入設(shè)備主動(dòng)發(fā)起鄰居不可達(dá)檢測(cè),確認(rèn)該MAC用戶 的其他IPv6地址是否在使用。在發(fā)明實(shí)施例中同一 MAC地址的IPv6地址關(guān)聯(lián),設(shè)計(jì)了該ND Snooping表記錄 的數(shù)據(jù)結(jié)構(gòu),采用同一 MAC地址下的所有IPv6地址掛載在同一鏈表中的數(shù)據(jù)結(jié)構(gòu),每個(gè) IPv6地址依然保留自身的狀態(tài),能夠獨(dú)立進(jìn)行狀態(tài)遷移,但也可能受到同一 MAC地址的不 同IPv6地址的影響從而進(jìn)行狀態(tài)遷移,并且能夠限制同一 MAC地址的最大IPv6地址條目 數(shù)。在數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)上,將IPv6的用戶信息,包括PORT、MAC、VLAN、PVC、MaxAddress Num 作為基本信息記錄在鏈表的頭節(jié)點(diǎn)里,在使用指針鏈接該MAC地址對(duì)應(yīng)的地址鏈表。其中 Max Address Num用于限制該MAC地址用戶的能夠用于有效接入的IPv6地址的條目數(shù),對(duì) 于超過(guò)最大地址條目數(shù)的IPv6地址,不再監(jiān)聽(tīng),也不再綁定,故無(wú)法進(jìn)行有效接入。地址鏈 表的每個(gè)節(jié)點(diǎn),保存 IPv6Address、AddressStatus、Time、Next Address Node Pointer。針對(duì)現(xiàn)有技術(shù)中通常同一 MAC地址下的不同IPv6地址可能同時(shí)上線或者同時(shí)下線,ND Snooping技術(shù)未考慮該關(guān)聯(lián)性,導(dǎo)致IPv6地址綁定消耗的硬件資源未能夠及時(shí)有 效的釋放問(wèn)題,在狀態(tài)遷移過(guò)程中,將同一 MAC地址下的所有IPv6地址作為一組數(shù)據(jù),進(jìn)行 狀態(tài)遷移關(guān)聯(lián),即同一 MAC地址下的IPv6地址狀態(tài)遷移會(huì)相互影響,狀態(tài)遷移的具體實(shí)現(xiàn) 方式包括ND Snooping功能使能以后,進(jìn)入初始化狀態(tài);在初始化狀態(tài),若監(jiān)聽(tīng)到重復(fù)地址檢測(cè),首先判斷該MAC地址用戶的IPv6地址 是否已經(jīng)達(dá)到最大限制條目數(shù),如果是,則回到初始化狀態(tài);否則,新增IPv6地址節(jié)點(diǎn), 該IPv6地址進(jìn)入開(kāi)始狀態(tài),并且通知該MAC地址用戶的其他IPv6地址,強(qiáng)制要求其轉(zhuǎn)為 查詢狀態(tài);最大限制條目數(shù)的功能能夠有效地避免用戶惡意不斷新增IPv6地址,攻擊ND Snooping機(jī)制,耗盡接入網(wǎng)設(shè)備IPv6地址綁定資源。在IPv6地址的開(kāi)始狀態(tài),若收到重復(fù)地址檢測(cè)的應(yīng)答,則刪除該IPv6地址節(jié)點(diǎn), 遷移到初始化狀態(tài);否則,在重復(fù)地址檢查超時(shí)后(Is),將IPv6地址轉(zhuǎn)換到綁定狀態(tài),并設(shè) 置其有效生命時(shí)間為池。在IPv6地址的綁定狀態(tài),滿足以下三個(gè)條件之一,就將該IPv6地址強(qiáng)制遷移到查 詢狀態(tài),并設(shè)置其有效生命時(shí)間為ls,并進(jìn)行鄰居不可達(dá)檢測(cè)。1、在綁定超時(shí)時(shí)間內(nèi)Qh),同一 MAC地址下,其他IPv6地址從查詢狀態(tài)遷移到初 始化狀態(tài);2、在綁定超時(shí)時(shí)間內(nèi)Qh),同一 MAC地址下,新增了 IPv6地址,從初始化狀態(tài)遷 移到開(kāi)始狀態(tài);3、綁定時(shí)間超時(shí)。其中,條件1,是考慮了同一 MAC地址上的IPv6地址通常 具有相同的在線性,即同時(shí)使用,同時(shí)離開(kāi),當(dāng)用戶離開(kāi)時(shí),接入設(shè)備無(wú)法得知,所以一旦偵 聽(tīng)到該MAC地址下有IPv6地址不可達(dá),則對(duì)該MAC地址下的所有IPv6地址進(jìn)行一次鄰居 不可達(dá)檢測(cè),從而有效地加快無(wú)效IPv6地址綁定的老化,提高ND Snooping的效率;條件2, 在MAC地址,新增IPv6地址時(shí),接入設(shè)備主動(dòng)對(duì)該MAC地址下的所有IPv6地址進(jìn)行一次鄰 居不可達(dá)檢測(cè),能夠有效地避免用戶惡意發(fā)起重復(fù)地址檢測(cè),但確不使用該IPv6地址,耗 費(fèi)接入設(shè)備IPv6地址綁定資源;條件3,則為普通的IPv6地址有效性檢測(cè),避免出現(xiàn)用戶 離開(kāi),接入網(wǎng)設(shè)備一直無(wú)法釋放資源。在IPv6地址處于查詢狀態(tài)時(shí),如果收到鄰居不可達(dá)檢測(cè)響應(yīng),則認(rèn)為該IPv6地址 仍被用戶使用,將查詢狀態(tài)遷移到綁定狀態(tài),重置有效生命時(shí)間為池。如果鄰居不可達(dá)檢測(cè) 超時(shí)(Is),則認(rèn)為該IPv6地址用戶已經(jīng)不再使用,刪除該地址節(jié)點(diǎn),從查詢狀態(tài)遷移到初 始化狀態(tài),并通知該MAC地址下其他IPv6地址進(jìn)行鄰居不可達(dá)檢測(cè),并遷移到查詢狀態(tài)。如圖2所示,根據(jù)本發(fā)明實(shí)施例所提供的方法,如果根據(jù)ND Snooping報(bào)文的 ICMPv6報(bào)文頭中的type字段,確定ND Snooping報(bào)文為Neighbor Solicit報(bào)文,則協(xié)議業(yè) 務(wù)處理流程的具體步驟包括步驟201 接入網(wǎng)設(shè)備使能ND Snooping開(kāi)關(guān),驅(qū)動(dòng)模塊設(shè)置芯片提取Neighbor Discovery報(bào)文,處理流程處于開(kāi)始狀態(tài)。步驟202 報(bào)文合法性檢查,合法則轉(zhuǎn)入步驟203,否則丟棄報(bào)文并結(jié)束流程;主要包括兩類(lèi)Neighbor Discovery報(bào)文的是否滿足標(biāo)準(zhǔn)協(xié)議的要求;Neighbor Discovery報(bào)文的源MAC地址和源IPv6地址是否為ND Snooping記錄里存在的用戶,但是 源IPv6地址為空的Neighbor Solicit報(bào)文不進(jìn)行第二類(lèi)檢查。如果不滿足合法性檢查的 報(bào)文,直接進(jìn)入丟棄流程,能夠有效地阻止非法Neighbor Discovery攻擊。
步驟203 根據(jù)Neighbor Solicit報(bào)文的源IPv6地址是否為空,若為空,則為重 復(fù)地址檢測(cè)的Neighbor Solicit的報(bào)文,進(jìn)入步驟204開(kāi)始處理,否則,進(jìn)入步驟209,直接轉(zhuǎn)發(fā)。步驟204 根據(jù)Neighbor Solicit報(bào)文的Port和源MAC地址進(jìn)行去查找用戶記 錄,如果未找到,則進(jìn)入步驟205,進(jìn)行創(chuàng)建用戶記錄;如果找到,則進(jìn)入步驟206,進(jìn)行最大 地址數(shù)的檢查。步驟205 根據(jù)Neighbor Solicit報(bào)文的信息,記錄下該報(bào)文的Port、MAC、VLAN、 PVC信息,創(chuàng)建用戶記錄,并轉(zhuǎn)入步驟208。步驟206 判斷查找到的用戶記錄,地址節(jié)點(diǎn)數(shù)目是否已經(jīng)達(dá)到最大限制條目數(shù), 如果是,則轉(zhuǎn)入步驟209 ;否則轉(zhuǎn)入步驟207。步驟207 將用戶記錄中的其他地址節(jié)點(diǎn)的IPv6地址設(shè)置為查詢狀態(tài),并發(fā)起鄰 居不可達(dá)請(qǐng)求的Neighbor Solicit報(bào)文。步驟208 添加IPv6地址節(jié)點(diǎn),并將該IPv6地址的狀態(tài)設(shè)置為開(kāi)始狀態(tài),有效生 命時(shí)間設(shè)置為Is。步驟209 將目的MAC為單播地址的Neighbor Advertise報(bào)文,根據(jù)MAC和VLAN 轉(zhuǎn)發(fā);其余報(bào)文都將在VLAN中洪泛。步驟210 協(xié)議處理流程結(jié)束。如圖3所示,根據(jù)本發(fā)明實(shí)施例所提供的方法,如果根據(jù)ND Snooping報(bào)文的 ICMPv6報(bào)文頭中的type字段,確定ND Snooping報(bào)文為NeighborAdvertise報(bào)文,則協(xié)議 業(yè)務(wù)處理流程的具體步驟包括步驟301 接入網(wǎng)設(shè)備使能ND Snooping開(kāi)關(guān),驅(qū)動(dòng)模塊設(shè)置芯片提取Neighbor Discovery報(bào)文,處理流程處于開(kāi)始狀態(tài)。步驟302 報(bào)文合法性檢查,合法則轉(zhuǎn)入步驟303,否則轉(zhuǎn)入步驟312 ;主要包括兩類(lèi)Neighbor Discovery報(bào)文的是否滿足標(biāo)準(zhǔn)協(xié)議的要求;Neighbor Discovery報(bào)文的源MAC地址和源IPv6地址是否為ND Snooping記錄里存在的用戶,但是 源IPv6地址為空的Neighbor Solicit報(bào)文不進(jìn)行第二類(lèi)檢查。如果不滿足合法性檢查的 報(bào)文,直接進(jìn)入丟棄流程,能夠有效地阻止非法Neighbor Discovery攻擊。步驟303 根據(jù)Neighbor Advertise報(bào)文的ICMPv6報(bào)文頭的目標(biāo)地址的IPv6地 址,去查找所有處于開(kāi)始狀態(tài)或者處于查詢狀態(tài)的地址節(jié)點(diǎn),如果找到,則進(jìn)入步驟304開(kāi) 始處理,否則,進(jìn)入步驟311,直接轉(zhuǎn)發(fā)。步驟304 判斷查找到的地址節(jié)點(diǎn),該IPv6地址是否處于開(kāi)始狀態(tài),如果是,則進(jìn) 入步驟307,否則進(jìn)入步驟305。步驟305 判斷查找到的地址節(jié)點(diǎn),該IPv6地址是否處于查詢狀態(tài),如果是,則轉(zhuǎn) 入步驟306 ;否則轉(zhuǎn)入步驟311。步驟306 調(diào)用IPv6Source Guard模塊對(duì)IPv6地址進(jìn)行綁定,修改地址節(jié)點(diǎn)的 IPv6地址的狀態(tài)為綁定狀態(tài),設(shè)置最大有效生命值為2h,并轉(zhuǎn)入步驟311。步驟307 調(diào)用IPv6Source Guard模塊刪除對(duì)該IPv6地址的綁定,刪除該IPv6地 址節(jié)點(diǎn)。步驟308 判斷該用戶記錄的地址節(jié)點(diǎn)鏈表是否已經(jīng)為空,如果是,則轉(zhuǎn)入步驟
8310 ;否則轉(zhuǎn)入步驟309。步驟309 刪除用戶記錄,轉(zhuǎn)發(fā)報(bào)文后結(jié)束流程。步驟310 將用戶記錄中的其他地址節(jié)點(diǎn)的IPv6地址設(shè)置為查詢狀態(tài),并發(fā)起鄰 居不可達(dá)請(qǐng)求的Neighbor Solicit報(bào)文。步驟311,將目的MAC為單播地址的Neighbor Advertise報(bào)文,根據(jù)MAC和VLAN 轉(zhuǎn)發(fā);其余報(bào)文都將在VLAN中洪泛,結(jié)束流程。步驟312:丟棄該報(bào)文。步驟313 協(xié)議處理流程結(jié)束。如圖4所是,根據(jù)上述方法本發(fā)明實(shí)施例還提供一種提高鄰居發(fā)現(xiàn)監(jiān)聽(tīng)安全性的 裝置,包括報(bào)文合法性檢測(cè)模塊401,用于對(duì)提取的鄰居發(fā)現(xiàn)報(bào)文進(jìn)行合法性檢查,如果為合 法報(bào)文,則根據(jù)鄰居發(fā)現(xiàn)報(bào)文的類(lèi)型及信息確定該鄰居發(fā)現(xiàn)報(bào)文是否為重復(fù)地址檢測(cè)的報(bào) 文。在本發(fā)明實(shí)施例中,如果不滿足合法性檢查的報(bào)文,直接進(jìn)入丟棄流程,能夠有效 地阻止非法鄰居發(fā)現(xiàn)攻擊。重復(fù)地址檢測(cè)模塊402,用于提取鄰居發(fā)現(xiàn)報(bào)文,并判斷該鄰居發(fā)現(xiàn)報(bào)文是否為重 復(fù)地址檢測(cè)的報(bào)文,若是,則轉(zhuǎn)入接入數(shù)限制模塊;接入數(shù)限制模塊403,用于判斷所述鄰居發(fā)現(xiàn)報(bào)文的源MAC地址掛載的IPv6地址 是否已經(jīng)達(dá)到預(yù)設(shè)的最大限制條目數(shù),如果是,則回到初始化狀態(tài);否則,新增IPv6地址節(jié) 點(diǎn),該新增的IPv6地址進(jìn)入開(kāi)始狀態(tài),并將所述源MAC地址掛載的其他IPv6地址轉(zhuǎn)為查詢 狀態(tài)。所述報(bào)文合法性檢測(cè)模塊401根據(jù)鄰居發(fā)現(xiàn)報(bào)文的類(lèi)型及信息確定該鄰居發(fā)現(xiàn) 報(bào)文是否為重復(fù)地址檢測(cè)的報(bào)文包括根據(jù)鄰居發(fā)現(xiàn)報(bào)文ICMPv6報(bào)文頭中的type字段,確定所述報(bào)文是鄰區(qū)請(qǐng)求報(bào)文 或鄰區(qū)通知報(bào)文;若所述鄰居發(fā)現(xiàn)報(bào)文為鄰區(qū)請(qǐng)求報(bào)文,則確定鄰區(qū)請(qǐng)求報(bào)文的源IPv6地址是否 為空,如果為空,則確定為重復(fù)地址檢測(cè)的鄰區(qū)請(qǐng)求的報(bào)文。另外,報(bào)文合法性檢測(cè)模塊401若確定所述鄰居發(fā)現(xiàn)報(bào)文為鄰區(qū)通知報(bào)文,解析 該報(bào)文的ICMPv6報(bào)文頭的目標(biāo)地址,根據(jù)目標(biāo)地址查找地址節(jié)點(diǎn),如果該IPv6地址處于開(kāi) 始狀態(tài),則刪除該IPv6地址節(jié)點(diǎn);如果該IPv6地址處于查詢狀態(tài),則修改IPv6地址狀態(tài)為 綁定狀態(tài),設(shè)置該綁定狀態(tài)的最大有效生命值。超時(shí)處理模塊404,用于定時(shí)訪問(wèn)用戶記錄,確定各IPv6地址的狀態(tài)是否超時(shí),如 果是IPv6地址的開(kāi)始狀態(tài)超時(shí),則確定該IPv6地址通過(guò)了重復(fù)地址檢測(cè),將該IPv6地址 節(jié)點(diǎn)遷移到綁定狀態(tài),將IPv6地址綁定到用戶側(cè)端口 ;如果IPv6地址的綁定狀態(tài)超時(shí),則 發(fā)起鄰居不可達(dá)檢測(cè),確認(rèn)該IPv6地址是否仍由用戶在使用,將該IPv6地址節(jié)點(diǎn)遷移到查 詢狀態(tài),主動(dòng)發(fā)起鄰居不可達(dá)檢測(cè);如果IPv6地址的查詢狀態(tài)超時(shí),刪除該IPv6地址綁定, 并將同一 MAC下的其他處于綁定狀態(tài)的IPv6地址遷移到查詢狀態(tài),主動(dòng)發(fā)起鄰居不可達(dá)檢 測(cè),確認(rèn)該MAC用戶的其他IPv6地址是否在使用。在本發(fā)明實(shí)施例所提供的方法中,接入設(shè)備上可以進(jìn)行配置允許同一 MAC地址能夠有效接入的IPv6地址數(shù)目,避免網(wǎng)絡(luò)攻擊者不斷地在IPv6用戶終端上新增IPv6地址, 惡意消耗接入設(shè)備上的IPv6地址綁定資源,從而達(dá)到對(duì)ND Snooping機(jī)制進(jìn)行保護(hù)的目 的。綜上所述,通過(guò)本發(fā)明的上述實(shí)施例,提供了一種提高ND Snooping功能安全性的 方法、網(wǎng)元設(shè)備,能夠有效地提高ND Snooping的安全性,避免NDSnooping功能自身受到攻
擊ο本發(fā)明所述的方法并不限于具體實(shí)施方式
中所述的實(shí)施例,本領(lǐng)域技術(shù)人員根據(jù) 本發(fā)明的技術(shù)方案得出其它的實(shí)施方式,同樣屬于本發(fā)明的技術(shù)創(chuàng)新范圍。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
10
權(quán)利要求
1.一種提高鄰居發(fā)現(xiàn)監(jiān)聽(tīng)安全性的方法,其特征在于,包括接入設(shè)備提取鄰居發(fā)現(xiàn)報(bào)文,判斷該鄰居發(fā)現(xiàn)報(bào)文是否為重復(fù)地址檢測(cè)的報(bào)文;如果是重復(fù)地址檢測(cè)的報(bào)文,則判斷該鄰居發(fā)現(xiàn)報(bào)文的源MAC地址掛載的IPv6地址是 否已經(jīng)達(dá)到預(yù)設(shè)的最大限制條目數(shù),如果達(dá)到,則在鄰居發(fā)現(xiàn)監(jiān)聽(tīng)過(guò)程中,設(shè)置該IPv6地 址的狀態(tài)為初始化狀態(tài);若沒(méi)有達(dá)到,則新增IPv6地址節(jié)點(diǎn),該新增的IPv6地址進(jìn)入開(kāi)始 狀態(tài),并將所述源MAC地址掛載的其他IPv6地址轉(zhuǎn)為查詢狀態(tài)。
2.如權(quán)利要求1所述的方法,其特征在于,所述判斷該鄰居發(fā)現(xiàn)報(bào)文是否為重復(fù)地址 檢測(cè)的報(bào)文之前,還進(jìn)一步包括對(duì)提取的鄰居發(fā)現(xiàn)報(bào)文進(jìn)行合法性檢查,如果為合法報(bào)文,則根據(jù)鄰居發(fā)現(xiàn)報(bào)文的類(lèi) 型及信息確定該鄰居發(fā)現(xiàn)報(bào)文是否為重復(fù)地址檢測(cè)的報(bào)文。
3.如權(quán)利要求2所述的方法,其特征在于,根據(jù)鄰居發(fā)現(xiàn)報(bào)文的類(lèi)型及信息確定該鄰 居發(fā)現(xiàn)報(bào)文是否為重復(fù)地址檢測(cè)的報(bào)文包括根據(jù)鄰居發(fā)現(xiàn)報(bào)文ICMPv6報(bào)文頭中的type字段,確定所述報(bào)文是鄰區(qū)請(qǐng)求報(bào)文或鄰 區(qū)通知報(bào)文;若所述鄰居發(fā)現(xiàn)報(bào)文為鄰區(qū)請(qǐng)求報(bào)文,則確定鄰區(qū)請(qǐng)求報(bào)文的源IPv6地址是否為空, 如果為空,則確定為重復(fù)地址檢測(cè)的鄰區(qū)請(qǐng)求的報(bào)文。
4.如權(quán)利要求3所述的方法,其特征在于,若確定所述鄰居發(fā)現(xiàn)報(bào)文為鄰區(qū)通知報(bào)文, 解析該報(bào)文的ICMPv6報(bào)文頭的目標(biāo)地址,根據(jù)目標(biāo)地址查找地址節(jié)點(diǎn), 如果該IPv6地址處 于開(kāi)始狀態(tài),則刪除該IPv6地址節(jié)點(diǎn);如果該IPv6地址處于查詢狀態(tài),則修改IPv6地址狀 態(tài)為綁定狀態(tài),設(shè)置該綁定狀態(tài)的最大有效生命值。
5.如權(quán)利要求1所述的方法,其特征在于,將該MAC地址用戶的其他IPv6地址轉(zhuǎn)為查 詢狀態(tài)之后,進(jìn)一步包括定時(shí)訪問(wèn)用戶記錄,確定各IPv6地址的狀態(tài)是否超時(shí),如果是,具體包括IPv6地址的開(kāi)始狀態(tài)超時(shí),則確定該IPv6地址通過(guò)了重復(fù)地址檢測(cè),將該IPv6地址節(jié) 點(diǎn)遷移到綁定狀態(tài),將IPv6地址綁定到用戶側(cè)端口 ;IPv6地址的綁定狀態(tài)超時(shí),則確定發(fā)起鄰居不可達(dá)檢測(cè),確認(rèn)該IPv6地址是否仍由用 戶在使用,將該IPv6地址節(jié)點(diǎn)遷移到查詢狀態(tài),接入設(shè)備主動(dòng)發(fā)起鄰居不可達(dá)檢測(cè);IPv6地址的查詢狀態(tài)超時(shí),則確定該IPv6地址已經(jīng)不被使用,刪除該IPv6地址綁定, 并將同一 MAC下的其他處于綁定狀態(tài)的IPv6地址遷移到查詢狀態(tài),接入設(shè)備主動(dòng)發(fā)起鄰居 不可達(dá)檢測(cè),確認(rèn)該MAC用戶的其他IPv6地址是否在使用。
6.一種提高鄰居發(fā)現(xiàn)監(jiān)聽(tīng)安全性的裝置,其特征在于,包括重復(fù)地址檢測(cè)模塊,用于提取鄰居發(fā)現(xiàn)報(bào)文,并判斷該鄰居發(fā)現(xiàn)報(bào)文是否為重復(fù)地址 檢測(cè)的報(bào)文,若是,則轉(zhuǎn)入接入數(shù)限制模塊;接入數(shù)限制模塊,用于判斷所述鄰居發(fā)現(xiàn)報(bào)文的源MAC地址掛載的IPv6地址是否已經(jīng) 達(dá)到預(yù)設(shè)的最大限制條目數(shù),如果是,則回到初始化狀態(tài);否則,新增IPv6地址節(jié)點(diǎn),該新 增的IPv6地址進(jìn)入開(kāi)始狀態(tài),并將所述源MAC地址掛載的其他IPv6地址轉(zhuǎn)為查詢狀態(tài)。
7.如權(quán)利要求6所述的裝置,其特征在于,該裝置還包括報(bào)文合法性檢測(cè)模塊,用于對(duì)提取的鄰居發(fā)現(xiàn)報(bào)文進(jìn)行合法性檢查,如果為合法報(bào)文, 則根據(jù)鄰居發(fā)現(xiàn)報(bào)文的類(lèi)型及信息確定該鄰居發(fā)現(xiàn)報(bào)文是否為重復(fù)地址檢測(cè)的報(bào)文。
8.如權(quán)利要求7所述的裝置,其特征在于,所述報(bào)文合法性檢測(cè)模塊用于根據(jù)鄰居發(fā) 現(xiàn)報(bào)文的類(lèi)型及信息確定該鄰居發(fā)現(xiàn)報(bào)文是否為重復(fù)地址檢測(cè)的報(bào)文包括用于根據(jù)鄰居發(fā)現(xiàn)報(bào)文ICMPv6報(bào)文頭中的type字段,確定所述報(bào)文是鄰區(qū)請(qǐng)求報(bào)文 或鄰區(qū)通知報(bào)文;若所述鄰居發(fā)現(xiàn)報(bào)文為鄰區(qū)請(qǐng)求報(bào)文,則確定鄰區(qū)請(qǐng)求報(bào)文的源IPv6地 址是否為空,如果為空,則確定為重復(fù)地址檢測(cè)的鄰區(qū)請(qǐng)求的報(bào)文。
9.如權(quán)利要求8所述的裝置,其特征在于,所述報(bào)文合法性檢測(cè)模塊用于若確定所述 鄰居發(fā)現(xiàn)報(bào)文為鄰區(qū)通知報(bào)文,解析該報(bào)文的ICMPv6報(bào)文頭的目標(biāo)地址,根據(jù)目標(biāo)地址查 找地址節(jié)點(diǎn),如果該IPv6地址處于開(kāi)始狀態(tài),則刪除該IPv6地址節(jié)點(diǎn);如果該IPv6地址處 于查詢狀態(tài),則修改IPv6地址狀態(tài)為綁定狀態(tài),設(shè)置該綁定狀態(tài)的最大有效生命值。
10.如權(quán)利要求6所述的裝置,其特征在于,該裝置還包括超時(shí)處理模塊,用于定時(shí)訪問(wèn)用戶記錄,確定各IPv6地址的狀態(tài)是否超時(shí),如果是 IPv6地址的開(kāi)始狀態(tài)超時(shí),則確定該IPv6地址通過(guò)了重復(fù)地址檢測(cè),將該IPv6地址節(jié)點(diǎn) 遷移到綁定狀態(tài),將IPv6地址綁定到用戶側(cè)端口 ;如果IPv6地址的綁定狀態(tài)超時(shí),則發(fā)起 鄰居不可達(dá)檢測(cè),確認(rèn)該IPv6地址是否仍由用戶在使用,將該IPv6地址節(jié)點(diǎn)遷移到查詢狀 態(tài),主動(dòng)發(fā)起鄰居不可達(dá)檢測(cè);如果IPv6地址的查詢狀態(tài)超時(shí),刪除該IPv6地址綁定,并將 同一 MAC下的其他處于綁定狀態(tài)的IPv6地址遷移到查詢狀態(tài),主動(dòng)發(fā)起鄰居不可達(dá)檢測(cè), 確認(rèn)該MAC用戶的其他IPv6地址是否在使用。
全文摘要
本發(fā)明公開(kāi)了一種提高鄰居發(fā)現(xiàn)監(jiān)聽(tīng)安全性的方法及裝置,應(yīng)用于網(wǎng)絡(luò)通信領(lǐng)域。該方法包括接入設(shè)備提取鄰居發(fā)現(xiàn)報(bào)文,判斷是否為重復(fù)地址檢測(cè)的報(bào)文;若是,則判斷該鄰居發(fā)現(xiàn)報(bào)文的源MAC地址掛載的IPv6地址是否已經(jīng)達(dá)到預(yù)設(shè)的最大限制條目數(shù),如果達(dá)到,則設(shè)置該IPv6地址為初始化狀態(tài);若沒(méi)有達(dá)到,則新增IPv6地址節(jié)點(diǎn),該新增的IPv6地址進(jìn)入開(kāi)始狀態(tài),并將該MAC地址用戶的其他IPv6地址轉(zhuǎn)為查詢狀態(tài)。最大限制條目數(shù)的功能能夠有效地避免用戶惡意不斷新增IPv6地址,攻擊鄰居發(fā)現(xiàn)監(jiān)聽(tīng)機(jī)制。
文檔編號(hào)H04L29/12GK102130905SQ20111002994
公開(kāi)日2011年7月20日 申請(qǐng)日期2011年1月27日 優(yōu)先權(quán)日2011年1月27日
發(fā)明者賀劍 申請(qǐng)人:中興通訊股份有限公司