前言
上次有寫過一篇《20張圖深度詳解mac地址表、ARP表、路由表》的文章,里面有提到了MAC地址表。那么什么是MAC地址表?MAC地址表有什么作用?MAC地址表里面包含了哪些要素?今天帶你好好嘮嘮。
我們以一個案例為例:
如上圖:PC1和PC2通過交換機SW1直連,此時PC1想要和PC2通信。
1、根據TCP/IP參考模型,PC1想要和PC2通信,除了需要知道PC2的IP地址,還需要知道PC2的MAC地址,這個我們在之前章節已經講了,可以通過ARP廣播獲取PC2的目的IP地址。(PC1的ARP表項如下圖)
2、PC1將報文封裝好發送給交換機SW1,交換機SW1會查找MAC地址表,匹配到PC2的MAC地址,查找出接口為GE0/0/2。(交換機的MAC地址表如下圖)
3、交換機SW1將報文發給PC2,PC2收到后解封裝發現目的MAC和目的IP均為自己的,因此接收該報文繼續處理。
以上就是整個案例的通信過程,可是我們有沒有想過,就是交換機SW1的MAC地址表是怎么生成的?交換機的MAC地址表是啥樣的?由哪些要素構成?
MAC地址表
MAC地址表:簡單的說,MAC地址表是交換機等網絡設備記錄MAC地址和端口的映射關系(見下圖),代表了交換機從哪個端口學習到了某個MAC地址,交換機把這個信息記錄下來,后續交換機需要轉發數據的時候就可以根據報文的目的MAC地址去根據MAC地址表轉發數據。
華為交換機上可以通過命令display mac-address查看所有類型的MAC地址表項信息;
MAC地址表作用:
1、用于存放交換機所學習到的其它設備的MAC地址信息。
2、用于交換機在轉發數據時,根據以太網幀中的目的MAC地址和VLAN編號查詢MAC表,快速定位設備的出接口。
MAC地址表主要構成:包括目的MAC地址、設備所屬的VLAN、出接口、MAC表項類型、老化時間等。
下面我們就分別來講下MAC地址表的五大要素。
目的MAC地址
什么是MAC地址?
每個網卡或三層網口都有一個MAC 地址, MAC 地址是燒錄到硬件上,因此也稱為硬件地址。MAC 地址作為數據鏈路設備的地址標識符,需要保證網絡中的每個 MAC 地址都是唯一的,才能正確識別到數據鏈路上的設備。
MAC地址組成?
MAC 地址由6個字節組成。前 3 個字節表示廠商識別碼,每個網卡廠商都有特定唯一的識別數字。后 3 個字節由廠商給每個網卡進行分配。廠商可以保證生產出來的網卡不會有相同 MAC 地址的網卡。
MAC地址
MAC地址表示方法?
為了查看方便, 6 個字節的 MAC 地址使用十六進制來表示。每個字節的 8 位二進制數分別用 2 個十六進制數來表示。
例如我的網卡 MAC 地址是 34-F6-4B-62-B3-85。可以在自己的PC通過打開cmd通過命令ipconfig /all查看
交換機是如何學習MAC地址的?
1、交換機在從某接口收到數據幀時會基于源MAC地址學習,然后在MAC地址表中添加MAC地址和接口的映射關系,生成對應的MAC地址表項
2、交換機在轉發數據幀時是基于目的MAC地址進行轉發。
所屬VLAN
當交換機上的接口有綁定VLAN時,生成的MAC地址表項會標識接口所屬的VLAN。如下圖中接口10GE1/0/1的所屬VLAN為100。
關于VLAN,我們簡單看下VLAN相關的概念。
什么是VLAN?
VLAN是為了在二層隔離廣播域而提出的一個概念。
舉個例子,我們班級一共有15個人,為了方便管理,我們3人1組,分成組1,組2,組3,組4,組5。那么劃分VLAN就類似于分組的概念。
如下圖:我們將PC1和PC3劃分為VLAN10,PC2和PC4劃分為VLAN20,那么相同的VLAN之間可以通信,不同VLAN之間二層不可以通信。
怎么區分不同的 VLAN ?
通過 VLAN ID 進行區分,例如 VLAN 10 和 VLAN 20 就是不同的 VLAN 。
VLAN 技術有哪些好處?
增加了廣播域的數量,減小了每個廣播域的規模,也減少了每個廣播域中終端設備的數量;
增強了網絡安全性,保障網絡安全的方法增加了;
提高了網絡設計的邏輯性,可以規避地理、物理等因素對于網絡設計的限制。
VLAN 劃分
交換機通常會使用基于端口劃分 VLAN的方法。在交換機上手動配置,綁定交換機端口和 VLAN ID 的關系。
如下圖就是基于接口的方式劃分VLAN。
優點:配置簡單。想要把某個端口劃分到某個 VLAN 中,只需要把端口的PVID(端口 VLAN ID )配置到相應的 VLAN ID 即可。
缺點:當終端設備移動位置是,可能需要為終端設備連接的新端口重新劃分 VLAN 。
除了這種方法外,還可以使用基于MAC 地址劃分 VLAN、基于 IP 地址劃分 VLAN、基于協議劃分 VLAN、基于策略劃分 VLAN等方法來劃分 VLAN。
出接口
當交換機收到一個數據包會根據數據幀的目的MAC地址去查找MAC地址表,如果能夠匹配到,那么就會根據表項的出接口發送出數據幀。
如上圖所示:
1、PC1發送一個如下圖所示的數據幀給SW1,目的MAC為PC2的MAC;
2、交換機SW1收到該數據幀后根據目的MAC查找MAC地址表,匹配到表項,按照表項提供的出接口將數據從G0/0/2口轉發出去;
3、PC2收到數據幀后進行解封裝,通信結束。
MAC地址表表項類型
MAC地址表生成的方式有多種,最常見的就是動態生成MAC地址表項。
下面我們一起看下MAC地址表的表項類型:
1、static:靜態MAC地址表項。由用戶手工配置,表項不會被老化。
2、blackhole:標識黑洞MAC地址表項,由用戶手工配置,表項不會被老化。
3、dynamic:標識動態MAC地址表項,由設備通過源MAC地址學習獲得,表項有老化時間,可被老化。
4、security:標識安全動態MAC表項,由接口使能端口安全功能后學習到的MAC地址表項。
5、sticky:標識Sticky MAC表項,由接口使能Sticky MAC功能后學習到的MAC地址表項。
6、mux:標識MUX MAC表項,當接口使能MUX VLAN功能后,該接口學習到的MAC地址表項會記錄到mux類型的MAC地址表項中。
7、snooping:根據DHCP Snooping綁定表生成的靜態MAC表項類型。
8、evn:標識EVN或EVPN網絡中存在的MAC地址表項。
9、authen:用戶通過MAC認證或802.1x認證后形成的MAC地址表項。
10、tunnel:通過二層隧道學到的MAC地址。
11、ovsdb:標識通過OVSDB學習到的MAC地址表項。由VMware NSX控制器下發至本端設備獲得,表項不會被老化。系統復位或接口板熱插拔后不丟失。
老化時間
MAC老化時間:動態MAC地址學習時間,單位是秒。
華為交換機可以通過命令display mac-address aging-time命令用來查看MAC地址表中動態MAC地址表項的老化時間。
使用本命令查看動態MAC地址表項的老化時間為0秒時,說明學習到的動態MAC地址不會被老化,可能會使MAC地址表項爆炸式增長,降低系統性能。