STP - อธิบายโปรโตคอล Spanning Tree

⚡ สรุปอย่างชาญฉลาด

Spanning Tree Protocol (STP) เป็นมาตรฐานการจัดการลิงก์ระดับเลเยอร์ 2 ตามมาตรฐาน IEEE 802.1D ซึ่งป้องกันการเกิดลูปการสลับในเครือข่ายที่มีลิงก์สำรอง โดยการเลือกบริดจ์หลักและกำหนดให้พอร์ตสำรองอยู่ในสถานะบล็อก

  • 🔁 วัตถุประสงค์: STP สร้างโทโพโลยีเชิงตรรกะที่ปราศจากลูปจากเครือข่ายทางกายภาพที่มีส่วนซ้ำซ้อนและอาจเกิดลูปได้ping ซ้าย
  • 🌉 สะพานราก: สวิตช์จะแลกเปลี่ยน BPDU เพื่อเลือกรูทบริดจ์หนึ่งตัว ซึ่งเป็นจุดอ้างอิงที่สวิตช์อื่นๆ ใช้ในการวัดเส้นทางที่สั้นที่สุดไปยังจุดนั้น
  • 🧱 รัฐท่าเรือ: แต่ละพอร์ตจะเปลี่ยนสถานะไปเรื่อยๆ ได้แก่ การบล็อก การรับฟัง การเรียนรู้ และการส่งต่อ รวมถึงสถานะปิดใช้งานสำหรับพอร์ตที่ปิดระบบแล้ว
  • RSTP: โปรโตคอล Rapid Spanning Tree (802.1w) ใช้เวลาในการปรับตัวเพียงไม่กี่วินาที ในขณะที่ STP แบบดั้งเดิมอาจใช้เวลานานถึง 50 วินาที
  • 📊 สายพันธุ์: มาตรฐานต่างๆ ได้แก่ STP, RSTP, MSTP (802.1s) และ Cisco PVST+ และ PVRST+ สำหรับโครงสร้างต้นไม้ต่อ VLAN
  • 🤖 ความช่วยเหลือจากเอไอ: เครื่องมือแมชชีนเลิร์นนิงสามารถตรวจจับการเปลี่ยนแปลงโทโพโลยีและสภาวะลูปได้เร็วกว่าการตรวจสอบบันทึกด้วยตนเอง

คำอธิบายเกี่ยวกับ Spanning Tree Protocol (STP)

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 จะเปลี่ยนสถานะหลายขั้นก่อนที่จะส่งต่อข้อมูล ดังแสดงในแผนภาพด้านล่าง:

การเปลี่ยนสถานะพอร์ต STP จากบล็อก ผ่านการฟังและการเรียนรู้ ไปจนถึงการส่งต่อ

สถานะการปิดกั้น

พอร์ตบล็อกคือพอร์ตที่ไม่ได้รับการกำหนดไว้โดยเฉพาะ ซึ่งจะไม่เข้าร่วมในการส่งต่อเฟรมใดๆ ตัวจับเวลาของพอร์ตนี้คือ 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)
ส่งต่อ การทำงานปกติ คือการส่งต่อเฟรมอีเธอร์เน็ต มี (ใบกำกับภาษีเต็มรูปแบบ) มี (ใบกำกับภาษีเต็มรูปแบบ)

คำถามที่พบบ่อย

สวิตช์แต่ละตัวจะแจ้งรหัสบริดจ์ (Bridge ID) ซึ่งประกอบด้วยค่าลำดับความสำคัญ (ค่าเริ่มต้นคือ 32768) บวกกับที่อยู่ MAC ของสวิตช์นั้น สวิตช์ที่มีรหัสบริดจ์ต่ำที่สุดจะเป็นบริดจ์หลัก (Root Bridge) หากลำดับความสำคัญเท่ากัน สวิตช์ที่มีที่อยู่ MAC ต่ำที่สุดจะเป็นผู้ชนะ

มาตรฐาน 802.1D แบบคลาสสิกใช้ตัวจับเวลาสามตัว ได้แก่ เวลาทักทาย (hello time) 2 วินาที, การหน่วงเวลาไปข้างหน้า 15 วินาทีสำหรับสถานะการฟังและการเรียนรู้ และอายุสูงสุด 20 วินาที การรวมสัญญาณอย่างสมบูรณ์อาจใช้เวลา 30 ถึง 50 วินาที

BPDU Guard ทำหน้าที่ปกป้องพอร์ตการเข้าถึง (edge ​​ports) ที่ไม่ควรได้รับ BPDU หากพอร์ตดังกล่าวได้รับ BPDU สวิตช์จะเปลี่ยนสถานะพอร์ตนั้นเป็น err-disabled (ปิดใช้งาน) ทันทีping สวิตช์ที่ทำงานผิดปกติหรือลูปที่เกิดขึ้นโดยไม่ตั้งใจอาจทำให้โครงสร้างเครือข่ายไม่เสถียร

PortFast ช่วยให้พอร์ต Access ข้ามขั้นตอนการฟังและการเรียนรู้ และไปยังขั้นตอนการส่งต่อข้อมูลได้โดยตรง ควรใช้เฉพาะกับพอร์ตที่เชื่อมต่อกับอุปกรณ์ปลายทาง เช่น คอมพิวเตอร์หรือเซิร์ฟเวอร์เท่านั้น ห้ามใช้กับลิงก์ระหว่างสวิตช์

หากไม่มี STP การเชื่อมต่อที่ซ้ำซ้อนระหว่าง สวิทช์ สร้างวงจรเชื่อมต่อที่วนซ้ำ เฟรมจะหมุนเวียนไปเรื่อยๆ ก่อให้เกิดปัญหาบรอดแคสต์ เฟรมซ้ำ และความไม่เสถียรของตารางที่อยู่ MAC ซึ่งอาจทำให้เครือข่าย LAN ทั้งหมดล่มได้อย่างรวดเร็ว

ใช่แล้ว สวิตช์สมัยใหม่ใช้ RSTP หรือ MSTP เป็นค่าเริ่มต้น เพราะมันรวมตัวกันได้ในเวลาไม่กี่วินาที ศูนย์ข้อมูลขนาดใหญ่เพิ่มเทคโนโลยีการกำหนดเส้นทางหรือโครงสร้างเครือข่ายระดับเลเยอร์ 3 มากขึ้นเรื่อยๆ เช่น TRILL, SPB และ EVPN-VXLAN แต่ STP ก็ยังคงป้องกันลูปในระดับเลเยอร์ 2 อยู่ดี

เครื่องมือแมชชีนเลิร์นนิงจะกำหนดค่าพื้นฐานกิจกรรม BPDU ปกติและการเปลี่ยนแปลงโทโพโลยี จากนั้นจะระบุความผิดปกติ เช่น การเพิ่มขึ้นของ TCN อย่างฉับพลันหรือการพลิกกลับของสัญญาณping การเชื่อมโยงราก (root bridge) วิธีนี้ช่วยเร่งการวิเคราะห์สาเหตุที่แท้จริง แม้ว่าวิศวกรจะยังคงตรวจสอบและแก้ไขปัญหาอยู่ก็ตาม

นักบิน GitHub ร่าง Cisco ไอโอเอส, แอนซิเบิล หรือ Python ตัวอย่างคำสั่งสำหรับงานต่างๆ เช่น การตั้งค่าลำดับความสำคัญของบริดจ์ หรือการเปิดใช้งาน PortFast จากข้อความแสดงความคิดเห็นสั้นๆ โปรดตรวจสอบคำสั่งที่สร้างขึ้นก่อนนำไปใช้กับสวิตช์ที่ใช้งานจริงเสมอ

สรุปโพสต์นี้ด้วย: