Giao thức STP là giao thức hoạt động trên các thiết bị chuyển mạch với tác dụng để giải quyết vòng lặp (loop). Đây là một trong những giao thức bạn cần phải hiểu nếu đang muốn trở thành kỹ sư mạng hay quyết định tham gia kỳ thi CCNA. Hoặc đơn giản bạn muốn hiểu về các tính năng của bộ chuyển mạch. Bài viết này sẽ giới thiệu chi tiết về giao thức STP, tìm hiểu lý do vì sao ta cần giao thức này và cách nó hoạt động như thế nào?
Các nội dung chính trong bài bao gồm:
- Giao thức Spanning Tree Protocol
- Tại sao cần giao thức STP?
- Giao thức STP hoạt động như thế nào?
- Các loại giao thức STP
- Các trạng thái của STP
Giao thức Spanning Tree Protocol
Giao thức STP (Spanning Tree Protocol) là một tiêu chuẩn mạng được thiết kế để ngăn chặn các vòng lặp trong mạng LAN. Vòng lặp có thể xảy ra khi nhiều đường cáp kết nối giữa các thiết bị mạng như Switch và Bridge. Nếu ta không kiểm soát điều này, các vòng lặp có thể dẫn tới vấn đề như Broadcast Storms hay tăng cường gói tin làm ảnh hưởng đến hiệu suất mạng.
STP thực hiện điều này bằng cách xác định các liên kết dự phòng và tự động chọn các đường kết nối chính thức để duy trì một cấu trúc mạng không có vòng lặp. Nếu một đường kết nối chính thức bị lỗi, STP có khả năng chuyển đổi sang một liên kết dự phòng để duy trì tính ổn định của mạng.
Hiện nay có nhiều phiên bản STP, như STP chuẩn (IEEE 802.1D), RSTP (Rapid Spanning Tree Protocol – IEEE 802.1w), và MSTP (Multiple Spanning Tree Protocol – IEEE 802.1s), cung cấp các cải tiến về thời gian hồi phục và khả năng mở rộng trong so với phiên bản gốc.
Tại sao cần giao thức STP?
Ta nói giao thức STP dùng để ngăn chặn vòng lặp. Vậy thực chất vòng lặp là gì? Hãy cùng theo dõi ví dụ sau đây:
Trong hình trên, ta có hai bộ chuyển mạch (SW1 và SW2) được liên kết với nhau bằng 1 sợi cáp mạng duy nhất. Để tăng tính đảm bảo của mạng, ta sẽ thêm một cáp nối khác giữa hai switch, tạo ra hai đường kết nối song song. Điều này giúp cải thiện độ tin cậy của mạng bằng cách loại bỏ điểm lỗi duy nhất và tăng khả năng chịu lỗi khi một trong các đường kết nối gặp sự cố.
Có thêm cáp bổ sung, nên mạng giờ đây đã có tính dự phòng. Tuy nhiên điều này phát sinh ra vòng lặp. Tại sao lại có vòng lặp trong ví dụ này?
- Giả sử máy chủ H1 gửi yêu cầu ARP để tìm địa chỉ MAC của máy chủ H2. Yêu cầu ARP là một khung phát sóng (broadcast).
- SW1 sẽ chuyển tiếp khung phát sóng này tới tất cả các cổng của nó trừ cổng nhận được khung.
- Do đó, SW2 sẽ nhận được 2 khung phát sóng giống nhau vì có 2 cổng kết nối giữa SW1 và SW2.
SW2 sẽ làm gì với các khung phát sóng này?
- SW2 cũng sẽ chuyển tiếp khung phát tới tất cả các cổng ngoại trừ cổng nó nhận được.
- Điều này có nghĩa là khung phát sóng nhận được tại cổng Fa0/0 sẽ được chuyển tiếp từ cổng Fa1/0.
- Khung phát sóng nhận được tại cổng Fa1/0 sẽ được chuyển tiếp từ cổng Fa0/0.
Lúc này, một vòng lặp xuất hiện và hai bộ chuyển mạch SW1 và SW2 sẽ tiếp tục việc truyền tiếp khung phát sóng nhiều lần cho tới khi:
- Ta sửa vòng lặp bằng cách cắt bỏ một dây cáp mạng kết nối giữa 2 Switch.
- Một trong 2 Switch sẽ bị sự cố vì quá tải bởi lưu lượng truy cập.
Các Frame Ethernet không có giá trị TTL, vì vậy chúng sẽ lặp lại mãi mãi. Ngoài những yêu cầu ARP thì bất kể khi nào Switch không biết địa chỉ MAC thì nó sẽ đều gây ra tình trạng trên.
Do đó, giao thức STP thực sự cần thiết để giúp mạng tránh sự xuất hiện vòng lặp này.
Giao thức STP hoạt động như thế nào?
Giao thức STP hoạt động gồm 3 bước sau:
- Chọn Root Bridge
- Chọn Root Port
- Chọn Designated Port và non-Designated Port
Để hiểu cách giao thức STP hoạt động, trước hết ta sẽ cần biết một số khái niệm sau:
1. Bridge
Bridge là thành phần quan trọng trong giao thức VTP, có chức năng kết nối với 1 hoặc nhiều phân đoạn mạng LAN. Giao thức STP sử dụng Bridge để tìm ra cấu trúc mạng không có vòng lặp.
2. ID Bridge
ID Bridge là thông tin sử dụng địa chỉ MAC của bridge để định danh duy nhất mỗi bridge trong mạng STP. Nó có độ dài 8 Byte, gồm: 2 byte dành cho Bridge Priority và 6 byte cho địa chỉ MAC.
3. Root Bridge
Root Bridge là bridge có địa chỉ MAC thấp nhất và đóng vai trò quan trọng nhất trong việc xây dựng cây cấu trúc của STP.
4. BPDU
BPDU là gói tin chứa thông tin về các cấu trúc STP, được gửi giữa các bridge để xác định Root Bridge, Root Port, Designated Port và duy trì tính ổn định của mạng.
5. Bridge Priority
Bridge Priority là một yếu tố quyết định cùng với địa chỉ MAC để xác định độ ưu tiên của mỗi bridge khi chọn Root Bridge trong quá trình xây dựng cây cấu trúc STP. Mỗi Switch đều được gắn một mức độ ưu tiên nhất định, mặc định là 32768.
Khi đã nắm qua các khái niệm này, ta sẽ đi tìm hiểu cách giao thức STP hoạt động:
1. Lựa chọn Root Bridge
Mọi switch trong mạng tham gia quá trình xác định Root Bridge, một switch chủ đạo mà mọi đường kết nối đến switch đều đi qua. Các switch so sánh địa chỉ MAC để xác định switch nào có địa chỉ MAC thấp nhất, và switch này trở thành Root Bridge.
Root Bridge có cấu ID Bridge thấp nhất. ID Bridge được tính bằng: ID Bridge = Bridge Priority + Địa chỉ MAC
Nhưng theo mặc địch thì các Switch đều có Bridge Priority (mức độ ưu tiên) như nhau. Do đó ta sẽ xem xét đến địa chỉ MAC của các thiết bị chuyển mạc. Một thông báo BPDU sẽ được gửi đi và so sánh địa chỉ MAC của các thiết bị Switch, Switch nào có địa chỉ MAC thấp nhất sẽ được chọn.
2. Lựa chọn Root Port
Mỗi switch xác định cổng (port) có đường kết nối ngắn nhất đến Root Bridge và đánh đánh dấu cổng đó là Root Port. Các Switch sẽ kiểm tra Path Cost (chi phí đường đi).
3. Lựa chọn Designated Port và non-Designated Port
Mỗi segment mạng (segment là một phần của mạng giữa hai switch hoặc giữa switch và host) sẽ có một cổng được chọn làm Designated Port. Cổng này là cổng có đường kết nối ngắn nhất đến Root Bridge.
STP sử dụng các trạng thái Listening và Blocking để ngăn chặn các vòng lặp. Ban đầu, tất cả các cổng đều ở trạng thái Blocking, sau đó chuyển sang trạng thái Listening để lắng nghe các thông báo BPDUs (Bridge Protocol Data Units) từ các switch khác.
Sau khi lắng nghe BPDUs, switch xác định cổng nào là Designated Port trên mỗi đoạn mạng dựa trên thông tin trong BPDUs. Các cổng được chọn làm Designated Port và Root Port chuyển sang trạng thái Forwarding để chuyển tiếp dữ liệu, trong khi các cổng không được chọn sẽ ở trạng thái Blocking để ngăn chặn vòng lặp.
Nếu có sự thay đổi trong cấu trúc mạng, như một cổng hoặc switch mới, STP sẽ thực hiện lại các bước trên để đảm bảo tính ổn định.
Các loại giao thức STP
Hiện nay có khoảng 6 loại STP, dưới đây là bảng liệt kê và đặc điểm của chúng:
Loại STP | Đặc Điểm Chính |
---|---|
STP (IEEE 802.1D) | – Tạo một cây cấu trúc để ngăn chặn vòng lặp trong mạng. |
RSTP (IEEE 802.1w) | – Giảm thời gian hồi phục khi có sự thay đổi trong mạng. |
MSTP (IEEE 802.1s) | – Chia mạng thành nhiều cây cấu trúc (instances), mỗi cây có một Root Bridge và cấu trúc riêng. |
PVST (Cisco Proprietary) | – Thực hiện STP riêng biệt cho mỗi VLAN, tăng cường tính hiệu suất và linh hoạt trong mạng. |
PVST+ (Cisco Proprietary) | – Hỗ trợ tất cả tính năng của PVST cùng với một số cải tiến bảo mật. |
RPVST+ (Cisco Proprietary) | – Kết hợp PVST+ với RSTP để cung cấp hồi phục nhanh chóng cho mỗi VLAN trong mạng Cisco. |
Các trạng thái của STP
Giao thức Spanning Tree Protocol (STP) đưa các cổng của switch qua một số trạng thái khác nhau để xây dựng và duy trì cây cấu trúc. Dưới đây là mô tả về các trạng thái chính của STP:
- Blocking (chặn): Trạng thái chặn là trạng thái khởi đầu của một cổng khi STP bắt đầu quá trình xây dựng cây cấu trúc.
Trong trạng thái này, cổng chỉ lắng nghe các BPDUs (Bridge Protocol Data Units) để xác định cấu trúc mạng. - Listening (lắng nghe): Sau khi cổng ở trạng thái chặn, nó chuyển sang trạng thái lắng nghe. Trong trạng thái này, cổng vẫn chỉ lắng nghe BPDUs.
- Learning (học): Sau khi cổng ở trạng thái lắng nghe, nó chuyển sang trạng thái học. Trong trạng thái này, cổng bắt đầu học địa chỉ MAC của các thiết bị được kết nối với nó.
- Forwarding (chuyển tiếp): Trạng thái chuyển tiếp là trạng thái cuối cùng và đúng đắn cho việc chuyển tiếp dữ liệu. Trong trạng thái này, cổng đã học được thông tin và có thể chuyển tiếp gói tin.
- Disabled (vô hiệu hóa): Cổng ở trạng thái vô hiệu hóa khi nó bị tắt hoặc được cấu hình để không tham gia vào quá trình STP.
Trên đây là tất cả những gì mình muốn giới thiệu với các bạn về giao thức STP. Mong rằng qua bài viết này bạn đã nắm rõ được lợi ích và cách thức hoạt động của nó! Nếu còn bất kỳ điều gì thắc mắc, hãy để lại dưới phần bình luận!
Thông Tin Về Tác Giả
Nguyễn Thành Hợp là một chuyên gia về lĩnh vực thiết bị mạng, viễn thông gần 10 năm kinh nghiệm với nhiều chứng chỉ chất lượng như CCNA 200-301, CCNP, CCDA, CCDP,... do Cisco cung cấp. Sở thích cá nhân là khám phá những kiến thức mới mẻ về công nghệ nói chung và đặc biệt là liên quan đến lĩnh vực mạng!