วันเสาร์ที่ 8 สิงหาคม พ.ศ. 2558

Spanning Tree Protocol

     สวัสดีครับ สำหรับบทความนี้จะพูดเรื่องที่ผมชอบมากที่สุดเลย เท่าที่ศึกษาเรื่อง Network มา เพราะรู้สึกว่ามันสำคัญกับระบบมาก เพราะปัญหา loop ถ้าเกิดขึ้นใน ระบบของเราแล้วมันทำให้ระบบตายไปได้จริง เคยโดนมาแล้ว ^_^

*********************************************************************************

Spanning Tree Protocol ( STP ) คืออะไรและมีความสามารถอย่างไร

     STP เป็น Protocol ที่ช่วยป้องกันการเกิด Loop ในระบบเน็ตเวิร์กที่ใช้ Switch หลายๆตัวเพื่อทำเส้นทางสำรอง ซึ่งการทำเส้นทางสำรองนั้นสามารถทำให้เกิด Loop ที่เรียกว่า Bridging Loop ซึ่งสามารถทำให้ Switch  Network ทั้งหมด ดาวน์หรือล่มลงได้ และจะทำให้ Switch ใช้งาน CPU สูงขึ้นถึงเกือบ 100 % จนกระทั่งหยุดทำงานไปในที่สุด แต่โดยปกติแล้ว Switch แต่ละตัวจะมีการรัน STP อยู่แล้วในทุกๆพอร์ตของ Switch นั้น เว้นแต่เราจะไปทำการ Disable STP ไม่ให้ทำงาน

ศัพท์ที่ควรรู้ก่อนจะเรียนรู้เรื่อง STP ให้ลึกกว่านี้

          - Forwarding State  คือ  สถานะที่สามารถ รับ-ส่ง เฟรมได้

          - ฺBlocking State  คือ   สถานะที่ไม่สามารถ รับ-ส่ง เฟรมได้

          - Root Bridge  คือ  Switch ที่ถูกเลือกให้ทำหน้าที่เป็นศูนย์กลางหลักของ Network

          - Root Port  คือ  Port ที่มี Path Cost ไปยัง Root Bridge น้อยที่สุดเมื่อเทียบกับ Port อื่นๆบน Switch ตัวเดียวกัน

          - Designated Port  คือ  Port ที่มี Path Cost ไปยัง Root Bridge น้อยที่สุดเมื่อเทียบกับ Port ของ Switch ตัวอื่นที่เชื่อมต่ออยู่ในเซกเมนต์เดียวกัน

          - Bridge Priority คือ ค่าลำดับความสำคัญ ของ Switch นั้นเมื่อเทียบกับ Switch ตัวอื่น (มีค่าตั้งแต่ 0 - 65,535) by default คือ 32,768

          - Mac address คือ Mac address ประจำตัว Switch เองขึ้นกับ Switch แต่ละโมเดล  ซึ่งจะ Hard code ไว้ภายใน Switch มาจากโรงงาน และไม่สามารถเปลี่ยนโดยผู้ใช้ได้

          -ฺ Bridge ID คือ เป็นค่าตัวเลข 8 byte ที่ประกอบด้วยฟิลด์ Bridge Priority (2 byte) + Mac address (6 byte) ซึ่งจะอยู่ใน BPDU

          - Path Cost  คือ  ค่าที่ใช้เปรียบเทียบในการหา Root Port และ Designated Port โดยเปรียบเทียบกับค่า Bandwidth โดยแต่ละ Bandwidth จะมีค่า Path Cost ดังนี้

               - Bandwidth  10    Mbps  มีค่า  Path Cost   = 100

               - Bandwidth  100   Mbps  มีค่า  Path Cost   = 19

               - Bandwidth  1     Gbps  มีค่า  Path Cost   = 4

               - Bandwidth  10    Gbps  มีค่า  Path Cost   = 2

วิธีเลือก Root Bridge , Root Port , Designated Port


รูปที่ 1

     ผมจะอธิบายส่วนต่างๆ ภายในรูปที่ 1 ก่อนที่จะอธิบายเกี่ยวกับวิธีการเลือก  Root Bridge , Root Port , Designated Port นะครับ

- ข้อความที่อยู่ในกรอบสีส้ม คือ

          - บรรทัดที่ 1  " Catalyst A , B , C , D , E "  คือ ชื่อของ Switch แต่ละตัวครับ

          - บรรทัดที่ 2  " 32768 "  คือ ค่าของ Bridge Priority ของ Switch แต่ละตัว ซึ่งในที่นี้มีค่าเท่ากัน หมดเพราะเป็นค่า Default ของ  Bridge Priority

          - บรรทัดที่ 3  " 00-00-00-00-00-0a "  , " 00-00-00-00-00-0b " , " 00-00-00-00-00-0c " , " 00-00-00-00-00-0d " , " 00-00-00-00-00-0e "  คือ ค่า Mac-address ของ Switch แต่ละตัวครับ

     ซึ่งบรรทัดที่ 2 แ ละ บรรทัดที่ 3 จะใช้ในการเปรียบเทียบเพื่อการเลือก Root Bridge , Root Port , Designated Port

- ข้อความที่ขีดเส้นใต้ด้วยสีแดง คือ ค่า Path Cost ที่ได้กล่าวไว้ใน Part 1 ซึ่งแปลผกผันกับค่า Branwidth ใช้ในการเปรียบเทียบเพื่อหา Root Port , Designated Port

ต่อไปนี้เราจะมาเริ่มหา Root Bridge , Root Port , Designated Port จากรูปที่ 1 กันครับ

          - ขั้นที่ 1 ทำการหา Root Bridge ก่อนเป็นอันดับแรก โดยการดูที่ค่า Priority ก่อนเป็นอันดับแรก ถ้ามีค่า Priority เท่ากัน ก็ให้ไปเปรียบเทียบที่ค่า Mac-address ว่า Switch ตัวไหนมีค่า Mac-address น้อยที่สุด Switch ตัวนั้นก็จะเป็น Root Bridge ซึ่งจากรูปที่ 1 Switch Catalyst A ก็จะเป็น Root Bridge

          - ขั้นที่ 2 เมื่อเรารู้แล้วว่า Switch A เป็น Root Bridge  ขั้นต่อไปเราก็จะทำการหา Root Port กันครับ ซึ่งหลักในการหา Root Port คือ หา Port ที่ดีที่สุดที่เดินทางไปยัง Root Bridge ใน Switch แต่ละตัว ซึ่ง Switch 1 ตัว จะมี Root Port ได้แค่ 1 Port เท่านั้น โดยเลือกจากค่า Path Cost แต่ถ้ามีค่า Path Cost เท่ากัน ก็จะเปรียบเทียบที่ Bridge ID  ซึ่งถ้า Bridge ID ยังเท่ากันอีก ก็จะทำการเปรียบเทียบที่ Port ID ซึ่ง Port ID ก็คือ ชื่อของ Interface ที่ทำการเชื่อมต่ออยู่ เช่น F0/1 กับ F0/2 ซึ่ง F0/1 มีค่าน้อยกว่า จึงทำให้ Port F0/1 ได้เป็น Root Port ในที่สุด เรามาดูหาคำนวณหา Root Port ใน Switch แต่ละตัวกันเลยครับ

- Switch Catalyst C  จะมีการต่อสู้กันเพื่อจะเป็น Root Port อยู่ 3 เส้นทาง

          - ทางที่ 1  มีค่า  Path Cost  เท่ากับ  19
          - ทางที่ 2  มีค่า  Path Cost  เท่ากับ  23 ( 19+4 )
          - ทางที่ 3  มีค่า  Path Cost  เท่ากับ  27 ( 19+4+4 )

     ดังนั้นที่ Switch C Port ที่ต่อกับทางที่ 1 ซึ่งมีค่า Path Cost ที่น้อยที่สุดคือ 19 จะได้เป็น Root Port ย่อด้วย RP ตามรูปที่ 2 ครับ

- Switch Catalyst D  จะมีการต่อสู้กันเพื่อจะเป็น Root Port อยู่ 3 เส้นทาง

          - ทางที่ 1  มีค่า  Path Cost  เท่ากับ  19
          - ทางที่ 2  มีค่า  Path Cost  เท่ากับ  23 ( 19+4 )
          - ทางที่ 3  มีค่า  Path Cost  เท่ากับ  27 ( 19+4+4 )

     ดังนั้นที่ Switch D Port ที่ต่อกับทางที่ 1 ซึ่งมีค่า Path Cost ที่น้อยที่สุดคือ 19 จะได้เป็น Root Port ตามรูปที่ 2 ครับ

- Switch Catalyst E  จะมีการต่อสู้กันเพื่อจะเป็น Root Port อยู่  เส้นทาง

          - ทางที่ 1  มีค่า  Path Cost  เท่ากับ  19
          - ทางที่ 2  มีค่า  Path Cost  เท่ากับ  23 ( 19+4 )

     ดังนั้นที่ Switch E Port ที่ต่อกับทางที่ 1 ซึ่งมีค่า Path Cost ที่น้อยที่สุดคือ 19 จะได้เป็น Root Port ตามรูปที่ 2 เช่นกันครับ

รูปที่ 2

          - ขั้นที่ 3 ตอนนี้เราก็ได้ทั้ง Root Bridge และ Root Port แล้ว ต่อไปก็เราก็จะมาทำการหา Designated Port กันครับ ในที่นี้เราจะทำการหา Designated Port แค่ 2 จุดตามที่ลูกศรสีน้ำเงินชี้ ในรูปที่ 2 ซึงเหตุผลว่าทำไมหาแค่ 2 จุดนี้ มันมีเหตุผลครับ คือ

          - Port ทุก Port ที่อยู่บน Switch ที่เป็น Root Bridge จะเป็น Designated Port ทั้งหมดครับ

          - ถ้า Port ของ Switch ที่เชื่อมต่อกัน ฝั่งใดฝั่งหนึ่งเป็น Root Port ไปแล้ว อีกฝั่งก็จะเป็น Designated Port ทันที ดังรูปที่ 3 ครับ

รูปที่ 3

     ผมของอธิบายตรง Switch-B ก่อนนะครับ เนื่องจากไม่มีเส้นทางไหนมาแข่งขันจึงทำให้ Port นั้นเป็น Root Port ไปโดยอัตโนมัติ และ Port ที่เชื่อมต่อกัน ที่อยู่บน Switch-D ก็จะเป็น Disignated Port ครับ และตอนนี้ ก็เหลืออีกแค่ 2 จุดที่ัมีลูกศรสีน้ำเงินชี้อยู่ ซึ่งยังไม่มีสถานะเป็นอะไรเลย ดังนั้นเราจะมาหา Designated Port ที่ 2 จุดนี้กัน ดังนี้ครับ

          - หา DP ระหว่าง Switch-C กับ Switch-D ซึ่งถ้าเราดูจากเส้นทางที่ไปยัง Root Bridge แล้ว จะมีค่า Path Cost เท่ากัน ดังนั้นเราซึ่งต้องพิจารณาที่ Bridge ID ซึ่งแน่นอน Switch-C เป็นฝ่ายชนะ เพราะมีค่า Mac-address ที่น้อยกว่า ดังนั้น Port ที่อยู่ฝั่ง Switch-C จึงเป็น DP และ Port ฝั่ง Switch-D ก็จะทำการ Block ตามรูปที่ 4 ครับ

          - หา DP ระหว่าง Switch-D กับ Switch-E ซึ่งถ้าเราดูจากเส้นทางที่ไปยัง Root Bridge แล้ว มันก็มีค่า Path Cost เท่ากัน ดังนั้นเราซึ่งต้องพิจารณาที่ Bridge ID ซึ่งแน่นอน Switch-D เป็นฝ่ายชนะ เพราะมีค่า Mac-address ที่น้อยกว่า ดังนั้น Port ที่อยู่ฝั่ง Switch-D จึงเป็น DP และ Port ฝั่ง Switch-E ก็จะทำการ Block ตามรูปที่ 4 ครับ และเราก็จะได้ Topology ของ Network L2 ตามรูปที่ 5 ครับ

รูปที่ 4


รูปที่ 5

*********************************************************************************

จบแล้วนะครับสำหรับบทความนี้ เกี่ยวกับ STP  หวังว่าจะเป็นประโยชน์บ้างนะครับ  ^_^

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

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