วันศุกร์ที่ 13 เมษายน พ.ศ. 2555

Broadcast Storm Loop Test

หลายท่านคงเคยได้ยินเรื่อง Switching Loop มาบ้างแล้ว อย่างที่เราทราบกันอยู่แล้วว่า เมื่อมีการต่อ Switch ในลักษณะของ Loop คือการเชื่อมต่อวนเข้าหาตัวเอง จะทำให้เกิดผลพวงที่ตามมา คือ เมื่อเวลาส่งข้อมูลไปบนเครือข่าย ทำให้ข้อมูลนั้นอาจจะมีโอกาสวนกลับมาเข้าหาตัวเองได้ โดยเมื่อเกิด Loop ขึ้นผลพวงของการเกิด Switching Loop ที่ตามมา 3 ประการนั้นก็คือ
  1. Broadcast Storm
  2. Multiple Frame Transmission
  3. MAC Table Stability


ซึ่งทั้ง 3 แบบนั้น เป็นอย่างไร และเกิดขึ้นได้อย่างไรนั้น จะขอละไว้ก่อนครับ


และเนื่องจากเหตุการณ์ Switch Loop นี้ จึงได้มี Protocol ที่เป็นกลไกการป้องกัน Loop ขึ้นมา คือ Spanning Tree Protocol (STP) นั่นเอง


วันนี้ผมจะมาทดสอบการเกิด Broadcast Storm และปิดกลไกของ STP ซะ เรามาดูกันว่าผลจะเป็ยอย่างไร


ลองดูง่ายๆฮะ Broadcast Storm เอา switch มา 1 ตัว set port 1,2,3 เป็น default port

port 1 จิ้มเข้า Notebook
port 2,3 จิ้มหากันเอง

จากนั้นใช้ Notebook Ping IP อะไรก็ได้มั่วๆไป เพื่อสร้าง Broadcast


ถ้าปล่อยให้ STP มันทำงาน มันก็จะ block ไว้ port นึง ทำให้ไม่ Loop

switch#sh mac ad dy
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    xxxx.xxxx.xxxx    DYNAMIC     Gi1/0/1
Total Mac Addresses for this criterion: 1

switch#sh spa blo  
Name                 Blocked Interfaces List
-------------------- ------------------------------------
VLAN0001             Gi1/0/3
Number of blocked ports (segments) in the system : 1

แต่ถ้าใช้คำสั่ง no span vlan 1 เมื่อไหร่ แบบนี้มันก็จะ Loop ทันที

switch(config)#no spanning-tree vlan 1

และผลที่ตามมาที่จะเห็นได้ชัดเจน คือ


1. Log Flapping

*Mar  1 07:49:09 TH: %SW_MATM-4-MACFLAP_NOTIF: Host xxxx.xxxx.xxxx in vlan 1 is flapping between 
port Gi1/0/3 and port Gi1/0/2
*Mar  1 07:49:09 TH: %SW_MATM-4-MACFLAP_NOTIF: Host xxxx.xxxx.xxxx in vlan 1 is flapping between 
port Gi1/0/3 and port Gi1/0/2
*Mar  1 07:49:26 TH: %SW_MATM-4-MACFLAP_NOTIF: Host xxxx.xxxx.xxxx in vlan 1 is flapping between 
port Gi1/0/3 and port Gi1/0/2
*Mar  1 07:49:44 TH: %SW_MATM-4-MACFLAP_NOTIF: Host xxxx.xxxx.xxxx in vlan 1 is flapping between 
port Gi1/0/3 and port Gi1/0/2

2. CPU Peak

switch#sh pro cpu his
        11111     111111111                             1111  
    4444000009999900000000099999999999999999999999999999000099
    1111000009999900000000099999999999999999999999999999000099
100     ******************************************************
 90     ******************************************************
 80     ******************************************************
 70     ******************************************************
 60     ******************************************************
 50     ******************************************************
 40 **********************************************************
 30 **********************************************************
 20 **********************************************************
 10 **********************************************************
   0....5....1....1....2....2....3....3....4....4....5....5....
             0    5    0    5    0    5    0    5    0    5    
               CPU% per second (last 60 seconds)

3. มี packet จำนวนมากวิ่งเข้ามา ตอนแรกได้ clear counter ไปก่อน

switch#clear counters gi1/0/2  
Clear "show interface" counters on this interface [confirm]
switch#clear counters gi1/0/2
*Mar  1 07:56:40 TH: %CLEAR-5-COUNTERS: Clear counter on interface GigabitEthernet1/0/2 by admin on console
switch#sh int gi1/0/2 | be bits/sec
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     1 packets input, 64 bytes, 0 no buffer
     Received 0 broadcasts (0 multicasts)
     0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 watchdog, 0 multicast, 0 pause input
     0 input packets with dribble condition detected
     10 packets output, 640 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets
     0 babbles, 0 late collision, 0 deferred
     0 lost carrier, 0 no carrier, 0 PAUSE output
     0 output buffer failures, 0 output buffers swapped out

แล้วก้อลอง ping อัดเข้าไปใหม่ ผลที่ได้ ทั้ง Broadcast และ Packet พรุ่งพรวด อย่างรวดเร็ว

switch#sh int gi1/0/2 | be bits/sec
  5 minute input rate 33440000 bits/sec, 33603 packets/sec
  5 minute output rate 33575000 bits/sec, 33728 packets/sec
     8363105 packets input, 1008217452 bytes, 0 no buffer
     Received 8275573 broadcasts (2506414 multicasts)
     0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 watchdog, 2506414 multicast, 0 pause input
     0 input packets with dribble condition detected
     8402068 packets output, 1013119142 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets
     0 babbles, 0 late collision, 0 deferred
     0 lost carrier, 0 no carrier, 0 PAUSE output
     0 output buffer failures, 0 output buffers swapped out

นี่ ก็เป็นการทดสอบในส่วนของ Broadcast Storm ง่ายๆ น่าจะพอมองเห็นภาพ ว่าตัวอุปกรณ์นั้นมีอาการอย่างไรบ้าง เวลาเมื่อเกิด Broadcast Storm ขึ้นครับ นอกจากนั้นแล้วการเกิด Broadcast Storm ยังส่งผลให้ตัวอุปกรณ์ process ไม่ทัน ทำให้เรา access ตัวอุปกรณ์ได้ช้ามากหรืออาจจะ access ไม่ได้เลย ก็เป็นไปได้เหมือนกันครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น