01-MAC地址表配置
本章節下載: 01-MAC地址表配置 (343.44 KB)
目 錄
MAC(Media Access Control,媒體訪問控製)地址表記錄了MAC地址與接口的對應關係,以及接口所屬的VLAN等信息。設備在轉發報文時,根據報文的目的MAC地址查詢MAC地址表,如果MAC地址表中包含與報文目的MAC地址對應的表項,則直接通過該表項中的出接口轉發該報文;如果MAC地址表中沒有包含報文目的MAC地址對應的表項時,設備將采取廣播方式通過對應VLAN內除接收接口外的所有接口轉發該報文。
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地址表項和黑洞MAC地址表項覆蓋。靜態MAC地址表項和黑洞MAC地址表項不會彼此覆蓋。
本章中的所有配置均為可選,請根據實際情況選擇配置。
· 配置MAC地址學習功能
· 配置MAC基地址
配置MAC地址表項後,當設備收到的報文的源MAC地址與配置表項中的MAC地址相同時,不同類型的MAC地址表項處理方式不同。
表1-1 不同類型MAC地址表項對源MAC地址匹配報文的處理方式
MAC地址表項類型 |
報文源MAC地址與配置表項中的MAC地址相同 |
靜態MAC地址表項 |
不檢查報文入接口與表項中的接口是否相同,直接根據目的MAC地址轉發該報文 |
黑洞MAC地址表項 |
丟棄該報文 |
動態MAC地址表項 |
· 如果報文入接口與該表項中的接口不同,則進行MAC地址學習,並覆蓋該表項 · 如果報文入接口與該表項中的接口相同,則轉發該報文,並更新該表項老化時間 |
在手工配置動態MAC地址表項時,如果MAC地址表中已經存在MAC地址相匹配的自動生成表項,但該表項的接口與配置不符,那麼該手工配置覆蓋自動生成表項。
如果不保存配置,設備重啟後所有手工配置的MAC地址表項都會丟失;如果保存配置,設備重啟後手工配置的靜態MAC地址表項和黑洞MAC地址表項不會丟失,手工配置的動態MAC地址表項會丟失。
手工配置MAC地址表項時,必須先創建指定接口所屬的VLAN,否則配置失敗。
(1) 進入係統視圖。
system-view
(2) 添加或者修改靜態/動態MAC地址表項。
mac-address { dynamic | static } mac-address interface interface-type interface-number vlan vlan-id
缺省情況下,未配置靜態/動態MAC地址表項。
interface參數指定的接口必須屬於vlan-id參數指定的VLAN。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
¡ 進入二層以太網接口視圖。
interface interface-type interface-number
¡ 進入二層聚合接口視圖。
interface bridge-aggregation interface-number
(3) 在接口下添加或者修改靜態/動態MAC地址表項。
mac-address { dynamic | static } mac-address vlan vlan-id
缺省情況下,接口下未配置靜態/動態MAC地址表項。
當前接口必須屬於vlan-id參數指定的VLAN。
(1) 進入係統視圖。
system-view
(2) 添加或者修改黑洞MAC地址表項。
mac-address blackhole mac-address vlan vlan-id
缺省情況下,未配置黑洞MAC地址表項。
當網絡拓撲改變後,如果動態MAC地址表項不及時更新,會導致用戶流量不能正常轉發。配置動態MAC地址表項的老化時間後,超過老化時間的動態MAC地址表項會被自動刪除,設備將重新進行MAC地址學習,構建新的動態MAC地址表項。
用戶配置的老化時間過長或者過短,都可能影響設備的運行性能:
· 如果用戶配置的老化時間過長,設備可能會保存許多過時的MAC地址表項,從而耗盡MAC地址表資源,導致設備無法根據網絡的變化更新MAC地址表。
· 如果用戶配置的老化時間太短,設備可能會刪除有效的MAC地址表項,導致設備廣播大量的數據報文,增加網絡的負擔。
用戶需要根據實際情況,配置合適的老化時間。如果網絡比較穩定,可以將老化時間配置得長一些或者配置為不老化;否則,可以將老化時間配置得短一些。比如在一個比較穩定的網絡,如果長時間沒有流量,動態MAC地址表項會被全部刪除,可能導致設備突然廣播大量的數據報文,造成安全隱患,此時可將動態MAC地址表項的老化時間設得長一些或不老化,以減少廣播,增加網絡穩定性和安全性。
動態MAC地址表項的老化時間作用於全部接口上。
(1) 進入係統視圖。
system-view
(2) 配置動態MAC地址表項的老化時間。
mac-address timer { aging seconds | no-aging }
缺省情況下,動態MAC地址表項的老化時間為300秒。
設備學習MAC地址的方式分為在報文出接口時學習和在報文入接口時學習。
通過配置本命令可以在報文未經轉發時也能學習到對應報文的源MAC地址,避免組網中流量不通。
(1) 進入係統視圖。
system-view
(2) 配置設備在報文入接口時學習MAC地址。
mac-address mac-learning ingress
缺省情況下,設備在報文出接口時學習MAC地址。
缺省情況下,MAC地址學習功能處於開啟狀態。有時為了保證設備的安全,需要關閉MAC地址學習功能。常見的危及設備安全的情況是:非法用戶使用大量源MAC地址不同的報文攻擊設備,導致設備MAC地址表資源耗盡,造成設備無法根據網絡的變化更新MAC地址表。關閉MAC地址學習功能可以有效防止這種攻擊。
關閉MAC地址學習功能後,已經學習到的動態MAC地址表項將繼續有效直至老化。
關閉全局的MAC地址學習功能後,接口將不再學習新的MAC地址。
全局MAC地址學習功能不能控製VXLAN的VSI中MAC地址的學習。有關VXLAN的介紹,請參見“VXLAN配置指導”中的“VXLAN”。
(1) 進入係統視圖。
system-view
(2) 關閉全局的MAC地址學習功能。
undo mac-address mac-learning enable
缺省情況下,全局的MAC地址學習功能處於開啟狀態。
在開啟全局的MAC地址學習功能的前提下,用戶可以關閉設備上單個接口的MAC地址學習功能。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
¡ 進入二層以太網接口視圖。
interface interface-type interface-number
¡ 進入二層聚合接口視圖。
interface bridge-aggregation interface-number
(3) 關閉接口的MAC地址學習功能。
undo mac-address mac-learning enable
缺省情況下,接口的MAC地址學習功能處於開啟狀態。
在開啟全局的MAC地址學習功能的前提下,用戶可以關閉設備上指定VLAN的MAC地址學習功能。
(1) 進入係統視圖。
system-view
(2) 進入VLAN視圖。
vlan vlan-id
(3) 關閉VLAN的MAC地址學習功能。
undo mac-address mac-learning enable
缺省情況下,VLAN的MAC地址學習功能處於開啟狀態。
MAC地址遷移是指:設備從某接口(假設接口A)學習到某MAC地址,之後從另一接口(假設接口B)接收到了以該MAC地址為源MAC地址的報文,且接口B與接口A所屬的VLAN相同,則該MAC地址表項的出接口改為接口B,此時認為該MAC地址從接口A遷移到接口B。
如果MAC地址遷移頻繁出現,且同一MAC地址總是在特定的兩個接口之間遷移,那麼網絡中可能存在二層環路。可以通過display mac-address mac-move命令查看MAC地址遷移記錄,發現和定位環路。
當監測到某端口頻繁遷移時,用戶可以通過配置MAC地址遷移抑製功能,使頻繁遷移的端口down,一定時間後該端口將自行恢複up,或者用戶通過手動方式將該端口up。
配置mac-address notification mac-move命令後,係統采用Syslog方式上報MAC地址遷移信息到信息中心模塊,如果同時通過snmp-agent trap enable mac-address命令開啟MAC地址表的告警功能,係統還會采用Trap信息上報MAC地址遷移信息到SNMP模塊。
(1) 進入係統視圖。
system-view
(2) 開啟MAC地址遷移上報功能。
mac-address notification mac-move [ interval interval ]
缺省情況下,MAC地址遷移上報功能處於關閉狀態。
(3) (可選)配置MAC地址遷移抑製功能的相關參數。
mac-address notification mac-move suppression { interval interval | threshold threshold }
缺省情況下,MAC地址遷移抑製時間間隔為30秒、閾值為3次。
配置本命令後,當接口上開啟了MAC地址遷移抑製功能時,本命令配置的參數才能生效。
(4) 進入接口視圖。
¡ 進入二層以太網接口視圖。
interface interface-type interface-number
¡ 進入二層聚合接口視圖。
interface bridge-aggregation interface-number
(5) 開啟接口上的MAC地址遷移抑製功能。
mac-address notification mac-move suppression
缺省情況下,MAC地址遷移抑製功能處於關閉狀態。
如圖1-1所示,Laptop經常在無線站點AP 1和AP 2之間漫遊,導致Device上記錄的Laptop的MAC地址與出端口的對應關係經常發生改變,但是Device上的ARP表項不會立即更新,影響到數據業務的正常轉發。
圖1-1 MAC地址遷移後ARP表項不能更新
配置快速更新ARP表項後,如果設備上記錄的MAC地址與出端口的對應關係發生改變,係統會立刻更新ARP表項,保證了數據業務的不間斷轉發。
(1) 進入係統視圖。
system-view
(2) 開啟在MAC地址遷移後,快速更新ARP表項功能。
mac-address mac-move fast-update
缺省情況下,在MAC地址遷移後,快速更新ARP表項功能處於關閉狀態。
產品對於每台設備,需要預留160個連續的MAC地址作為係統保留使用。
配置的MAC基地址即保留MAC地址的起始值,用來限定保留MAC地址和三層接口MAC地址的高36位。
配置MAC基地址時,需要保證配置的MAC基地址的值加上係統保留的MAC地址總數不能使MAC基地址的高36位產生變化。
配置MAC基地址後,30秒內不能再修改和刪除MAC基地址。
當同時配置MAC基地址和三層接口的MAC地址時,需同時滿足以下條件:
· MAC地址高36位取值必須相同。
· 三層接口的MAC地址必須大於等於MAC基地址的值加上係統保留的MAC地址總數。
(1) 進入係統視圖。
system-view
(2) 配置MAC基地址。
routing-interface base-mac mac-address
缺省情況下,未配置MAC基地址。
開啟MAC地址表的告警功能後,MAC地址表模塊會生成告警信息,用於報告該模塊的重要事件。生成的告警信息將發送到設備的SNMP模塊,請通過設置SNMP中告警信息的發送參數,來決定告警信息輸出的相關屬性。
關閉MAC地址表的告警功能後,設備將隻發送日誌信息到信息中心模塊,此時請配置信息中心的輸出規則和輸出方向來查看MAC地址表模塊的日誌信息。
有關SNMP和信息中心的詳細介紹,請參見“網絡管理和監控配置指導”中的“SNMP”和“信息中心”。
(1) 進入係統視圖。
system-view
(2) 開啟MAC地址表的告警功能。
snmp-agent trap enable mac-address [ mac-move ]
缺省情況下,MAC地址表的告警功能處於開啟狀態。
當MAC地址表的告警功能關閉後,將采用Syslog方式上報信息。
可在任意視圖下執行以下命令:
· 顯示MAC地址表信息。
display mac-address [ mac-address [ vlan vlan-id ] | [ [ dynamic | static ] [ interface interface-type interface-number ] | blackhole ] [ vlan vlan-id ] [ count ] ]
· 顯示MAC地址表動態表項的老化時間。
display mac-address aging-time
· 顯示MAC地址學習功能的開啟狀態。
display mac-address mac-learning [ interface interface-type interface-number ]
· 顯示MAC地址遷移記錄。
display mac-address mac-move [ slot slot-number ]
可在任意視圖下執行以下命令,顯示MAC地址表的統計信息。
display mac-address statistics
· 現有一台用戶主機,它的MAC地址為000f-e235-dc71,屬於VLAN 1,連接Device的端口HundredGigE1/0/1。為防止假冒身份的非法用戶騙取數據,在設備的MAC地址表中為該用戶主機添加一條靜態表項。
· 另有一台用戶主機,它的MAC地址為000f-e235-abcd,屬於VLAN 1。由於該用戶主機曾經接入網絡進行非法操作,為了避免此種情況再次發生,在設備上添加一條黑洞MAC地址表項,使該用戶主機接收不到報文。
· 配置設備的動態MAC地址表項老化時間為500秒。
圖1-2 MAC地址表基本功能配置組網圖
缺省情況下,本設備的接口處於ADM(Administratively Down)狀態,請根據實際需要在對應接口視圖下使用undo shutdown命令開啟接口。
# 增加一個靜態MAC地址表項,目的地址為000f-e235-dc71,出接口為HundredGigE1/0/1,且該接口屬於VLAN 1。
<Device> system-view
[Device] mac-address static 000f-e235-dc71 interface hundredgige 1/0/1 vlan 1
# 增加一個黑洞MAC地址表項,地址為000f-e235-abcd,屬於VLAN 1。
[Device] mac-address blackhole 000f-e235-abcd vlan 1
# 配置動態MAC地址表項的老化時間為500秒。
[Device] mac-address timer aging 500
# 查看端口HundredGigE1/0/1上的靜態MAC地址表項信息。
[Device] display mac-address static interface hundredgige 1/0/1
MAC Address VLAN ID State Port/Nickname Aging
000f-e235-dc71 1 Static HGE1/0/1 N
# 查看黑洞MAC地址表信息。
[Device] display mac-address blackhole
MAC Address VLAN ID State Port/Nickname Aging
000f-e235-abcd 1 Blackhole N/A N
# 查看動態MAC地址表項的老化時間。
[Device] display mac-address aging-time
由於MAC地址能唯一標識一個網絡用戶,MAC Information功能通過監控接口學習和刪除MAC地址表項,可以對用戶加入和離開網絡進行跟蹤。具體機製為:當接口學習到一條新的MAC地址表項或刪除一條已有MAC地址表項時,設備會將該MAC地址變化信息寫入緩衝隊列。當設定的發送MAC變化通知的時間間隔到期,設備立即發送記錄了MAC地址變化信息的日誌或SNMP告警信息。信息接收端通過對日誌或SNMP告警信息進行分析,實現對網絡中的用戶進行監控,同時為分析網絡的使用情況提供依據。
必須同時開啟全局和接口的MAC Information功能,MAC Information功能才會生效。
(1) 進入係統視圖。
system-view
(2) 開啟全局MAC Information功能。
mac-address information enable
缺省情況下,全局MAC Information功能處於關閉狀態。
(3) 進入接口視圖。
¡ 進入二層以太網接口視圖。
interface interface-type interface-number
(4) 開啟接口的MAC Information功能。
mac-address information enable { added | deleted }
缺省情況下,接口的MAC Information功能處於關閉狀態。
發送MAC變化通知的方式有兩種:
· Syslog方式:通過發送日誌信息通知MAC地址的變化。采用該方式時,日誌信息會被發送到設備的信息中心,由信息中心發送到監控終端。有關信息中心的詳細介紹及相關配置,請參見“網絡管理和監控配置指導”中的“信息中心”。
· Trap方式:通過發送SNMP告警信息通知MAC地址的變化。采用該方式時,需要通過SNMP將SNMP告警信息發送到NMS。有關SNMP的詳細介紹及相關配置,請參見“網絡管理和監控配置指導”中的“SNMP”。
(1) 進入係統視圖。
system-view
(2) 配置發送MAC變化通知的方式。
mac-address information mode { syslog | trap }
缺省情況下,采用Trap方式發送MAC變化通知。
為了防止過於頻繁地發送MAC變化通知幹擾用戶,用戶可以修改發送MAC變化通知的時間間隔。
(1) 進入係統視圖。
system-view
(2) 配置發送MAC變化通知的時間間隔。
mac-address information interval interval-time
缺省情況下,發送MAC變化通知的時間間隔為1秒。
MAC Information緩存隊列長度是否為0對應著不同的處理方式:
· 如果MAC Information緩存隊列長度為0,則當接口學習到或刪除一條MAC地址表項時會立即發送日誌或SNMP告警信息。
· 如果MAC Information緩存隊列長度不為0,則將MAC地址變化信息存放在緩存隊列中。當未達到發送MAC變化通知的時間間隔,此時若緩存隊列被寫滿,新的MAC地址變化信息將覆蓋緩存隊列中最後一條寫入的信息;當達到發送MAC變化通知的時間間隔時,不論此時緩存隊列是否已被寫滿,都發送日誌或SNMP告警信息。
(1) 進入係統視圖。
system-view
(2) 配置MAC Information緩存隊列長度。
mac-address information queue-length value
缺省情況下,MAC Information緩存隊列長度為50。
· Host A與遠端服務器Server通過Device相連。
· 在Device的端口HundredGigE1/0/1上開啟MAC Information功能,Device將端口HundredGigE1/0/1上的MAC地址添加或刪除信息利用Syslog方式通過端口HundredGigE1/0/2發送給日誌主機Host B,Host B可以對接收到的日誌信息進行分析。
圖2-1 MAC Information基本功能配置組網圖
缺省情況下,本設備的接口處於ADM(Administratively Down)狀態,請根據實際需要在對應接口視圖下使用undo shutdown命令開啟接口。
由於係統對各方向允許輸出的日誌信息的缺省情況不一樣,所以配置前必須將所有模塊指定方向(本例為loghost)上日誌信息的輸出開關關閉,再根據當前的需求配置輸出規則,以免輸出太多不需要的信息。
(1) 配置Device可以將日誌信息發送到Host B
# 開啟信息中心。
<Device> system-view
[Device] info-center enable
# 配置發送日誌信息到IP地址為192.168.1.2/24的日誌主機,日誌主機記錄工具為local4。
[Device] info-center loghost 192.168.1.2 facility local4
# 關閉loghost方向所有模塊日誌信息的輸出開關。
[Device] info-center source default loghost deny
# 配置輸出規則:允許MAC地址表模塊的、等級高於等於informational的日誌信息輸出到日誌主機。
[Device] info-center source mac loghost level informational
(2) 使用Unix操作係統的日誌主機Host B上的配置
第一步:以超級用戶的身份登錄日誌主機。
第二步:在/var/log/路徑下為Device創建同名日誌文件夾Device,在該文件夾創建文件info.log,用來存儲來自Device的日誌。
# mkdir /var/log/Device
# touch /var/log/Device/info.log
第三步:編輯/etc/路徑下的文件syslog.conf,添加以下內容。
# Device configuration messages
local4.info /var/log/Device/info.log
以上配置中,local4表示日誌主機接收日誌的工具名稱,info表示信息等級。Unix係統會把等級高於等於informational的日誌記錄到/var/log/Device/info.log文件中。
在編輯/etc/syslog.conf時應注意以下問題:
· 注釋必須獨立成行,並以字符#開頭。
· 在文件名之後不得有多餘的空格。
· /etc/syslog.conf中指定的工具名稱及信息等級與Device上info-center loghost和info-center source命令的相應參數的指定值要保持一致,否則日誌信息可能無法正確輸出到日誌主機上。
第四步:查看係統守護進程syslogd的進程號,中止syslogd進程,並重新用-r選項在後台啟動syslogd,使修改後配置生效。
# ps -ae | grep syslogd
147
# kill -HUP 147
# syslogd -r &
進行以上操作之後,Device的日誌信息會輸出到Host B,Host B會將這些日誌信息存儲到相應的文件中了。
(3) 配置MAC Information功能
# 開啟全局MAC Information功能。
[Device] mac-address information enable
# 配置采用Syslog方式發送MAC變化通知。
[Device] mac-address information mode syslog
# 開啟端口HundredGigE1/0/1的MAC Information功能,使該接口在學習到和刪除MAC地址時記錄MAC變化信息。
[Device] interface hundredgige 1/0/1
[Device-HundredGigE1/0/1] mac-address information enable added
[Device-HundredGigE1/0/1] mac-address information enable deleted
[Device-HundredGigE1/0/1] quit
# 配置MAC Information緩存隊列長度為100。
[Device] mac-address information queue-length 100
# 配置發送MAC變化通知的時間間隔為20秒。
[Device] mac-address information interval 20
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!