两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

以太網(wǎng)端口控制裝置及方法

文檔序號:7889414閱讀:154來源:國知局
專利名稱:以太網(wǎng)端口控制裝置及方法
技術(shù)領(lǐng)域
本發(fā)明涉及以太網(wǎng)的數(shù)據(jù)處理技術(shù),尤其涉及一種以太網(wǎng)端口控制裝置及方法。
背景技術(shù)
美國電氣電子工程師學(xué)會(IEEE)802. Ix協(xié)議是基于客戶端/服務(wù)器(Client/ Server)的訪問控制和認(rèn)證協(xié)議。它可以限制未經(jīng)授權(quán)的用戶/設(shè)備通過接入端口(access port)訪問局域網(wǎng)(LAN)。在獲得交換機(jī)或LAN提供的各種業(yè)務(wù)之前,802. Ix協(xié)議對連接到交換機(jī)端口上的用戶/設(shè)備進(jìn)行認(rèn)證和端口控制。在認(rèn)證通過之前,802. Ix協(xié)議只允許基于局域網(wǎng)的擴(kuò)展認(rèn)證協(xié)議(EAPoL)數(shù)據(jù)即認(rèn)證報文通過設(shè)備連接的以太網(wǎng)端口 ;報文在認(rèn)證通過以后,才可以順利地通過以太網(wǎng)端口。這種控制方式被稱為IEEE 802. Ix協(xié)議的以太網(wǎng)端口控制。目前實現(xiàn)IEEE 802. Ix協(xié)議的以太網(wǎng)端口控制是通過硬件來完成的。如圖1為現(xiàn)有的支持IEEE 802. Ix協(xié)議的以太網(wǎng)端口控制裝置的層次結(jié)構(gòu)圖。參見圖1,所述物理鏈路層中包括以太交換芯片,用于以太網(wǎng)的數(shù)據(jù)交換和IEEE 802. Ix協(xié)議的以太網(wǎng)端口控制, 屬于硬件;所述以太驅(qū)動層中包括以太驅(qū)動程序,用于驅(qū)動以太網(wǎng)協(xié)議,所述內(nèi)核協(xié)議棧為應(yīng)用層和以太驅(qū)動層之間各協(xié)議的總稱,用于傳輸應(yīng)用層和以太驅(qū)動層之間的交互信息, 所述應(yīng)用層用于運(yùn)行各種上層應(yīng)用程序;所述以太驅(qū)動層、內(nèi)核協(xié)議棧、以及應(yīng)用層中的各種應(yīng)用程序由設(shè)備的中央處理器(CPU)運(yùn)行,屬于軟件程序。現(xiàn)有技術(shù)中,應(yīng)用層的認(rèn)證服務(wù)程序用于根據(jù)以太網(wǎng)中的客戶端發(fā)送的認(rèn)證報文對客戶端的MAC地址和/或以太網(wǎng)交換端口信息進(jìn)行前期認(rèn)證,將報文認(rèn)證參數(shù)設(shè)置在物理鏈路層的以太交換芯片的寄存器中,當(dāng)以太交換芯片收到報文后,由該以太交換芯片實現(xiàn)IEEE 802. Ix的以太網(wǎng)端口控制,也就是說,以太交換芯片根據(jù)寄存器中設(shè)置的報文認(rèn)證參數(shù)決定是否接收并向CPU上傳物理鏈路層所收到的報文,當(dāng)收到未認(rèn)證通過的報文時,以太交換芯片會直接丟棄該報文,而不上交給CPU處理。但是,現(xiàn)有技術(shù)這種通過以太網(wǎng)交換芯片的硬件實現(xiàn)IEEE 802. Ix協(xié)議以太網(wǎng)端口控制的方式有如下缺點(diǎn)IEEE802. Ix認(rèn)證協(xié)議對硬件有直接的依賴性,在設(shè)備應(yīng)用IEEE802. Ix認(rèn)證協(xié)議的過程中需要硬件即以太網(wǎng)交換芯片來實現(xiàn)IEEE 802. Ix協(xié)議以太網(wǎng)端口控制,不但硬件的成本高昂,而且擴(kuò)展性差,在對端口控制方式進(jìn)行升級或修改時往往需要更換整個以太網(wǎng)交換芯片。另一方面,有相當(dāng)多的成本低廉的以太交換芯片卻不支持這種IEEE 802. Ix 協(xié)議的以太網(wǎng)端口控制,因此所以阻礙了 IEEE802. Ix認(rèn)證協(xié)議的廣泛應(yīng)用。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種以太網(wǎng)端口控制裝置及方法,降低實現(xiàn)以太網(wǎng)端口控制的硬件成本,提高擴(kuò)展性。本發(fā)明的技術(shù)方案是這樣實現(xiàn)的
一種以太網(wǎng)端口控制裝置,包括物理鏈路層的以太交換芯片,用于將接收的報文傳給以太驅(qū)動層;以太驅(qū)動層的以太驅(qū)動程序,用于在收到來自以太交換芯片的報文后確定該報文的類型和源介質(zhì)訪問控制層MAC地址、以及接收該報文的以太交換芯片的端口,將所確定的信息輸入端口控制模塊,根據(jù)端口控制模塊返回的信息決定是否接收該報文;以太驅(qū)動層的端口控制模塊,用于根據(jù)應(yīng)用層的認(rèn)證服務(wù)程序的配置命令設(shè)置報文認(rèn)證參數(shù),其中包括認(rèn)證通過的MAC地址和/或端口認(rèn)證信息;并根據(jù)所述以太驅(qū)動程序的輸入信息和所述報文認(rèn)證參數(shù)進(jìn)行端口控制,所述端口控制包括如果以太驅(qū)動程序所收到的報文的類型為認(rèn)證報文,則通知以太驅(qū)動程序接收該報文并上傳到上層的認(rèn)證服務(wù)程序,如果是非認(rèn)證報文,則判斷該報文的MAC地址或接收該報文的以太交換芯片的端口是否為所述報文認(rèn)證參數(shù)中設(shè)置的已認(rèn)證通過的MAC地址或端口,如果是則通知以太驅(qū)動程序接收該報文并上傳到相應(yīng)的上層應(yīng)用程序,否則丟棄該報文;應(yīng)用層的認(rèn)證服務(wù)程序,用于根據(jù)以太驅(qū)動層上傳的認(rèn)證報文對MAC地址和/或端口信息進(jìn)行認(rèn)證,向端口控制模塊發(fā)送設(shè)置報文認(rèn)證參數(shù)的配置指令。優(yōu)選的,所述端口控制模塊具體包括兩個對外接口 一個為供所述認(rèn)證服務(wù)程序調(diào)用的報文認(rèn)證參數(shù)的配置接口,其中包括用于存儲所述報文認(rèn)證參數(shù)的數(shù)據(jù)結(jié)構(gòu),所述認(rèn)證服務(wù)程序通過該配置接口對該數(shù)據(jù)結(jié)構(gòu)中的報文認(rèn)證參數(shù)進(jìn)行訪問和修改;另一個為供以太驅(qū)動程序調(diào)用的認(rèn)證函數(shù)接口,用于根據(jù)所述以太驅(qū)動程序的輸入信息和所述報文認(rèn)證參數(shù)進(jìn)行所述端口控制。優(yōu)選的,所述用于存儲所述報文認(rèn)證參數(shù)的數(shù)據(jù)結(jié)構(gòu)為Troc節(jié)點(diǎn)樹。優(yōu)選的,所述以太網(wǎng)端口控制裝置使用的認(rèn)證控制協(xié)議為IEEE802. Ix協(xié)議。一種以太網(wǎng)端口控制方法,包括以太交換芯片將收到的報文上傳給以太驅(qū)動層;以太驅(qū)動層確定來自以太交換芯片的所述報文的類型和源MAC地址,以及接收該報文的以太交換芯片的端口 ;如果所述報文類型為認(rèn)證報文,則接收并上傳到上層的認(rèn)證服務(wù)程序;所述上層的認(rèn)證服務(wù)程序根據(jù)認(rèn)證報文對MAC地址和/或端口信息進(jìn)行認(rèn)證,向以太驅(qū)動層發(fā)送設(shè)置報文認(rèn)證參數(shù)的配置指令;所述以太驅(qū)動層根據(jù)所述認(rèn)證服務(wù)程序的配置命令設(shè)置報文認(rèn)證參數(shù),所設(shè)置的報文認(rèn)證參數(shù)中包括認(rèn)證通過的MAC地址和/或端口認(rèn)證信息;如果所述以太驅(qū)動層收到的來自以太交換芯片的報文的類型是非認(rèn)證報文,則判斷該報文的MAC地址或接收該報文的以太交換芯片的端口是否為所述報文認(rèn)證參數(shù)中設(shè)置的已認(rèn)證通過的MAC地址或端口,如果是則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序, 否則丟棄該報文。優(yōu)選的,進(jìn)一步包括所設(shè)置的報文認(rèn)證參數(shù)中包括默認(rèn)接受的MAC地址表,所述以太驅(qū)動層在確定來自以太交換芯片的報文的源MAC地址后,判斷該報文的源MAC地址是否在所述默認(rèn)接受的 MAC地址表中,如果是則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序;
和/或,所設(shè)置的報文認(rèn)證參數(shù)中包括默認(rèn)拒絕的MAC地址表,所述以太驅(qū)動層在確定來自以太交換芯片的報文的源MAC地址后,判斷該報文的源MAC地址是否在所述默認(rèn)拒絕的MAC地址表中,如果是則丟棄該報文。優(yōu)選的,所述報文認(rèn)證參數(shù)中進(jìn)一步設(shè)置啟動標(biāo)記,用于表示是否啟用以太網(wǎng)端口控制;所述以太驅(qū)動層收到的來自以太交換芯片的報文后,首先通過該啟動標(biāo)記判斷是否啟用以太網(wǎng)端口控制,如果是,則執(zhí)行后續(xù)的所述以太網(wǎng)端口控制流程;否則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序。優(yōu)選的,所述報文認(rèn)證參數(shù)中進(jìn)一步設(shè)置認(rèn)證模式標(biāo)記,用于表示是MAC認(rèn)證模式或者是端口認(rèn)證模式;所述以太驅(qū)動層收到的來自以太交換芯片的報文后,通過該認(rèn)證模式標(biāo)記判斷是 MAC認(rèn)證模式還是端口認(rèn)證模式;如果是MAC認(rèn)證模式則判斷該報文的MAC地址是否為所述報文認(rèn)證參數(shù)中設(shè)置的已認(rèn)證通過的MAC地址,如果是則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序,否則丟棄該報文;如果是端口認(rèn)證模式則判斷接收該報文的端口是否為所述報文認(rèn)證參數(shù)中設(shè)置的已認(rèn)證通過的端口,如果是則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序,否則丟棄該報文。優(yōu)選的,所述以太驅(qū)動層設(shè)置報文認(rèn)證參數(shù)的具體方式為以太驅(qū)動層在操作系統(tǒng)內(nèi)核中創(chuàng)建和維護(hù)用于存儲所述報文認(rèn)證參數(shù)的節(jié)點(diǎn)樹的數(shù)據(jù)結(jié)構(gòu),所述認(rèn)證服務(wù)程序通過配置命令直接對該I^roc節(jié)點(diǎn)樹中的報文認(rèn)證參數(shù)進(jìn)行訪問和修改。優(yōu)選的,所述以太網(wǎng)端口控制方法為使用IEEE802. Ix協(xié)議進(jìn)行控制的方法。與現(xiàn)有技術(shù)相比,本發(fā)明的所述以太交換芯片在收到所有報文后都會發(fā)送給以太驅(qū)動層,在以太驅(qū)動層增加了一個端口控制模塊,屬于以太驅(qū)動層中的軟件模塊,用于根據(jù)所述認(rèn)證服務(wù)程序的配置命令設(shè)置報文認(rèn)證參數(shù),根據(jù)設(shè)置的報文認(rèn)證參數(shù)決定以太驅(qū)動層是否接收并向上層上傳來自以太交換芯片的報文,從而不依賴以太交換芯片就可實現(xiàn)以太網(wǎng)端口控制,降低實現(xiàn)以太網(wǎng)端口控制的硬件成本,在對端口控制方式進(jìn)行升級或修改時只需對以太驅(qū)動層中的軟件程序進(jìn)行修改即可,提高了擴(kuò)展性。本發(fā)明很好地解決了 IEEE802. Ix認(rèn)證協(xié)議對硬件的依賴性,采用成本低廉的以太網(wǎng)交換芯片就可以實現(xiàn)IEEE 802. Ix協(xié)議的以太網(wǎng)端口控制,降低了實現(xiàn)IEEE 802. Ix 協(xié)議的以太網(wǎng)端口控制的硬件成本,同時,在對端口控制方式進(jìn)行升級或修改時只需對以太驅(qū)動層中的軟件程序進(jìn)行修改即可,提高了實現(xiàn)IEEE 802. Ix協(xié)議的以太網(wǎng)端口控制的擴(kuò)展性。所以應(yīng)用本發(fā)明后,支持IEEE802. Ix認(rèn)證協(xié)議的設(shè)備,在選擇硬件時可以更多的去考慮成本等其它有利的因素而忽略是否支持IEEE802. Ix認(rèn)證的端口控制這個因素。


圖1為現(xiàn)有的支持IEEE 802. Ix協(xié)議的以太網(wǎng)端口控制裝置的層次結(jié)構(gòu)圖;圖2為本發(fā)明所述以太網(wǎng)端口控制裝置的層次結(jié)構(gòu)圖;圖3為本發(fā)明所述端口控制模塊對外提供的接口示意圖4為本發(fā)明所述以太網(wǎng)端口控制方法的一種流程圖;圖5為一種具體實施例中的一種節(jié)點(diǎn)樹的結(jié)構(gòu)圖;圖6為所述認(rèn)證函數(shù)接口被調(diào)用后的具體處理流程示意圖。
具體實施例方式下面結(jié)合附圖及具體實施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明。圖2為本發(fā)明所述以太網(wǎng)端口控制裝置的層次結(jié)構(gòu)圖。參見圖2,本發(fā)明所述的以太網(wǎng)端口控制裝置包括物理鏈路層的以太交換芯片,與現(xiàn)有技術(shù)相區(qū)別的是該以太交換芯片不進(jìn)行以太網(wǎng)端口控制,而是將接收的所有報文都傳給以太驅(qū)動層。以太驅(qū)動層的以太驅(qū)動程序,用于在收到來自以太交換芯片的報文后確定該報文的類型和源介質(zhì)訪問控制層(MAC)地址、以及接收該報文的以太交換芯片的端口,將所確定的信息輸入端口控制模塊,根據(jù)端口控制模塊返回的信息決定是否接收該報文;以太驅(qū)動層的端口控制模塊,用于根據(jù)應(yīng)用層的認(rèn)證服務(wù)程序的配置命令設(shè)置報文認(rèn)證參數(shù),其中包括認(rèn)證通過的MAC地址和/或端口信息;并根據(jù)所述以太驅(qū)動程序的輸入信息和所述報文認(rèn)證參數(shù)進(jìn)行端口控制,所述端口控制包括如果以太驅(qū)動程序所收到的報文的類型為認(rèn)證報文,則通知以太驅(qū)動程序接收該報文并上傳到上層的認(rèn)證服務(wù)程序,如果是非認(rèn)證報文,則判斷該報文的MAC地址或接收該報文的以太交換芯片的端口是否為所述報文認(rèn)證參數(shù)中設(shè)置的已認(rèn)證通過的MAC地址或端口,如果是則通知以太驅(qū)動程序接收該報文并上傳到相應(yīng)的上層應(yīng)用程序,否則丟棄該報文;應(yīng)用層的認(rèn)證服務(wù)程序,用于根據(jù)以太驅(qū)動層上傳的認(rèn)證報文對MAC地址和/或端口信息進(jìn)行認(rèn)證,向端口控制模塊發(fā)送設(shè)置報文認(rèn)證參數(shù)的配置指令。所述內(nèi)核協(xié)議棧為應(yīng)用層和以太驅(qū)動層之間各協(xié)議的總稱,用于傳輸應(yīng)用層和以太驅(qū)動層之間的交互信息,和現(xiàn)有的內(nèi)核協(xié)議棧相同,因此本文不再贅述。本發(fā)明所述實施例中,所述以太網(wǎng)端口控制裝置使用的認(rèn)證控制協(xié)議為 IEEE802. Ix協(xié)議。所述端口控制模塊具體是一個用于IEEE802. Ix協(xié)議的端口控制模塊。圖3為本發(fā)明所述端口控制模塊對外提供的接口示意圖。參見圖3,所述以太驅(qū)動層的端口控制模塊具體包括兩個對外接口一個為供所述認(rèn)證服務(wù)程序調(diào)用的報文認(rèn)證參數(shù)的配置接口 301,其中包括用于存儲所述報文認(rèn)證參數(shù)的數(shù)據(jù)結(jié)構(gòu),所述認(rèn)證服務(wù)程序通過該配置接口 301對該數(shù)據(jù)結(jié)構(gòu)中的報文認(rèn)證參數(shù)進(jìn)行訪問和修改;在圖3所示的實施例中,所述用于存儲所述報文認(rèn)證參數(shù)的數(shù)據(jù)結(jié)構(gòu)具體為在操作系統(tǒng)內(nèi)核中創(chuàng)建并維護(hù)的節(jié)點(diǎn)樹的數(shù)據(jù)結(jié)構(gòu),所述認(rèn)證服務(wù)程序通過配置命令對該節(jié)點(diǎn)樹中的報文認(rèn)證參數(shù)進(jìn)行訪問和修改,從而可以配置認(rèn)證參數(shù)和收集認(rèn)證的狀態(tài)信息,例如可以通過對相應(yīng)的ftOC節(jié)點(diǎn)的寫入操作來實現(xiàn)認(rèn)證參數(shù)的配置,通過對相應(yīng)的節(jié)點(diǎn)的讀取操作來實現(xiàn)認(rèn)證信息的收集。另一個為供以太驅(qū)動程序調(diào)用的認(rèn)證函數(shù)接口 302,用于根據(jù)所述以太驅(qū)動程序的輸入信息和所述報文認(rèn)證參數(shù)進(jìn)行所述端口控制,即當(dāng)以太驅(qū)動程序收到來自以太交換芯片的報文時,調(diào)用該認(rèn)證函數(shù)接口 302判斷是否接收該報文。所述以太驅(qū)動程序的輸入到認(rèn)證函數(shù)接口 302的信息為以太驅(qū)動程序當(dāng)前所收到的報文的類型(通常以以太幀協(xié)議來標(biāo)識,主要包括認(rèn)證報文類型和非認(rèn)證報文類型)和源介質(zhì)訪問控制層(即MAC)地址、 以及接收該報文的以太交換芯片的端口。圖4為本發(fā)明所述以太網(wǎng)端口控制方法的一種流程圖。本發(fā)明所述的以太網(wǎng)端口控制方法為使用IEEE802. Ix協(xié)議進(jìn)行控制的方法。參見圖4,該方法主要包括步驟401、以太交換芯片將收到的報文上傳給以太驅(qū)動層;步驟402、以太驅(qū)動層確定來自以太交換芯片的所述報文的類型和源MAC地址,以及接收該報文的以太交換芯片的端口;步驟403、判斷所述報文類型是否為認(rèn)證報文,如果是則執(zhí)行步驟404,否則執(zhí)行步驟406 ;步驟404、接收該報文并上傳到上層的認(rèn)證服務(wù)程序,所述上層的認(rèn)證服務(wù)程序根據(jù)認(rèn)證報文對MAC地址和/或端口信息進(jìn)行認(rèn)證,向以太驅(qū)動層發(fā)送設(shè)置報文認(rèn)證參數(shù)的配置指令;步驟405、所述以太驅(qū)動層根據(jù)所述認(rèn)證服務(wù)程序的配置命令設(shè)置報文認(rèn)證參數(shù), 所設(shè)置的報文認(rèn)證參數(shù)中包括認(rèn)證通過的MAC地址和/或端口信息;步驟406、如果所述以太驅(qū)動層收到的來自以太交換芯片的報文的類型是非認(rèn)證報文,則判斷該報文的MAC地址或接收該報文的以太交換芯片的端口是否為所述報文認(rèn)證參數(shù)中設(shè)置的已認(rèn)證通過的MAC地址或端口,如果是則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序,否則丟棄該報文。在一種具體的實施例中,所述根據(jù)認(rèn)證服務(wù)程序的配置命令所設(shè)置的報文認(rèn)證參數(shù)中包括默認(rèn)接受的MAC地址表,所述以太驅(qū)動層在確定來自以太交換芯片的報文的源 MAC地址后,需要判斷該報文的源MAC地址是否在所述默認(rèn)接受的MAC地址表中,如果是則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序;和/或,所述根據(jù)認(rèn)證服務(wù)程序的配置命令所設(shè)置的報文認(rèn)證參數(shù)中還可包括默認(rèn)拒絕的MAC地址表,所述以太驅(qū)動層在確定來自以太交換芯片的報文的源MAC地址后,需要判斷該報文的源MAC地址是否在所述默認(rèn)拒絕的MAC地址表中,如果是則丟棄該報文。在一種具體的實施例中,在所述報文認(rèn)證參數(shù)中還可以進(jìn)一步設(shè)置啟動標(biāo)記,用于表示是否啟用以太網(wǎng)端口控制;所述以太驅(qū)動層收到的來自以太交換芯片的報文后,首先通過該啟動標(biāo)記判斷是否啟用以太網(wǎng)端口控制,如果是,則執(zhí)行后續(xù)的所述以太網(wǎng)端口控制流程,即如果所述報文類型為認(rèn)證報文,則接收并上傳到上層的認(rèn)證服務(wù)程序;如果是非認(rèn)證報文,則判斷該報文的MAC地址或接收該報文的以太交換芯片的端口是否為所述報文認(rèn)證參數(shù)中設(shè)置的已認(rèn)證通過的MAC地址或端口,如果是則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序,否則丟棄該報文;如果通過所述啟動標(biāo)記判定不需啟用以太網(wǎng)端口控制, 則接收所述報文并上傳到相應(yīng)的上層應(yīng)用程序。在另一種具體實施例中,所述報文認(rèn)證參數(shù)中還可以進(jìn)一步設(shè)置認(rèn)證模式標(biāo)記, 用于表示是MAC認(rèn)證模式或者是端口認(rèn)證模式;所述以太驅(qū)動層收到的來自以太交換芯片的報文后,通過該認(rèn)證模式標(biāo)記判斷是MAC認(rèn)證模式還是端口認(rèn)證模式如果是MAC認(rèn)證模式則判斷該報文的MAC地址是否為所述報文認(rèn)證參數(shù)中設(shè)置的已認(rèn)證通過的MAC地址,如果是則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序,否則丟棄該報文;
如果是端口認(rèn)證模式則判斷接收該報文的端口是否為所述報文認(rèn)證參數(shù)中設(shè)置的已認(rèn)證通過的端口,如果是則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序,否則丟棄該報文。本發(fā)明所述的方法中,所述以太驅(qū)動層設(shè)置報文認(rèn)證參數(shù)的一種具體方式為以太驅(qū)動層在操作系統(tǒng)內(nèi)核中創(chuàng)建和維護(hù)用于存儲所述報文認(rèn)證參數(shù)的節(jié)點(diǎn)樹的數(shù)據(jù)結(jié)構(gòu),所述認(rèn)證服務(wù)程序通過配置命令直接對該節(jié)點(diǎn)樹中的報文認(rèn)證參數(shù)進(jìn)行訪問和修改。所述供上層認(rèn)證服務(wù)程序調(diào)用的配置接口的節(jié)點(diǎn)樹,是一種對應(yīng)的文件系統(tǒng)的目錄結(jié)構(gòu)。該節(jié)點(diǎn)樹由所述端口控制模塊創(chuàng)建,該節(jié)點(diǎn)樹由上層的認(rèn)證服務(wù)軟件來配置,具體是通過寫對應(yīng)的節(jié)點(diǎn)來實現(xiàn)對報文認(rèn)證參數(shù)的配置。所述認(rèn)證服務(wù)軟件有設(shè)置界面,管理員可以根據(jù)需要進(jìn)行設(shè)置。圖5為一種具體實施例中的一種節(jié)點(diǎn)樹的結(jié)構(gòu)圖。參見圖5,其中各個節(jié)點(diǎn)的取值和作用如下介紹Enable 是否啟用802. Ix協(xié)議以太網(wǎng)端口控制的啟動標(biāo)記,可以向該節(jié)點(diǎn)寫入1 或者0來控制是否啟動802. Ix的以太網(wǎng)端口控制。其中為1表示啟動802. Ix的以太網(wǎng)端口控制,為0則表示不啟動。例如在具體應(yīng)用中當(dāng)上層認(rèn)證服務(wù)軟件啟動時,向該節(jié)點(diǎn)寫入1,表示開啟以太網(wǎng)端口控制。當(dāng)上層軟件退出時向該節(jié)點(diǎn)寫入0表示停止以太網(wǎng)端口控制,當(dāng)停止以太端口控制后,便接收所有報文。Mode :802. Ix協(xié)議認(rèn)證模式的標(biāo)記,可以向該節(jié)點(diǎn)寫入0或者1來控制802. Ix協(xié)議的認(rèn)證模式。1表示為端口認(rèn)證模式,0表示是MAC認(rèn)證模式。該認(rèn)證模式是由管理員根據(jù)具體的業(yè)務(wù)要求來配置的。AcceptMAC 用于存儲默認(rèn)接受的MAC地址表,可以向該節(jié)點(diǎn)寫入MAC地址表來默認(rèn)接受部分MAC地址。對于默認(rèn)接受的MAC地址可以不通過認(rèn)證直接通過該端口。該節(jié)點(diǎn)的值也是由管理員來配置。DenyMAC 用于存儲默認(rèn)拒絕的MAC地址表,可以向該節(jié)點(diǎn)寫入MAC地址表來默認(rèn)拒絕部分MAC地址。對于默認(rèn)拒絕的MAC地址無法通過認(rèn)證,數(shù)據(jù)也無法通過該端口。該節(jié)點(diǎn)的值也是由管理員來配置。AuthMAC 用于存儲已經(jīng)認(rèn)證通過的MAC地址,認(rèn)證模式為基于MAC模式時,每個通過認(rèn)證的MAC地址會存在該節(jié)點(diǎn)中。當(dāng)一個客戶端發(fā)送的認(rèn)證報文通過了上層認(rèn)證服務(wù)軟件的認(rèn)證后,上層認(rèn)證服務(wù)軟件會將該客戶端的MAC地址(即該客戶端發(fā)送的報文的源MAC 地址)寫入該節(jié)點(diǎn)中。Ports 該目錄下存放每個現(xiàn)有的端口對應(yīng)的一個節(jié)點(diǎn)。每張以太交換芯片都有多個端口,此處假設(shè)有η個端口,分別是PO Ρη,所述PO Pn的節(jié)點(diǎn)存放的是對應(yīng)的各個以太交換芯片的端口是否認(rèn)證通過的標(biāo)識。例如圖5中的節(jié)點(diǎn)Pl的值是端口 1是否認(rèn)證通過的標(biāo)志。1表示該端口已經(jīng)認(rèn)證通過,0表示該端口沒有認(rèn)證通過。當(dāng)一個以太交換芯片的端口通過了上層認(rèn)證服務(wù)軟件的認(rèn)證后,上層認(rèn)證服務(wù)軟件會把該標(biāo)識寫入對應(yīng)的ftOC節(jié)點(diǎn)中。此外,本實施例中之所以分節(jié)點(diǎn)存已認(rèn)證的端口,第一是因為一張以太交換芯片的端口數(shù)有限,一般需要控制的端口為4個。第二是因為方便擴(kuò)展,可以方便存儲每個端口的私有屬性。第三是因為更符合編程邏輯。所述認(rèn)證函數(shù)接口 302供以太驅(qū)動程序調(diào)用的,具體的調(diào)用時機(jī)是以太交換芯片每收到一個報文都會將該報文上報給以太驅(qū)動層的以太驅(qū)動程序,每當(dāng)以太驅(qū)動程序收到一個來自以太交換芯片的報文后,確定該報文的類型(即是否為認(rèn)證報文)和源MAC地址(即發(fā)送該報文的客戶端的MAC地址)、以及接收該報文的以太交換芯片的端口,然后調(diào)用所述認(rèn)證函數(shù)接口,將前述所確定的信息輸入到認(rèn)證函數(shù)接口中,認(rèn)證函數(shù)接口執(zhí)行具體的處理流程,向以太驅(qū)動程序返回是否接收該報文的結(jié)果,例如認(rèn)證函數(shù)的返回值為1 或者0。其中1表示接收該報文,0表示丟棄該報文。所述圖6為所述認(rèn)證函數(shù)接口被調(diào)用后的具體處理流程示意圖。參見圖6,該流程包括步驟601、首先查詢所述ftOC樹的Enab 1 e節(jié)點(diǎn)的值,判斷是否啟動802. Ix的以太網(wǎng)端口控制,如果是則執(zhí)行步驟602,否則認(rèn)證函數(shù)接口返回1,即通知以太驅(qū)動程序接收當(dāng)前報文并上報到相應(yīng)的上層應(yīng)用程序。 步驟602、查詢所述樹的Acc印tMAC節(jié)點(diǎn)的值,判斷輸入的源MAC地址是否在該Acc印tMAC節(jié)點(diǎn)所記錄的默認(rèn)接受的MAC地址表中,如果是則返回1,否則執(zhí)行步驟603。步驟603、查詢所述樹的DenyMAC節(jié)點(diǎn)的值,判斷輸入的源MAC地址是否在該 DenyMAC節(jié)點(diǎn)所記錄的默認(rèn)拒絕的MAC地址表中,如果是則返回0,否則執(zhí)行步驟604。步驟604、判斷輸入的報文類型(即以太幀協(xié)議標(biāo)識)是否為EAPOL報文即認(rèn)證報文,如果是,則執(zhí)行步驟605,否則執(zhí)行步驟606。步驟605、判斷是否為EAPOL-Mart報文(即認(rèn)證報文的開始報文),如果是則將接收該報文的以太交換芯片的端口信息隱藏在該報文的尾部,然后返回1 ;否則直接返回 1。此步驟的作用是對于認(rèn)證報文,上層的認(rèn)證服務(wù)程序通常不知道該報文由哪個以太交換芯片的端口接收的,因此在認(rèn)證報文的開始報文中需要增加接收該報文的以太交換芯片的端口信息,供上層的認(rèn)證服務(wù)程序進(jìn)行認(rèn)證處理,如果該端口被認(rèn)證通過,則認(rèn)證服務(wù)程序?qū)⑼ㄟ^配置命令將所述樹的Ports目錄的該端口對應(yīng)的節(jié)點(diǎn)的值寫為1。步驟606、查詢所述樹的Mode節(jié)點(diǎn)的值,判斷當(dāng)前的802. Ix協(xié)議認(rèn)證模式是端口認(rèn)證模式還是MAC認(rèn)證模式,如果是端口認(rèn)證模式,則查詢所述Ports目錄下的與輸入的端口源信息對應(yīng)的節(jié)點(diǎn)值(即0或1),并返回該節(jié)點(diǎn)值;如果是MAC認(rèn)證模式,則執(zhí)行步驟 607。步驟607、查詢所述樹的AuthMAC節(jié)點(diǎn)的值,判斷輸入的源MAC地址是否在該 AuthMAC節(jié)點(diǎn)所記錄的已認(rèn)證通過的MAC地址表中,如果是則返回1,否則返回0。通過上述處理,所述認(rèn)證函數(shù)接口向以太驅(qū)動程序返回0或1。如果返回的是0, 則表示接收該報文,以太驅(qū)動程序則接收該報文并上傳到上層該報文對應(yīng)的相應(yīng)程序;如果返回的是1,則表示丟棄該報文,則以太驅(qū)動程序丟棄所收到的對應(yīng)報文。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種以太網(wǎng)端口控制裝置,其特征在于,包括物理鏈路層的以太交換芯片,用于將接收的報文傳給以太驅(qū)動層; 以太驅(qū)動層的以太驅(qū)動程序,用于在收到來自以太交換芯片的報文后確定該報文的類型和源介質(zhì)訪問控制層MAC地址、以及接收該報文的以太交換芯片的端口,將所確定的信息輸入端口控制模塊,根據(jù)端口控制模塊返回的信息決定是否接收該報文;以太驅(qū)動層的端口控制模塊,用于根據(jù)應(yīng)用層的認(rèn)證服務(wù)程序的配置命令設(shè)置報文認(rèn)證參數(shù),其中包括認(rèn)證通過的MAC地址和/或端口認(rèn)證信息;并根據(jù)所述以太驅(qū)動程序的輸入信息和所述報文認(rèn)證參數(shù)進(jìn)行端口控制,所述端口控制包括如果以太驅(qū)動程序所收到的報文的類型為認(rèn)證報文,則通知以太驅(qū)動程序接收該報文并上傳到上層的認(rèn)證服務(wù)程序,如果是非認(rèn)證報文,則判斷該報文的MAC地址或接收該報文的以太交換芯片的端口是否為所述報文認(rèn)證參數(shù)中設(shè)置的已認(rèn)證通過的MAC地址或端口,如果是則通知以太驅(qū)動程序接收該報文并上傳到相應(yīng)的上層應(yīng)用程序,否則丟棄該報文;應(yīng)用層的認(rèn)證服務(wù)程序,用于根據(jù)以太驅(qū)動層上傳的認(rèn)證報文對MAC地址和/或端口信息進(jìn)行認(rèn)證,向端口控制模塊發(fā)送設(shè)置報文認(rèn)證參數(shù)的配置指令。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述端口控制模塊具體包括兩個對外接 Π 一個為供所述認(rèn)證服務(wù)程序調(diào)用的報文認(rèn)證參數(shù)的配置接口,其中包括用于存儲所述報文認(rèn)證參數(shù)的數(shù)據(jù)結(jié)構(gòu),所述認(rèn)證服務(wù)程序通過該配置接口對該數(shù)據(jù)結(jié)構(gòu)中的報文認(rèn)證參數(shù)進(jìn)行訪問和修改;另一個為供以太驅(qū)動程序調(diào)用的認(rèn)證函數(shù)接口,用于根據(jù)所述以太驅(qū)動程序的輸入信息和所述報文認(rèn)證參數(shù)進(jìn)行所述端口控制。
3.根據(jù)權(quán)利要求2所述的裝置,其特征在于,所述用于存儲所述報文認(rèn)證參數(shù)的數(shù)據(jù)結(jié)構(gòu)為Jroc節(jié)點(diǎn)樹。
4.根據(jù)權(quán)利要求1至3任一項所述的裝置,其特征在于,所述以太網(wǎng)端口控制裝置使用的認(rèn)證控制協(xié)議為ΙΕΕΕ802. Ix協(xié)議。
5.一種以太網(wǎng)端口控制方法,其特征在于,包括 以太交換芯片將收到的報文上傳給以太驅(qū)動層;以太驅(qū)動層確定來自以太交換芯片的所述報文的類型和源MAC地址,以及接收該報文的以太交換芯片的端口 ;如果所述報文類型為認(rèn)證報文,則接收并上傳到上層的認(rèn)證服務(wù)程序;所述上層的認(rèn)證服務(wù)程序根據(jù)認(rèn)證報文對MAC地址和/或端口信息進(jìn)行認(rèn)證,向以太驅(qū)動層發(fā)送設(shè)置報文認(rèn)證參數(shù)的配置指令;所述以太驅(qū)動層根據(jù)所述認(rèn)證服務(wù)程序的配置命令設(shè)置報文認(rèn)證參數(shù),所設(shè)置的報文認(rèn)證參數(shù)中包括認(rèn)證通過的MAC地址和/或端口認(rèn)證信息;如果所述以太驅(qū)動層收到的來自以太交換芯片的報文的類型是非認(rèn)證報文,則判斷該報文的MAC地址或接收該報文的以太交換芯片的端口是否為所述報文認(rèn)證參數(shù)中設(shè)置的已認(rèn)證通過的MAC地址或端口,如果是則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序,否則丟棄該報文。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,進(jìn)一步包括所設(shè)置的報文認(rèn)證參數(shù)中包括默認(rèn)接受的MAC地址表,所述以太驅(qū)動層在確定來自以太交換芯片的報文的源MAC地址后,判斷該報文的源MAC地址是否在所述默認(rèn)接受的MAC 地址表中,如果是則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序;和/或,所設(shè)置的報文認(rèn)證參數(shù)中包括默認(rèn)拒絕的MAC地址表,所述以太驅(qū)動層在確定來自以太交換芯片的報文的源MAC地址后,判斷該報文的源MAC地址是否在所述默認(rèn)拒絕的MAC地址表中,如果是則丟棄該報文。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述報文認(rèn)證參數(shù)中進(jìn)一步設(shè)置啟動標(biāo)記,用于表示是否啟用以太網(wǎng)端口控制;所述以太驅(qū)動層收到的來自以太交換芯片的報文后,首先通過該啟動標(biāo)記判斷是否啟用以太網(wǎng)端口控制,如果是,則執(zhí)行后續(xù)的所述以太網(wǎng)端口控制流程;否則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述報文認(rèn)證參數(shù)中進(jìn)一步設(shè)置認(rèn)證模式標(biāo)記,用于表示是MAC認(rèn)證模式或者是端口認(rèn)證模式;所述以太驅(qū)動層收到的來自以太交換芯片的報文后,通過該認(rèn)證模式標(biāo)記判斷是MAC 認(rèn)證模式還是端口認(rèn)證模式;如果是MAC認(rèn)證模式則判斷該報文的MAC地址是否為所述報文認(rèn)證參數(shù)中設(shè)置的已認(rèn)證通過的MAC地址,如果是則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序,否則丟棄該報文;如果是端口認(rèn)證模式則判斷接收該報文的端口是否為所述報文認(rèn)證參數(shù)中設(shè)置的已認(rèn)證通過的端口,如果是則接收該報文并上傳到相應(yīng)的上層應(yīng)用程序,否則丟棄該報文。
9.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述以太驅(qū)動層設(shè)置報文認(rèn)證參數(shù)的具體方式為以太驅(qū)動層在操作系統(tǒng)內(nèi)核中創(chuàng)建和維護(hù)用于存儲所述報文認(rèn)證參數(shù)的節(jié)點(diǎn)樹的數(shù)據(jù)結(jié)構(gòu),所述認(rèn)證服務(wù)程序通過配置命令直接對該節(jié)點(diǎn)樹中的報文認(rèn)證參數(shù)進(jìn)行訪問和修改。
10.根據(jù)權(quán)利要求5至9任一項所述的方法,其特征在于,所述以太網(wǎng)端口控制方法為使用IEEE802. Ix協(xié)議進(jìn)行控制的方法。
全文摘要
本發(fā)明公開了一種以太網(wǎng)端口控制裝置和方法。所述裝置包括物理鏈路層的以太交換芯片、以太驅(qū)動層的以太驅(qū)動程序和端口控制模塊、以及應(yīng)用層的認(rèn)證服務(wù)程序。所述以太交換芯片在收到所有報文后都會發(fā)送給以太驅(qū)動層,所述以太驅(qū)動層的端口控制模塊屬于以太驅(qū)動層中的軟件模塊,用于根據(jù)所述認(rèn)證服務(wù)程序的配置命令設(shè)置報文認(rèn)證參數(shù),根據(jù)設(shè)置的報文認(rèn)證參數(shù)決定以太驅(qū)動層是否接收并向上層上傳來自以太交換芯片的報文,從而不依賴以太交換芯片就可實現(xiàn)以太網(wǎng)端口控制,降低實現(xiàn)以太網(wǎng)端口控制的硬件成本,在對端口控制方式進(jìn)行升級或修改時只需對以太驅(qū)動層中的軟件程序進(jìn)行修改即可,提高了擴(kuò)展性。
文檔編號H04L12/28GK102571603SQ201210032478
公開日2012年7月11日 申請日期2012年2月14日 優(yōu)先權(quán)日2012年2月14日
發(fā)明者鄧海, 黎建 申請人:成都欣點(diǎn)科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
剑阁县| 广州市| 河北省| 阿巴嘎旗| 南昌市| 额济纳旗| 凤城市| 纳雍县| 武平县| 伊吾县| 拜泉县| 晋江市| 阿合奇县| 日土县| 简阳市| 罗田县| 辽阳市| 离岛区| 峨边| 宁远县| 奇台县| 蛟河市| 碌曲县| 仙游县| 来安县| 靖江市| 江孜县| 娱乐| 麻江县| 舟曲县| 同心县| 筠连县| 承德市| 砀山县| 酉阳| 平乡县| 城固县| 汕头市| 东阳市| 汉源县| 方城县|