HCIE_交換篇_MAC地址



HCIE之路----交換篇

1、MAC

(1)mac-address

關於MAC地址,拿我自己的筆記本電腦來舉例子,是這樣的B2-D1-6B-C3-46-F3,一共12個字符,但是經常在書中被說成是48位的,這是為何?為什么這么說呢?每一個字符都代表4位,12乘以4正好是48位,為什么說一個字符代表4呢?這是怎么算的呢?是通過16進制算的,所謂的16進制就是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,其中每一個字符都可以通過四個二進制來表示,比如4,那就是0100,A是1010,F是1111。

MAC地址的前24位唯一標識符,也被稱為OUI,通常這個這24bit可以判斷網絡設備廠商。

MAC地址分為三種:單播、廣播、組播,如何區分呢?通過第二個16字符轉換成內核之后的最后一位,如果最后一位如果是0的話,那就是單播,如果是1就是組播,如果全是1,那就是廣播。

(2)交換機工作原理

交換機的行為有三種行為:泛洪(flooding),轉發(forward),丟棄(discrad)

交換機遇到廣播報文時會直接泛洪,但面對單播數據幀時,就得視情況而定。當交換機收到的數據幀是源和目標mac一樣時,這明顯不合理,哪有自己給自己發數據幀的,交換機面對這種操蛋的行為會直接將此數據幀丟棄;很少有上述這種操蛋的數據幀,大多數都是正常的數據幀,交換機面對正常的數據幀時,會根據其目標mac查找mac地址表,如果表里面有對應的表項,則根據表項對應的端口轉發,如果沒有的話,就會泛洪。

(3)MAC地址表

MAC地址表相當於二層的路由表,是數據幀轉發的依據,MAC地址表是物理接口與MAC地址的對應關系,此外,還有vlan信息,MAC地址的類型,如下所示:

<Huawei>dis mac-address
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address    VLAN/       PEVLAN CEVLAN Port            Type      LSP/LSR-ID  
               VSI/SI                                              MAC-Tunnel  
-------------------------------------------------------------------------------
5489-989e-2544 1           -      -      GE0/0/2         dynamic   0/-         
5489-987d-5765 1           -      -      GE0/0/1         dynamic   0/-         
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2 

1、交接機是通過源MAC地址進行學習的,原因也很簡單,因為源MAC是確定的,而目的MAC是要通過泛洪才能找到的。

2、交換機學習MAC地址表往往是在正式通信之前,就是說,當我們ping某一個主機時,要先arp廣播,在arp廣播的過程當中,mac地址表就已經學習完成了。

3、一個交換機接口是可以學習多個MAC地址的,通常一個交換機的機連口學習到的MAC地址表比較多,我們可以通過查看接口下的MAC地址來判斷下連了多少台主機,比如我就可以在我們公司的公網口查看一下,而且還可以通過端口安全做一個限制。

MAC地址表並不是無限大的,這一點很好理解,就像一個電腦,文件也不可能是無限大的,起碼是受到硬盤和內存的限制。這一個電腦硬盤滿了之后,還能繼續向里面存東西嗎?肯定是不能了。交換機也是這樣,如果MAC地址表滿了,那它還能繼續學習嗎?也不能了,不能了會發生什么現象呢?收到數據幀如何處理呢?倒是不會丟棄,面對這種未知單播包,交換機會泛洪呀,但是回復的數據包又無法學習到MAC地址表當中,因為已經滿了,所以數據幀就無法轉發出去,這就是二層泛紅攻擊的原理,我們可以通過端口安全,限制端口學習到MAC地址數量,這樣MAC地址表就不會被打滿。

MAC地址表默認是有老化時間的,默認是300s,這是可以調整的,所以想要二層泛紅攻擊有效的話得保證持續性,否則,MAC地址表內的地址失效了之后,之前的攻擊效果也就沒有了。

#老化時間的修改方法
mac-address aging-time 300 

2、限制MAC地址學習數量

(1)靜態表項MAC

動態表項

動態表項是最常見的表項,就是動態學習到的表項,這個表項有什么特點呢?由於是動態的,所以它很不靠譜,有老化時間,而且down了之后,表項就消失了。

靜態表項

靜態表項是手工配置的,既然是手工配置的,那就不會老化,接口down或設備重啟啥的還是會存在,也就是說手工配置的會寫入到內存或內存當中。一條靜態MAC地址只能綁定一個物理接口(驗證一下),但一個物理接口可以綁定多個MAC地址(驗證一下),這一點也很好理解。

[Huawei]mac-address static 5489-987D-5765 GigabitEthernet 0/0/1 vlan 1
[Huawei]
Oct 14 2020 23:23:01-08:00 Huawei DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5
.25.191.3.1 configurations have been changed. The current change number is 6, th
e change loop count is 0, and the maximum number of records is 4095.

#同樣的MAC是不能綁定到其它接口上的,只能綁定在一個物理接口之上
[Huawei]mac-address static 5489-987D-5765 GigabitEthernet 0/0/2 vlan 1
Error: The same MAC address has been configured on another port.

#通過dis mac-address可以查看上述做的配置
[Huawei]dis mac-address 
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address    VLAN/       PEVLAN CEVLAN Port            Type      LSP/LSR-ID  
               VSI/SI                                              MAC-Tunnel  
-------------------------------------------------------------------------------
5489-98df-6666 1           -      -      GE0/0/1         static    -           
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 1 

MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address    VLAN/       PEVLAN CEVLAN Port            Type      LSP/LSR-ID  
               VSI/SI                                              MAC-Tunnel  
-------------------------------------------------------------------------------
5489-988d-0dd0 1           -      -      GE0/0/10        dynamic   0/-         
5489-9811-1111 1           -      -      GE0/0/4         dynamic   0/-         
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2 

在某個接口上綁定了MAC地址之后,如果在其它接口上學到的話,就會丟棄,無論原接口是否是down的。

黑洞MAC
黑洞MAC其實十分簡單,就是交換機一旦遇到我們配置黑洞MAC就丟棄,不轉發

#必須得加上vlan信息,否則不生效
[Huawei]mac-address blackhole 5489-98DF-6666 vlan1
[Huawei]dis mac-ad
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address    VLAN/       PEVLAN CEVLAN Port            Type      LSP/LSR-ID  
               VSI/SI                                              MAC-Tunnel  
-------------------------------------------------------------------------------
5489-98df-6666 -           -      -      -               blackhole -           
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 1 

MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address    VLAN/       PEVLAN CEVLAN Port            Type      LSP/LSR-ID  
               VSI/SI                                              MAC-Tunnel  
-------------------------------------------------------------------------------
5489-98df-6666 1           -      -      GE0/0/1         dynamic   0/-         
5489-988d-0dd0 1           -      -      GE0/0/10        dynamic   0/-         
-------------------------------------------------------------------------------

(3)限制MAC地址學習數量

可以限制某個接口學習MAC地址的數量,而且還可以設置動作,當超過某個數量時如何處理,默認的處理的方法有丟棄和轉發,默認是丟棄。

## 限制學習數量
mac-limit maximum 2

## 處理動作,默認是丟棄
mac-limit acition {discard| forword}

## 還可以決定是否報警,默認是報警
mac-limit alarm {enable|disenable}

注意,如果數量已經到達上限,動作是轉發時,會轉發,但是不記錄到MAC地址表項當中,以上配置當中的具休的MAC地址不會保存,超時就重新學習。

3、接口安全

這個功能與port-limit是有沖突的,所以盡量不要同時存在,如果要同時存在的話,端口安全優先生效

int g0/0/1
	port-security enable
	port-security max-mac-num 1
	port-security port-action protect|restrict|shutdown
## 報警信息如下
[Huawei-GigabitEthernet0/0/1]
Oct 17 2020 20:58:10-08:00 Huawei L2IFPPI/4/PORTSEC_ACTION_ALARM:OID 1.3.6.1.4.1
.2011.5.25.42.2.1.7.6 The number of MAC address on interface (6/6) GigabitEthern
et0/0/1 reaches the limit, and the port status is : 1. (1:restrict;2:protect;3:s

解釋一下動作,

  • protect,代表數量到了之后就丟棄 ,不報警
  • restrict,代表數量到了之后就丟棄,報警(默認)
  • shutdown,代表數量到了之后就down,並報警

還有一個補充功能,就是當地址因違規之后被down之后,過一段還能恢復

error-down auto-recovery cause port-security interval 30,30秒之后自動恢復,配置之后才生效,之前不生效。

注意:port-security所保存的mac地址,缺省不會被老化,但在接口down之后就會失效,怎么辦呢?就出來了sticky功能,這個功能與上述功能相比,就是他將保存的安全MAC徹底保存下來了,接口斷電重啟之后,也不會失效。

int g0/0/1
	port-security enable
	port-security max-mac-num 1
	port-security mac-address sticky
	
	
#可以手動在接口上通過sticky功能加MAC
[Huawei-GigabitEthernet0/0/1]port-secur mac-add sticky 5489-98DF-6623 vlan 1

思考題

數據封裝的過程
什么是BUM幀(BUM是廣播、組播、未知單播的縮寫),交換機遇到組播幀不一定會泛洪,如果配置了IGMP的相關配置,就可能不會泛洪。
MAC地址表滿了收到數據幀怎么辦呢?
報文的二層一定是封裝MAC地址嗎?不一定,只有以太網是這么做,二層除了以太網之外,還有ppp,還有幀中繼、HDLC
IPV6的組播地址范圍?
常見的組播MAC地址?常見的組播MAC:0180c2開頭的,是生成樹報文的MAC地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM