專利名稱:一種防止媒體訪問控制地址漂移的方法及網(wǎng)絡(luò)處理設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,具體涉及一種防止媒體訪問控制(MAC,MediaAccess Control)地址漂移的方法及網(wǎng)絡(luò)處理設(shè)備。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和普及,網(wǎng)絡(luò)規(guī)模日益擴大,網(wǎng)絡(luò)架構(gòu)逐漸繁瑣,網(wǎng)絡(luò)配置越來越復(fù)雜。經(jīng)常會出現(xiàn)設(shè)備位置發(fā)生變化(如通過無線網(wǎng)絡(luò)接入的便攜式設(shè)備位置經(jīng)常發(fā)生移動)的情況,但有時候也會因網(wǎng)絡(luò)故障(比如環(huán)路),導(dǎo)致出現(xiàn)異常MAC地址漂移,影響網(wǎng)絡(luò)數(shù)據(jù)安全和用戶正常使用網(wǎng)絡(luò)。因此必須采取措施提供安全保障,防止因MAC地址非正常漂移造成用戶無法使用網(wǎng)絡(luò)和其它安全問題?,F(xiàn)有技術(shù)通常采用靜態(tài)MAC地址表的方式來防止MAC地址漂移。其做法是在設(shè)備應(yīng)用之初,針對其每個端口配置相關(guān)的MAC地址綁定規(guī)則,對于每個端口只允許來自特定MAC地址的流通過。這種方法存在以下不足初期配置量大且可操作性差。對于每臺設(shè)備的每個端口都需要配置靜態(tài)MAC地址表,并且還需要清楚的知道哪些MAC地址是合法的,因此設(shè)備部署前需要獲取大量信息,且配置工作量很大。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種防止MAC地址漂移的方法及網(wǎng)絡(luò)處理設(shè)備,用以簡便地實現(xiàn)防止MAC地址漂移的功能。為解決上述技術(shù)問題,本發(fā)明提供方案如下一種防止MAC地址漂移的方法,應(yīng)用于一網(wǎng)絡(luò)接入設(shè)備,所述網(wǎng)絡(luò)接入設(shè)備包括有與外部設(shè)備連接的多個端口,所述方法包括所述網(wǎng)絡(luò)接入設(shè)備在自身第一端口上接收到第一報文,其中,所述網(wǎng)絡(luò)接入設(shè)備的端口的屬性都被預(yù)先配置為禁止學(xué)習(xí)報文的源MAC地址,所述第一報文的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息;所述網(wǎng)絡(luò)接入設(shè)備根據(jù)當前存在的ACL規(guī)則,判斷是否丟棄所述第一報文;在判斷出不丟棄所述第一報文時,所述網(wǎng)絡(luò)接入設(shè)備根據(jù)目的MAC地址轉(zhuǎn)發(fā)所述第一報文,并判斷自身的MAC地址表中是否存在與所述第一源MAC地址和第一 VLAN信息對應(yīng)的第一表項;在判斷出不存在所述第一表項時,所述網(wǎng)絡(luò)接入設(shè)備根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,以及建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的第一 ACL規(guī)則。優(yōu)選地,上述方法中,在所述MAC地址表中的表項發(fā)生老化時,所述方法還包括所述網(wǎng)絡(luò)接入設(shè)備針對當前存在的每一 ACL規(guī)則,如果所述MAC地址表中不存在與該ACL規(guī)則所針對報文的源MAC地址和VLAN信息對應(yīng)的表項,則刪除該ACL規(guī)則。
優(yōu)選地,上述方法中,所述網(wǎng)絡(luò)接入設(shè)備進一步在所述MAC地址表中針對第一端口配置靜態(tài)MAC地址的表項,以允許第一端口上接收到的源MAC地址為所述靜態(tài)MAC地址的報文得以通過。優(yōu)選地,上述方法中,在判斷出不存在所述第一表項時,所述網(wǎng)絡(luò)接入設(shè)備進一步判斷所述MAC地址表中對應(yīng)于所述第一端口的表項是否已達到預(yù)設(shè)的第一上限值若是,則上報第一端口對應(yīng)的表項已達到所述第一上限值的告警,并結(jié)束本流程;否則,進入所述根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,以及建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、·VLAN信息為第一 VLAN信息的報文的ACL規(guī)則的步驟。優(yōu)選地,上述方法中,所述建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的第一 ACL規(guī)則,包括判斷當前存在的ACL規(guī)則中是否存在針對源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的第二 ACL規(guī)則在存在所述第二 ACL規(guī)則時,將所述第二 ACL規(guī)則中的端口更新為所述第一端Π ;在不存在所述第二 ACL規(guī)則時,建立所述第一 ACL規(guī)則。優(yōu)選地,上述方法中,在不存在所述第二 ACL規(guī)則時,進一步判斷當前存在的對應(yīng)于所述第一端口的ACL規(guī)則是否已達到預(yù)設(shè)的第二上限值若達到,則上報第一端口對應(yīng)的ACL規(guī)則已達到所述第二上限值的告警,并結(jié)束本流程;否則,建立包括有所述第一端口、第一 MAC地址、第一 VLAN信息的第一 ACL規(guī)則,所述第一 ACL規(guī)則用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文。本發(fā)明還提供了一種網(wǎng)絡(luò)接入設(shè)備,包括有與外部設(shè)備連接的多個端口,所述網(wǎng)絡(luò)接入設(shè)備還包括接收單元,用于在所述網(wǎng)絡(luò)接入設(shè)備的第一端口上接收到第一報文,其中,所述網(wǎng)絡(luò)接入設(shè)備的端口的屬性都被預(yù)先配置為禁止學(xué)習(xí)報文的源MAC地址,所述第一報文的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息;ACL單元,用于根據(jù)所述網(wǎng)絡(luò)接入設(shè)備中當前存在的ACL規(guī)則,判斷是否丟棄所述第一報文;交換處理單元,用于在所述ACL單元判斷出不丟棄所述第一報文時,根據(jù)目的MAC地址轉(zhuǎn)發(fā)所述第一報文,并判斷自身的MAC地址表中是否存在與所述第一源MAC地址和第一 VLAN信息對應(yīng)的第一表項;CPU處理單元,用于在所述交換處理單元判斷出不存在所述第一表項時,根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,以及建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的第一 ACL規(guī)則。優(yōu)選地,上述網(wǎng)絡(luò)接入設(shè)備中,還包括所述ACL單元,還用于在所述MAC地址表中的表項發(fā)生老化時,針對當前存在的每一 ACL規(guī)則,如果所述MAC地址表中不存在與該ACL規(guī)則所針對報文的源MAC地址和VLAN信息對應(yīng)的表項,則刪除該ACL規(guī)則。優(yōu)選地,上述網(wǎng)絡(luò)接入設(shè)備中,還包括配置單元,用于預(yù)先將所述網(wǎng)絡(luò)接入設(shè)備的端口的屬性都配置根據(jù)目的MAC地址轉(zhuǎn)發(fā)報文并禁止學(xué)習(xí)報文的源MAC地址,以及將接收到的新報文同時發(fā)送給所述CPU處理單元,所述新報文是源MAC地址和VLAN信息在所述MAC地址表中不存在對應(yīng)表項的報文。 優(yōu)選地,上述網(wǎng)絡(luò)接入設(shè)備中,所述配置單元,還用于在所述MAC地址表中針對第一端口配置靜態(tài)MAC地址的表項,以允許第一端口上接收到的源MAC地址為所述靜態(tài)MAC地址的報文得以通過。優(yōu)選地,上述網(wǎng)絡(luò)接入設(shè)備中,所述CPU處理單元包括第一判斷單元,用于判斷所述MAC地址表中對應(yīng)于所述第一端口的表項是否已達到預(yù)設(shè)的第一上限值第一處理單元,用于在所述MAC地址表中對應(yīng)于所述第一端口的表項已達到預(yù)設(shè)的第一上限值時,上報第一端口對應(yīng)的表項已達到所述第一上限值的告警;第二處理單元,用于在所述MAC地址表中對應(yīng)于所述第一端口的表項未達到預(yù)設(shè)的第一上限值時,根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,以及建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的ACL規(guī)則。優(yōu)選地,上述網(wǎng)絡(luò)接入設(shè)備中,所述第二處理單元包括第二判斷單元,用于判斷當前存在的ACL規(guī)則中是否存在針對源MAC地址為第一MAC地址、VLAN信息為第一 VLAN信息的報文的第二 ACL規(guī)則;第三處理單元,用于在存在所述第二 ACL規(guī)則時,將所述第二 ACL規(guī)則的端口更新為所述第一端口;第四處理單元,用于在不存在所述第二 ACL規(guī)則時,建立包括有所述第一端口、第一 MAC地址、第一 VLAN信息的第一 ACL規(guī)則,所述第一 ACL規(guī)則用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文。優(yōu)選地,上述網(wǎng)絡(luò)接入設(shè)備中,所述第四處理單元包括第三判斷單元,用于判斷當前存在的對應(yīng)于所述第一端口的ACL規(guī)則是否已達到預(yù)設(shè)的第二上限值;第五處理單元,用于在當前存在的對應(yīng)于所述第一端口的ACL規(guī)則已達到預(yù)設(shè)的第二上限值時,上報第一端口對應(yīng)的ACL規(guī)則已達到所述第二上限值的告警;
第五處理單元,用于在當前存在的對應(yīng)于所述第一端口的ACL規(guī)則未達到預(yù)設(shè)的第二上限值時,建立所述第一 ACL規(guī)則。從以上所述可以看出,本發(fā)明提供的防止MAC地址漂移的方法及網(wǎng)絡(luò)處理設(shè)備,無需預(yù)先獲知針對網(wǎng)絡(luò)接入設(shè)備的端口哪些源MAC地址是合法的,也無需配置大量的靜態(tài)MAC地址表,就可以實現(xiàn)MAC地址防漂移功能,相比于現(xiàn)有技術(shù),本實施例能夠大大簡化MAC地址防漂移功能的實現(xiàn)。并且,本發(fā)明還能夠通過自動根據(jù)MAC地址表的老化,對ACL規(guī)則進行更新,以避免在某個終端設(shè)備的MAC地址正常漂移后,來自該終端設(shè)備的報文被始終丟棄,而導(dǎo)致該終端設(shè)備無法正常通信的問題。
圖I為本發(fā)明實施例所述防止MAC地址漂移的方法的流程示意圖;圖2為本發(fā)明實施例所述網(wǎng)絡(luò)接入設(shè)備的結(jié)構(gòu)示意圖;圖3為本發(fā)明另一實施例防止MAC地址漂移的方法的整體處理流程圖;圖4為本實施例中CPU的收包進程對報文的詳細處理流程圖;圖5為本實施例中ACL記錄表更新流程圖。
具體實施例方式本發(fā)明提供的防止MAC地址漂移的方法及網(wǎng)絡(luò)處理設(shè)備,根據(jù)報文的解析信息建立動態(tài)的MAC地址表項,并建立相應(yīng)的ACL規(guī)則,用以在非法(未記錄)端口上丟棄具有相同源MAC和VLAN信息的報文,以達到防止MAC地址漂移的目的。以下將結(jié)合附圖,通過具體實施例對本發(fā)明作進一步的說明。本發(fā)明實施例所述的防止MAC地址漂移的方法,應(yīng)用于一網(wǎng)絡(luò)接入設(shè)備,所述網(wǎng)絡(luò)接入設(shè)備包括有與外部設(shè)備連接的多個端口。具體的,該網(wǎng)絡(luò)接入設(shè)備可以是各種無源光網(wǎng)絡(luò)(PON)系統(tǒng)中的光網(wǎng)絡(luò)單元(ONU)、連接多個終端的交換機等等。請參照圖1,本實施例所述防止MAC地址漂移的方法包括以下步驟步驟11,所述網(wǎng)絡(luò)接入設(shè)備在自身第一端口上接收到第一報文,其中,所述網(wǎng)絡(luò)接入設(shè)備的端口的屬性都被預(yù)先配置為禁止學(xué)習(xí)報文的源MAC地址,所述第一報文的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息。這里,由于網(wǎng)絡(luò)接入設(shè)備的端口都被配置為禁止從端口接收到的報文中學(xué)習(xí)源MAC地址,這樣可以避免同一 MAC地址出現(xiàn)在網(wǎng)絡(luò)接入設(shè)備的(L2 二層)MAC地址表的不同表項中。步驟12,所述網(wǎng)絡(luò)接入設(shè)備根據(jù)當前存在的訪問控制列表(ACL)規(guī)則,判斷是否丟棄所述第一報文。步驟13,在判斷出不丟棄所述第一報文時,所述網(wǎng)絡(luò)接入設(shè)備根據(jù)目的MAC地址轉(zhuǎn)發(fā)所述第一報文,并判斷自身的MAC地址表中是否存在與所述第一源MAC地址和第一VLAN信息對應(yīng)的第一表項。這里,網(wǎng)絡(luò)接入設(shè)備根據(jù)所述第一報文的目的MAC地址,查找自身的MAC地址表,確定所述第一報文的出端口,然后將第一報文通過該出端口轉(zhuǎn)發(fā)出去。步驟14,在判斷出不存在所述第一表項時,所述網(wǎng)絡(luò)接入設(shè)備根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,以及建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的第一 ACL規(guī)則。這里,由于禁止了端口的MAC地址自動學(xué)習(xí)功能,本實施例通過上述步驟14建立MAC地址表項,以生成用于報文轉(zhuǎn)發(fā)的MAC地址表。以上步驟中,為了能夠生成合適的MAC地址表項,在建立MAC地址表項前先判斷是否已存在類似的第一表項,只有在不存在第一表項時,才去根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,即建立一個包括有所述第一端口、所述第一報文的第一源MAC地址和第一 VLAN信息的MAC地址表項。由于MAC地址表項中已記錄了第一源MAC地址是來自于第一端口的,因此為了防止MAC地址非正常漂移造成用戶無法使用網(wǎng)絡(luò)和其它安全問題,此時還要建立第一 ACL規(guī)則,該第一 ACL規(guī)則應(yīng)用在所述網(wǎng)絡(luò)接入設(shè)備的所有端口上,以使得網(wǎng)絡(luò)接入設(shè)備丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文。
·
可以看出,本實施例的上述方法,無需預(yù)先獲知針對網(wǎng)絡(luò)接入設(shè)備的端口哪些源MAC地址是合法的,也無需配置大量的靜態(tài)MAC地址表,就可以實現(xiàn)MAC地址防漂移功能,相比于現(xiàn)有技術(shù),本實施例能夠大大簡化MAC地址防漂移功能的實現(xiàn)。本實施例在上述步驟13中,當判斷出存在所述第一表項時,則進入以下步驟步驟15,在判斷出所述網(wǎng)絡(luò)接入設(shè)備的MAC地址表中存在所述第一表項時,結(jié)束流程。此時不需要執(zhí)行任何動作,直接結(jié)束流程。本實施例中所述網(wǎng)絡(luò)接入設(shè)備的MAC地址表仍然可以按照現(xiàn)有技術(shù)的老化方式進行老化,本實施例所述方法在所述MAC地址表中的表項發(fā)生老化時,則對當前存在的ACL規(guī)則逐一進行輪詢,以判斷在所述MAC地址表中是否存在與該ACL規(guī)則所針對的報文的源MAC地址和VLAN信息對應(yīng)的MAC地址表項如果不存在,則刪除該ACL規(guī)則;如果存在,則無需執(zhí)行任何動作。這樣,本實施例能夠自動根據(jù)MAC地址表的老化,對ACL規(guī)則進行更新,以避免在某個終端設(shè)備的MAC地址正常漂移后,來自該終端設(shè)備的報文被始終丟棄,而導(dǎo)致該終端設(shè)備無法正常通信的問題。例如,現(xiàn)有技術(shù)的采用靜態(tài)MAC地址表的方式來防止MAC地址漂移的方式,在終端設(shè)備發(fā)生位置變動,比如便攜式電腦從A處移動到B處,為了保證其能夠正常通信,就必須重新配置靜態(tài)MAC綁定規(guī)則;然而這種移動是不可知,無法預(yù)測的,配置及查詢起來極其繁瑣。采用了本實施例的上述方案則不存在上述問題。考慮到有部分終端設(shè)備通常是固定不變地接入到網(wǎng)絡(luò)接入設(shè)備的某個端口,因此,本實施例中所述網(wǎng)絡(luò)接入設(shè)備可以在所述MAC地址表中針對第一端口配置預(yù)定數(shù)量的允許接入的靜態(tài)MAC地址所對應(yīng)的表項,以允許第一端口上接收到的源MAC地址為所述靜態(tài)MAC地址的報文得以通過。例如,在所配置的靜態(tài)MAC地址的表項中,將靜態(tài)MAC地址、對應(yīng)的VLAN信息和接口綁定。這里,靜態(tài)MAC地址的表項不會老化。這樣,本實施例能夠建立動態(tài)和靜態(tài)MAC相結(jié)合的防漂移機制,能在保證設(shè)備安全性的同時保留設(shè)備應(yīng)用的靈活性。本實施例在具體應(yīng)用中,可以預(yù)先針對網(wǎng)絡(luò)接入設(shè)備的端口,設(shè)置每個端口對應(yīng)的MAC地址表項的第一上限值,以及設(shè)置每個端口對應(yīng)的ACL規(guī)則的第二上限值。
作為一種優(yōu)選的實施方式,在上述的步驟14中,在判斷出不存在所述第一表項時,所述網(wǎng)絡(luò)接入設(shè)備進一步判斷所述MAC地址表中對應(yīng)于所述第一端口的表項是否已達到預(yù)設(shè)的第一上限值若是,則上報第一端口對應(yīng)的表項已達到所述第一上限值的告警,并結(jié)束本流程;否則,根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,以及建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的ACL規(guī)則。作為一種優(yōu)選的實施方式,在上述的步驟14中,所述建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的第一 ACL規(guī)則,具體包括 判斷當前存在的ACL規(guī)則中是否存在針對源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的第二 ACL規(guī)則在存在所述第二 ACL規(guī)則時,將所述第二 ACL規(guī)則的端口更新為所述第一端口 ;在不存在所述第二 ACL規(guī)則時,建立所述第一 ACL規(guī)則。其中,在不存在所述第二 ACL規(guī)則時,所述網(wǎng)絡(luò)接入設(shè)備進一步判斷當前存在的對應(yīng)于所述第一端口的ACL規(guī)則是否已達到預(yù)設(shè)的第二上限值若達到,則上報第一端口對應(yīng)的ACL規(guī)則已達到所述第二上限值的告警,并結(jié)束本流程;否則,建立所述第一 ACL規(guī)則。這里,第一 ACL規(guī)則包括有第一端口、第一源MAC地址和第一 VLAN信息,用以指不 將在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一VLAN信息的報文丟棄,而接收所述第一端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文。第一 ACL規(guī)則建立后,所述網(wǎng)絡(luò)接入設(shè)備的每個端口在接收到報文后,首先與當前存在的ACL規(guī)則進行匹配,判斷該報文是否能夠被允許接收或者是丟棄,從而能夠防止MAC地址的非法漂移所造成的通信故障或安全問題。如果需要關(guān)閉本實施例所提供的防止MAC地址漂移的功能,則需要清空ACL規(guī)則和MAC地址表,并重新設(shè)置網(wǎng)絡(luò)接入設(shè)備的端口 CML (CPU-managed learning)屬性為正常轉(zhuǎn)發(fā)且學(xué)習(xí)報文的源MAC,但報文不再送至CPU。基于以上所述的防止MAC地址漂移的方法,本發(fā)明實施例還提供了一種網(wǎng)絡(luò)接入設(shè)備。所述網(wǎng)絡(luò)接入設(shè)備包括有與外部設(shè)備連接的多個端口。請參照圖2所示,網(wǎng)絡(luò)接入設(shè)備還包括接收單元,用于在所述網(wǎng)絡(luò)接入設(shè)備的第一端口上接收到第一報文,其中,所述網(wǎng)絡(luò)接入設(shè)備的端口的屬性都被預(yù)先配置為禁止學(xué)習(xí)報文的源MAC地址,所述第一報文的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息;ACL單元,用于根據(jù)所述網(wǎng)絡(luò)接入設(shè)備中當前存在的ACL規(guī)則,判斷是否丟棄所述第一報文;交換處理單元,用于在所述ACL單元判斷出不丟棄所述第一報文時,根據(jù)目的MAC地址轉(zhuǎn)發(fā)所述第一報文,并判斷自身的MAC地址表中是否存在與所述第一源MAC地址和第一 VLAN信息對應(yīng)的第一表項;CPU處理單元,用于在所述交換處理單元判斷出不存在所述第一表項時,根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,以及建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的第一 ACL規(guī)則。為避免在某個終端設(shè)備的MAC地址正常漂移后,來自該終端設(shè)備的報文被始終丟棄,而導(dǎo)致該終端設(shè)備無法正常通信的問題,本實施例的網(wǎng)絡(luò)接入設(shè)備還包括所述ACL單元,還用于在所述MAC地址表中的表項發(fā)生老化時,針對當前存在的每一 ACL規(guī)則,如果所述MAC地址表中不存在與該ACL規(guī)則所針對的報文的源MAC地址和VLAN信息對應(yīng)的表項,則刪除該ACL規(guī)則。優(yōu)選的,本實施例的網(wǎng)絡(luò)接入設(shè)備,還包括·配置單元,用于預(yù)先將所述網(wǎng)絡(luò)接入設(shè)備的端口的屬性都配置根據(jù)目的MAC地址·轉(zhuǎn)發(fā)報文并禁止學(xué)習(xí)報文的源MAC地址,以及將接收到的新報文同時發(fā)送給所述CPU處理單元,所述新報文是源MAC地址和VLAN信息在所述MAC地址表中不存在對應(yīng)表項的報文。所述配置單元,還用于在所述MAC地址表中針對第一端口配置靜態(tài)MAC地址的表項,以允許第一端口上接收到的源MAC地址為所述靜態(tài)MAC地址的報文得以通過。優(yōu)選地,所述CPU處理單元包括第一判斷單元,用于判斷所述MAC地址表中對應(yīng)于所述第一端口的表項是否已達到預(yù)設(shè)的第一上限值第一處理單元,用于在所述MAC地址表中對應(yīng)于所述第一端口的表項已達到預(yù)設(shè)的第一上限值時,上報第一端口對應(yīng)的表項已達到所述第一上限值的告警;第二處理單元,用于在所述MAC地址表中對應(yīng)于所述第一端口的表項未達到預(yù)設(shè)的第一上限值時,根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,以及建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的ACL規(guī)則。其中,所述第二處理單元包括第二判斷單元,用于判斷當前存在的ACL規(guī)則中是否存在針對源MAC地址為第一MAC地址、VLAN信息為第一 VLAN信息的報文的第二 ACL規(guī)則;第三處理單元,用于在存在所述第二 ACL規(guī)則時,將所述第二 ACL規(guī)則的端口更新為所述第一端口;第四處理單元,用于在不存在所述第二 ACL規(guī)則時,建立包括有所述第一端口、第一 MAC地址、第一 VLAN信息的第一 ACL規(guī)則,所述第一 ACL規(guī)則用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文。其中,所述第四處理單元包括第三判斷單元,用于判斷當前存在的對應(yīng)于所述第一端口的ACL規(guī)則是否已達到預(yù)設(shè)的第二上限值;第五處理單元,用于在當前存在的對應(yīng)于所述第一端口的ACL規(guī)則已達到預(yù)設(shè)的第二上限值時,上報第一端口對應(yīng)的ACL規(guī)則已達到所述第二上限值的告警;
第五處理單元,用于在當前存在的對應(yīng)于所述第一端口的ACL規(guī)則未達到預(yù)設(shè)的第二上限值時,建立所述第一 ACL規(guī)則。最后,再通過本發(fā)明在設(shè)備上的具體應(yīng)用,進一步說明本發(fā)明。圖3是本發(fā)明一實施例所述防止MAC地址漂移的方法的整體處理流程圖,其包括S101,設(shè)置設(shè)備每個端口的CML (CPU-managed learning)屬性為根據(jù)目的MAC地址查表轉(zhuǎn)發(fā)并且不學(xué)習(xí)報文的源MAC地址,同時將源MAC地址和VLAN信息在MAC地址表中沒有對應(yīng)的匹配表項的報文送至CPU;設(shè)置每個端口對應(yīng)的MAC地址表項的第一上限值,刪除設(shè)備端口上的已學(xué)習(xí)到的MAC地址的表項;S102,在CPU的收包進程中檢測經(jīng)由設(shè)備端口送至CPU的報文,分析報文中的操作碼(opcode)字段,若該字段為SLF tag (source MAC lookup failed,具體到本裝置為0x2) 時,表明該報文是設(shè)置端口 CML屬性后因源MAC地址查找失敗而送至CPU的報文,則進入步驟S103 ;否則,結(jié)束該流程。S103,若是SLF原因送至CPU的報文,獲取接收到該報文的端口號,并解析出報文中的VLAN信息和MAC地址;S104,根據(jù)S103中獲得的信息建立軟件ACL記錄表,并將該VLAN信息和MAC地址燈寫入交換芯片的MAC地址表(硬件L2地址表)中,生成一個對應(yīng)的MAC地址表項,使后續(xù)報文得以正常轉(zhuǎn)發(fā);同時建立以MAC地址、VLAN信息和端口號為關(guān)鍵字(key)的ACL規(guī)貝U,以對于該端口之外的其他端口則禁止相同的MAC地址+VLAN信息的流進入。圖4是本實施例中CPU的收包進程對報文的詳細處理流程圖,其包括S201,以報文中解析出來的源MAC地址、VLAN信息為key,查找硬件L2地址表若找到,無須任何動作,流程結(jié)束;否則進入S202 ;S202,若S201中沒有找到相應(yīng)條目,則先去判斷該報文的收端口號對應(yīng)的MAC地址表項是否已達所設(shè)第一上限值若已達到,則上報告警信息,流程結(jié)束;否則進入S203 ;S203,由軟件將S201中的MAC地址、VLAN信息寫進交換芯片的硬件L2地址表中去;S204,查找ACL記錄表條目,看是否存在以前述的MAC地址和VLAN信息為key的ACL條目若存在,進入S205 ;否則進入S206 ;S205,若存在以前述的MAC地址和VLAN信息為key的舊ACL條目,再比較前述的收端口號與找到的舊ACL條目中的舊端口號,如果不同,則需要將舊端口加入到阻止端口列表中,將前述端口號從阻止端口列表中剔除。具體可以通過修改舊ACL條目中的端口號,將其由舊端口號修改為收端口號,并重新安裝(install)該ACL規(guī)則;S206,先判斷收端口對應(yīng)的ACL條目是否已經(jīng)達到預(yù)設(shè)的第二上限值;S207,若沒有達到第二上限值,則新建以MAC地址、VLAN信息和收端口號為key的ACL規(guī)則,以對收端口之外的其他端口則禁止相同MAC地址+VLAN信息的流進入;S208,若已達到第二上限值,則上報告警信息,流程結(jié)束。圖5是本實施例中ACL記錄表更新流程圖,由于ACL條目數(shù)量有限,例如,共O 255個ACL條目。因此,在建立ACL條目時,需要查找各個ACL條目,判斷其是否已用,以找到空ACL條目,在該空ACL條目中添加相應(yīng)信息生成ACL規(guī)則。圖5具體包括
S301,從ACL記錄表的第一條開始查找,判斷該條目是否已被使用;S302,若條目被標記為未用,則設(shè)置找到空條目的標志量find_empty_entry = I ;S303,若條目被標記為已用,則判斷MAC地址表中是否存在對應(yīng)于該條目中的MAC地址和VLAN信息的MAC地址表項;S304,若不存在,則刪除條目中所記錄的ACL規(guī)則,并且清空該ACL記錄條目,標記此條目為未用,同時設(shè)置找到空條目的標志量find_empty_entry = I ;S305,判斷是否已是軟件ACL記錄表的最后一個條目,若是結(jié)束返回,流程結(jié)束;S306,若S305未達ACL記錄表的最后一個條目,則將條目數(shù)加1,回到S301重新開始;
S307,若有空條目,則建立新的ACL規(guī)則,并將相關(guān)信息記錄到該空條目中,并標記其為已用;S308,若最終沒有找到空的條目,則上報告警信息,結(jié)束流程。以上所述僅是本發(fā)明的實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種防止MAC地址漂移的方法,應(yīng)用于一網(wǎng)絡(luò)接入設(shè)備,所述網(wǎng)絡(luò)接入設(shè)備包括有與外部設(shè)備連接的多個端口,其特征在于,所述方法包括 所述網(wǎng)絡(luò)接入設(shè)備在自身第一端口上接收到第一報文,其中,所述網(wǎng)絡(luò)接入設(shè)備的端口的屬性都被預(yù)先配置為禁止學(xué)習(xí)報文的源MAC地址,所述第一報文的源MAC地址為第一MAC地址、VLAN信息為第一 VLAN信息; 所述網(wǎng)絡(luò)接入設(shè)備根據(jù)當前存在的ACL規(guī)則,判斷是否丟棄所述第一報文; 在判斷出不丟棄所述第一報文時,所述網(wǎng)絡(luò)接入設(shè)備根據(jù)目的MAC地址轉(zhuǎn)發(fā)所述第一報文,并判斷自身的MAC地址表中是否存在與所述第一源MAC地址和第一 VLAN信息對應(yīng)的第一表項; 在判斷出不存在所述第一表項時,所述網(wǎng)絡(luò)接入設(shè)備根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,以及建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的第一 ACL規(guī)則。
2.如權(quán)利要求I所述的方法,其特征在于, 在所述MAC地址表中的表項發(fā)生老化時,所述方法還包括 所述網(wǎng)絡(luò)接入設(shè)備針對當前存在的每一 ACL規(guī)則,如果所述MAC地址表中不存在與該ACL規(guī)則所針對報文的源MAC地址和VLAN信息對應(yīng)的表項,則刪除該ACL規(guī)則。
3.如權(quán)利要求I所述的方法,其特征在于, 所述網(wǎng)絡(luò)接入設(shè)備進一步在所述MAC地址表中針對第一端口配置靜態(tài)MAC地址的表項,以允許第一端口上接收到的源MAC地址為所述靜態(tài)MAC地址的報文得以通過。
4.如權(quán)利要求I所述的方法,其特征在于, 在判斷出不存在所述第一表項時,所述網(wǎng)絡(luò)接入設(shè)備進一步判斷所述MAC地址表中對應(yīng)于所述第一端口的表項是否已達到預(yù)設(shè)的第一上限值 若是,則上報第一端口對應(yīng)的表項已達到所述第一上限值的告警,并結(jié)束本流程;否則,進入所述根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,以及建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的ACL規(guī)則的步驟。
5.如權(quán)利要求I所述的方法,其特征在于,所述建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的第一 ACL規(guī)則,包括 判斷當前存在的ACL規(guī)則中是否存在針對源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的第二 ACL規(guī)則 在存在所述第二 ACL規(guī)則時,將所述第二 ACL規(guī)則中的端口更新為所述第一端口 ; 在不存在所述第二 ACL規(guī)則時,建立所述第一 ACL規(guī)則。
6.如權(quán)利要求5所述的方法,其特征在于, 在不存在所述第二 ACL規(guī)則時,進一步判斷當前存在的對應(yīng)于所述第一端口的ACL規(guī)則是否已達到預(yù)設(shè)的第二上限值 若達到,則上報第一端口對應(yīng)的ACL規(guī)則已達到所述第二上限值的告警,并結(jié)束本流程; 否則,建立包括有所述第一端口、第一 MAC地址、第一 VLAN信息的第一 ACL規(guī)則,所述第一 ACL規(guī)則用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一MAC地址、VLAN信息為第一 VLAN信息的報文。
7.—種網(wǎng)絡(luò)接入設(shè)備,包括有與外部設(shè)備連接的多個端口,其特征在于,所述網(wǎng)絡(luò)接入設(shè)備還包括 接收單元,用于在所述網(wǎng)絡(luò)接入設(shè)備的第一端口上接收到第一報文,其中,所述網(wǎng)絡(luò)接入設(shè)備的端口的屬性都被預(yù)先配置為禁止學(xué)習(xí)報文的源MAC地址,所述第一報文的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息; ACL單元,用于根據(jù)所述網(wǎng)絡(luò)接入設(shè)備中當前存在 的ACL規(guī)則,判斷是否丟棄所述第一報文; 交換處理單元,用于在所述ACL單元判斷出不丟棄所述第一報文時,根據(jù)目的MAC地址轉(zhuǎn)發(fā)所述第一報文,并判斷自身的MAC地址表中是否存在與所述第一源MAC地址和第一VLAN信息對應(yīng)的第一表項; CPU處理單元,用于在所述交換處理單元判斷出不存在所述第一表項時,根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,以及建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的第一 ACL規(guī)則。
8.如權(quán)利要求7所述的網(wǎng)絡(luò)接入設(shè)備,其特征在于,還包括 所述ACL單元,還用于在所述MAC地址表中的表項發(fā)生老化時,針對當前存在的每一ACL規(guī)則,如果所述MAC地址表中不存在與該ACL規(guī)則所針對報文的源MAC地址和VLAN信息對應(yīng)的表項,則刪除該ACL規(guī)則。
9.如權(quán)利要求7所述的網(wǎng)絡(luò)接入設(shè)備,其特征在于,還包括 配置單元,用于預(yù)先將所述網(wǎng)絡(luò)接入設(shè)備的端口的屬性都配置根據(jù)目的MAC地址轉(zhuǎn)發(fā)報文并禁止學(xué)習(xí)報文的源MAC地址,以及將接收到的新報文同時發(fā)送給所述CPU處理單元,所述新報文是源MAC地址和VLAN信息在所述MAC地址表中不存在對應(yīng)表項的報文。
10.如權(quán)利要求9所述的網(wǎng)絡(luò)接入設(shè)備,其特征在于, 所述配置單元,還用于在所述MAC地址表中針對第一端口配置靜態(tài)MAC地址的表項,以允許第一端口上接收到的源MAC地址為所述靜態(tài)MAC地址的報文得以通過。
11.如權(quán)利要求7所述的網(wǎng)絡(luò)接入設(shè)備,其特征在于, 所述CPU處理單元包括 第一判斷單元,用于判斷所述MAC地址表中對應(yīng)于所述第一端口的表項是否已達到預(yù)設(shè)的第一上限值 第一處理單元,用于在所述MAC地址表中對應(yīng)于所述第一端口的表項已達到預(yù)設(shè)的第一上限值時,上報第一端口對應(yīng)的表項已達到所述第一上限值的告警; 第二處理單元,用于在所述MAC地址表中對應(yīng)于所述第一端口的表項未達到預(yù)設(shè)的第一上限值時,根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,以及建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的ACL規(guī)則。
12.如權(quán)利要求7所述的網(wǎng)絡(luò)接入設(shè)備,其特征在于, 所述第二處理單元包括第二判斷單元,用于判斷當前存在的ACL規(guī)則中是否存在針對源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文的第二 ACL規(guī)則; 第三處理單元,用于在存在所述第二 ACL規(guī)則時,將所述第二 ACL規(guī)則的端口更新為所·述第一端口; 第四處理單元,用于在不存在所述第二 ACL規(guī)則時,建立包括有所述第一端口、第一MAC地址、第一 VLAN信息的第一 ACL規(guī)則,所述第一 ACL規(guī)則用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一 MAC地址、VLAN信息為第一 VLAN信息的報文。
13.如權(quán)利要求12所述的網(wǎng)絡(luò)接入設(shè)備,其特征在于, 所述第四處理單元包括 第三判斷單元,用于判斷當前存在的對應(yīng)于所述第一端口的ACL規(guī)則是否已達到預(yù)設(shè)的第二上限值; 第五處理單元,用于在當前存在的對應(yīng)于所述第一端口的ACL規(guī)則已達到預(yù)設(shè)的第二上限值時,上報第一端口對應(yīng)的ACL規(guī)則已達到所述第二上限值的告警; 第五處理單元,用于在當前存在的對應(yīng)于所述第一端口的ACL規(guī)則未達到預(yù)設(shè)的第二上限值時,建立所述第一 ACL規(guī)則。
全文摘要
本發(fā)明提供了一種防止媒體訪問控制地址漂移的方法及網(wǎng)絡(luò)處理設(shè)備。其中,所述方法包括網(wǎng)絡(luò)接入設(shè)備在自身第一端口上接收到第一報文;所述網(wǎng)絡(luò)接入設(shè)備根據(jù)當前存在的ACL規(guī)則,判斷是否丟棄所述第一報文;在判斷出不丟棄所述第一報文時,根據(jù)目的MAC地址轉(zhuǎn)發(fā)所述第一報文,并判斷自身的MAC地址表中是否存在與所述第一報文的第一源MAC地址和第一VLAN信息對應(yīng)的第一表項;在判斷出不存在所述第一表項時,根據(jù)所述第一報文在所述MAC地址表中建立對應(yīng)的表項,以及建立一用以指示丟棄在所述第一端口外的其它端口上接收到的源MAC地址為第一MAC地址、VLAN信息為第一VLAN信息的報文的第一ACL規(guī)則。本發(fā)明能夠簡便地實現(xiàn)防止MAC地址漂移的功能。
文檔編號H04L29/12GK102843440SQ20111017347
公開日2012年12月26日 申請日期2011年6月24日 優(yōu)先權(quán)日2011年6月24日
發(fā)明者吳軍, 陳強 申請人:中興通訊股份有限公司