Tìm hiểu về STP, cách triển khai và hoạt động của STP.
STP (Spanning Tree Protocol) là một giao thức mạng Lớp 2 (Layer 2) được thiết kế để ngăn chặn các vòng lặp (network loops) trong một mạng Ethernet sử dụng switch. Nó thực hiện điều này bằng cách tự động vô hiệu hóa (chặn) các liên kết dự phòng, đảm bảo chỉ có một đường dẫn logic duy nhất đang hoạt động giữa hai thiết bị bất kỳ trong mạng tại một thời điểm.
I. Giới thiệu về STP (IEEE 802.1D)
Trong các hệ thống mạng hiện đại, người quản trị thường thiết kế các liên kết dự phòng (redundant links) giữa các switch. Mục đích là để nếu một liên kết hoặc một switch gặp sự cố, hệ thống vẫn có đường đi khác để duy trì kết nối.
Tuy nhiên, các liên kết dự phòng này lại tạo ra một vấn đề nghiêm trọng trong mạng Lớp 2: vòng lặp (loop).
Khi một vòng lặp xảy ra, các khung tin (frames), đặc biệt là các khung tin broadcast (gửi cho tất cả mọi người), sẽ bị chuyển tiếp lòng vòng vô hạn giữa các switch. Điều này gây ra:
- 
		
Bão quảng bá (Broadcast Storm): Các khung tin broadcast lặp lại liên tục, tiêu tốn toàn bộ băng thông mạng và làm CPU của switch quá tải.
 - 
		
Bất ổn bảng MAC (MAC Table Instability): Switch liên tục học địa chỉ MAC của cùng một thiết bị trên nhiều cổng khác nhau, gây ra nhầm lẫn và làm sập mạng.
 
Giải pháp của STP: STP sẽ "xem" toàn bộ cấu trúc liên kết của mạng và tạo ra một "cây" logic không có vòng lặp (a loop-free spanning tree). Nó thực hiện điều này bằng cách đặt một số cổng (port) vào trạng thái chặn (Blocking), khiến chúng không chuyển tiếp dữ liệu. Những cổng này vẫn "ở đó" và sẵn sàng được kích hoạt nếu đường dẫn chính gặp sự cố.
Lợi ích chính của STP
STP giải quyết được hai vấn đề tưởng chừng như mâu thuẫn nhau:
- 
		
Ngăn chặn vòng lặp: Đây là chức năng chính và quan trọng nhất. Bằng cách chặn các đường dự phòng, STP đảm bảo không có vòng lặp nào tồn tại, giúp mạng hoạt động ổn định.
 - 
		
Cung cấp khả năng dự phòng (Redundancy): Mặc dù chặn các cổng, STP vẫn liên tục giám sát mạng. Nếu một liên kết chính (đang ở trạng thái Forwarding) bị đứt, STP sẽ tự động tính toán lại và "mở chặn" (chuyển sang Forwarding) một cổng dự phòng thích hợp để khôi phục kết nối.
 
Cách triển khai và hoạt động của STP
STP không yêu cầu cấu hình phức tạp để chạy; nó thường được bật mặc định trên hầu hết các switch. Tuy nhiên, để hiểu cách nó hoạt động, chúng ta cần biết về "cuộc bầu chọn" của nó. STP sử dụng các gói tin đặc biệt gọi là BPDU (Bridge Protocol Data Units) để các switch "nói chuyện" với nhau.
Quá trình hoạt động của STP diễn ra qua 4 bước chính:
1. Bầu chọn Root Bridge (Switch Gốc)
- 
		
Đây là bước đầu tiên và quan trọng nhất. Mạng sẽ bầu ra một switch làm "trung tâm" của cây, gọi là Root Bridge.
 - 
		
Tiêu chí bầu chọn: Switch nào có Bridge Priority (Độ ưu tiên) thấp nhất sẽ thắng. Nếu Priority bằng nhau, switch nào có địa chỉ MAC thấp nhất sẽ thắng.
 - 
		
Tất cả các đường dẫn trong mạng sẽ được tính toán dựa trên việc làm thế nào để đi đến Root Bridge này.
 
2. Bầu chọn Root Port (Cổng Gốc)
- 
		
Trên mỗi switch không phải là Root Bridge, chúng sẽ bầu ra một cổng làm Root Port.
 - 
		
Tiêu chí: Root Port là cổng có chi phí (cost) thấp nhất để đi đến Root Bridge. (Ví dụ: Cổng 1Gbps có cost thấp hơn cổng 100Mbps).
 - 
		
Trạng thái: Cổng này luôn ở trạng thái Forwarding (chuyển tiếp dữ liệu).
 
3. Bầu chọn Designated Port (Cổng Chỉ định)
- 
		
Trên mỗi phân đoạn mạng (segment) (mỗi liên kết giữa các switch), sẽ có một cổng được bầu làm Designated Port.
 - 
		
Tiêu chí: Đây là cổng trên switch (Root Bridge hoặc switch khác) cung cấp đường đi có chi phí thấp nhất đến Root Bridge cho phân đoạn mạng đó.
 - 
		
Trạng thái: Cổng này cũng luôn ở trạng thái Forwarding.
 
4. Chặn các cổng còn lại (Blocking Ports)
- 
		
Bất kỳ cổng nào không phải là Root Port hoặc Designated Port sẽ bị đưa vào trạng thái Blocking (Bị chặn).
 - 
		
Cổng bị chặn sẽ không gửi hoặc nhận dữ liệu người dùng, nhưng nó vẫn lắng nghe các gói tin BPDU để biết khi nào đường dẫn chính gặp sự cố.
 - 
		
Chính việc chặn các cổng này đã phá vỡ vòng lặp.
 
Các phiên bản cải tiến của STP
- 
		
STP (802.1D): Phiên bản gốc, hoạt động tốt nhưng thời gian hội tụ (thời gian tính toán lại khi có thay đổi) rất chậm, có thể mất từ 30 đến 50 giây.
 - 
		
RSTP (Rapid Spanning Tree Protocol - 802.1w): Phiên bản cải tiến, giảm thời gian hội tụ xuống chỉ còn vài giây hoặc thậm chí mili giây. Đây là giao thức được sử dụng phổ biến nhất hiện nay.
 - 
		
MSTP (Multiple Spanning Tree Protocol - 802.1s): Cho phép tạo nhiều "cây" STP khác nhau, thường dùng để cân bằng tải cho các VLAN khác nhau.
 
II. Cách triển khai STP trong thực tế
Dưới đây là các bước triển khai STP một cách thực tế trên mạng switch Cisco (loại phổ biến nhất):
1. Lên Kế hoạch và Thiết kế
Trước khi cấu hình, bạn cần xác định vai trò của từng switch trong mạng.
- 
		
Xác định Root Bridge (Switch Gốc):
- 
				
Chọn Switch Lõi: Luôn chỉ định switch quan trọng nhất (thường là switch lõi, core switch, hoặc switch phân phối) làm Root Bridge.
 - 
				
Tại sao? Vì mọi lưu lượng đều đi qua switch này, việc này đảm bảo đường đi dữ liệu là tối ưu và dễ dự đoán.
 
 - 
				
 - 
		
Thiết lập Ưu tiên (Priority):
- 
				
Gán giá trị ưu tiên (Priority) thấp nhất cho Root Bridge được chọn. Giá trị ưu tiên STP mặc định là 32768, và nó phải là bội số của 4096.
 - 
				
Root Chính: Đặt ưu tiên là 4096 (hoặc thấp hơn, như 0) cho switch chính.
 - 
				
Root Dự phòng: Đặt ưu tiên là 8192 (hoặc thấp hơn 1 cấp so với mặc định) cho switch dự phòng.
 - 
				
Các switch còn lại nên giữ nguyên giá trị mặc định.
 
 - 
				
 
2. Cấu hình STP Cơ bản
A. Chọn chế độ STP (Mode)
Các mạng hiện đại hiếm khi dùng STP truyền thống. Bạn nên dùng một trong hai chế độ sau:
- 
		
Rapid PVST+ (RPVST+): Là lựa chọn tốt nhất cho mạng nhỏ và vừa, vì nó hội tụ nhanh hơn STP truyền thống và hỗ trợ cân bằng tải theo VLAN. Đây là mặc định trên nhiều switch Cisco hiện đại.
 - 
		
MST (Multiple Spanning Tree): Dành cho các mạng lớn và rất lớn với hàng trăm VLAN, giúp nhóm các VLAN lại với nhau để giảm gánh nặng xử lý.
 
# Chọn chế độ RPVST+ (config)# spanning-tree mode rapid-pvst
B. Cấu hình Root Bridge
Áp dụng cấu hình ưu tiên (Priority) cho switch đã chọn làm Root Bridge và Dự phòng.
# TRÊN ROOT BRIDGE CHÍNH: (config)# spanning-tree vlan [VLAN ID] priority 4096 # Ví dụ: spanning-tree vlan 1-100 priority 4096 # HOẶC CÁCH ĐƠN GIẢN HƠN: (config)# spanning-tree vlan [VLAN ID] root primary # Switch tự động đặt priority là 8192 (nếu không có ai thấp hơn). # Tương tự cho Root Dự phòng: (config)# spanning-tree vlan [VLAN ID] root secondary
3. Tối ưu hóa và Bảo mật (Quan trọng)
Sau khi có cấu trúc STP ổn định, việc tối ưu các cổng (port) là bắt buộc để đảm bảo mạng hội tụ nhanh và an toàn.
| Tính năng | Mục đích | Lệnh Cấu hình (Áp dụng cho từng Interface) | 
| PortFast | 
						 Giảm độ trễ: Đưa cổng truy cập (Access Port, nơi cắm máy tính, server) vào trạng thái Forwarding ngay lập tức, bỏ qua các trạng thái lắng nghe (Listening) và học (Learning). Quan trọng: KHÔNG áp dụng cho cổng trunk nối switch!  | 
					
						(config-if)# spanning-tree portfast | 
				
| BPDU Guard | Bảo mật: Tự động tắt (error-disable) cổng nếu nó nhận được gói tin BPDU (gói tin STP) từ một thiết bị không mong muốn (ví dụ: người dùng cắm nhầm switch). | 
						(config-if)# spanning-tree bpduguard enable | 
				
| Root Guard | 
						 Bảo mật: Ngăn cổng đó nhận BPDU tuyên bố làm Root Bridge, bảo vệ switch Root chính của mạng. Chỉ áp dụng cho các cổng trunk dẫn đến các switch cấp thấp hơn.  | 
					
						(config-if)# spanning-tree guard root | 
				
Lời khuyên Thực tế
- 
				
Luôn dùng Root/BPDU Guard: Đây là hai tính năng bảo mật không thể thiếu để giữ cho cấu trúc STP ổn định và an toàn.
 - 
				
Chỉ dùng PortFast cho Access Port: Việc áp dụng PortFast cho cổng trunk hoặc cổng nối switch có thể tạo ra vòng lặp tạm thời, gây nguy hiểm cho mạng.
 - 
				
Kiểm tra: Sau khi cấu hình, luôn dùng lệnh
show spanning-treeđể xác nhận switch nào là Root, cổng nào là Root Port, và cổng nào đang bị chặn (Blocking/Alternate). 
# Lệnh kiểm tra #show spanning-tree #show spanning-tree summary
