GIAO THỨC NGĂN CHẶN VÒNG LẶP Ở LỚP HAI
Trong mạng máy tính, đặc biệt là các mạng LAN sử dụng switch, vòng lặp có thể gây ra những vấn đề nghiêm trọng như bão broadcast, mất gói tin và giảm hiệu suất hệ thống. Để giải quyết vấn đề này, các giao thức Spanning Tree (STP), Rapid Spanning Tree (RSTP) và Multiple Spanning Tree (MSTP) được thiết kế nhằm loại bỏ vòng lặp và đảm bảo mạng hoạt động ổn định. Bài viết này sẽ trình bày chi tiết về từng giao thức, bao gồm cách hoạt động, vai trò của các cổng, cơ chế bầu chọn Root Bridge và các cải tiến trong từng phiên bản.
1. Spanning Tree Protocol (STP)
STP (Spanning Tree Protocol) là một giao thức được định nghĩa trong tiêu chuẩn IEEE 802.1D, giúp ngăn chặn các vòng lặp trong mạng tầng 2 bằng cách tạo ra một cấu trúc cây không vòng lặp, đảm bảo chỉ có một đường duy nhất kết nối giữa các thiết bị mạng. STP sẽ định nghĩa ra một sơ đồ đường đi từ root-device (thiết bị quản lý) qua việc bầu chọn giữa các thiết bị, quá trình bầu chọn các thiết bị có thể tóm tắt như sau:
- Mỗi switch có một Bridge ID (BID) gồm Bridge Priority (mặc định là 32768) và địa chỉ MAC.
- Khi các switch hoạt động, chúng gửi các BPDU (Bridge Protocol Data Unit) ra tất cả các cổng. BPDU chứa thông tin về Bridge ID của switch gửi cũng như Root Bridge (ban đầu mặc định tất cả các switch đều là Root).
- Switch có BID nhỏ nhất sẽ được chọn làm Root Bridge.
- Nếu các switch có cùng Bridge Priority, địa chỉ MAC sẽ được sử dụng như tiêu chí để quyết định Root Bridge.

Hình 1: Mô hình cơ bản cho thực hành STP
Về phương thức hoạt động:
- Sau khi Root Bridge được chọn, mỗi switch sẽ xác định Root Port của mình.
- Các cổng còn lại sẽ được xác định là Designated port hoặc Non-designated port dựa trên BPDU và chi phí đường đi.
- Quá trình này đảm bảo không có vòng lặp trong mạng bằng cách đặt các cổng không cần thiết vào trạng thái Blocking.

Hình 2: Các trạng thái của cổng
Các cổng được cấu hình STP cũng sẽ có vai trò khác nhau, có 3 loại cổng bao gồm:
- Root Port (RP): Cổng trên switch không phải root bridge có đường đi ngắn nhất đến root bridge.
- Designated Port (DP): Cổng được chọn để chuyển tiếp frame trên một segment mạng cụ thể.
- Non-Designated Port: Cổng không được chọn làm DP, thường ở trạng thái blocking.
Mã:
spanning-tree mode stp
spanning-tree enable
spanning-tree priority 4096

Hình 3: Cấu hình STP trên Switch 1
Cấu hình tương tự trên hai switch còn lại nhưng đặt priority cao hơn (hoặc để mặc định) để đảm bảo rằng switch 1 là Root Bridge.
Tiếp đến cần thực hiện cấu hình Root Guard - là một tính năng bảo mật trong các giao thức STP, RSTP và MSTP, nhằm ngăn chặn các thiết bị không mong muốn trở thành Root Bridge bằng cách chặn các BPDU (Bridge Protocol Data Unit) có ưu tiên cao hơn từ một thiết bị khác.
Sơ lược về hoạt động của Root Guard như sau:
- Khi Root Guard được kích hoạt trên một cổng, cổng đó chỉ được phép là Designated Port.
- Nếu cổng nhận được một BPDU có giá trị ưu tiên cao hơn(tức là BPDU từ một switch có thể trở thành Root Bridge), nó sẽ chuyển sang trạng thái Listening nếu dùng STP hoặc sang trạng thái Discarding nếu dùng RSTP hoặc MSTP.

Hình 4: Cấu hình Root Guard
2. Rapid Spanning Tree Protocol (RSTP)
RSTP (Rapid Spanning Tree Protocol), được chuẩn hóa trong IEEE 802.1w, là phiên bản cải tiến của STP, giúp giảm đáng kể thời gian hội tụ khi có sự thay đổi trong mạng. RSTP sử dụng BPDU để trao đổi thông tin nhanh chóng giữa các switch, giúp giảm thời gian hội tụ. Tương tự như STP, RSTP cũng bầu chọn Root Bridge dựa trên Bridge ID.
RSTP cải tiến hơn STP ở điểm RSTP cải thiện thời gian hội tụ bằng cách sử dụng các vai trò cổng mới và giảm số lượng trạng thái cổng. Cổng có thể chuyển trực tiếp từ trạng thái discarding sang forwarding mà không cần qua các giai đoạn trung gian như trong STP.
Khác với STP, các cổng trên switch chạy RSTP chỉ có ba trạng thái như sau:
- Discarding: Cổng không chuyển tiếp hay nhận các frame dữ liệu và không học địa chỉ MAC.
- Learning: Cổng bắt đầu học địa chỉ MAC nhưng chưa chuyển tiếp frame dữ liệu.
- Forwarding: Cổng chuyển tiếp và nhận các frame dữ liệu, đồng thời học địa chỉ MAC.
- Root Port (RP): Cổng trên switch không phải root bridge có đường đi ngắn nhất đến root bridge.
- Designated Port (DP): Cổng được chọn để chuyển tiếp frame trên một segment mạng cụ thể.
- Alternate Port: Cổng cung cấp đường dự phòng đến root bridge, ở trạng thái discarding.
- Backup Port: Cổng dự phòng cho designated port trên cùng một segment mạng, ở trạng thái discarding.
Mã:
spanning-tree mode rstp
spanning-tree enable
spanning-tree priority 4096
Trong giao thức Rapid Spanning Tree Protocol (RSTP), Edge Port là một loại cổng đặc biệt được sử dụng để kết nối trực tiếp với các thiết bị không tạo ra BPDU (Bridge Protocol Data Unit), chẳng hạn như máy tính, máy in hoặc thiết bị IoT. Việc cấu hình Edge Port còn giúp:
- Giảm thời gian chờ Spanning Tree: Các cổng thông thường trong STP phải trải qua các trạng thái Listening → Learning → Forwarding, mất khoảng 30 giây để bắt đầu truyền dữ liệu.
- Edge Port bỏ qua quá trình này, chuyển trực tiếp sang trạng thái Forwarding, giúp tăng tốc độ kết nối cho thiết bị đầu cuối.
- Tránh topology change: Vì Edge Port không tham gia vào quá trình tính toán STP, nó sẽ không tạo topology change khi có thay đổi kết nối.

Hình 5: Cấu hình RSTP

Hình 6: Cấu hình Edge Port

Hình 7: Cấu hình BPDU Guard
Đồng thời ta cũng cần phải cấu hình BPDU Guard - là một tính năng bảo mật trong Spanning Tree Protocol (STP, RSTP, MSTP), giúp ngăn chặn BPDU trên các cổng đã được cấu hình là Edge Port (PortFast).
Khi một cổng được cấu hình BPDU Guard nó sẽ bị đưa vào trạng thái "err-disabled" (tắt hoàn toàn) để bảo vệ mạng. Phải bật lại cổng thủ công hoặc sử dụng errdisable timeout để tự động kích hoạt lại sau một thời gian.
Các cấu hình này tương tự với các switch còn lại.
3. Multiple Spanning Tree Protocol (MSTP)
MSTP (Multiple Spanning Tree Protocol), được định nghĩa trong IEEE 802.1s, cho phép nhóm nhiều VLAN vào một MST Instance (MSTI) riêng biệt, giúp tối ưu hóa băng thông và phân phối tải hợp lý trong mạng lớn. Các trạng thái của các cổng tương tự với RSTP.
MSTP có quá trình bầu chọn khác biệt hơn hai giao thức trên ở chỗ mỗi MSTI có thể có root bridge riêng, được bầu chọn dựa trên Bridge ID trong phạm vi MSTI đó. Điều này cho phép phân phối lưu lượng mạng hiệu quả hơn bằng cách sử dụng các đường dẫn khác nhau cho các MSTI khác nhau.
Dưới đây là một số cấu hình cơ bản của RSTP trên thiết bị Allied Telesis, có thể sử dụng các mã sau để thực hiện.
Mã:
spanning-tree mode mstp
spanning-tree enable
spanning-tree mst configuration
region <region-name>
revision <revision-number>
instance <mstiid> vlan {<vid>| <vid-list>}
Giải thích:
Câu lệnh "region <region-name>" giúp xác định tên vùng MSTP vì MSTP chia mạng thành các vùng (region), trong đó tất cả các switch thuộc cùng một MST Region phải có cùng: tên region, số revision và ánh xạ VLAN → MST Instance. Các switch trong cùng một MST Region có thể chia sẻ thông tin MSTP và tối ưu hóa đường đi, giúp cân bằng tải và tránh loop.
Câu lệnh "revision <revision-number>" giúp xác định số hiệu phiên bản (revision number) của cấu hình MST, có giá trị từ 0 đến 255 và giúp theo dõi và đồng bộ cấu hình MSTP giữa các switch trong cùng một MST Region.
Câu lệnh "instance <mstiid> vlan {<vid>| <vid-list>}" giúp tạo MST Instance (MSTI) và ánh xạ VLAN vào instance đó. Một MSTI có thể chứa nhiều VLAN, nhưng một VLAN chỉ có thể thuộc một MSTI.
Ngoài ra, dưới đây là bảng so sánh một số tiêu chí của STP, RSTP và MSTP để các bạn có thể tóm lượt thông tin hơn.

Hình 8: Bảng so sánh một số tiêu chí cho ba loại giao thức
Bài viết liên quan
Bài viết mới