04-MAC地址表配置
本章節下載: 04-MAC地址表配置 (336.40 KB)
本章節內容隻涉及單播的靜態、動態、黑洞MAC地址表項的配置。有關靜態組播MAC地址表項的相關介紹和配置內容,請參見“IP組播配置指導”中的“IGMP Snooping”和“MLD Snooping”。
MAC地址表記錄了目的MAC地址、MAC地址對應的出接口以及所屬的VLAN ID。在轉發數據時,設備根據報文中的目的MAC地址查詢MAC地址表,快速定位出接口,從而減少廣播。
通過display mac-address命令可以查看MAC地址表信息,例如:
<Sysname> display mac-address
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
000f-e201-0101 1 Learned GigabitEthernet1/0/1 AGING
--- 1 mac address(es) found ---
MAC地址表項的生成方式有兩種:自動生成、手工配置。
一般情況下,MAC地址表是設備通過源MAC地址學習過程而自動建立的。設備學習MAC地址的方法如下:如果從某接口(假設為接口A)收到一個數據幀,設備就會分析該數據幀的源MAC地址(假設為MAC-SOURCE),並認為目的MAC地址為MAC-SOURCE的報文可以由接口A轉發;如果MAC地址表中已經包含MAC-SOURCE,設備將對該表項進行更新;如果MAC地址表中尚未包含MAC-SOURCE,設備則將這個新MAC地址以及該MAC地址對應的接口A作為一個新的表項加入到MAC地址表中。
為適應網絡的變化,MAC地址表需要不斷更新。MAC地址表中自動生成的表項並非永遠有效,每一條表項都有一個生存周期,到達生存周期仍得不到刷新的表項將被刪除,這個生存周期被稱作老化時間。如果在到達生存周期前紀錄被刷新,則重新計算該表項的老化時間。
設備通過源MAC地址學習自動建立MAC地址表時,無法區分合法用戶和黑客用戶的報文,帶來了安全隱患。如果黑客用戶將攻擊報文的源MAC地址偽裝成合法用戶的MAC地址,並從設備的其它接口進入,設備就會學習到錯誤的MAC地址表項,於是就會將本應轉發給合法用戶的報文轉發給黑客用戶。
為了提高接口安全性,網絡管理員可手工在MAC地址表中加入特定MAC地址表項,將用戶設備與接口綁定,從而防止假冒身份的非法用戶騙取數據。
MAC地址表項分為:靜態MAC地址表項、動態MAC地址表項和黑洞MAC地址表項。
· 靜態MAC地址表項由用戶手工配置,用於目的是某個MAC地址的報文從對應端口轉發出去,表項不老化。
· 動態MAC地址表項包括用戶配置的以及設備通過源MAC地址學習得來的,用於目的是某個MAC地址的報文從對應端口轉發出去,表項有老化時間。
· 黑洞MAC地址表項用於丟棄源MAC地址或目的MAC地址為指定值的報文(例如,出於安全考慮,可以屏蔽某個用戶接收報文),由用戶手工配置,表項不老化。
用戶手工配置的靜態MAC地址表項、黑洞MAC地址表項不會被動態MAC地址表項覆蓋,而動態MAC地址表項可以被靜態MAC地址表項、黑洞MAC地址表項覆蓋。
設備在轉發報文時,根據MAC地址表項信息,會采取以下兩種轉發方式:
· 單播方式:當MAC地址表中包含與報文目的MAC地址對應的表項時,設備直接將報文從該表項中的轉發出接口發送。
· 廣播方式:當設備收到目的地址為全1的報文,或MAC地址表中沒有包含對應報文目的MAC地址的表項時,設備將采取廣播方式將報文向除接收接口外的所有接口進行轉發。
以下配置均為可選配置,且配置過程無先後順序,用戶可以根據實際情況選擇配置。
一般情況下,設備通過源MAC地址學習過程自動建立MAC地址表。
為了提高接口安全性,網絡管理員可手工在MAC地址表中加入特定MAC地址表項,將用戶設備與接口綁定,從而防止假冒身份的非法用戶騙取數據。
另外,如果需要丟棄指定源MAC地址或目的MAC地址的報文,可配置黑洞MAC地址表項。
(1) 全局配置靜態/動態MAC地址表項
表1-1 全局配置靜態/動態MAC地址表項
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
添加或者修改靜態/動態MAC地址表項 |
mac-address { dynamic | static } mac-address interface interface-type interface-number vlan vlan-id |
必選 缺省情況下,係統沒有配置任何MAC地址表項 |
在配置MAC地址表項時,命令中interface參數指定的接口必須屬於vlan參數指定的VLAN,而且該VLAN必須事先創建,否則將添加失敗。
(2) 接口配置靜態/動態MAC地址表項
表1-2 接口配置靜態/動態MAC地址表項
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入二層以太網端口、二層聚合接口視圖 |
interface interface-type interface-number |
- |
在當前接口下添加或者修改靜態/動態MAC地址表項 |
mac-address { dynamic | static } mac-address vlan vlan-id |
必選 缺省情況下,接口下沒有配置任何MAC地址表項 |
在配置MAC地址表項時,當前的接口必須屬於命令中vlan參數指定的VLAN,而且該VLAN必須事先創建,否則將添加失敗。
表1-3 配置黑洞MAC地址表項
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
添加或者修改黑洞MAC地址表項 |
mac-address blackhole mac-address vlan vlan-id |
必選 缺省情況下,係統沒有配置任何MAC地址表項 |
在配置黑洞MAC地址表項時,指定的VLAN必須事先創建,否則將添加失敗。
有時為了保證設備的安全,需要關閉MAC地址學習功能。常見的危及設備安全的情況是:黑客使用大量源MAC地址不同的報文攻擊設備,導致設備MAC地址表資源耗盡,造成設備無法根據網絡的變化更新MAC地址表。關閉MAC地址學習功能可以有效防止這種攻擊。
關閉全局的MAC地址學習功能的同時也就關閉了全部接口的MAC地址學習功能。
表1-4 關閉全局MAC地址學習功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
關閉全局的MAC地址學習功能 |
mac-address mac-learning disable |
必選 缺省情況下,全局的MAC地址學習功能處於開啟狀態 |
關閉MAC地址學習功能後,已經學習到的MAC地址表項將繼續有效直至老化。
在開啟全局的MAC地址學習功能的前提下,用戶可以關閉設備上的單個接口或者端口組的MAC地址學習功能。
表1-5 關閉接口的MAC地址學習功能
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
開啟全局的MAC地址學習功能 |
undo mac-address mac-learning disable |
可選 缺省情況下,全局的MAC地址學習功能處於開啟狀態 |
|
進入二層以太網端口、二層聚合接口或者端口組視圖 |
進入二層以太網端口、或者二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 進入二層以太網端口、或者二層聚合接口視圖後,下麵進行的配置隻在當前接口生效;進入端口組視圖後,下麵進行的配置將在端口組的所有接口生效 |
進入端口組視圖 |
port-group manual port-group-name |
||
關閉接口的MAC地址學習功能 |
mac-address mac-learning disable |
必選 缺省情況下,接口的MAC地址學習功能處於開啟狀態 |
· 關閉MAC地址學習功能後,已經學習到的MAC地址表項將繼續有效直至老化。
· 端口組相關的配置請參見“二層技術-以太網交換配置指導”中的“以太網端口”。
僅S5500-EI係列交換機支持關閉指定VLAN的MAC地址學習功能。
用戶可以關閉設備上的指定VLAN的MAC地址學習功能。
表1-6 關閉VLAN的MAC地址學習功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟全局的MAC地址學習功能 |
undo mac-address mac-learning disable |
可選 缺省情況下,全局的MAC地址學習功能處於開啟狀態 |
進入VLAN視圖 |
vlan vlan-id |
- |
關閉VLAN的MAC地址學習功能 |
mac-address mac-learning disable |
必選 缺省情況下,VLAN的MAC地址學習功能處於開啟狀態 |
關閉MAC地址學習功能後,已經學習到的MAC地址表項將繼續有效直至老化。
當網絡拓撲改變後,動態MAC地址表項不會及時自動更新。這樣,由於設備學習不到新的MAC地址,會導致用戶流量不能正常轉發。因此,需要配置動態MAC地址表項老化時間。超出設定的老化時間,動態MAC地址表項被自動刪除,設備重新進行MAC地址學習,構建新的動態MAC地址表項。
配置合適的老化時間可以有效利用MAC地址老化功能。用戶配置的老化時間過長或者過短,都可能影響設備的運行性能:
· 如果用戶配置的老化時間過長,設備可能會保存許多過時的MAC地址表項,從而耗盡MAC地址表資源,導致設備無法根據網絡的變化更新MAC地址表。
· 如果用戶配置的老化時間太短,設備可能會刪除有效的MAC地址表項,可能導致設備廣播大量的數據報文,影響設備的運行性能。
表1-7 配置動態MAC地址表項的老化時間
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置動態MAC地址表項的老化時間 |
mac-address timer { aging seconds | no-aging } |
可選 缺省情況下,MAC地址老化時間為300秒 |
· 動態MAC地址表項的老化時間作用於全部接口上,地址老化隻對動態的(設備學習到的或者用戶配置的動態的)MAC地址表項起作用。
· 在一個比較穩定的網絡,如果長時間沒有流量,動態MAC地址表項會被全部刪除,可能導致設備突然廣播大量的數據報文,被他人偵聽,造成安全隱患,此時可將動態MAC地址表項的老化時間設成no-aging(不老化),以減少廣播,增加網絡穩定性和安全性。
為適應網絡的變化,MAC地址表需要不斷更新。每一條動態MAC地址表項都有一個老化時間。如果在到達老化時間之前設備收到源MAC地址或目的MAC地址為MAC地址表中某MAC地址的報文,則重新計算該表項的老化時間。
如果希望設備僅在收到源MAC地址為動態MAC表項中MAC地址的報文時刷新該表項的老化時間,收到目的MAC地址為動態MAC地址表項中MAC地址的報文時不刷新該表項的老化時間,可以關閉目的MAC地址刷新老化時間功能。
表1-8 關閉目的MAC地址刷新老化時間配置
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
關閉目的MAC地址刷新老化時間 |
mac-address destination-hit disable |
必選 缺省情況下,目的MAC地址刷新老化時間功能處於開啟狀態 |
微軟的網絡負載均衡(NLB,Network Load Balancing)功能,是其在Windows Server上開發的一個多服務器集群負載均衡特性。
a. NLB集群
NLB支持集群內服務器之間的負載分擔以及冗餘備份,當發生服務器故障時可以支持數據快速切換。為了保證快速切換,NLB要求交換機將業務流量轉發至集群內的所有服務器或指定服務器,然後由各服務器將該服務器不期望的流量過濾掉。
在NLB集群的單播模式下,集群服務器加入或者切換時會發送一個以虛擬MAC為源MAC的報文,交換機會學習到這個虛擬MAC。之後,服務器不再以此MAC為源地址發送報文,但是發往服務器的流量會以這個虛擬MAC為目的地址。如果設備的MAC地址老化允許目的MAC地址刷新老化時間,將導致該虛擬MAC無法老化,從而使流量隻能發送到該虛擬MAC地址表項所在端口,無法發送到所有連接服務器的端口。
此時,可以關閉目的MAC地址刷新老化時間功能,使該虛擬MAC及時老化掉,從而使發往服務器的報文能夠到達集群內的所有服務器。
通過配置二層以太網端口或端口組最多可以學習到的MAC地址數,用戶可以控製設備維護的MAC地址表的表項數量。當接口學習到的MAC地址數達到配置的最大值時,該接口將不再對MAC地址進行學習。
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入二層以太網端口、或者端口組視圖 |
進入二層以太網端口視圖 |
interface interface-type interface-number |
二者必選其一 進入二層以太網端口視圖後,下麵進行的配置隻在當前接口生效;進入端口組視圖後,下麵進行的配置將在端口組的所有接口生效 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置接口最多可以學習到的MAC地址數 |
mac-address max-mac-count count |
必選 缺省情況下,沒有配置以太網端口/端口組最多可以學習到的MAC地址數 |
· 二層鏈路聚合端口不支持配置端口最多可以學習到的MAC地址數。
· 當以太網端口被配置為聚合組的成員端口後,如果在這些成員端口上配置端口最多可以學習到的MAC地址數,會導致成員端口不能被選中,因此,請不要在聚合組的成員端口上配置端口最多可以學習到的MAC地址數。
如圖1-1所示,是MAC地址漫遊功能的典型應用場景。Device A和Device B是兩台配置了IRF功能的本係列交換機。無線接入點AP C和AP D分別連接到IRF成員設備Device A和Device B。
開啟MAC地址漫遊功能後,IRF成員設備會將學習到的MAC地址同步給IRF設備內的其他成員設備。如圖1-1所示,當Client A通過AP C接入時,Device A會將學習到的Client A的MAC地址同步給IRF設備內的其他成員設備Device B。
圖1-1 Client A通過AP C接入時的MAC地址表
當用戶的接入地點發生變化,例如從AP C的覆蓋區域移動到AP D的覆蓋區域時,IRF會將Client A的MAC地址重新學習到Device B上,並將更新後的MAC地址同步給IRF設備內的其他成員設備Device A(如圖1-2所示),使用戶的通信不受任何影響。
圖1-2 Client A移動到通過AP D接入時的MAC地址表
表1-10 配置MAC地址漫遊功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置MAC地址漫遊功能 |
mac-address mac-roaming enable |
必選 缺省情況下,MAC地址漫遊功能處於關閉狀態 |
本功能記錄和上報MAC地址遷移情況,包括發生遷移的MAC地址、該MAC地址所在VLAN ID、遷移的源接口和新接口、最近遷移時間、以及該MAC地址一分鍾內遷移的次數。
MAC地址遷移是指:設備從某接口(假設接口A)學習到某MAC地址,之後從另一接口(假設接口B)接收到了以該MAC地址為源MAC地址的報文,且接口B與接口A所屬的VLAN相同,則該MAC地址表項的出接口改為接口B,即MAC地址從接口A遷移到接口B。
如果MAC地址遷移頻繁出現,且同一MAC地址總是在特定的兩個接口之間遷移,那麼網絡中可能存在二層環路。您可以通過MAC地址遷移日誌上報功能來發現和定位二層環路。
表1-11 配置MAC地址遷移日誌上報
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能MAC地址遷移日誌上報功能 |
mac-flapping notification enable |
必選 缺省情況下,MAC地址遷移日誌上報功能處於關閉狀態 |
使能本功能後,係統將每分鍾上報一次上一分鍾發生的MAC地址遷移日誌。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後MAC地址表的運行情況,通過查看顯示信息驗證配置的效果。
表1-12 MAC地址表顯示和維護
操作 |
命令 |
顯示MAC地址表信息 |
display mac-address [ mac-address [ vlan vlan-id ] | [ [ dynamic | static ] [ interface interface-type interface-number ] | blackhole ] [ vlan vlan-id ] [ count ] ] [ | { begin | exclude | include } regular-expression ] |
顯示MAC地址表動態表項的老化時間 |
display mac-address aging-time [ | { begin | exclude | include } regular-expression ] |
顯示係統或接口MAC地址的學習狀態 |
display mac-address mac-learning [ interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
顯示MAC地址表的統計信息 |
display mac-address statistics [ | { begin | exclude | include } regular-expression ] |
· 現有一個用戶主機Host A,它的MAC地址為000f-e235-dc71,所屬VLAN為VLAN 1,所連的設備接口為GigabitEthernet1/0/1。為防止MAC地址攻擊,在設備的MAC地址表中為該用戶主機添加一條靜態表項。
· 另有一個用戶主機Host B,它的MAC地址為000f-e235-abcd,所屬VLAN為VLAN 1。由於該用戶主機曾經接入網絡進行非法操作,為了避免此種情況再次發生,在設備上添加一條黑洞MAC地址表項,使該用戶主機接收不到報文。
· 配置設備的動態MAC地址表項老化時間為500秒。
# 增加一個靜態MAC地址表項。
<Sysname> system-view
[Sysname] mac-address static 000f-e235-dc71 interface gigabitethernet 1/0/1 vlan 1
# 增加一個黑洞MAC地址表項。
[Sysname] mac-address blackhole 000f-e235-abcd vlan 1
# 配置動態MAC地址表項的老化時間為500秒。
[Sysname] mac-address timer aging 500
# 查看以太網端口GigabitEthernet1/0/1上的MAC地址表信息。
[Sysname] display mac-address interface gigabitethernet 1/0/1
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
000f-e235-dc71 1 Config static GigabitEthernet 1/0/1 NOAGED
--- 1 mac address(es) found ---
# 查看黑洞MAC地址表信息。
[Sysname] display mac-address blackhole
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
000f-e235-abcd 1 Blackhole N/A NOAGED
--- 1 mac address(es) found ---
# 查看動態MAC地址表項的老化時間。
[Sysname] display mac-address aging-time
Mac address aging time: 500s
在網絡監控中,需要對加入和離開網絡的用戶進行監控。由於MAC地址能唯一標識一個網絡用戶,所以可以通過監控加入和離開網絡的MAC地址對用戶進行跟蹤。
通過使用MAC Information功能,當二層以太網端口學習到或刪除MAC地址時會發送Syslog或Trap信息,通過對Syslog和Trap信息的分析,監控端可以實現對進入網絡的用戶進行監控。
當設備學習到一條新的MAC地址或刪除掉一條已有MAC地址時,設備將MAC地址相關信息寫入設備的記錄用戶信息的緩衝區。當用戶設定的發送MAC監控Syslog或Trap的時間間隔到期,設備立即發送記錄的MAC地址的Syslog或Trap信息。
· 設備僅記錄和發送通過源MAC地址學習自動生成的MAC地址、通過MAC地址認證的MAC地址、通過802.1X認證的MAC地址、Voice Vlan匹配的OUI MAC地址,以及安全MAC地址等。對黑洞MAC地址、靜態MAC地址、用戶配置的動態MAC地址、組播MAC地址和本機MAC地址不進行記錄和發送。
· 關於MAC地址認證的詳細介紹請參見“安全配置指導”中的“MAC地址認證”。
· 關於802.1X的詳細介紹請參見“安全配置指導”中的“802.1X”。
· 關於安全MAC地址的詳細介紹請參見“安全配置指導”中的“端口安全”。
· 關於Voice VLAN和OUI MAC地址的詳細介紹請參見“二層技術-以太網交換配置指導”中的“Voice VLAN”。
表2-1 使能全局MAC Information功能
配置步驟 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能全局MAC Information功能 |
mac-address information enable |
必選 缺省情況下,全局MAC Information功能處於關閉狀態 |
表2-2 使能基於接口的MAC Information功能
配置步驟 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入二層以太網端口視圖 |
interface interface-type interface-number |
- |
使能基於接口的MAC Information功能 |
mac-address information enable { added | deleted } |
必選 缺省情況下,基於接口的MAC Information功能處於關閉狀態 |
當全局MAC Information功能未使能時,即使以太網端口下使能了MAC Information功能,MAC Information功能也處於關閉狀態。
表2-3 配置MAC Information工作模式
配置步驟 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置MAC Information工作模式 |
mac-address information mode { syslog | trap } |
可選 缺省情況下,MAC變化通知功能采用Trap方式發送 |
為了防止過多的Syslog或Trap信息幹擾用戶,用戶可以配置發送Syslog或Trap信息的時間間隔,當到達時間間隔時再發送Syslog或Trap信息。
表2-4 配置發送Syslog或Trap信息的時間間隔
配置步驟 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置發送Syslog或Trap信息的時間間隔 |
mac-address information interval interval-time |
可選 缺省情況下,發送Syslog或Trap信息的時間間隔為1秒 |
MAC Information緩存隊列長度是否為0對應著不同的處理方式:
· 如果MAC Information緩存隊列長度為0,則當學習到或刪除掉一條MAC地址時會立即發送Syslog或Trap信息。
· 如果MAC Information緩存隊列長度不為0,則將MAC地址變化信息存放在緩存隊列中。當未達到發送Syslog或Trap的時間間隔,此時若緩存隊列被寫滿,新的MAC地址變化信息將覆蓋緩存隊列中最後一條寫入的信息;當達到發送Syslog或Trap的時間間隔時,不論此時緩存隊列是否已被寫滿,都發送Syslog或Trap信息。
表2-5 配置MAC Information緩存隊列長度
配置步驟 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置MAC Information緩存隊列長度 |
mac-address information queue-length value |
可選 缺省情況下,MAC Information緩存隊列長度為50 |
· Host A與遠端服務器Server通過Device相連;
· 在Device的GigabitEthernet1/0/1上使能MAC Information功能,Device將MAC變化信息利用Syslog方式通過GigabitEthernet1/0/3發送給Host B,Host B對接收到的Syslog信息進行分析並顯示。
圖2-1 MAC Information典型配置組網圖
(1) 配置Device可以將Syslog發送到Host B
詳細內容請參見“網絡管理和監控配置指導”中的“信息中心”。
(2) 使能MAC Information功能
# 全局使能MAC Information。
<Device> system-view
[Device] mac-address information enable
# 配置MAC Information工作模式為Syslog方式。
[Device] mac-address information mode syslog
# 配置接口GigabitEthernet1/0/1使能MAC Information功能。
[Device] interface gigabitethernet 1/0/1
[Device-GigabitEthernet1/0/1] mac-address information enable added
[Device-GigabitEthernet1/0/1] mac-address information enable deleted
[Device-GigabitEthernet1/0/1] quit
# 配置MAC Information緩存隊列長度為100。
[Device] mac-address information queue-length 100
# 配置MAC Information發送時間間隔為20秒。
[Device] mac-address information interval 20
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!