MAC地址表故障處理手冊
Copyright © 2013 杭州華三通信技術有限公司 版權所有,保留一切權利。 非經本公司書麵許可,任何單位和個人不得擅自摘抄、複製本文檔內容的部分或全部, 並不得以任何形式傳播。本文檔中的信息可能變動,恕不另行通知。 |
如圖1-1所示,Switch下接DSLAM(Digital Subscriber Line Access Multiplexer,數字用戶線接入複用器),Switch上接BAS(Broadband Access Server,寬帶接入服務器),由BAS終結用戶的撥號PPPoE報文。在Switch上配置靈活QinQ功能,對應的用戶側VLAN為824,網絡側VLAN為1003。BAS上作為網關的MAC地址為0090-1aa0-d47a。
故障現象為:DSLAM下掛用戶不定時大規模掉線。出現問題時,發現端口Ethernet3/0/4的流量急劇下降。大約5分鍾左右,端口Ethernet3/0/4的流量開始慢慢回升,證明此時大規模掉線已經結束,DSLAM下掛用戶又在逐步恢複連接,網絡在逐步恢複正常狀態。
圖1-1 源MAC地址攻擊導致端口流量瞬斷故障處理組網圖
(1) 檢查接口信息
執行display interface命令顯示端口Ethernet3/0/4的相關信息:
<Switch> display interface ethernet 3/0/4
Ethernet3/0/4 current state: UP
IP Packet Frame Type: PKTFMT_ETHNT_2, Hardware Address: 000f-e200-8048
Description: Ethernet3/0/4 Interface
Loopback is not set
Media type is twisted pair, port hardware type is 100_BASE_TX
100Mbps-speed mode, full-duplex mode
Link speed type is autonegotiation, link duplex type is autonegotiation
Flow-control is not enabled
The Maximum Frame Length is 9022
Broadcast MAX-ratio: 100%
Unicast MAX-ratio: 100%
Multicast MAX-ratio: 100%
Allow jumbo frame to pass
PVID: 100
Mdi type: auto
Port link-type: trunk
VLAN passing : 824
VLAN permitted: 824
Trunk port encapsulation: IEEE 802.1q
Port priority: 0
Last clearing of counters: Never
Peak value of input: 4 bytes/sec, at 2012-04-26 12:07:48
Peak value of output: 81 bytes/sec, at 2012-04-26 12:09:24
Last 300 seconds input: 1 packets/sec 147 bytes/sec
Last 300 seconds output: 1 packets/sec 179 bytes/sec
Input (total): 271 packets, 12250 bytes
0 unicasts, 150 broadcasts, 121 multicasts, 0 pauses
Input (normal): 271 packets, 12250 bytes
0 unicasts, 150 broadcasts, 121 multicasts, 0 pauses
Input: 0 input errors, 0 runts, 0 giants, 0 throttles
0 CRC, 0 frame, - overruns, 0 aborts
- ignored, - parity errors
Output (total): 1522 packets, 183608303 bytes
0 unicasts, 13 broadcasts, 860 multicasts, 0 pauses
Output (normal): 1522 packets, - bytes
0 unicasts, 13 broadcasts, 860 multicasts, 0 pauses
Output: 0 output errors, - underruns, 1 buffer failures
0 aborts, 0 deferred, 0 collisions, 0 late collisions
0 lost carrier, - no carrier
可以看到, 端口在故障時隻有組播和廣播報文的記數。
從現象上看,Switch的端口Ethernet3/0/4的入方向報文計數在故障時隻有組播和廣播報文,基本上可以確定:由於某種原因,導致從Switch的端口Ethernet3/0/4進來的單播報文被全部丟棄了。DSLAM下掛用戶正常通信的流量以單播報文為主,這種丟棄行為導致用戶下線,然後重新認證,所以端口流量大大減小。
因此從報文被丟棄的原因著手分析問題。這種報文丟棄特征和“源端口返回報文”丟棄很吻合,也就是說很可能端口收到了目的MAC地址和本端口學習到的目的MAC地址一致的報文。正常工作狀態下,BAS的MAC地址(也就是從Switch的端口Ethernet3/0/4上來的PPPoE單播流量的目的MAC地址)隻會學習到Switch的端口GigabitEthernet2/0/1上的VLAN 1003,不會學習到用戶側端口,除非網絡中有環路或者其他原因。
下麵是正常情況下Switch的MAC地址表信息:
<Switch> display mac-address
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
0090-1aa0-d47a 1003 Learned GE2/0/1 AGING
0090-1aa0-d47a 1101 Learned GE2/0/1 AGING
0090-1aa0-d47a 1201 Learned GE2/0/1 AGING
0090-1aa0-d47a 4093 Learned GE2/0/1 AGING
再看看出故障時學習到Switch的端口Ethernet3/0/4的MAC地址:
<Switch> display mac-address interface ethernet 3/0/4
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
0090-1aa0-d47a 824 Learned Eth3/0/4 AGING
這個MAC地址是BAS的MAC地址,卻學習到了用戶側Switch的端口Ethernet3/0/4的VLAN 824。這時,從Switch的端口Ethernet3/0/4上來的PPPoE正常業務報文的目的MAC地址正是這個MAC地址,結果被作為源端口返回報文全部丟棄。
重新檢視故障前後的定位信息,發現了這樣的規律:大規模掉線時(端口大量丟包),BAS的MAC地址學習到了Switch的端口Ethernet3/0/4,而在業務流量逐漸恢複到正常的期間,這個MAC地址被老化掉了。
因為DSLAM和Switch是直連,中間沒有其他交換機導致環路,網絡拓撲一直處於穩定狀態,因此可以得出結論:DSLAM下掛用戶通過仿冒網關MAC地址的方法對Switch進行攻擊,導致該DSLAM下麵用戶大規模掉線。從用戶的攻擊心理看,攻擊大多數是為了獲取更大的帶寬,把其他用戶踢下線,讓網絡係統重新來一次初始化,攻擊者會明顯感覺網速比以前要快了。
在Switch的上行口GigabitEthernet2/0/1配置一個用戶側VLAN 824的靜態網關MAC地址,這樣網關MAC地址就永遠不會學習到Switch的端口Ethernet3/0/4了,攻擊者仿冒MAC地址的攻擊也就不起作用了,方法如下:
# 把端口GigabitEthernet2/0/1加入到VLAN 824。
<Switch> system-view
[Switch] interface gigabitethernet 2/0/1
[Switch-GigabitEthernet2/0/1] port link-type trunk
[Switch-GigabitEthernet2/0/1] port trunk permit vlan 824
[Switch-GigabitEthernet2/0/1] quit
# 在端口GigabitEthernet2/0/1的VLAN 824設置一個網關靜態MAC地址。
[Switch] mac-address static 0090-1aa0-d47a interface gigabitethernet 2/0/1 vlan 824
配置了靜態MAC地址後,DSLAM下掛的用戶運行很穩定,再未出現掉線的情況。
· 在使能靈活QinQ的情況下,為了防止用戶進行源MAC地址攻擊,建議在設備的上行口配置網關的靜態MAC地址。
· 在有多個上行口的情況下,在任意一個上行口配置該靜態MAC地址即可。
命令 | 說明 |
display interface | 顯示以太網接口的相關信息 |
display mac-address | 顯示MAC地址表信息 |