TÌM HIỂU VỀ GIAO THỨC SPANNING TREE PROTOCOL
Spanning Tree Protocol định nghĩa trong chuẩn IEEE 802.1D. Spanning tree là giao thức không thể thiểu trong môi trường layer 2.Spanning Tree là gì? Tìm hiểu giao thức Spanning Tree, cơ chế hoạt động của giao thức Spanning Tree.
Sau đó chúng ta sẽ tìm hiểu quy tắc bầu chọn trong Spanning tree để lựa chọn Root bridge, port cần block...và cách cấu hình Spanning Tree để traffic của đường đi trong hệ thống là tốt nhất. Hướng dẫn cấu hình Spanning Tree trên Cisco Router.
I. Spanning là gì ?
Khi Switch nhận được 1 frame
Học source MAC vào bảng MAC address
- Tra Destination MAC trong bảng MAC address, ban đầu bảng MAC trắng(empty) nên nó sẽ flooded frame ra tất cả các cổng.
- Theo mô hình dưới thì nó sẽ xảy ra hiện tượng:
- Broadcast storm
- Instability MAC address table
- Multiple Frame copies
Hiện tương Loop trong mạng khi các switch đấu nối theo 1 vòng tròn khép kín
Vd: 1 switch nối 1port này với 1 port khác trên cùng 1 switch, 2 switch nối với nhau bằng 2 dây qua 4 port…
IEEE đưa ra chuẩn 802.1D(Spanning Tree Protocol) để chống loop. Về mặt luận lý thì nó sẽ khóa 1 port (Block port)
Để tìm ra block port nó trải qua các bước:
- Bầu chọn Root Switch
- Bầu chọn Root port
- Bầu chọn Designated port
- Port còn lại là Alternated Port
II. Quá trình bầu chọn của giao thức Spanning Tree Protocol
Xem ví dụ về sơ đồ hoạt động STP như hình sau:
1. Bầu chọn Root Switch:
Khi các Switch được đấu nối khởi động nó sẽ gửi gói tin BPDU(bridge protocol data unit) trên các port của Switch.
Thông số quyết định Sw nào được làm Root Sw là Bridge-ID(8 byte) gồm có các thông số :
- Priority(của switch):
- Dài 2 byte, default = 32768.
- Switch nào có chỉ số priority có chỉ số nhỏ nhất sẽ được chọn làm Root-switch
- MAC Address Switch:
- Dài 6 byte.
- Xét từ trái sang phải từng giá trị hexa thì switch nào có MAC nhỏ nhất làm Root-switch
Khi bầu xong Root-switch thì chỉ có Root-switch được gửi BPDU(2s/1 lần). Việc gửi đó để duy trì cây spanning tree đó không bị Loop
Theo nguyên tắc đánh số MAC của nhà sản xuất thì khi bầu chọn root-switch nó sẽ chọn switch đời đầu làm root-switch. Nên trong thực tế ta không bao giờ cho bầu chọn bằng MAC mà ta chỉnh priority.
2. Bầu chọn Root port:
- Là port cung cấp đường về Root-switch mà có tổng path-cost là nhỏ nhất
- Khi bầu chọn Root-port thì Root-Switch không tham gia quá trình bầu chọn này
- Mỗi non-Rootswitch chỉ có 1 Root-port
- Path-cost là giá trị cost trên từng cổng của Switch.
- Nguyên tắc tính tổng path-cost: tính từ switch đang muốn tính --> Root-switch
- Đi ra: không cộng
- Đi vào: cộng cost
Luật Tie-Break:
Sender Bridge ID:
- Cổng nào kết nối switch mà switch đó có bridge ID nhỏ nhất -> port đó sẽ được chọn làm Root-port.
Sender Port ID:
- Port ID của Switch bên kia thì port nào của switch bên kia có giá trị port-ID nhỏ hơn thì chọn port bên switch mình kết nối với port ID nhỏ hơn đó.
- Priority của port: có giá trị từ 0 -> 255, default=128. Port nào có priority nhỏ hơn thì port đó có Port ID nhỏ hơn.
- Vị trí của port: Xét theo hạng của số thứ tự của port. Port số 1 < port 2 -> port số 2 làm root-port
Khi các luật trên không giải quyết được thì nó sẽ xét đến Port ID trên chính nó
- Priority và vị trí của port
3. Bầu Chọn Designated port
- Tất cả các port của Root-sw đều là Designated port
- Trên 1 phân đoạn nếu port đối diện là Root-port thì mình là Designated port(không có ý nghĩa ngược lại).
- Là port cung cấp đường về Root-sw trên phân đoạn mạng đang xét mà có tổng path-cost là nhỏ nhất.
4. Bầu chọn Block port (Alternate port, port bị khóa)
- Khi 1 trong các phân đoạn khác bị đứt thì phân đoạn port block sẽ được mở ra để chạy.
- Khi phân đoạn trên có lại thì phân đoạn block sẽ tiếp tục bị block lại
Tuy port block không nhận được dữ liệu nhưng nó vẫn nhận gói tin BPDU từ Root-switch để duy trì cây spanning-tree.
Kết quả sau 4 bước bầu chọn, cây STP hội tụ như sơ đồ sau:
III. STP timer
- Helo timer: định kỳ sau thời gian 2s sẽ gửi BPDU
- Forward timer: 15(s)
- Max-age times: 20(s)
Nếu Root-Sw chết hay port block không nhận được BPDU thì mất 20s nó mới hoạt động (tự mở lên hoặc bầu chọn lại Root-sw)
IV. STP state
- Các trạng thái khi Switch khởi động:
- Disable: down
- Blocking: nhận BDPU, ko gửi BPDU, không học MAC, không forward frame
- Listening: nhận BDPU, gửi BPDU, không học MAC, không forward frame
- Leaning: nhận BDPU, gửi BPDU, học MAC, không forward frame
- Forwarding: nhận BDPU, gửi BPDU, học MAC, forward frame
- Việc chuyển từ trạng thái: Blocking sang listening mất 20(s)
- Việc chuyển từ trạng thái: Listening sang Leaning mất 15(s)
- Việc chuyển từ trạng thái: Leaning sang Forwarding mất 15(s)
Vậy khi Switch khởi động xong hoặc khi cắm dây vào port thì phải mất 30(s) đèn chuyển sang màu xanh.