Trong bài này, ta sẽ đi tìm hiểu chi tiết về giao thức RSTP (Rapid Spanning Tree). Đây là phiên bản nâng cấp của giao thức STP và hoạt động ở lớp 2 để ngăn chặn vòng lặp và Broadcast Storm trong mạng khi có kết nối dự phòng. RSTP có thời gian hội tụ ngắn hơn và tương thích với STP. Để tránh vòng lặp, nó loại bỏ các kết nối thừa và chỉ cho 1 đường dẫn tốt nhất giữa hai thiết bị hoạt động.
Tổng quan về giao thức RSTP
Giao thức STP (802.1D) được sử dụng để khôi phục kết nối sau khi ngừng hoạt động nhưng nó cần thời gian hội tụ gần 60 giây hoặc có thể lâu hơn. Nó chỉ phù hợp với yêu cầu hiệu suất mạng trước đây nhưng không còn đáp ứng nhu cầu mạng hiện nay.
Sự phát triển của Switch Layer 3 đòi hỏi phải có một giao thức về liên kết để giải quyết với các giao thức định tuyến như OSPF hoặc EIGRP để cung cấp đường dẫn thay thế trong thời gian ngắn hơn.
Cisco đã sử dụng các tính năng như UplinkFast, Backbone Fast và Port Fast để giảm thời gian hội tụ trong giao thức STP. Nhưng nhược điểm là các giao thức này là giao thức độc quyền của Cisco và nó đòi hỏi cấu hình.
Giao thức RSTP (IEEE 802.1w) là sự phát triển của tiêu chuẩn 802.1D. Về cơ bản thì các tham số đều không thay đổi nên nếu đã quen thuộc với STP thì ta rất dễ dàng để cấu hình RSTP. Ban đầu RSTP giới thiệu trong chuẩn IEEE 802.1w và vào năm 2004 IEEE đã quyết định thay thế STP bằng RSTP trong chuẩn 802.1D. Cuối cùng, vào năm 2011, IEEE đã quyết định chuyển tất cả các chi tiết RSTP sang chuẩn 802.1Q .
Hiện nay các dòng sản phẩm Switch Cisco hỗ trợ RSTP gồm Catalyst 2940, Catalyst 2950/2955/3550, Catalyst 2970/3750, Catalyst 3560, Catalyst 3750 Metro, Catalyst 4000/4500 (Cisco IOS®), Catalyst 6000/6500 (Cisco IOS).
Giao thức RSTP hoạt động thế nào?
Về cơ bản có nhiều sự tương đồng giữa giao thức RSTP, nó cũng sử dụng cùng một quy tắc để chọn Root Bridge (cầu gốc), Root Port (cổng gốc) và Designated Port (cổng chỉ định). Dưới đây là cách thức RSTP hoạt động:
1. Lựa chọn Root Bridge:
Khi mới bắt đầu, tất cả các Switch sẽ tham gia với vai trò Root Bridge. Sau đó, chúng so sánh Bridge ID của mình để xác định Switch nào có Bridge ID nhỏ nhất thì sẽ thành Root.
Bridge ID gồm mức độ ưu tiên cổng và địa chỉ MAC. Nếu có cùng mức độ ưu tiên thì địa chỉ MAC của Switch nào nhỏ hơn thì Switch đó làm Root.
2. Vai trò của các cổng:
Root Bridge có tất cả các cổng ở trạng thái Fordwading (chuyển tiếp). Còn các Switch khác trong mạng sẽ xác định cổng gốc và cổng chỉ định. Trong đó cổng gốc là cổng gần nhất tới Root và sẽ được chọn làm cổng chuyển tiếp dữ liệu giữa Root và Switch đó. Các cổng chỉ định cho mỗi segment mạng, đùng để chuyển tiếp dữ liệu từ segment này sang segment khác.
3. Cơ chế chuyển đổi trạng thái cổng:
RSTP có ba trạng thái cổng: Discarding, Learning, và Forwarding.
- Khi một switch khởi động hoặc một cổng mới được kích hoạt, cổng đó sẽ ở trạng thái Discarding trong một khoảng thời gian ngắn.
- Sau đó, cổng sẽ chuyển sang trạng thái Learning, trong đó switch học các địa chỉ MAC của các thiết bị kết nối vào cổng đó.
- Cuối cùng, cổng sẽ chuyển sang trạng thái Forwarding, nơi nó chuyển tiếp dữ liệu trong mạng.
Xem thêm bài viết: Các trạng thái cổng trong giao thức STP
Các trạng thái cổng trong RSTP
Nếu như trong giao thức STP có 5 trạng thái cổng gồm: Disabled, Listening, Learning, Blocking và Forwarding. Nhưng trong giao thức RSTP, các trạng thái cổng Disabled, Blocking, Listening được hợp nhất thành 1 trạng thái Discarding.
Chính vì vậy mà RSTP chỉ có 3 trạng thái cổng:
- Discarding: Trạng thái ban đầu của một cổng khi nó được kích hoạt hoặc khi mạng chuyển đổi. Trong trạng thái này, cổng chỉ lắng nghe các BPDU mà nó nhận được, không chuyển tiếp dữ liệu.
- Learning: Trạng thái sau khi cổng đã học được thông tin về các địa chỉ MAC của các thiết bị kết nối vào cổng đó. Cổng vẫn không chuyển tiếp dữ liệu, nhưng nó đã học được thông tin về topology mạng.
- Forwarding: Trạng thái cuối cùng của một cổng, khi nó đã được xác định là đường dẫn tốt nhất để chuyển tiếp dữ liệu. Trong trạng thái này, cổng sẽ chuyển tiếp dữ liệu giữa các thiết bị trên mạng.
Việc rút gọn số lượng trạng thái cổng làm giao thức RSTP giảm thời gian phục hồi kết nối nhanh hơn giao thức STP.
Các loại cổng trong RSTP
Với giao thức STP, ta chỉ có 2 loại cổng gồm cổng gốc và cổng chỉ định. Trong khi đó, giao thức RSTP bổ sung thêm 2 loại cổng khác gồm cổng Back-Up (dự phòng) và cổng Alternate (thay thế). Dưới đây là các mô tả chi tiết vai trò cổng trong giao thức RSTP:
1. Root Port:
Cổng có chi phí đường dẫn tốt nhất được bầu làm cổng gốc. Một cầu nối không phải gốc chỉ có thể có một cổng gốc. Cổng gốc chuyển tiếp dữ liệu tới bridge. Cổng nhận gói tin BPDU tốt nhất sẽ là cổng gốc của Switch.
2. Designated Port:
Đây là cổng không phải root và được sử dụng làm cổng chuyển tiếp cho mọi phân đoạn mạng LAN. Một cổng được gọi là cổng chỉ định nếu nó có thể gửi BPDU tốt nhất trên phân đoạn mà nó được kết nối.
3. Back-up Port:
Đây là đường dẫn dự phòng đến một đoạn nơi một cổng cầu khác đã được kết nối. Các cổng này nhận BPDU từ switch nhưng chúng vẫn ở trạng thái bị Blocking. Một cổng dự phòng sẽ nhận được nhiều BPDU hữu ích hơn từ cùng một Bridge mà nó đang kích hoạt. Đây là cho tính năng Backbone Fast tích hợp sẵn trong RSTP.
4. Alternate Port:
Đây cũng là cổng dự phòng với chi phí đường dẫn ít hơn. Các cổng này đều ở trạng thái Blocking. Một cổng thay thế nhận được nhiều BPDU hữu ích hơn từ một Bridge khác. Và đây là tính năng Uplink Fast tích hợp trong RSTP.
Định dạng gói tin BPDU trong RSTP
RSTP có định dạng gói tin BPDU mới. Thay vì như STP chỉ có 2 FLAG gồm thông báo thay đổi cấu trúc TC và xác nhận TC (TCA) thì RSTP sử dụng tất cả 6 Bit còn lại để thực hiện:
- Mã hóa vai trò và trạng thái cổng tạo bởi BPDU.
- Xử lý co chế đề xuất / thỏa thuận.
Cách RSTP xử lý gói tin BPDU
Quá trình Hello là quá trình mà các switch gửi các thông điệp “Hello” định kỳ tới nhau để duy trì sự kết nối và thông tin về topology của mạng. Trong STP, BPDU chỉ được gửi khi một cổng nhận được BPDU từ cổng gốc, và nó không gửi BPDU định kỳ. Trong RSTP, mỗi switch gửi BPDU mỗi lần quá trình Hello diễn ra. Chu kỳ diễn ra Hello là 2 giây (mặc định), ngay cả khi nó không nhận được gói tin BPDU thì nó vẫn gửi tin nhắn Hello.
Trong RSTP, nếu một cổng không nhận được BPDU trong một khoảng thời gian nhất định (thường là ba lần “Hello” liên tiếp), nó coi thông tin giao thức đã lỗi thời và bắt đầu thực hiện các biện pháp khẩn cấp như chuyển đổi trạng thái cổng.
Ngoài ra, trong RSTP còn chấp nhận các gói tin BPDU kém hơn. Đây là cơ chế cốt lõi cho tính năng Backbone Fast. Nhưng đã được RSTP tích hợp. Khi một Switch nhận được gói tin BPDU kém hơn nó sẽ chấp nhận thông tin đó và thay thế thông tin cũ. Trong khí đó, giao thức STP thì nếu Switch nhận được gói tin BPDU kém hơn nó sẽ loại bỏ và biết rằng thiết bị lân cận đã bị mất kết nối, tiếp đó quá trình phục hồi kết nối sẽ được diễn ra.
Những cải tiến của RSTP so với STP
- RSTP giảm thời gian hồi đáp so với STP bằng cách gộp trạng thái cổng Disabled, Listenging, Blocking thành Discarding.
- Tạo thêm hai loại cổng dự phòng và thay thế để tích hợp sẵn tính năng UplinkFast và Backbone Fast giúp giảm thời gian STP.
- với STP, switch gốc tạo và gửi Hello đến tất cả các switch khác, sau đó được chuyển tiếp bởi các switch không phải root. Với RSTP, mỗi switch có thể tạo Hellos riêng.
Mong rằng qua bài viết này của Hợp, các bạn đã biết được thông tin về giao thức RSTP và những sự khác biệt giữa giao thức này và giao thức STP.
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!