專利名稱:限制交換機(jī)遠(yuǎn)程訪問的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)通訊,特別涉及基于ASIC芯片實(shí)現(xiàn)的全局ACL(訪問控制列 表)限制交換機(jī)遠(yuǎn)程訪問的方法及裝置。
背景技術(shù):
隨著數(shù)據(jù)通訊網(wǎng)絡(luò)的發(fā)展,以太網(wǎng)交換機(jī)的應(yīng)用越來越廣泛,但是由于以太網(wǎng)交 換機(jī)設(shè)備非常多(尤其是接入層低端設(shè)備),如何方便,安全的對(duì)設(shè)備進(jìn)行遠(yuǎn)程管理成為一 個(gè)難題。常用的遠(yuǎn)程訪問技術(shù),包括telnet,snmp,web等技術(shù),對(duì)遠(yuǎn)程訪問的安全控制僅 僅局限于用戶名,密碼機(jī)制,而傳統(tǒng)的限制遠(yuǎn)程訪問的技術(shù),通常是基于可信IPv4地址列 表過濾的,有一定的局限性。如果源地址是偽造的,同樣可以獲得對(duì)交換機(jī)的訪問權(quán)。并且 用軟件方式實(shí)現(xiàn)的ACL,通常需要在內(nèi)存里面維護(hù)一個(gè)合法的IPv4地址的鏈表,當(dāng)數(shù)據(jù)包 交給CPU處理的時(shí)候,解析出數(shù)據(jù)包源IP地址,與掩碼做位運(yùn)算,判斷該地址是否在合法的 地址范圍內(nèi),不在合法范圍內(nèi)則對(duì)數(shù)據(jù)包做丟棄處理。對(duì)CPU的運(yùn)算資源造成一定的浪費(fèi)。 很多以太網(wǎng)交換機(jī)使用了 ASIC芯片實(shí)現(xiàn)的高速數(shù)據(jù)轉(zhuǎn)發(fā),大多數(shù)的交換芯片都具有VLAN 劃分、訪問控制列表(ACL)等功能,但是ACL通常限制的是網(wǎng)絡(luò)中由ASIC芯片轉(zhuǎn)發(fā)的數(shù)據(jù) 流,一般不會(huì)對(duì)訪問CPU的協(xié)議流進(jìn)行限制。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種全局ACL限制交換機(jī)或其他網(wǎng)絡(luò)設(shè)備遠(yuǎn)程訪問的方法, 用于利用在交換機(jī)或其他網(wǎng)絡(luò)設(shè)備上使用的訪問控制列表阻止非法訪問CPU的流量,以保 護(hù)交換機(jī)或其他網(wǎng)絡(luò)設(shè)備。本發(fā)明的另一目的是提供一種全局ACL限制交換機(jī)或其他網(wǎng)絡(luò)設(shè)備遠(yuǎn)程訪問的 裝置,用于利用在交換機(jī)或其他網(wǎng)絡(luò)設(shè)備上使用的訪問控制列表阻止非法訪問CPU的流 量,以保護(hù)交換機(jī)或其他網(wǎng)絡(luò)設(shè)備。根據(jù)本發(fā)明第一方面,全局ACL (訪問控制列表)限制交換機(jī)遠(yuǎn)程訪問的方法包括 以下步驟利用交換機(jī)的第一 ACL對(duì)交換機(jī)預(yù)定端口收到的數(shù)據(jù)包報(bào)文進(jìn)行匹配處理;把數(shù)據(jù)包報(bào)文內(nèi)容與第一 ACL中配置的字段完全相同的匹配數(shù)據(jù)包報(bào)文交由交 換機(jī)CPU進(jìn)行處理;或者把數(shù)據(jù)包報(bào)文內(nèi)容與第一 ACL中配置的字段不相同的失配數(shù)據(jù)包報(bào)文交由在交 換機(jī)所有端口生效的全局ACL進(jìn)行處理。其中所述全局ACL進(jìn)行的處理包括如果所述失配數(shù)據(jù)包報(bào)文的目的IP地址、目 的MAC地址和目的端口號(hào)與全局ACL中配置的相應(yīng)字段相同,則作丟棄處理;如果所述失配 數(shù)據(jù)包報(bào)文的目的IP地址或目的端口號(hào)與全局ACL中配置的相應(yīng)字段不相同,并且是協(xié)議 報(bào)文,則將所述失配數(shù)據(jù)包報(bào)文交由交換機(jī)CPU進(jìn)行處理。其中對(duì)于多次輸入用戶密碼的數(shù)據(jù)包報(bào)文,利用第二 ACL進(jìn)行匹配處理,丟棄數(shù)據(jù)包報(bào)文內(nèi)容與第二 ACL中配置的字段完全匹配的數(shù)據(jù)包報(bào)文。其中所述第一 ACL中配置的字段包括源IP地址,目的IP地址,源MAC地址、目的 MAC地址、VLAN id(虛擬局域網(wǎng)標(biāo)識(shí))和目的端口號(hào),其中源IP地址和源MAC地址是遠(yuǎn)程 同步過來的,目的IP地址、目的MAC地址、VLAN id和目的端口號(hào)是交換機(jī)的固有配置。其中交換機(jī)定時(shí)向網(wǎng)絡(luò)內(nèi)預(yù)先指定的網(wǎng)關(guān)同步遠(yuǎn)程訪問報(bào)文的源IP地址和源 MAC地址,然后通過將同步過來的源IP地址、源MAC地址與交換機(jī)的Hash存儲(chǔ)表中的 VLANid,目的IP地址、目的MAC地址、端口號(hào)進(jìn)行組合得到同步配置,并算出同步配置索引。其中交換機(jī)將根據(jù)對(duì)應(yīng)的第一 ACL中配置的目的源IP地址、目的IP地址、源MAC 地址、目的MAC地址、VLAN id和目的端口號(hào)算出的第一 ACL索引與所述同步配置索引進(jìn)行 比較,并依據(jù)比較結(jié)果進(jìn)行以下操作如果同步配置索引與第一 ACL索引相同,則保持對(duì)應(yīng)的第一 ACL;如果同步配置索引與第一 ACL索引不同,則改變對(duì)應(yīng)的第一 ACL。其中當(dāng)同步配置索引與對(duì)應(yīng)的第一 ACL索引不同時(shí),交換機(jī)執(zhí)行以下操作如果同步過來源IP地址和源MAC地址是一個(gè)新數(shù)據(jù)包報(bào)文的源地址,則通過在交 換機(jī)Hash存儲(chǔ)表上拷貝所述同步配置,添加關(guān)于所述新數(shù)據(jù)包報(bào)文的第一 ACL,并將其綁 定到端口上;如果同步過來源IP地址和源MAC地址為空,則從端口上解除對(duì)應(yīng)的ACL綁定,然 后從交換機(jī)的ASIC芯片上刪除該對(duì)應(yīng)的ACL。根據(jù)本發(fā)明第二方面,全局ACL限制交換機(jī)遠(yuǎn)程訪問的裝置包括匹配處理模塊,用于利用交換機(jī)第一 ACL對(duì)交換機(jī)預(yù)定端口收到的數(shù)據(jù)包報(bào)文進(jìn) 行匹配處理;匹配數(shù)據(jù)包報(bào)文處理模塊,用于把數(shù)據(jù)包報(bào)文內(nèi)容與第一 ACL中配置的字段完全 相同的匹配數(shù)據(jù)包報(bào)文交由交換機(jī)CPU處理;失配數(shù)據(jù)包報(bào)文處理模塊,用于把數(shù)據(jù)包報(bào)文內(nèi)容與第一 ACL中配置的字段不相 同的失配數(shù)據(jù)包報(bào)文交由在交換機(jī)所有端口生效的全局ACL進(jìn)行丟棄或送交CPU的處理。其中所述的全局ACL處理包括如果所述失配數(shù)據(jù)包報(bào)文的目的IP地址、目的 MAC地址和目的端口號(hào)與全局ACL中配置的相應(yīng)字段相同,則丟棄所述失配數(shù)據(jù)包報(bào)文;如 果所述失配數(shù)據(jù)包報(bào)文的目的IP地址或目的端口號(hào)與全局ACL中配置的相應(yīng)字段不相同, 并且是協(xié)議報(bào)文,則將所述失配數(shù)據(jù)包報(bào)文交由交換機(jī)CPU進(jìn)行處理。此外,本發(fā)明還包括禁止多次輸入用戶密碼模塊,用于利用第二 ACL對(duì)多次輸入 用戶密碼的數(shù)據(jù)包報(bào)文進(jìn)行匹配處理,丟棄數(shù)據(jù)包報(bào)文內(nèi)容與第二 ACL中配置的字段完全 匹配的數(shù)據(jù)包報(bào)文。由于采用了上述技術(shù)方案,因此發(fā)明具有以下優(yōu)點(diǎn)1)將ASIC芯片實(shí)現(xiàn)的ACL用于控制訪問CPU的協(xié)議數(shù)據(jù)流,可以匹配報(bào)文的多個(gè) 字段,因此實(shí)現(xiàn)靈活,查找速度快;2)可以有效的減少CPU流量,從而降低對(duì)CPU資源的占用率,降低了對(duì)網(wǎng)絡(luò)設(shè)備CPU處理能力的要求。下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
圖1是本發(fā)明的全局ACL限制交換機(jī)遠(yuǎn)程訪問的裝置的原理圖;圖2是本發(fā)明的交換機(jī)flash上保存的Hash存儲(chǔ)表的示意圖;圖3是本發(fā)明方法的同步配置以及寫ASIC芯片表項(xiàng)的流程圖;圖4是端口上收到報(bào)文以后,芯片的ACL對(duì)報(bào)文的處理流程圖。
具體實(shí)施方式
圖1顯示了本發(fā)明的全局ACL限制交換機(jī)遠(yuǎn)程訪問的裝置,包括匹配處理模塊,用于利用交換機(jī)第一 ACL對(duì)交換機(jī)預(yù)定端口收到的數(shù)據(jù)包報(bào)文進(jìn) 行匹配處理;匹配數(shù)據(jù)包報(bào)文處理模塊,用于把數(shù)據(jù)包報(bào)文內(nèi)容與第一 ACL中配置的字段完全 相同的匹配數(shù)據(jù)包報(bào)文交由交換機(jī)CPU處理;失配數(shù)據(jù)包報(bào)文處理模塊,用于把數(shù)據(jù)包報(bào)文內(nèi)容與第一 ACL中配置的字段不相 同的失配數(shù)據(jù)包報(bào)文交由在交換機(jī)所有端口生效的全局ACL進(jìn)行丟棄或送交交換機(jī)CPU的處理。第一 ACL和全局ACL被保存在交換機(jī)的Hash存儲(chǔ)表中,其中全局ACL配置了與第 一 ACL相同的目的IP地址、目的MAC地址和目的端口號(hào),這些字段是第一 ACL相應(yīng)字段的 拷貝。上述全局ACL處理包括如果所述失配數(shù)據(jù)包報(bào)文的目的IP地址、目的MAC地址 和目的端口號(hào)與全局ACL中配置的相應(yīng)字段相同,則丟棄所述失配數(shù)據(jù)包報(bào)文;如果所述 失配數(shù)據(jù)包報(bào)文的目的IP地址或目的端口號(hào)與全局ACL中配置的相應(yīng)字段不相同,并且是 協(xié)議報(bào)文,則將所述失配數(shù)據(jù)包報(bào)文交由交換機(jī)CPU進(jìn)行處理。由于協(xié)議報(bào)文具有特定的 端口號(hào),因此本發(fā)明可以通過識(shí)別協(xié)議報(bào)文的端口號(hào),確定協(xié)議報(bào)文,然后將其送交交換機(jī) CPU處理。本發(fā)明的裝置還包括禁止多次輸入用戶密碼模塊,它利用第二 ACL對(duì)多次輸入用 戶密碼的數(shù)據(jù)包報(bào)文進(jìn)行匹配處理,丟棄數(shù)據(jù)包報(bào)文內(nèi)容與第二 ACL中配置的字段完全匹 配的數(shù)據(jù)包報(bào)文。上述第一 ACL中配置的字段包括源IP地址,目的IP地址,源MAC地址、目的MAC 地址、VLAN id和目的端口號(hào),其中源IP地址和源MAC地址通過同步配置得到的,即通過遠(yuǎn) 程同步過來的,而目的IP地址、目的MAC地址、VLAN id和目的端口號(hào)是交換機(jī)的固有配置。上述第二 ACL具有固定的生存時(shí)間,其配置的字段與第一 ACL中配置的字段完全 相同,即從第一 ACL拷貝得到的,但第二 ACL不參與同步配置。本發(fā)明的全局ACL限制交換機(jī)遠(yuǎn)程訪問的方法基于上述裝置,包括以下步驟利用交換機(jī)的第一 ACL對(duì)交換機(jī)預(yù)定端口收到的數(shù)據(jù)包報(bào)文進(jìn)行匹配處理;把數(shù)據(jù)包報(bào)文內(nèi)容與第一 ACL中配置的字段完全相同的匹配數(shù)據(jù)包報(bào)文交由交 換機(jī)CPU進(jìn)行處理;或者把數(shù)據(jù)包報(bào)文內(nèi)容與第一 ACL中配置的字段不相同的失配數(shù)據(jù)包報(bào)文交由在交 換機(jī)所有端口生效的全局ACL進(jìn)行丟棄或送交交換機(jī)CPU的處理。全局ACL進(jìn)行的處理包括如果所述失配數(shù)據(jù)包報(bào)文的目的IP地址、目的MAC地址和目的端口號(hào)與全局ACL中配置的相應(yīng)字段相同,則作丟棄處理;如果所述失配數(shù)據(jù)包 報(bào)文的目的IP地址或目的端口號(hào)與全局ACL中配置的相應(yīng)字段不相同并且是協(xié)議報(bào)文,則 將所述失配數(shù)據(jù)包報(bào)文交由交換機(jī)CPU進(jìn)行處理。為了避免轉(zhuǎn)發(fā)多次輸入用戶密碼的數(shù)據(jù)包報(bào)文,本發(fā)明對(duì)于多次輸入用戶密碼的 數(shù)據(jù)包報(bào)文,利用第二 ACL進(jìn)行匹配處理,丟棄數(shù)據(jù)包報(bào)文內(nèi)容與第二 ACL中配置的字段完 全匹配的數(shù)據(jù)包報(bào)文。本發(fā)明動(dòng)態(tài)維護(hù)交換機(jī)中的第一 ACL,丟棄與禁止遠(yuǎn)程訪問的 源地址有關(guān)的第一 ACL,添加與允許遠(yuǎn)程訪問的源地址有關(guān)的第一 ACL,為此,本發(fā)明的交換機(jī)定時(shí)(包括每次 開機(jī)或重啟)向網(wǎng)絡(luò)內(nèi)預(yù)先指定的網(wǎng)關(guān)同步遠(yuǎn)程訪問報(bào)文的源IP地址和源MAC地址,然后 通過將同步過來的源IP地址、源MAC地址和交換機(jī)的Hash存儲(chǔ)表中的VLANid、目的IP地 址、目的MAC地址、端口號(hào)進(jìn)行組合得到同步配置,并算出同步配置索引。然后,交換機(jī)將根據(jù)對(duì)應(yīng)的第一 ACL中配置的目的源IP地址、目的IP地址、源MAC 地址、目的MAC地址、VLAN id和目的端口號(hào)算出的第一 ACL索引與所述同步配置索引進(jìn)行 比較,并依據(jù)比較結(jié)果進(jìn)行以下操作如果同步配置索引與第一 ACL索引相同,則保持對(duì)應(yīng)的第一 ACL;如果同步配置索引與第一 ACL索引不同,則改變對(duì)應(yīng)的第一 ACL。當(dāng)同步配置索引與對(duì)應(yīng)的第一 ACL索引不同時(shí),交換機(jī)執(zhí)行以下具體操作如果同步過來源IP地址和源MAC地址是一個(gè)新數(shù)據(jù)包報(bào)文的源地址,則通過在交 換機(jī)Hash存儲(chǔ)表上拷貝所述同步配置,添加關(guān)于所述新數(shù)據(jù)包報(bào)文的第一 ACL,并將其綁 定到端口上;如果同步過來的源IP地址和源MAC地址為空,則從端口上解除對(duì)應(yīng)的ACL綁定, 然后從交換機(jī)的ASIC芯片上刪除該對(duì)應(yīng)的ACL。也就是說,當(dāng)同步配置中沒有對(duì)應(yīng)于ACL 中的源IP地址和源MAC地址時(shí),意味著不允許具有該源地址的交換機(jī)進(jìn)行遠(yuǎn)程訪問,因此 必須刪除關(guān)于該交換機(jī)的ACL。本發(fā)明的交換機(jī)需要配置一個(gè)三層接口 IP地址,并把這個(gè)IP地址綁定到VLAN 上,一旦交換機(jī)三層接口生效,交換機(jī)就把交換機(jī)MAC地址作為靜態(tài)MAC地址添加到交換機(jī) 的二層轉(zhuǎn)發(fā)表中。圖2是本發(fā)明方法的交換機(jī)flash上保存的Hash存儲(chǔ)表,該存儲(chǔ)表的一行代表對(duì) 應(yīng)于一個(gè)數(shù)據(jù)包的第一 ACL。對(duì)于需要轉(zhuǎn)發(fā)處理的某個(gè)數(shù)據(jù)包,查表時(shí)先計(jì)算出同步過來的 同步配置hash index (索引)和當(dāng)前ACL配置的各字段的Hash index,如果兩者相同,則不 修改表項(xiàng)的內(nèi)容;如果不同(通常為出現(xiàn)一個(gè)新數(shù)據(jù)包),則用同步過來的配置更新ACL表 項(xiàng)的內(nèi)容;如果發(fā)現(xiàn)同步過來的存儲(chǔ)表已經(jīng)沒有該hash index (即沒有源IP地址和源MAC 地址),說明該表項(xiàng)已經(jīng)被刪除,則清除對(duì)應(yīng)hash index表項(xiàng)的內(nèi)容。比如說,假如配置的源MAC部分從macl變成了 mac4,計(jì)算出來的index。與原來 flash中存儲(chǔ)的index做異或操作以后,發(fā)現(xiàn)改變。則把對(duì)應(yīng)的源目的MAC,vlan id等配 置全部寫到flash內(nèi),覆蓋原先的這個(gè)index假如同步過來的配置,發(fā)現(xiàn)原先flash中有這個(gè)index,而同步過來的配置中沒有 這個(gè)index,則認(rèn)為該表項(xiàng)刪除,把對(duì)應(yīng)的一行配置全部刪除掉。圖3顯示了本發(fā)明方法的同步配置以及寫ASIC芯片表項(xiàng)的流程
步驟201 交換機(jī)第一次開機(jī)或者重啟后,需要向網(wǎng)絡(luò)內(nèi)預(yù)先指定的網(wǎng)關(guān)同步一 下可信遠(yuǎn)程訪問的源IP地址、源MAC地址。如果是第一次同步,則需要隨機(jī)延遲一個(gè)在10 分鐘以內(nèi)的時(shí)間,以后再次同步就10分鐘一次。該周期可以配置,默認(rèn)為10分鐘,進(jìn)入步 驟 202 ;步驟202 將同步過來的配置,加上交換機(jī)三層接口的VLAN id, IP地址,MAC地址 以及端口號(hào),根據(jù)hash算法計(jì)算出來一個(gè)同步配置hash index,進(jìn)入步驟203 ;
步驟203 根據(jù)查表,即同步配置hash index與原h(huán)ash index的比對(duì),如果hash index發(fā)生改變,則進(jìn)入步驟207的添加ACL表項(xiàng)的流程;如果hash index不存在,則進(jìn)入 步驟204的刪除ACL表項(xiàng)的流程;如果hash index沒有發(fā)生改變,則直接進(jìn)入步驟210,不 對(duì)芯片做任何操作,直接等待下次同步過程;步驟204 刪除ACL表項(xiàng),首先要把該ACL從端口上解除綁定,進(jìn)入步驟205 ;步驟205 清除該ACL表項(xiàng)所有相關(guān)的規(guī)則,進(jìn)入步驟206 ;步驟206 清除該ACL號(hào),這樣不對(duì)任何交CPU處理的報(bào)文做限制,進(jìn)入步驟210, 等待下次同步過程;步驟207 增加ACL表項(xiàng),所有以后添加的規(guī)則都屬于這個(gè)ACL表,進(jìn)入步驟208 ;步驟208 重復(fù)添加ACL規(guī)則。如果對(duì)應(yīng)三種訪問方式的三個(gè)不同傳輸層目的端 口,每個(gè)端口需要下兩條ACL規(guī)則。以telnet為例,第1條規(guī)則是只有精確的匹配到源MAC地址,目的MAC地址,源IP 地址,目的IP地址,VLAN id,以及目的端口號(hào)是23,則該數(shù)據(jù)包認(rèn)為是合法的,由ASIC芯片 上送CPU處理。第2條規(guī)則在所有的端口上生效的,如果報(bào)文的目的MAC地址,目的IP地 址和芯片中配置的一致,且目的端口號(hào)為23,則該報(bào)文作丟棄操作。步驟209 將該ACL綁定到端口上,則該ACL開始生效。進(jìn)入步驟210 ;步驟210 等設(shè)定的時(shí)間到達(dá),則繼續(xù)同步配置,如果同步配置不成功,則維持現(xiàn) 有的配置不做改變。圖4是端口上收到報(bào)文以后,ASIC芯片的ACL對(duì)報(bào)文的處理流程圖在交換機(jī)同 步配置成功以后,在接口上起用了 ACL表,對(duì)所有該端口收到的數(shù)據(jù)包都要進(jìn)行過濾。首先由第一訪問控制列表匹配,如前所述,第一訪問控制列表的第一條規(guī)則是將 合法的報(bào)文送CPU處理,如果報(bào)文中的內(nèi)容和芯片中配置的字段完全相同,則上送CPU處 理,若匹配不到,則進(jìn)行下一條規(guī)則的匹配。第二條規(guī)則是丟棄訪問本交換機(jī)的遠(yuǎn)程訪問數(shù)據(jù)包,并且只有沒匹配到第一條規(guī) 則的數(shù)據(jù)包,認(rèn)為該數(shù)據(jù)包有非法的IP,MAC, VLANid。第二訪問控制列表不一定存在,只有當(dāng)用戶名密碼輸入的次數(shù)達(dá)到3次,才會(huì)有 第二訪問控制列表,同樣在該端口上使能。一旦匹配,并且該規(guī)則還在24小時(shí)之內(nèi)有效期 內(nèi),則報(bào)文仍然被丟棄。沒有匹配到這些ACL的報(bào)文,比如ICMP報(bào)文,tftp報(bào)文,則正常上 送CPU處理。綜上所述,本發(fā)明的訪問控制列表的實(shí)現(xiàn)技術(shù)具有以下特點(diǎn)(1)首先確定合法的可以遠(yuǎn)程訪問網(wǎng)絡(luò)設(shè)備的機(jī)器的源IP地址和MAC地址的列表。(2)交換機(jī)要被遠(yuǎn)程訪問,首先要配置一個(gè)三層接口的IP地址,并且把這個(gè)IP地址綁定到VLAN上。一旦三層接口生效,交換機(jī)會(huì)添加一個(gè)靜態(tài)MAC地址到二層轉(zhuǎn)發(fā)表中去。(3)確定網(wǎng)絡(luò)中一臺(tái)可以和外部網(wǎng)絡(luò)相互訪問的機(jī)器,可以是擁有公網(wǎng)IP地址的 網(wǎng)關(guān),也可以是radius服務(wù)器,來管理局域網(wǎng)。該機(jī)器應(yīng)內(nèi)置擁有合法遠(yuǎn)程訪問權(quán)限的IP 與MAC的列表,并且該機(jī)器可連接外部網(wǎng)絡(luò)。為了不讓列表被網(wǎng)絡(luò)偵聽造成泄漏,外部網(wǎng)絡(luò) 遠(yuǎn)程訪問該機(jī)器都應(yīng)使用SSH的方式登錄進(jìn)行操作。(4)所有該網(wǎng)絡(luò)內(nèi)的交換機(jī),都需要定時(shí)去網(wǎng)關(guān)同步該配置。交換機(jī)的flash中存 儲(chǔ)了源IP地址,目的IP地址,源MAC地址,目的MAC地址,VLAN id,目的端口號(hào)(其中,目 的IP地址、VLAN id、目的MAC地址是本機(jī)的配置,保存在內(nèi)存里面,源MAC地址和源IP地 址是同步過來的)。以Hash的存儲(chǔ)方式計(jì)算了 Hash index,方便查找。
目的IP地址是本交換機(jī)三層接口的IP地址,目的MAC地址是上述(2)中所配置 的靜態(tài)MAC地址,VLAN id是三層接口所綁定的VLANid。允許遠(yuǎn)程訪問的機(jī)器的IP地址 和MAC地址,需要交換機(jī)從網(wǎng)關(guān)同步過來作為源IP地址,源MAC地址并寫到交換機(jī)的flash 中??梢允褂矛F(xiàn)在廣泛應(yīng)用的MD5散列算法來計(jì)算Hash Index.使用MD5散列算法的優(yōu)點(diǎn) 是計(jì)算出來的128bit的hash值,產(chǎn)生Hash沖突的概率可以忽略不計(jì)。(5)對(duì)上述的源IP地址、目的IP地址、VLAN id,與源MAC地址,目的MAC地址,目 的端口號(hào)進(jìn)行MD5Hash運(yùn)算,將所得到的Hash運(yùn)算結(jié)果作為查表的Hash索引。一次計(jì)算 過程如下,hash index可以從計(jì)算出來的md5值中取得初始化MD5Init(&md5)更新源 IP 字段 MD5Update (&md5, (char*) source-ip, len)更新目的 IP 字段 MD5Update (&md5, (char*) dest-ip,len)更新VLAN id,源MAC,目的MAC,目的端口號(hào)得到最終結(jié)果MD5Final (&md5)(其中的md5就是最終的Hashindex)下次將源IP地址、源MAC地址同步配置后,用同樣的Hash算法計(jì)算得到的Hash 結(jié)果,與Hash索引做異或操作如果發(fā)現(xiàn)異或的結(jié)果為0,則不做ASIC芯片的寫硬件表項(xiàng)的 操作;若異或的結(jié)果為1,則說明配置發(fā)生了變化,需要將原先的ASIC芯片的表項(xiàng)刪除,再 重新寫一遍芯片的硬件表項(xiàng),只有在寫硬件芯片表項(xiàng)成功以后,才會(huì)覆蓋掉原先的配置,并 把Hash索引作為查表的關(guān)鍵字。(6)總共三種遠(yuǎn)程訪問的傳輸層目的端口號(hào)23,80,161。分別對(duì)應(yīng)telnet訪問, web訪問,SNMP訪問三種方式。每個(gè)Hash表項(xiàng)需要下6條規(guī)則。對(duì)每種訪問方式需要兩條 規(guī)則。為了規(guī)則能夠匹配VLAN id,組網(wǎng)時(shí)需要上一層的交換機(jī)轉(zhuǎn)發(fā)的數(shù)據(jù)包帶VLAN tag 出來。對(duì)于telnet訪問來說,第1條規(guī)則是只有精確的匹配到源MAC地址,目的MAC地 址,源IP地址,目的IP地址,VLAN id,以及目的端口號(hào)是23,則該數(shù)據(jù)包認(rèn)為是合法的,由 ASIC芯片上送CPU處理。第2條規(guī)則是全局ACL(配置了與第一 ACL相同的目的MAC地址, 目的IP地址,目的端口號(hào)),在所有的端口上生效,如果報(bào)文的目的MAC地址,目的IP地址 和芯片中配置的一致,且目的端口號(hào)為23,則該報(bào)文作丟棄操作。由于ASIC芯片的匹配的 特點(diǎn)是一旦匹配到,則執(zhí)行對(duì)應(yīng)的動(dòng)作(轉(zhuǎn)發(fā),丟棄,上送CPU等等),查找結(jié)束。匹配到第 2條規(guī)則,說明第1條規(guī)則沒有匹配,因此是一個(gè)不合法的訪問報(bào)文,需要做丟棄處理。與 telnet相似,Web, SNMP訪問方式分別占據(jù)了 3_6的規(guī)則。
而正常的應(yīng)該由CPU處理的協(xié)議報(bào)文,比如802. IX認(rèn)證報(bào)文,ARP報(bào)文,ICMP報(bào)文 等,由于目的端口號(hào)不是23,80,161中的任意一個(gè),也不會(huì)被丟棄。本發(fā)明可以通過識(shí)別上 述協(xié)議報(bào)文的端口號(hào),將協(xié)議報(bào)文送交交換機(jī)CPU處理。而交給CPU做路由轉(zhuǎn)發(fā)的數(shù)據(jù)包,目的MAC確實(shí)是交換機(jī)三層接口的靜態(tài)MAC,但 是目的IP地址不是交換機(jī)三層接口的IP地址,所以也不會(huì)被這條ACL規(guī)則過濾掉。(7)如果合法的報(bào)文上送CPU,意味著遠(yuǎn)程的機(jī)器獲得了合法訪問的權(quán)限。如果用 戶輸入的用戶名,密碼沒有通過交換機(jī)的本地或者遠(yuǎn)程radius認(rèn)證,并且嘗試的次數(shù)達(dá)到 3次,則由網(wǎng)管發(fā)送SNMPv2的trap報(bào)文到網(wǎng)管服務(wù)器,把錯(cuò)誤的用戶名,密碼反饋給網(wǎng)管服 務(wù)器報(bào)警。同時(shí)在本地日志記錄一下這次訪問錯(cuò)誤的源IP地址,用戶名等信息,以備以后 查看。為了防止非法用戶重復(fù)嘗試密碼,需要再下一條ACL規(guī)則,可以將該規(guī)則放在第二訪 問控制列表中,第二訪問控制列表在第一訪問控制列表的后面,即使第一訪問列表允許報(bào) 文通過,第二訪問控制列表仍然可丟棄報(bào)文。從數(shù)據(jù)包的報(bào)頭取出源IP地址,源MAC地址, 目的MAC是交換機(jī)的靜態(tài)MAC地址,目的IP地址是交換機(jī)的三層接口的IP地址寫ASIC芯 片的ACL表項(xiàng),匹配該表項(xiàng)的報(bào)文做丟棄處理。并且設(shè)置time-range,在24小時(shí)后該ACL 才失效。第二訪問控制列表不參與配置同 步,不會(huì)因?yàn)榻粨Q機(jī)從網(wǎng)關(guān)中同步配置而造成第 二訪問控制列表有任何改變,只會(huì)隨著時(shí)間的推移而失效。和軟件實(shí)現(xiàn)的ACL相比較,需要 幾百萬條CPU指令的操作,而專門處理網(wǎng)絡(luò)中數(shù)據(jù)流的ASIC芯片可以輕松完成該功能,并 且過濾報(bào)文不需要CPU的參與。(8)考慮到可能出現(xiàn)大面積的停電等網(wǎng)絡(luò)故障,大量交換機(jī)剛開機(jī)時(shí)候同時(shí)去網(wǎng) 關(guān)同步配置會(huì)給網(wǎng)關(guān)造成很大的負(fù)擔(dān)。設(shè)計(jì)采用第一次同步配置時(shí),是一個(gè)在10分鐘之內(nèi) 的隨機(jī)的時(shí)間。而每次同步時(shí)間都是10分鐘的周期,不會(huì)因?yàn)橥瑫r(shí)的同步對(duì)網(wǎng)關(guān)造成太大 的負(fù)擔(dān)。根據(jù)以上技術(shù)方案,采用該發(fā)明的優(yōu)點(diǎn)如下1.有效的減少CPU流量,從而降低對(duì)CPU資源的占用率,降低了對(duì)網(wǎng)絡(luò)設(shè)備CPU處 理能力的要求。2. 一般使用ASIC芯片實(shí)現(xiàn)的網(wǎng)絡(luò)設(shè)備,只要支持入口方向的ACL,VLAN劃分以及 三層接口的配置,就可以實(shí)現(xiàn)該功能。本發(fā)明有一定的通用性。3.在網(wǎng)絡(luò)設(shè)備中實(shí)現(xiàn)了源MAC+源IP+VLAN id綁定的功能,使得用戶必須使用綁 定的IP地址和特定的機(jī)器,不得再隨意配置,降低網(wǎng)絡(luò)設(shè)備遭受到偽造源IP地址的攻擊的 風(fēng)險(xiǎn)。4.可以定時(shí)從命令交換機(jī)上同步配置,降低了配置的復(fù)雜性。采用Hash方式存儲(chǔ) 配置表,查找迅速。本技術(shù)領(lǐng)域人員應(yīng)當(dāng)認(rèn)識(shí)到,本發(fā)明所述ACL實(shí)現(xiàn)限制交換機(jī)遠(yuǎn)程訪問實(shí)現(xiàn)方法 的適用范圍不僅局限于使用交換機(jī)組網(wǎng)系統(tǒng),也可推廣到其他采用集中式管理的網(wǎng)絡(luò)通信 系統(tǒng)中,對(duì)一定數(shù)量的網(wǎng)絡(luò)設(shè)備進(jìn)行限制遠(yuǎn)程訪問的應(yīng)用場(chǎng)合。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改,等同替換和改進(jìn),均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種限制交換機(jī)遠(yuǎn)程訪問的方法,其特征在于,包括以下步驟利用交換機(jī)的第一ACL對(duì)交換機(jī)預(yù)定端口收到的數(shù)據(jù)包報(bào)文進(jìn)行匹配處理;把數(shù)據(jù)包報(bào)文內(nèi)容與第一ACL中配置的字段完全相同的匹配數(shù)據(jù)包報(bào)文交由交換機(jī)CPU進(jìn)行處理;或者把數(shù)據(jù)包報(bào)文內(nèi)容與第一ACL中配置的字段不相同的失配數(shù)據(jù)包報(bào)文交由在交換機(jī)所有端口生效的全局ACL進(jìn)行處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,其中所述全局ACL進(jìn)行的處理包括如果所述失配數(shù)據(jù)包報(bào)文的目的IP地址、目的MAC地址和目的端口號(hào)與全局ACL中配置的相應(yīng)字段相同,則作丟棄處理;如果所述失配數(shù)據(jù)包報(bào)文的目的IP地址或目的端口號(hào)與全局ACL中配置的相應(yīng)字段 不相同,并且是協(xié)議報(bào)文,則將所述失配數(shù)據(jù)包報(bào)文交由交換機(jī)CPU進(jìn)行處理。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,其中對(duì)于多次輸入用戶密碼的數(shù)據(jù)包報(bào) 文,利用第二 ACL進(jìn)行匹配處理,丟棄數(shù)據(jù)包報(bào)文內(nèi)容與第二 ACL中配置的字段完全匹配的 數(shù)據(jù)包報(bào)文。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,其中所述第一ACL中配置的字段包 括源IP地址,目的IP地址,源MAC地址、目的MAC地址、VLAN id和目的端口號(hào),其中源IP 地址和源MAC地址是遠(yuǎn)程同步過來的,目的IP地址、目的MAC地址、VLAN id和目的端口號(hào) 是交換機(jī)的固有配置。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,其中交換機(jī)定時(shí)向網(wǎng)絡(luò)內(nèi)預(yù)先指定的網(wǎng) 關(guān)同步遠(yuǎn)程訪問報(bào)文的源IP地址和源MAC地址,然后通過將同步過來的源IP地址、源MAC 地址與交換機(jī)的Hash存儲(chǔ)表中的VLANid、目的IP地址、目的MAC地址、端口號(hào)進(jìn)行組合得 到同步配置,并算出同步配置索引。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,其中交換機(jī)將根據(jù)對(duì)應(yīng)的第一ACL中配置 的目的源IP地址、目的IP地址、源MAC地址、目的MAC地址、VLAN id禾Π目的端口號(hào)算出的 第一 ACL索引與所述同步配置索引進(jìn)行比較,并依據(jù)比較結(jié)果進(jìn)行以下操作如果同步配置索引與第一 ACL索引相同,則保持對(duì)應(yīng)的第一 ACL;如果同步配置索引與第一 ACL索引不同,則改變對(duì)應(yīng)的第一 ACL。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,其中,當(dāng)同步配置索引與對(duì)應(yīng)的第一ACL 索引不同時(shí),交換機(jī)執(zhí)行以下操作如果同步過來源IP地址和源MAC地址是一個(gè)新數(shù)據(jù)包報(bào)文的源地址,則通過在交換機(jī) Hash存儲(chǔ)表上拷貝所述同步配置,添加關(guān)于所述新數(shù)據(jù)包報(bào)文的第一 ACL,并將其綁定到 端口上;如果同步過來源IP地址和源MAC地址為空,則從端口上解除對(duì)應(yīng)的ACL綁定,然后從 交換機(jī)的ASIC芯片上刪除該對(duì)應(yīng)的ACL。
8.一種限制交換機(jī)遠(yuǎn)程訪問的裝置,其特征在于包括匹配處理模塊,用于利用交換機(jī)第一 ACL對(duì)交換機(jī)預(yù)定端口收到的數(shù)據(jù)包報(bào)文進(jìn)行匹 配處理;匹配數(shù)據(jù)包報(bào)文處理模塊,用于把數(shù)據(jù)包報(bào)文內(nèi)容與第一 ACL中配置的字段完全相同 的匹配數(shù)據(jù)包報(bào)文交由交換機(jī)CPU處理;失配數(shù)據(jù)包報(bào)文處理模塊,用于把數(shù)據(jù)包報(bào)文內(nèi)容與第一 ACL中配置的字段不相同的 失配數(shù)據(jù)包報(bào)文交由在交換機(jī)所有端口生效的全局ACL處理。
9.根據(jù)權(quán)利要求1所述的裝置,其特征在于,其中所述的全局ACL處理包括 如果所述失配數(shù)據(jù)包報(bào)文的目的IP地址、目的MAC地址和目的端口號(hào)與全局ACL中配置的相應(yīng)字段相同,則丟棄所述失配數(shù)據(jù)包報(bào)文; 如果所述失配數(shù)據(jù)包報(bào)文的目的IP地址或目的端口號(hào)與全局ACL中配置的相應(yīng)字段 不相同,并且是協(xié)議報(bào)文,則將所述失配數(shù)據(jù)包報(bào)文交由交換機(jī)CPU進(jìn)行處理。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括禁止多次輸入用戶密碼模塊,用 于利用第二 ACL對(duì)多次輸入用戶密碼的數(shù)據(jù)包報(bào)文進(jìn)行匹配處理,丟棄數(shù)據(jù)包報(bào)文內(nèi)容與 第二 ACL中配置的字段完全匹配的數(shù)據(jù)包報(bào)文。
全文摘要
本發(fā)明公開了限制交換機(jī)遠(yuǎn)程訪問的方法和裝置。本發(fā)明的方法包括利用交換機(jī)的第一ACL對(duì)交換機(jī)預(yù)定端口收到的數(shù)據(jù)包報(bào)文進(jìn)行匹配處理;把數(shù)據(jù)包報(bào)文內(nèi)容與第一ACL中配置的字段完全相同的匹配數(shù)據(jù)包報(bào)文交由交換機(jī)CPU進(jìn)行處理;或者把數(shù)據(jù)包報(bào)文內(nèi)容與第一ACL中配置的字段不相同的失配數(shù)據(jù)包報(bào)文交由在交換機(jī)所有端口生效的全局ACL進(jìn)行處理。本發(fā)明利用在交換機(jī)或其他網(wǎng)絡(luò)設(shè)備上使用的訪問控制列表阻止非法訪問CPU的流量,從而降低對(duì)CPU資源的占用率,降低了對(duì)網(wǎng)絡(luò)設(shè)備CPU處理能力的要求。
文檔編號(hào)H04L12/56GK101820383SQ20101010167
公開日2010年9月1日 申請(qǐng)日期2010年1月27日 優(yōu)先權(quán)日2010年1月27日
發(fā)明者陳旭明 申請(qǐng)人:中興通訊股份有限公司