
前言
上次有寫過一篇《20張圖深度詳解MAC地址表、ARP表、路由表》的文章,里面有提到了mac地址表。那么什么是MAC地址表?MAC地址表有什么作用?MAC地址表里面包含了哪些要素?今天帶你好好嘮嘮。
我們以一個案例為例:

如上圖:PC1和PC2通過交換機(jī)SW1直連,此時PC1想要和PC2通信。
1、根據(jù)TCP/IP參考模型,PC1想要和PC2通信,除了需要知道PC2的IP地址,還需要知道PC2的MAC地址,這個我們在之前章節(jié)已經(jīng)講了,可以通過ARP廣播獲取PC2的目的IP地址。(PC1的ARP表項(xiàng)如下圖)

2、PC1將報文封裝好發(fā)送給交換機(jī)SW1,交換機(jī)SW1會查找MAC地址表,匹配到PC2的MAC地址,查找出接口為GE0/0/2。(交換機(jī)的MAC地址表如下圖)

3、交換機(jī)SW1將報文發(fā)給PC2,PC2收到后解封裝發(fā)現(xiàn)目的MAC和目的IP均為自己的,因此接收該報文繼續(xù)處理。
以上就是整個案例的通信過程,可是我們有沒有想過,就是交換機(jī)SW1的MAC地址表是怎么生成的?交換機(jī)的MAC地址表是啥樣的?由哪些要素構(gòu)成?
MAC地址表
MAC地址表:簡單的說,MAC地址表是交換機(jī)等網(wǎng)絡(luò)設(shè)備記錄MAC地址和端口的映射關(guān)系(見下圖),代表了交換機(jī)從哪個端口學(xué)習(xí)到了某個MAC地址,交換機(jī)把這個信息記錄下來,后續(xù)交換機(jī)需要轉(zhuǎn)發(fā)數(shù)據(jù)的時候就可以根據(jù)報文的目的MAC地址去根據(jù)MAC地址表轉(zhuǎn)發(fā)數(shù)據(jù)。

華為交換機(jī)上可以通過命令display mac-address查看所有類型的MAC地址表項(xiàng)信息;

MAC地址表作用:
1、用于存放交換機(jī)所學(xué)習(xí)到的其它設(shè)備的MAC地址信息。
2、用于交換機(jī)在轉(zhuǎn)發(fā)數(shù)據(jù)時,根據(jù)以太網(wǎng)幀中的目的MAC地址和VLAN編號查詢MAC表,快速定位設(shè)備的出接口。
MAC地址表主要構(gòu)成:包括目的MAC地址、設(shè)備所屬的VLAN、出接口、MAC表項(xiàng)類型、老化時間等。

下面我們就分別來講下MAC地址表的五大要素。
目的MAC地址
什么是MAC地址?
每個網(wǎng)卡或三層網(wǎng)口都有一個 MAC 地址, MAC 地址是燒錄到硬件上,因此也稱為硬件地址。MAC 地址作為數(shù)據(jù)鏈路設(shè)備的地址標(biāo)識符,需要保證網(wǎng)絡(luò)中的每個 MAC 地址都是唯一的,才能正確識別到數(shù)據(jù)鏈路上的設(shè)備。
MAC地址組成?
MAC 地址由 6 個字節(jié)組成。前 3 個字節(jié)表示廠商識別碼,每個網(wǎng)卡廠商都有特定唯一的識別數(shù)字。后 3 個字節(jié)由廠商給每個網(wǎng)卡進(jìn)行分配。廠商可以保證生產(chǎn)出來的網(wǎng)卡不會有相同 MAC 地址的網(wǎng)卡。

MAC地址表示方法?
為了查看方便, 6 個字節(jié)的 MAC 地址使用十六進(jìn)制來表示。每個字節(jié)的 8 位二進(jìn)制數(shù)分別用 2 個十六進(jìn)制數(shù)來表示。
例如我的網(wǎng)卡 MAC 地址是 34-F6-4B-62-B3-85。可以在自己的PC通過打開cmd通過命令ipconfig /all 查看

交換機(jī)是如何學(xué)習(xí)MAC地址的?
1、交換機(jī)在從某接口收到數(shù)據(jù)幀時會基于源MAC地址學(xué)習(xí),然后在MAC地址表中添加MAC地址和接口的映射關(guān)系,生成對應(yīng)的MAC地址表項(xiàng)
2、交換機(jī)在轉(zhuǎn)發(fā)數(shù)據(jù)幀時是基于目的MAC地址進(jìn)行轉(zhuǎn)發(fā)。
所屬VLAN
當(dāng)交換機(jī)上的接口有綁定VLAN時,生成的MAC地址表項(xiàng)會標(biāo)識接口所屬的VLAN。如下圖中接口10GE1/0/1的所屬VLAN為100。

關(guān)于VLAN,我們簡單看下VLAN相關(guān)的概念。
什么是VLAN?
VLAN是為了在二層隔離廣播域而提出的一個概念。
舉個例子,我們班級一共有15個人,為了方便管理,我們3人1組,分成組1,組2,組3,組4,組5。那么劃分VLAN就類似于分組的概念。

如下圖:我們將PC1和PC3劃分為VLAN10,PC2和PC4劃分為VLAN20,那么相同的VLAN之間可以通信,不同VLAN之間二層不可以通信。

怎么區(qū)分不同的 VLAN ?
通過 VLAN ID 進(jìn)行區(qū)分,例如 VLAN 10 和 VLAN 20 就是不同的 VLAN 。
VLAN 技術(shù)有哪些好處?
-
增加了廣播域的數(shù)量,減小了每個廣播域的規(guī)模,也減少了每個廣播域中終端設(shè)備的數(shù)量;
-
增強(qiáng)了網(wǎng)絡(luò)安全性,保障網(wǎng)絡(luò)安全的方法增加了;
-
提高了網(wǎng)絡(luò)設(shè)計的邏輯性,可以規(guī)避地理、物理等因素對于網(wǎng)絡(luò)設(shè)計的限制。
VLAN 劃分
交換機(jī)通常會使用基于端口劃分 VLAN 的方法。在交換機(jī)上手動配置,綁定交換機(jī)端口和 VLAN ID 的關(guān)系。
如下圖就是基于接口的方式劃分VLAN。


優(yōu)點(diǎn):配置簡單。想要把某個端口劃分到某個 VLAN 中,只需要把端口的 PVID (端口 VLAN ID )配置到相應(yīng)的 VLAN ID 即可。
缺點(diǎn):當(dāng)終端設(shè)備移動位置是,可能需要為終端設(shè)備連接的新端口重新劃分 VLAN 。
除了這種方法外,還可以使用基于 MAC 地址劃分 VLAN 、基于 IP 地址劃分 VLAN 、基于協(xié)議劃分 VLAN 、基于策略劃分 VLAN 等方法來劃分 VLAN。

出接口
當(dāng)交換機(jī)收到一個數(shù)據(jù)包會根據(jù)數(shù)據(jù)幀的目的MAC地址去查找MAC地址表,如果能夠匹配到,那么就會根據(jù)表項(xiàng)的出接口發(fā)送出數(shù)據(jù)幀。

如上圖所示:
1、PC1發(fā)送一個如下圖所示的數(shù)據(jù)幀給SW1,目的MAC為PC2的MAC;

2、交換機(jī)SW1收到該數(shù)據(jù)幀后根據(jù)目的MAC查找MAC地址表,匹配到表項(xiàng),按照表項(xiàng)提供的出接口將數(shù)據(jù)從G0/0/2口轉(zhuǎn)發(fā)出去;

3、PC2收到數(shù)據(jù)幀后進(jìn)行解封裝,通信結(jié)束。
MAC地址表表項(xiàng)類型
MAC地址表生成的方式有多種,最常見的就是動態(tài)生成MAC地址表項(xiàng)。

下面我們一起看下MAC地址表的表項(xiàng)類型:
1、static:靜態(tài)MAC地址表項(xiàng)。由用戶手工配置,表項(xiàng)不會被老化。
2、blackhole:標(biāo)識黑洞MAC地址表項(xiàng),由用戶手工配置,表項(xiàng)不會被老化。
3、dynamic:標(biāo)識動態(tài)MAC地址表項(xiàng),由設(shè)備通過源MAC地址學(xué)習(xí)獲得,表項(xiàng)有老化時間,可被老化。
4、security:標(biāo)識安全動態(tài)MAC表項(xiàng),由接口使能端口安全功能后學(xué)習(xí)到的MAC地址表項(xiàng)。
5、sticky:標(biāo)識Sticky MAC表項(xiàng),由接口使能Sticky MAC功能后學(xué)習(xí)到的MAC地址表項(xiàng)。
6、mux:標(biāo)識MUX MAC表項(xiàng),當(dāng)接口使能MUX VLAN功能后,該接口學(xué)習(xí)到的MAC地址表項(xiàng)會記錄到mux類型的MAC地址表項(xiàng)中。
7、snooping:根據(jù)DHCP Snooping綁定表生成的靜態(tài)MAC表項(xiàng)類型。
8、evn:標(biāo)識EVN或EVPN網(wǎng)絡(luò)中存在的MAC地址表項(xiàng)。
9、authen:用戶通過MAC認(rèn)證或802.1x認(rèn)證后形成的MAC地址表項(xiàng)。
10、tunnel:通過二層隧道學(xué)到的MAC地址。
11、ovsdb:標(biāo)識通過OVSDB學(xué)習(xí)到的MAC地址表項(xiàng)。由VMware NSX控制器下發(fā)至本端設(shè)備獲得,表項(xiàng)不會被老化。系統(tǒng)復(fù)位或接口板熱插拔后不丟失。
老化時間
MAC老化時間:動態(tài)MAC地址學(xué)習(xí)時間,單位是秒。
華為交換機(jī)可以通過命令 display mac-address aging-time命令用來查看MAC地址表中動態(tài)MAC地址表項(xiàng)的老化時間。

使用本命令查看動態(tài)MAC地址表項(xiàng)的老化時間為0秒時,說明學(xué)習(xí)到的動態(tài)MAC地址不會被老化,可能會使MAC地址表項(xiàng)爆炸式增長,降低系統(tǒng)性能。
---END--






