STP - อธิบายโปรโตคอล Spanning Tree
⚡ สรุปอย่างชาญฉลาด
Spanning Tree Protocol (STP) เป็นมาตรฐานการจัดการลิงก์ระดับเลเยอร์ 2 ตามมาตรฐาน IEEE 802.1D ซึ่งป้องกันการเกิดลูปการสลับในเครือข่ายที่มีลิงก์สำรอง โดยการเลือกบริดจ์หลักและกำหนดให้พอร์ตสำรองอยู่ในสถานะบล็อก
STP คืออะไร?
โปรโตคอล Spanning Tree (STP) เป็นโปรโตคอลการจัดการลิงก์ที่ออกแบบมาเพื่อรองรับลิงก์สำรองพร้อมทั้งป้องกันการเกิดลูปการสลับในเครือข่าย เป็นโปรโตคอลที่... เลเยอร์ 2 โปรโตคอลนี้ทำงานบนบริดจ์และสวิตช์ และต้องเปิดใช้งานบนอินเทอร์เฟซของสวิตช์ โดย IEEE ได้กำหนดมาตรฐานไว้ในชื่อ IEEE 802.1D
ทำไมเราต้องมี STP?
ลิงก์สำรองช่วยเพิ่มความทนทานต่อความผิดพลาด แต่หากไม่มีกลไกป้องกันลูป ก็อาจสร้างลูปการสลับที่อันตรายได้เช่นกัน ต่อไปนี้คือสถานการณ์ที่โปรโตคอล Spanning Tree มีความสำคัญ:
- ความน่าเชื่อถือ (ความทนทานต่อข้อผิดพลาด) ของเครือข่ายเพิ่มขึ้นอย่างมากจากการนำระบบสำรองมาใช้
- สวิตช์จะส่งข้อมูลออกทางพอร์ตทั้งหมดเมื่อจำเป็นต้องส่งข้อมูลไปยังปลายทางที่ยังไม่ทราบแน่ชัด
- การรับส่งข้อมูลแบบบรอดแคสต์และมัลติแคสต์จะถูกส่งออกไปทางทุกพอร์ต ยกเว้นพอร์ตที่รับข้อมูลเข้ามา
- STP สร้างโทโพโลยีเชิงตรรกะที่ปราศจากลูปจากโทโพโลยีเชิงกายภาพที่มีลูป
STP ทำงานอย่างไร? ตัวอย่าง
ต้นไม้แผ่ขยาย (Spanning tree) ใช้อัลกอริทึมในการค้นหาลิงก์ที่ซ้ำซ้อนในโครงสร้างต้นไม้ แลน และเลือกเส้นทางที่ดีที่สุด โดยจะกำหนดสถานะการส่งต่อหรือการบล็อกให้กับทุกลิงก์
หลังจากกระบวนการนี้เสร็จสิ้น ลิงก์ที่ไม่มีทางเลือกสำรองจะยังคงอยู่ในสถานะส่งต่อ ลิงก์สำรองที่ไม่ได้รับการเลือกให้เป็นเส้นทางที่ดีที่สุดจะถูกตั้งค่าเป็นบล็อก Spanning Tree จะไม่ใช้ลิงก์หลายลิงก์ไปยังปลายทางเดียวกัน ดังนั้นจึงไม่มีการแบ่งโหลด
ประเภทของเอสทีพี
ต่อไปนี้คือโปรโตคอล Spanning Tree ประเภทต่างๆ:
| Standard | Descriptไอออน | ตัวย่อ |
|---|---|---|
| อีอีอี 802.1D | การป้องกันการเกิดลูป; การปรับโครงสร้างต้นไม้โดยอัตโนมัติหลังจากมีการเปลี่ยนแปลงใดๆ; การบรรจบกันช้า (สูงสุด 50 วินาที) | STP |
| IEEE 802.1w — โปรโตคอล Rapid Spanning Tree | STP ที่ได้รับการปรับปรุงให้มีการบรรจบกันที่เร็วขึ้น สามารถใช้งานร่วมกับ STP เวอร์ชันก่อนหน้าได้ | อาร์.เอส.ที.พี |
| IEEE 802.1Q — เครือข่าย LAN เสมือน | กำหนดโครงสร้างต้นไม้เชื่อมโยงทั่วไปหนึ่งเดียวสำหรับ VLAN ทั้งหมด | CST |
| Cisco กรรมสิทธิ์ — Spanning Tree ต่อ VLAN | หนึ่งอินสแตนซ์ STP ต่อหนึ่ง VLAN; PVST+ เป็นเวอร์ชันที่ได้รับการปรับปรุงของ PVST | พีวีเอสที+ |
| Cisco เทคโนโลยีเฉพาะ — Rapid Spanning Tree ต่อ VLAN | การรวมระบบอย่างรวดเร็วต่อ VLAN | พีวีอาร์เอสที+ / อาร์-พีวีเอสที+ |
| IEEE 802.1s — โปรโตคอลต้นไม้แผ่ขยายหลายต้น | VLAN หลายตัวถูกแมปไปยังอินสแตนซ์ STP เดียว | สพป |
เกณฑ์สำหรับ Spanning Tree
มีเกณฑ์สามข้อที่จะใช้ตัดสินว่าอินเทอร์เฟซใดจะถูกจัดให้อยู่ในสถานะส่งต่อ:
- อินเทอร์เฟซทั้งหมดบนรูทบริดจ์จะถูกตั้งค่าเป็นสถานะส่งต่อ (forwarding)
- สำหรับบริดจ์ที่ไม่ใช่บริดจ์หลัก พอร์ตที่อยู่ใกล้กับบริดจ์หลักมากที่สุด (ต้นทุนเส้นทางต่ำที่สุด) จะถูกตั้งค่าเป็นสถานะส่งต่อข้อมูล
- สะพานที่มีต้นทุนเส้นทางต่ำที่สุดไปยังสะพานหลักในส่วนนั้นจะเรียกว่าสะพานที่กำหนดไว้ (designated bridge)
ขั้นตอนของโปรโตคอล STP
พอร์ต Spanning Tree จะเปลี่ยนสถานะหลายขั้นก่อนที่จะส่งต่อข้อมูล ดังแสดงในแผนภาพด้านล่าง:
สถานะการปิดกั้น
พอร์ตบล็อกคือพอร์ตที่ไม่ได้รับการกำหนดไว้โดยเฉพาะ ซึ่งจะไม่เข้าร่วมในการส่งต่อเฟรมใดๆ ตัวจับเวลาของพอร์ตนี้คือ 20 วินาที (ค่า max-age) อินเทอร์เฟซจะเข้าสู่สถานะบล็อกเสมอเมื่อคุณเปิดใช้งาน STP
สถานะการฟัง
สถานะการรับฟัง (Listening state) เป็นสถานะเปลี่ยนผ่านแรกที่พอร์ตเข้าสู่หลังจากบล็อก ในสถานะนี้ พอร์ตจะพิจารณาว่าควรมีส่วนร่วมในการส่งต่อเฟรมหรือไม่ สถานะการรับฟังทำหน้าที่ดังต่อไปนี้:
- ละทิ้งเฟรมที่ได้รับบนพอร์ต
- ไม่เรียนรู้ที่อยู่ MAC
- รับ BPDU
รัฐการเรียนรู้
สถานะการเรียนรู้จะเตรียมพอร์ตให้พร้อมสำหรับการส่งต่อเฟรม พอร์ตจะเข้าสู่สถานะการเรียนรู้จากสถานะการฟังและทำหน้าที่ดังต่อไปนี้:
- ละทิ้งเฟรมที่ได้รับบนพอร์ต
- รับ BPDU
- เรียนรู้ ที่อยู่ MAC
สถานะการส่งต่อ
พอร์ตที่อยู่ในสถานะส่งต่อจะส่งต่อเฟรม โดยจะเข้าสู่สถานะส่งต่อจากสถานะเรียนรู้และทำหน้าที่ดังต่อไปนี้:
- รับและส่งต่อเฟรมที่ได้รับบนพอร์ต
- เรียนรู้ที่อยู่ MAC
- รับ BPDU
รัฐผู้พิการ
พอร์ตที่ถูกปิดใช้งานจะไม่เข้าร่วมใน Spanning Tree เนื่องจากถูกปิดใช้งานโดยผู้ดูแลระบบ และมีระยะเวลาไม่จำกัด อินเทอร์เฟซที่ถูกปิดใช้งานจะทำหน้าที่ดังต่อไปนี้:
- ละทิ้งเฟรมที่ได้รับบนพอร์ต
- ไม่เรียนรู้ที่อยู่ MAC
- ไม่ได้รับ BPDU
คำศัพท์สำคัญที่ใช้ใน Spanning Tree Protocol
ต่อไปนี้เป็นคำศัพท์สำคัญบางคำที่ใช้ใน STP:
สะพาน
บริดจ์เป็นส่วนประกอบสำคัญของ STP ที่เชื่อมต่อเซ็กเมนต์ LAN สองเซ็กเมนต์ขึ้นไปเข้าด้วยกัน
รูทบริดจ์ (RB)
รูทบริดจ์ทำหน้าที่เป็นจุดเชื่อมต่อสำหรับทุกเซ็กเมนต์ และทุกบริดจ์ในเครือข่าย LAN จะมีเส้นทางไปยังรูทบริดจ์ โปรโตคอล STP จะเลือกรูทบริดจ์โดยอัตโนมัติ แต่ผู้ดูแลระบบเครือข่ายสามารถเปลี่ยนแปลงได้เมื่อจำเป็น
สะพานที่ไม่ใช่ราก (NRB)
สะพานที่ไม่ใช่สะพานราก คือสะพานใดๆ ก็ตามที่ไม่ใช่สะพานราก
พอร์ตรูท (RP)
พอร์ตหลัก (Root port) คือพอร์ตที่เชื่อมต่อไปยังบริดจ์หลัก (Root bridge)
พอร์ตที่กำหนด (DP)
แต่ละส่วนของเครือข่าย LAN จะมีพอร์ตที่กำหนดไว้หนึ่งพอร์ต บริดจ์แต่ละตัวจะรับเฟรมผ่านพอร์ตที่กำหนดไว้ และส่งต่อเฟรมเหล่านั้นผ่านพอร์ตหลักไปยังบริดจ์หลัก
รหัสพอร์ต
รหัสพอร์ตช่วยในการกำหนดพอร์ตหลัก โดยประกอบด้วยค่าลำดับความสำคัญที่กำหนดค่าได้ 1 ไบต์ และหมายเลขพอร์ตที่ไม่ซ้ำกันสำหรับแต่ละบริดจ์
ต้นทุนเส้นทาง (PC)
ต้นทุนเส้นทางช่วยในการตัดสินใจเลือกโครงสร้างเครือข่ายที่ดีที่สุดในแง่ของความเร็วในการส่งต่อข้อมูล โดยลิงก์ที่มีแบนด์วิดท์ต่ำกว่าจะมีต้นทุนสูงกว่า STP ใช้ต้นทุนเส้นทางในการเลือกเส้นทางที่สั้นที่สุดไปยังบริดจ์หลัก
ท่าเรือที่ไม่ได้กำหนด
พอร์ตที่ไม่ได้กำหนด (Non-designated port) คือพอร์ตของสวิตช์ที่ถูกบล็อก หรือเรียกอีกอย่างว่าพอร์ตที่ถูกบล็อกหรือพอร์ตสำรอง พอร์ตนี้ไม่สามารถส่งเฟรมไปยังสวิตช์ถัดไปได้ และจะไม่ถูกบันทึกในตารางที่อยู่ MAC
อาร์.เอส.ที.พี
โปรโตคอล Rapid Spanning Tree Protocol (RSTP) เป็นโปรโตคอลเครือข่ายที่ช่วยให้มั่นใจได้ว่าโครงสร้างเครือข่ายอีเธอร์เน็ตจะไม่มีลูป และมีการปรับตัวให้เข้ากับสภาพแวดล้อมได้เร็วกว่า STP ดั้งเดิมมาก
หน่วยข้อมูลโปรโตคอลบริดจ์ (BPDU)
โปรโตคอล Spanning Tree กำหนดให้อุปกรณ์เครือข่ายต้องแลกเปลี่ยนข้อความกันเพื่อสร้างโครงสร้างเครือข่ายแบบไม่มีวงวน ข้อความเหล่านี้เรียกว่า BPDU (Bridge Protocol Data Units) อุปกรณ์เครือข่ายแต่ละตัวจะส่ง BPDU เพื่อแบ่งปันข้อมูลโครงสร้างเครือข่าย
BPDU ช่วยให้สวิตช์สามารถทำสิ่งต่อไปนี้ได้:
- เลือกสวิตช์ตัวใดตัวหนึ่งเพื่อทำหน้าที่เป็นรากของต้นไม้แผ่ขยาย (spanning tree)
- คำนวณเส้นทางที่สั้นที่สุดจากสวิตช์แต่ละตัวไปยังสวิตช์หลัก โดยกำหนดให้สวิตช์หนึ่งตัวอยู่ใกล้กับสวิตช์หลักมากที่สุดสำหรับแต่ละส่วนของเครือข่าย LAN
- เลือกพอร์ตหนึ่งพอร์ตบนสวิตช์แต่ละตัวเป็นพอร์ตหลัก (หากไม่ใช่สวิตช์หลัก)
- ระบุพอร์ตที่เป็นส่วนหนึ่งของโครงสร้างต้นไม้เชื่อมโยง (spanning tree) ว่าเป็นพอร์ตที่กำหนดไว้ (designated ports)
- ปิดกั้นพอร์ตที่ไม่กำหนดไว้
การกำหนดค่า BPDU
BPDU การกำหนดค่าจะบรรจุรหัสบริดจ์ของอุปกรณ์รูท และรหัสบริดจ์ของ... transmitสะพานทิง และตัวระบุของ transmitพอร์ตติง
การแจ้งเตือนการเปลี่ยนแปลงโทโพโลยี (TCN) BPDU
เมื่อตรวจพบการเปลี่ยนแปลงในโครงสร้างเครือข่าย เช่น ลิงก์เชื่อมต่อใหม่หรือขาดการเชื่อมต่อ สวิตช์จะส่ง TCN BPDU ไปยังรูทบริดจ์ จากนั้นรูทบริดจ์จะสั่งให้สวิตช์ทุกตัวลดระยะเวลาการหมดอายุของตารางที่อยู่ MAC เพื่อล้างรายการที่ล้าสมัยอย่างรวดเร็ว
ความแตกต่างระหว่าง STP และ RSTP
ตารางด้านล่างนี้แสดงให้เห็นถึงความแตกต่างที่สำคัญระหว่าง STP และ RSTP:
| STP | อาร์.เอส.ที.พี |
|---|---|
| ในโปรโตคอล STP บริดจ์จะส่ง BPDU ออกไปก็ต่อเมื่อได้รับ BPDU จากบริดจ์หลักที่พอร์ตรูทเท่านั้น | RSTP ช่วยให้สวิตช์แต่ละตัวสามารถส่ง BPDU ออกไปได้ทุกช่วงเวลา Hello |
| STP กำหนดบทบาทของพอร์ตไว้สองบทบาท ได้แก่ พอร์ตรูทและพอร์ตที่กำหนด | RSTP เพิ่มบทบาทอีกสองบทบาท ได้แก่ พอร์ตทางเลือกและพอร์ตสำรอง |
ตารางอ้างอิงสถานะพอร์ต STP
ตารางต่อไปนี้สรุปสถานะของพอร์ต STP แต่ละพอร์ต ว่าพอร์ตนั้นประมวลผล BPDU หรือไม่ และเรียนรู้ที่อยู่ MAC หรือไม่:
| สถานะ | Descriptไอออน | ประมวลผล BPDU | เรียนรู้แม็ค |
|---|---|---|---|
| ในนั้น | การเริ่มต้นพอร์ต | ไม่ | ไม่ |
| พิการ | รัฐบาลที่ไม่เข้าร่วมในการดำเนินงาน STP มาตรฐาน | ไม่ | ไม่ |
| การปิดกั้น | พอร์ตนี้ไม่ส่งต่อเฟรมอีเธอร์เน็ต | ใช่ (รับและประมวลผล BPDU เท่านั้น) | ไม่ |
| การฟัง | ในสถานะนี้ จะมีการคำนวณโทโพโลยีแบบไม่มีลูป และกำหนดบทบาทให้กับพอร์ตต่างๆ | ใช่ (ส่งและรับ BPDU) | ไม่ |
| การเรียนรู้ | สถานะเพิ่มเติมที่หน่วงเวลาการส่งต่อเฟรมเพื่อหลีกเลี่ยงการส่งข้อมูลจำนวนมากไปยังเครือข่าย | มี (ใบกำกับภาษีเต็มรูปแบบ) | ใช่ (เพิ่มข้อมูลลงในตารางที่อยู่ MAC) |
| ส่งต่อ | การทำงานปกติ คือการส่งต่อเฟรมอีเธอร์เน็ต | มี (ใบกำกับภาษีเต็มรูปแบบ) | มี (ใบกำกับภาษีเต็มรูปแบบ) |


