MAC地址表的配置及管理:
MAC地址表示交換機(jī)進(jìn)行數(shù)據(jù)幀轉(zhuǎn)發(fā)時(shí)所使用的一個(gè)非常關(guān)鍵的數(shù)據(jù)表。MAC地址表初始時(shí)是空的,隨著網(wǎng)絡(luò)中的各臺(tái)設(shè)備陸續(xù)開(kāi)始發(fā)送數(shù)據(jù),交換機(jī)也在各個(gè)接口上學(xué)習(xí)MAC地址,并持續(xù)維護(hù)自己的MAC地址表。一個(gè)動(dòng)態(tài)的MAC地址表項(xiàng)被加載到交換機(jī)后,其老化計(jì)時(shí)器便開(kāi)始倒計(jì)時(shí),當(dāng)計(jì)時(shí)器數(shù)到0時(shí),這個(gè)MAC表項(xiàng)將被刪除。在交換機(jī)每收到一個(gè)數(shù)據(jù)幀時(shí),MAC地址表中的數(shù)據(jù)幀的源MAC地址對(duì)應(yīng)的表項(xiàng)也會(huì)被更新,該表項(xiàng)的老化計(jì)時(shí)器將被復(fù)位并重新開(kāi)始倒計(jì)時(shí)。華為交換機(jī)MAC地址缺省老化時(shí)間為300S。
1.查看MAC地址表
2.配置動(dòng)態(tài)MAC表項(xiàng)的老化時(shí)間
3.配置靜態(tài)MAC表項(xiàng):防止規(guī)避“MAC地址漂移”故障。靜態(tài)的MAC地址表項(xiàng)永遠(yuǎn)不會(huì)被老化,而且其優(yōu)先級(jí)比動(dòng)態(tài)表項(xiàng)更高。
4.限制MAC地址學(xué)習(xí)數(shù)量:防止網(wǎng)絡(luò)中出現(xiàn)MAC地址泛洪攻擊造成MAC地址表資源被耗盡。
mac-limit maximum max-num:可限制該接口的MAC地址學(xué)習(xí)數(shù)量,取值范圍為0~32767。
mac-limit action { discard | forward }:當(dāng)MAC地址數(shù)量達(dá)到限制后,交換機(jī)對(duì)數(shù)據(jù)幀執(zhí)行的操作。
當(dāng)action為discard時(shí),在MAC地址表項(xiàng)數(shù)量達(dá)到限制后,若該接口收到的數(shù)據(jù)幀的源MAC地址為新的MAC地址時(shí),丟棄這些幀。
當(dāng)action為forward時(shí),在MAC地址表項(xiàng)數(shù)量達(dá)到限制后,若該接口收到的數(shù)據(jù)幀的源MAC地址為新的MAC地址時(shí),轉(zhuǎn)發(fā)這些幀,但是不記錄MAC地址表項(xiàng)。
接口安全(Port Security):
作用:在交換機(jī)的特定接口配置了接口安全后,可以限制接口的MAC地址學(xué)習(xí)數(shù)量,并配置當(dāng)出現(xiàn)違規(guī)行為時(shí)的懲罰機(jī)制。另外還可以將學(xué)習(xí)到的MAC地址變?yōu)榘踩玀AC地址,從而阻止除了安全地址之外的其他MAC地址通過(guò)該接口接入網(wǎng)絡(luò)。
原理:Port Security接口開(kāi)始工作后,會(huì)解析交換機(jī)在接口上收到的數(shù)據(jù)幀的源MAC地址,并進(jìn)行MAC地址學(xué)習(xí),學(xué)習(xí)到的MAC地址會(huì)被交換機(jī)轉(zhuǎn)換為動(dòng)態(tài)安全MAC地址,該接口將只允許這些MAC地址接入網(wǎng)絡(luò)。當(dāng)交換機(jī)接口學(xué)習(xí)到的MAC地址達(dá)到Port Security設(shè)置的上限后,交換機(jī)將不在該接口上繼續(xù)學(xué)習(xí)MAC地址,因此其他非信任的終端將無(wú)法通過(guò)該接口進(jìn)行通信。動(dòng)態(tài)安全MAC地址表項(xiàng)時(shí)不會(huì)被老化的,但是交換機(jī)重啟后,這些MAC地址表項(xiàng)將會(huì)丟失,因此交換機(jī)不得不重新學(xué)習(xí)動(dòng)態(tài)安全MAC地址。另一種安全MAC地址表項(xiàng)是Sticky MAC表項(xiàng),這種表項(xiàng)也是不會(huì)被老化的,而且若交換機(jī)保存配置后重啟,表項(xiàng)也不會(huì)丟失。
接口視圖下:
port-security enable:?jiǎn)⒂媒涌诎踩δ?/p>
port-security max-mac-num 1:接口學(xué)習(xí)MAC地址最大數(shù)值為1
port-security protect-action{ restrict | shutdown | protect }:
當(dāng)action為protect時(shí):當(dāng)該安全接口學(xué)習(xí)到的MAC地址數(shù)量達(dá)到限制數(shù)量時(shí),它將丟棄源MAC地址不與該接口的安全MAC地址匹配的數(shù)據(jù)幀。
當(dāng)action為restrict時(shí):當(dāng)該安全接口學(xué)習(xí)到的MAC地址數(shù)量達(dá)到限制數(shù)量時(shí),它將丟棄源MAC地址不與該接口的安全MAC地址匹配的數(shù)據(jù)幀,同時(shí)發(fā)出警告。缺省即為restrict。
當(dāng)actong為shutdown時(shí):當(dāng)該安全接口學(xué)習(xí)到的MAC地址數(shù)量達(dá)到限制數(shù)量時(shí),如果改接口學(xué)習(xí)到新的MAC地址,它將被立即關(guān)閉,同時(shí)設(shè)備將發(fā)出警告。
Sticky MAC地址:
交換機(jī)能夠?qū)?dòng)態(tài)MAC地址轉(zhuǎn)換成Sticky MAC地址,Sticky MAC地址表項(xiàng)在交換機(jī)保存配置后重啟不會(huì)丟失。
接口視圖下:
port-security mac-address sticky? ? ? ? ? ? ? ? 接口激活sticky MAC地址功能
或者
port-security mac-address sticky xxxx-xxxx-xxxx vlan 1? ? ? ? ? 手工配置sticky MAC地址
MAC地址漂移域應(yīng)對(duì):
同一個(gè)MAC地址在交換機(jī)的某個(gè)端口被學(xué)習(xí)到后,又在相同VLAN的另一個(gè)接口學(xué)習(xí)到這種現(xiàn)象稱為MAC地址遷移,少數(shù)的MAC地址遷移往往并不認(rèn)為時(shí)MAC地址漂移,例如運(yùn)行VRRP的路由器在發(fā)生主備切換時(shí),會(huì)引發(fā)MAC地址遷移,這是一種正?,F(xiàn)象,只有在短時(shí)間內(nèi)發(fā)生大量的MAC地址遷移時(shí),才被認(rèn)為是MAC地址漂移。
二層環(huán)路和網(wǎng)絡(luò)攻擊行為都有可能造成引發(fā)MAC地址漂移。因此,可以從消除二層環(huán)路或采用管理手段等方面進(jìn)行規(guī)避。
1.配置接口MAC地址學(xué)習(xí)優(yōu)先級(jí):可以將一個(gè)接口的MAC地址學(xué)習(xí)優(yōu)先級(jí)提高,而高優(yōu)先級(jí)的接口學(xué)習(xí)到的MAC地址表項(xiàng)將被覆蓋低優(yōu)先級(jí)接口學(xué)習(xí)到的表項(xiàng)。
2.配置不允許相同優(yōu)先級(jí)接口MAC地址漂移:當(dāng)該接口學(xué)習(xí)到一個(gè)MAC地址后,不允許相同優(yōu)先級(jí)的MAC地址覆蓋原表項(xiàng)。但是交換機(jī)下電后表項(xiàng)會(huì)清空,如果重新上電時(shí)先學(xué)習(xí)到錯(cuò)誤的MAC地址(非法數(shù)據(jù)幀發(fā)送),該接口將不允許正確的MAC地址覆蓋原表項(xiàng)。
undo mac-learning priority priority-id allow-flapping
3.配置基于VLAN的MAC地址漂移檢測(cè):華為交換機(jī)支持MAC地址漂移檢測(cè)功能,該功能可以在VLAN下激活。
VLAN接口視圖下:
loop-detect eth-loop alarm-only:當(dāng)檢測(cè)都該VLAN內(nèi)發(fā)生MAC地址漂移時(shí),發(fā)出警告。
loop-detect eth-loop block-time 10 retry-times 3:當(dāng)檢測(cè)到該VLAN內(nèi)發(fā)生MAC地址漂移時(shí),被檢測(cè)到的物理接口將被阻塞10S,10S重新開(kāi)放該物理接口,開(kāi)放后如果在20S沒(méi)有再次檢測(cè)到MAC地址漂移,則該物理接口阻塞將被徹底解除;如果20S內(nèi)再次檢測(cè)到MAC地址漂移,則再次將該接口阻塞。重復(fù)以上操作3次,如果仍然能檢測(cè)到該物理接口有MAC地址漂移現(xiàn)象發(fā)生,則永久阻塞該物理接口。
物理接口被永久阻塞后,需用命令手動(dòng)打開(kāi),在系統(tǒng)視圖下:
reset loop-detect eth-loop vlan {VLAN號(hào)} interface {接口}
4.配置全局MAC地址漂移檢測(cè):缺省開(kāi)啟,可用display mac-address flapping record查看日志。
在特殊場(chǎng)景下,如一臺(tái)服務(wù)器有雙網(wǎng)卡捆綁成一個(gè)邏輯接口,實(shí)現(xiàn)流量負(fù)載分擔(dān)。此時(shí)產(chǎn)生的MAC地址漂移現(xiàn)象是無(wú)害的,我們可以對(duì)相應(yīng)VLAN設(shè)置白名單,從而不對(duì)齊進(jìn)行MAC地址漂移檢測(cè)。
系統(tǒng)視圖下:
mac-address flapping detection exclude vlan {VLAN號(hào)}
VLAN中MAC地址漂移檢測(cè)級(jí)別分為高(檢測(cè)到3次遷移)、中(檢測(cè)到10次遷移)、低(檢測(cè)到50次遷移)后被認(rèn)為MAC地址漂移。
系統(tǒng)視圖下:
mac-address flapping detection vlan {VLAN號(hào)} security-level {high | middle | low}
檢測(cè)到MAC地址漂移后可以設(shè)置相應(yīng)動(dòng)作,如關(guān)閉端口,退出當(dāng)前VLAN。還能給相應(yīng)動(dòng)作關(guān)聯(lián)優(yōu)先級(jí),當(dāng)交換機(jī)檢測(cè)到兩個(gè)物理接口發(fā)生MAC漂移并其設(shè)置的動(dòng)作相同時(shí),優(yōu)先級(jí)小的物理接口執(zhí)行動(dòng)作。優(yōu)先級(jí)只在相同動(dòng)作的接口中發(fā)生作用。
接口視圖下:
mac-address flapping action error-down: 檢測(cè)到MAC地址漂移后,關(guān)閉該端口。
mac-address flapping action quit-vlan:檢測(cè)到MAC地址漂移后,退出當(dāng)前VLAN。
mac-address flapping action priority {優(yōu)先級(jí)值0~255}
如果接口被檢測(cè)到MAC地址漂移而被Error-down后,是不會(huì)自動(dòng)恢復(fù)的,此時(shí)可以手動(dòng)shutdown該端口,然后undo shutdown該端口即可打開(kāi);也可以在接口視圖下執(zhí)行restart命令開(kāi)啟該端口?;蛘咴谙到y(tǒng)視圖下:
error-down auto-recover cause mac-address-flapping interval 30:? ? 該端口在30S后自動(dòng)恢復(fù)
如果接口被檢測(cè)到MAC地址漂移而被設(shè)置為離開(kāi)VLAN,那么接口可在10min后自動(dòng)恢復(fù)??稍谙到y(tǒng)視圖下:
mac-address flapping quit-vlan recover-time {恢復(fù)時(shí)間}:? ? ? 修改因MAC地址漂移檢測(cè)離開(kāi)VLAN的接口恢復(fù)時(shí)間。