เมื่อ stp ของ alcatel และ 3com แย่งกันเป็น root
รูปแบบการเชื่อมต่อระบบเครือข่ายคอมพิวเตอร์ขององค์กรต่าง ๆ มักจะมีรูปแบบเป็น tree คือ มีการเชื่อมต่อเป็นชั้น ๆ โดยชั้นสูงสุดที่เรียกว่า root นั้น จะเป็นตัวสำคัญ ที่จะทำหน้าที่เก็บเส้นทาง (Routing Table) ไปยังลูกข่ายทั้งหมด ซึ่งบ่อยครั้งที่เกิดปัญหา loop ในเครือข่าย เพราะมีการเชื่อมต่อในรูปแบบวงกลม (โดยตั้งใจ และไม่ได้ตั้งใจ) จึงทำให้อุปกรณ์ระบบเครือข่ายต้องพิจารณาตัวเอง ว่าสมควรจะส่งข้อมูลให้กับใคร หรือใครที่จะทำหน้าที่เป็น root นั่นเอง
ความสำคัญอยู่ที่ค่าของ stp ที่เรียกว่า cost นั้น ปกติจะมีค่าเท่ากัน คือ 32768 ดังนั้น หากมีลูปเกิดขึ้นในระบบจริง อุปกรณ์จะไม่รู้ว่าใครที่สมควรจะเป็น root จึงทำให้มันต้องผลัดกันเป็น root ส่งผลกับระบบเครือข่ายโดยตรงคือ ไม่สามารถใช้งานได้ (เพราะ root เปลี่ยนไปเรื่อย ๆ )
ดังนั้น จึงควรมีการตั้งค่า cost ให้แตกต่างกันออกไป โดยกำหนดให้ root มีค่าน้อยสุด (ค่าน้อยสุดมีความสำคัญมากสุด) และเพิ่มค่าขึ้นเรื่อย ๆ ตามจำนวนของ hop ที่เชื่อมต่อ (ค่อยว่ากันอีกทีในวันอื่นครับ)
แต่ถ้าหากมีจำนวนของอุปกรณ์ไม่มากนักเช่น 3-5 ตัว และเราเห็นได้ชัดเจนว่ารูปแบบที่เชื่อมต่อ ไม่ได้ซับซ้อนอะไร ก็สามารถที่จะปิด stp ทิ้งได้เลย เพราะไม่ต้องเสียเวลามาแก้ไขค่า cost ต่าง ๆ (แต่เกิด loop ไม่รู้ด้วยนะ)
ที่อุปกรณ์ switching 3com 4500,5500,9700
หากเจอ log ที่มีข้อความแบบนี้ ที่เยอะมาก ๆ จะสังเกตุเห็นว่า interface up/down สลับกันไปเรื่อย ๆ นั่นเพราะ มีการโหวตให้ตัวอื่นเป็น root จึงต้องตัดเส้นทางอื่นออกไป (อาการนี้อาจจะเจอในการ loop ด้วยครับ)
#Jun 14 09:41:23:116 2009 4500 L2INF/2/PORT LINK STATUS CHANGE:- 1 – Trap 1.3.6.1.6.3.1.1.5.3(linkDown): portIndex is 4227706, ifAdminStatus is 1, ifOperStatus is 2
%Jun 14 09:41:23:118 2009 4500 L2INF/5/PORT LINK STATUS CHANGE:- 1 – Ethernet1/0/11 is DOWN
ตรวจสอบการทำงานของ stp ด้วยคำสั่ง (ในที่นี้ดูพอร์ตที่ 11 แต่ถ้าต้องการดูทั้งหมดก็ใช้ display stp ก็ได้ครับ)
[3Com-sw]display stp interface Ethernet 1/0/11
—-[CIST][Port11(Ethernet1/0/11)][DISCARDING]—-
Port Protocol :enabled
Port Role :CIST Designated Port
Port Priority :128
Port Cost(Dot1T) :Config=auto / Active=200000
Desg. Bridge/Port :32768.001e-c17d-7580 / 128.11
Port Edged :Config=disabled / Active=disabled
Point-to-point :Config=auto / Active=true
Transmit Limit :10 packets/hello-time
Protection Type :Loop
MSTP BPDU format :Config=auto / Active=legacy
Port Config
Digest Snooping :disabled
Num of Vlans Mapped :1
PortTimes :Hello 2s MaxAge 20s FwDly 15s MsgAge 1s RemHop 20
BPDU Sent :14
TCN: 0, Config: 0, RST: 0, MST: 14
BPDU Received :0
TCN: 0, Config: 0, RST: 0, MST: 0
ทำการปิด stp ด้วยคำสั่ง (คำสั่งนี้ จะปิด stp ทุกพอร์ต ถ้าอยากปิดบางพอร์ต ต้องเข้าไปที่ interface นั้น ๆ ก่อน แล้วค่อยใช้ stp disable)
[3Com-sw]stp disable
%Jun 14 09:41:24:623 2009 4500 MSTP/3/STPSTOP:- 1 -STP is now disabled on the de
vice.
ตรวจสอบดูอีกครั้งด้วยคำสั่ง
[3Com-sw]display stp interface Ethernet 1/0/11
Protocol Status :disabled
Protocol Std. :IEEE 802.1s
Version :3
CIST Bridge-Prio. :32768
MAC address :001e-c17d-7580
Max age(s) :20
Forward delay(s) :15
Hello time(s) :2
Max hops :20
[3Com-sw]save
เพียงเท่านี้ ก็จะไม่มีการโหวตการเป็น root อีกแล้วครับ