專(zhuān)利名稱(chēng):節(jié)約交換芯片mac地址空間的裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)通信安全技術(shù),具體的說(shuō),涉及一種節(jié)約交換芯片 MAC地址空間的裝置和方法。
背景技術(shù):
交換機(jī)需要維持一張MAC地址(也可能是MAC地址和VLAN )和端 口的映射關(guān)系表,稱(chēng)為MAC地址表,通過(guò)該MAC地址表交換機(jī)將數(shù)據(jù)包 發(fā)到對(duì)應(yīng)的端口 。 MAC地址表是通過(guò)對(duì)源MAC地址(也可能是MAC地址 和VLAN)學(xué)習(xí)來(lái)生成。例如,某個(gè)時(shí)刻交換機(jī)從端口 portl收到一個(gè)數(shù)據(jù)包, 該包的源MAC地址是macl ,交換機(jī)會(huì)查找MAC地址表,如果沒(méi)有找到與 該MAC地址對(duì)應(yīng)的映射關(guān)系且交換機(jī)被配置為允許學(xué)習(xí)新的MAC地址, 交換機(jī)就會(huì)添加macl與portl的映射關(guān)系到MAC表中。此后,交換機(jī)如果 收到目的MAC地址為macl的數(shù)據(jù)包,就會(huì)將數(shù)據(jù)包通過(guò)portl轉(zhuǎn)發(fā)出去。 如果在某個(gè)時(shí)刻,交換機(jī)在另 一個(gè)端口 port2收到了源MAC地址也是macl 的數(shù)據(jù)包,在未作保護(hù)的情況下,交換機(jī)會(huì)把原來(lái)的macl與portl的映射 關(guān)系修改為macl與port2映射,這種情況凈皮稱(chēng)作MAC地址遷移(或漂移)。 MAC地址遷移一般出現(xiàn)在網(wǎng)絡(luò)存在環(huán)路的情況下,可以通過(guò)啟用STP協(xié)議 避免。但也存在一種情況,就是有人故意構(gòu)造源MAC地址為macl的數(shù)據(jù) 包,通過(guò)端口 port2發(fā)送到交換機(jī),人為地造成MAC地址遷移,導(dǎo)致在端 口 portl上的用戶(hù)不能正常使用網(wǎng)絡(luò)。
針對(duì)這種攻擊,目前一般的解決方法是MAC地址與端口的綁定,即通 過(guò)配置一條靜態(tài)MAC這樣用戶(hù)就無(wú)法通過(guò)更改MAC地址來(lái)進(jìn)行某種惡意 的攻擊或者有效的防止某些環(huán);洛導(dǎo)致的MAC地址重復(fù)。綁定可以實(shí)現(xiàn)手工 靜態(tài)綁定,也可以實(shí)現(xiàn)自動(dòng)靜態(tài)綁定。實(shí)現(xiàn)手工靜態(tài)綁定需要網(wǎng)絡(luò)管理員手 工將用戶(hù)的MAC地址和端口號(hào)輸入到網(wǎng)絡(luò)中去。對(duì)于自動(dòng)靜態(tài)綁定,先是
4由交換機(jī)自動(dòng)進(jìn)行MAC地址學(xué)習(xí),建立一張MAC地址與端口號(hào)的映射關(guān) 系,等網(wǎng)絡(luò)穩(wěn)定之后,再通過(guò)網(wǎng)絡(luò)管理界面配置綁定命令, 一旦綁定命令生 效,交換機(jī)自動(dòng)將原來(lái)的映射關(guān)系綁定起來(lái),在沒(méi)有收到解除綁定命令時(shí), 該映射關(guān)系一直存在。不管是靜態(tài)綁定還是手工靜態(tài)綁定,存在的不足是, 一旦綁定生效,不管用戶(hù)是否在線(xiàn), 一直存在此用戶(hù)的MAC地址映射表。 現(xiàn)有的技術(shù)中, 一旦將某個(gè)MAC地址與端口綁定,就在芯片中設(shè)置一個(gè)靜 態(tài)MAC地址,不會(huì)發(fā)生MAC地址遷移也不會(huì)老化,這樣即使用戶(hù)下線(xiàn), 該MAC地址依然存在,而這個(gè)MAC地址與端口的映射關(guān)系對(duì)于交換機(jī)的 數(shù)據(jù)轉(zhuǎn)發(fā)來(lái)說(shuō)是不需要的。發(fā)明內(nèi)容本發(fā)明所解決的技術(shù)問(wèn)題是提供一種節(jié)約交換芯片MAC地址空間的裝 置,解決了綁定時(shí)芯片MAC地址空間浪費(fèi)的問(wèn)題。技術(shù)方案如下節(jié)約交換芯片MAC地址空間的裝置,包括MAC地址表,還包括配置 管理模塊、MAC驅(qū)動(dòng)模塊、MAC管理模塊,其中,配置管理模塊,和所述MAC管理模塊相連接,用于提供配置MAC地 址與端口綁定命令的人機(jī)界面;MAC驅(qū)動(dòng)模塊,和所述MAC管理模塊相連接,用于將新的MAC地址 上報(bào)給所述MAC管理模塊;MAC管理模塊,和所述MAC地址表相連接,接收所述MAC驅(qū)動(dòng)模塊 上報(bào)的MAC地址消息,查找所述MAC地址表,當(dāng)所述MAC地址表中存 在綁定的MAC地址與端口的映射關(guān)系時(shí),不允許MAC地址遷移,不更新 所述MAC地址表;當(dāng)配置MAC地址與端口綁定時(shí),所述MAC管理模塊 在所述MAC地址表中添加MAC地址與端口的映射關(guān)系,并通過(guò)所述MAC 驅(qū)動(dòng)模塊往交換芯片中寫(xiě)入動(dòng)態(tài)的MAC地址。優(yōu)選的,所述MAC管理沖莫塊進(jìn)一步包括MAC輸出模塊和MAC輸入 模塊,所述MAC驅(qū)動(dòng)模塊將MAC學(xué)習(xí)消息或者M(jìn)AC老化消息通過(guò)所述MAC輸入模塊通知MAC管理模塊;當(dāng)需要更新MAC與端口映射表時(shí),將 該更新通過(guò)所述MAC輸出模塊通知MAC驅(qū)動(dòng)模塊,所述MAC驅(qū)動(dòng)模塊 將根新后的MAC地址與端口映射作為動(dòng)態(tài)地址寫(xiě)入到交換芯片中。優(yōu)選的,當(dāng)MAC地址對(duì)應(yīng)的出端口;^皮改變,MAC管理^t塊通過(guò)配置 管理模塊給出MAC地址遷移的告警,并記錄。優(yōu)選的,通過(guò)在MAC管理模塊中添加一條IP和MAC綁定的MAC地 址來(lái)實(shí)現(xiàn)端口的IP和MAC地址的綁定,不允許進(jìn)行修改;在交換芯片中寫(xiě) 入相應(yīng)的動(dòng)態(tài)MAC地址,允許老化。本發(fā)明所解決的另 一個(gè)技術(shù)問(wèn)題是提供一種節(jié)約交換芯片MAC地址空 間的方法,解決了綁定時(shí)芯片MAC地址空間浪費(fèi)的問(wèn)題。4支術(shù)方案如下節(jié)約交換芯片MAC地址空間的方法,步驟包括(1 )配置管理模塊配置MAC地址綁定,MAC管理模塊在MAC地址 表中添加相應(yīng)的條目,但不寫(xiě)入芯片;(2 ) MAC驅(qū)動(dòng)模塊上報(bào)MAC地址;(3) MAC管理模塊判斷上報(bào)的MAC地址是否為已經(jīng)配置的綁定的 MAC地址;(4) 當(dāng)所述上報(bào)的MAC地址與所述綁定的MAC地址匹配,則允許學(xué) 習(xí)或者更新所述綁定的MAC地址,并將所述綁定的MAC地址在芯片中寫(xiě) 成動(dòng)態(tài),允許其老化;否則不學(xué)習(xí)或者更新所述綁定的MAC地址。進(jìn)一步,步驟(2)具體為MAC驅(qū)動(dòng)模塊將MAC學(xué)習(xí)或者M(jìn)AC老 化消息通過(guò)MAC輸入模塊通知MAC管理模塊。進(jìn)一步,步驟(3)中,判斷通過(guò)的條件包括上報(bào)的MAC地址沒(méi)有 進(jìn)行綁定配置,或者,上報(bào)的MAC地址配置了綁定,并且綁定的端口與驅(qū) 動(dòng)上報(bào)的MAC地址的端口 一致。進(jìn)一 步,步驟(4)具體為如果通過(guò)綁定判斷,則更新MAC與端口 映射表,并將該MAC地址與端口映射通過(guò)MAC輸出才莫塊通知MAC驅(qū)動(dòng) 模塊,MAC驅(qū)動(dòng)模塊將該MAC地址與端口映射作為動(dòng)態(tài)地址寫(xiě)入到交換芯片中;或者,如果判斷通過(guò),則該MAC地址與端口映射通過(guò)MAC輸出 才莫塊通知MAC驅(qū)動(dòng)模塊,MAC驅(qū)動(dòng)將該MAC地址與端口映射作為動(dòng)態(tài)條 目寫(xiě)入到交換芯片中;否則,MAC與端口映射表維持原樣。本發(fā)明克服了現(xiàn)有的MAC地址與端口綁定技術(shù)中的缺點(diǎn),解決綁定時(shí) 芯片MAC地址空間浪費(fèi)的問(wèn)題。本發(fā)明可以在用戶(hù)不在線(xiàn)的時(shí)候老化掉相 應(yīng)的MAC地址,不需要增加額外的石更件成本,對(duì)軟件成本增加也不大,在 不影響安全性的基礎(chǔ)上有效地節(jié)約了芯片的MAC地址空間。
圖1是節(jié)約交換芯片MAC地址空間的裝置的結(jié)構(gòu)框圖; 圖2是MAC管理模塊學(xué)習(xí)和更新MAC條目的流程圖; 圖3a是更新MAC條目的處理流程圖; 圖3b是學(xué)習(xí)MAC條目的處理流程圖。
具體實(shí)施方式
下面參照附圖,對(duì)本發(fā)明的優(yōu)選實(shí)施例作詳細(xì)描述。 參照?qǐng)Dl所示,本發(fā)明的節(jié)約交換芯片MAC地址空間的裝置包括配置 管理模塊、MAC驅(qū)動(dòng)模塊、MAC管理模塊。其中,配置管理模塊提供配置 MAC地址與端口綁定命令的人機(jī)界面。用戶(hù)可以通過(guò)配置管理模塊配置一 條MAC地址與端口的綁定,MAC管理模塊將該綁定添加到MAC與端口映 射表中。MAC驅(qū)動(dòng)模塊用于將新的MAC地址上報(bào)給MAC管理模塊。 MAC管理模塊包括MAC輸出模塊、MAC輸入模塊、MAC表管理模塊、 MAC地址表、用戶(hù)接口模塊。MAC管理模塊通過(guò)MAC輸出模塊和MAC 輸入模塊和MAC驅(qū)動(dòng)模塊相連接,通過(guò)用戶(hù)接口模塊和配置管理模塊相連接。MAC管理模塊接收MAC驅(qū)動(dòng)模塊上報(bào)的MAC地址消息,查找MAC 地址表,如果MAC地址表中已經(jīng)存在一條綁定的MAC地址與端口的映射7關(guān)系,則不允許MAC地址遷移,不更新MAC地址表。當(dāng)配置一條MAC 地址與端口綁定時(shí),MAC管理模塊在MAC地址表中添加一條MAC地址與 端口的映射關(guān)系。并通過(guò)MAC驅(qū)動(dòng)模塊往交換芯片中寫(xiě)入一條動(dòng)態(tài)的MAC 地址。寫(xiě)成動(dòng)態(tài)的原因,是為了在用戶(hù)不使用網(wǎng)絡(luò)的時(shí)候允許這條MAC地 址老化,從而達(dá)到節(jié)約交換芯片MAC地址空間的目的。當(dāng)取消某個(gè)MAC 地址與端口的綁定后,允許該MAC地址遷移。本發(fā)明還提供了 MAC地址遷移的告警,當(dāng)MAC地址對(duì)應(yīng)的出端口被改 變,MAC管理模塊通過(guò)配置管理模塊給出MAC地址遷移的告警,并記錄。 如果連接有打印機(jī),則打印前后出端口的變化,計(jì)入日志。管理員可以通過(guò) 曰志知道是否有MAC地址遷移攻擊或者環(huán)路,并可以通過(guò)MAC地址與端 口綁定來(lái)避免。另外,對(duì)于端口上的IP和MAC地址的綁定,也可以通過(guò)在MAC管理 模塊中添加一條IP和MAC綁定的MAC地址,在交換芯片中寫(xiě)入一條相應(yīng) 的動(dòng)態(tài)MAC地址,允許它老化,但在MAC管理才莫塊中控制不允許進(jìn)行其 它的修改,這樣也達(dá)到了在用戶(hù)不使用網(wǎng)絡(luò)的情況下節(jié)約交換芯片MAC地 址空間的目的。參照?qǐng)D2,節(jié)約交換芯片MAC地址空間的方法的具體步驟如下步驟S201:通過(guò)命令管理模塊配置MAC地址綁定,MAC管理模塊在 軟件MAC地址表中添加相應(yīng)的條目,但不將其寫(xiě)入芯片中。MAC驅(qū)動(dòng)模 塊會(huì)將MAC學(xué)習(xí)與老化消息通過(guò)MAC輸入模塊通知MAC管理模塊。MAC管理模塊判斷驅(qū)動(dòng)上報(bào)的MAC地址是否為已經(jīng)配置的綁定的 MAC地址。若該MAC地址與綁定的MAC地址匹配,則允許學(xué)習(xí)或者更新 該MAC地址并將該MAC地址在芯片中寫(xiě)成動(dòng)態(tài),允許其老化;否則不學(xué) 習(xí)或者更新該MAC地址。步驟S202: MAC管理模塊檢查MAC與端口映射表中是否已經(jīng)存在這 個(gè)MACi也址。步驟S203:如果存在,則進(jìn)行更新條目。步驟S204:如果不存在,則進(jìn)行加入新條目。參照?qǐng)D3a所示,進(jìn)行更新條目的具體步驟如下步驟S301: MAC管理才莫塊進(jìn)入更新條目流程。步驟S302: MAC管理^^莫塊對(duì)該MAC地址進(jìn)行綁定判斷。判斷通過(guò)的條件有兩條,只要符合一條判斷即通過(guò)1、 該MAC地址沒(méi)有進(jìn)行綁定配置。2、 該MAC地址配置了綁定,并且綁定的端口與驅(qū)動(dòng)上l艮的MAC地址 的端口一致。步驟S303:如果判斷通過(guò),則更新MAC與端口映射表,并將該更新通 過(guò)MAC輸出模塊通知MAC驅(qū)動(dòng)才莫塊,MAC驅(qū)動(dòng)才莫塊再將該MAC地址與 端口映射作為動(dòng)態(tài)地址寫(xiě)入到交換芯片中。步驟S304:如果判斷沒(méi)有通過(guò),則MAC與端口映射表維持原樣。參照?qǐng)D3b所示,進(jìn)行加入新條目的具體步驟如下步驟S311: MAC管理才莫塊進(jìn)入加入新條目流程。步驟S312: MAC管理模塊對(duì)該MAC地址進(jìn)行端口判斷。判斷通過(guò)的條件與更新條目流程一樣。步驟S313:如果判斷通過(guò),則該MAC與端口的映射通過(guò)MAC輸出模 塊通知MAC驅(qū)動(dòng)模塊,MAC驅(qū)動(dòng)模塊再將該MAC地址與端口映射作為動(dòng) 態(tài)條目寫(xiě)入到交換芯片中。步驟S314:如果判斷沒(méi)有通過(guò),則MAC與端口映射表維持原樣。
權(quán)利要求
1. 一種節(jié)約交換芯片MAC地址空間的裝置,包括MAC地址表,其特征在于,還包括配置管理模塊、MAC驅(qū)動(dòng)模塊、MAC管理模塊,其中,配置管理模塊,和所述MAC管理模塊相連接,用于提供配置MAC地址與端口綁定命令的人機(jī)界面;MAC驅(qū)動(dòng)模塊,和所述MAC管理模塊相連接,用于將新的MAC地址上報(bào)給所述MAC管理模塊;MAC管理模塊,和所述MAC地址表相連接,接收所述MAC驅(qū)動(dòng)模塊上報(bào)的MAC地址消息,查找所述MAC地址表,當(dāng)所述MAC地址表中存在綁定的MAC地址與端口的映射關(guān)系時(shí),不允許MAC地址遷移,不更新所述MAC地址表;當(dāng)配置MAC地址與端口綁定時(shí),所述MAC管理模塊在所述MAC地址表中添加MAC地址與端口的映射關(guān)系,并通過(guò)所述MAC驅(qū)動(dòng)模塊往交換芯片中寫(xiě)入動(dòng)態(tài)的MAC地址。
2、 根據(jù)權(quán)利要求1所述的節(jié)約交換芯片MAC地址空間的裝置,其特 征在于,所述MAC管理模塊進(jìn)一 步包括MAC輸出模塊和MAC輸入模塊, 所述MAC驅(qū)動(dòng)才莫塊將MAC學(xué)習(xí)消息或者M(jìn)AC老化消息通過(guò)所述MAC輸 入模塊通知MAC管理模塊;當(dāng)需要更新MAC與端口映射表時(shí),將該更新 通過(guò)所述MAC輸出模塊通知MAC驅(qū)動(dòng)模塊,所述MAC驅(qū)動(dòng)模塊將根新 后的MAC地址與端口映射作為動(dòng)態(tài)地址寫(xiě)入到交換芯片中。
3、 根據(jù)權(quán)利要求1所述的節(jié)約交換芯片MAC地址空間的裝置,其特 征在于,當(dāng)MAC地址對(duì)應(yīng)的出端口被改變,MAC管理模塊通過(guò)配置管理 模塊給出MAC地址遷移的告警,并記錄。
4、 根據(jù)權(quán)利要求1所述的節(jié)約交換芯片MAC地址空間的裝置,其特 征在于,通過(guò)在MAC管理模塊中添加一條IP和MAC綁定的MAC地址來(lái) 實(shí)現(xiàn)端口的IP和MAC地址的綁定,不允許進(jìn)行修改;在交換芯片中寫(xiě)入相 應(yīng)的動(dòng)態(tài)MAC地址,允許老化。
5、 一種節(jié)約交換芯片MAC地址空間的方法,步驟包括(1 )配置管理模塊配置MAC地址綁定,MAC管理模塊在MAC地址 表中添加相應(yīng)的條目,但不寫(xiě)入芯片;(2 ) MAC驅(qū)動(dòng)模塊上報(bào)MAC地址;(3) MAC管理模塊判斷上報(bào)的MAC地址是否為已經(jīng)配置的綁定的 MAC地址;(4) 當(dāng)所述上報(bào)的MAC地址與所述綁定的MAC地址匹配,則允許學(xué) 習(xí)或者更新所述綁定的MAC地址,并將所述綁定的MAC地址在芯片中寫(xiě) 成動(dòng)態(tài),允許其老化;否則不學(xué)習(xí)或者更新所述綁定的MAC地址。
6、 根據(jù)權(quán)利要求5所述的節(jié)約交換芯片MAC地址空間的方法,其特 征在于,步驟(2)具體為MAC驅(qū)動(dòng)模塊將MAC學(xué)習(xí)或者M(jìn)AC老化消 息通過(guò)MAC輸入模塊通知MAC管理模塊。
7、 根據(jù)權(quán)利要求5所述的節(jié)約交換芯片MAC地址空間的方法,其特 征在于,步驟(3)中,判斷通過(guò)的條件包括上報(bào)的MAC地址沒(méi)有進(jìn)行 綁定配置,或者,上報(bào)的MAC地址配置了綁定,并且綁定的端口與驅(qū)動(dòng)上 報(bào)的MAC地址的端口 一致。
8、 根據(jù)權(quán)利要求5所述的節(jié)約交換芯片MAC地址空間的方法,其特 征在于,步驟(4)具體為如果通過(guò)綁定判斷,則更新MAC與端口映射 表,并將該MAC地址與端口映射通過(guò)MAC輸出才莫塊通知MAC驅(qū)動(dòng)才莫塊, MAC驅(qū)動(dòng)模塊將該MAC地址與端口映射作為動(dòng)態(tài)地址寫(xiě)入到交換芯片中; 或者,如果判斷通過(guò),則該MAC地址與端口映射通過(guò)MAC輸出模塊通知 MAC驅(qū)動(dòng)模塊,MAC驅(qū)動(dòng)將該MAC地址與端口映射作為動(dòng)態(tài)條目寫(xiě)入到 交換芯片中;否則,MAC與端口映射表維持原樣。
全文摘要
本發(fā)明公開(kāi)了一種節(jié)約交換芯片MAC地址空間的裝置,包括MAC地址表、配置管理模塊、MAC驅(qū)動(dòng)模塊、MAC管理模塊,其中,配置管理模塊和所述MAC管理模塊相連接,用于提供配置MAC地址與端口綁定命令的人機(jī)界面;MAC驅(qū)動(dòng)模塊和所述MAC管理模塊相連接,用于將新的MAC地址上報(bào)給所述MAC管理模塊;MAC管理模塊和所述MAC地址表相連接,接收所述MAC驅(qū)動(dòng)模塊上報(bào)的MAC地址消息,查找所述MAC地址表。本發(fā)明還公開(kāi)了一種節(jié)約交換芯片MAC地址空間的方法。
文檔編號(hào)H04Q11/00GK101262417SQ20071013040
公開(kāi)日2008年9月10日 申請(qǐng)日期2007年7月18日 優(yōu)先權(quán)日2007年3月5日
發(fā)明者義 姚, 溫華鋒 申請(qǐng)人:中興通訊股份有限公司