Trong bài viết này ta sẽ đi tìm hiểu chi tiết về cách giao thức STP (Spanning Tree) phản ứng khi cấu trúc liên kết trong mạng có sự thay đổi. Và làm thế nào để các Switch nhận biệt được sự thay đổi đó và không gây ảnh hưởng đến hiệu suất mạng.
Quá trình thay đổi cấu trúc trong giao thức STP
Khi có sự thay đổi cấu trúc liên kết trong giao thức STP, nó sẽ làm ảnh hưởng đến tất cả các thiết bị Switch trong cấu trúc liên kết lớp 2 trong mô hình OSI. Khi một Switch phát hiện có sự thay đổi liên kết, nó gửi đi gói tin Topology Change Notification (TCN) thông báo cho các chuyển mạch khác trên mạng.
Gói tin TCN được gửi đi trong một địa chỉ MAC đặc biệt và không chứa thông điệp STP đầy đủ. Thay vào đó, nó chỉ chứa thông tin về sự thay đổi trong topology của mạng.
Mục đích chính của TCN là thông báo cho các chuyển mạch khác về sự thay đổi trong cấu trúc mạng, để chúng có thể nhanh chóng học lại thông tin về cấu trúc mới và cập nhật bảng chuyển mạch.
Switch Upstream nhận được TCN sẽ gửi xác nhận và chuyển tiếp tới Root Bridge của nó. Khi nhận được TCP, Root Bridge sẽ tạo gói tin BPDU cấu hình có chứa Flag (cờ) thay đổi cấu trúc và gửi nó tới tất cả các Switch.
Các Switch nhận được gói tin BPDU chứa FLAG sẽ thay đổi bộ định thời gian địa chỉ MAC của chúng bằng định thời gian chuyển tiếp trễ (mặc định là 15 giây). Các Switch sẽ xóa địa chỉ MAC của thiết bị không liên lạc được trong thời gian đó. Khi nhận được gói tin BPDU cấu hình thứ hai, bộ định thời gian địa chỉ MAC được đặt lại giá trị bình thường (mặc định là 300 giây).
Quá trình gửi tin TCN không xảy ra ngay lập tức sau khi sự thay đổi xảy ra. Thay vào đó, nó có thể có một thời gian chậm trễ nhất định trước khi gửi đi gói tin TCN. Cơ chế cập nhật sau đó được kích hoạt trên các chuyển mạch nhận được TCN để cập nhật thông tin về topology mới.
Ví dụ về thông báo thay đổi cấu trúc TCN
Khi các Switch Upstream không được thông báo về sự thay đổi trong cấu trúc mạng, chẳng hạn như: ngắt kết nối hoặc lỗi cỗng. CHúng có thể gửi các gói đến liên kết không thể truy cập. Điều này là do bộ định thời gian địa chỉ MAC mặc định là 300 giây (5 phút). Hãy quan sát ví dụ dưới đây:
Trong hình ta thấy rằng liên kết giữa giữa S1 và S2 bị hỏng. Mà lưu lượng từ A đến B đi qua S1, S3, S4 và S2. Khi liên kết giữa S3 và S4 lỗi thì lưu lượng sẽ được chuyển tiếp từ S1 đến S2. Tuy nhiên địa chỉ MAC trỏ đến S3 trên S1 vẫn còn. Trước khi bộ đếm thời gian địa chỉ MAC hết hạn, lưu lượng vẫn sẽ được chuyển tiếp đến S3 nhưng liên kết lại không còn. Do đó xảy ra tình trạng mất gói tin.
Chính vì vậy ta cần các tin nhắn TCN để thông báo về cấu trúc liên kết thay đổi nhằm thông báo toàn bộ mạng STP về những cấu trúc bị thay đổi.
Hãy cùng quan sát thêm ví dụ dưới đây để hiểu rõ cách STP phản ứng khi có sự thay đổi về cấu trúc liên kết:
Hãy để ý ở trong sơ đồ trên, Trạng thái cổng tại điểm T bị thay đổi, thiết bị tầng dưới sẽ gửi TCN đến thiết bị Upstream.
- Thiết bị ngược dòng chỉ xử lý TCN BPDU nhận được trên cổng được chỉ định. Các cổng khác có thể nhận TCN BPDU nhưng không xử lý chúng.
- Các Switch Upstream đặ các bit TC và TCA trong trường FLAG của tệp tin BPDU cấu hình thành 1 và trả về các BPDU cấu hình để hướng dẫn các thiết bị tầng dưới ngừng gửi TCN BPDU.
- Switch Upstram gửi một bản sao của TCN BPDU tới Root Switch.
- Các bước 1, 2,3 và 4 lặp lại đến khi Root Bridge nhận được TCN BPDU.
- Root Switch đặt các bit TC và TCA trong thẻ FLAG của BPDU thành 1. Khi đó, bit TC sẽ hướng dẫn các Switch tầng dưới xóa địa chỉ MA và bit TCA hướng dẫn các thiết bị ngừng gửi TCN BPDU.
Cách kiểm tra các thay đổi cấu trúc liên kết STP
Để kiểm tra những thay đổi cấu trúc liên kết ta sẽ dùng lệnh sau: show spanning-tree [vlan vlan-id] detail
Kết quả của lệnh này cho biết số lượng thay đổi cấu trúc và thời gian xảy ra. Nếu số lượng TCN tăng đột ngột hoặc liên tục thì chắc chắn có vấn đề xảy ra. Ta sẽ cần kiểm tra mọi cổng chuyển đổi được kết nối với Switch để theo dõi chi tiết về STP.
1. Lỗi liên kết trực tiếp
Các lỗi liên kết trực tiếp trong cấu trúc liên kết của STP gồm mất nguồn, khởi đọng lại hoặc bất kỳ nguyên nhân nào khiến cổng bị hỏng. Lúc này STP sẽ phản ứng theo 3 cách tùy vào tình huống cụ thể:
Kịch bản 1:
Ta có 3 Switch kết nối với nhau theo mạng vòng. Trong đó SW1 là Root. Liên kết giữa SW2 và SW3 không thành công. Cổng chỉ định trên SW2 là Gi1/3 và cổng bị chặn trên SW3 là Gi1/2. Lúc này không có ảnh hưởng đến cấu trúc vì cổng Gi1/2 của SW3 đã bị chặn. SW2 và SW3 sẽ gửi tin TCN đến Root (SW1) để xóa bảng địa chỉ MAC.
Kịch bản 2:
Liên kết giữa SW1 và SW3 không thành công. Cổng Gi1/2 của SW3 bị chặn và khiến lưu lượng từ SW1 và SW2 sang SW3 bị chặn. Hãy xem hình ảnh dưới đây:
Quá trình STP phản ứng như sau:
- SW1 thấy lỗi liên kết trên Gi1/3 và SW3 phát hiện lỗi liên kết tịa Gi1/1.
- Vì SW1 là Root nên nó không cần tạo Flag TCN từ RP của nó. SW3 xóa BPDU nhận từ SW1 trên cổng G1/1 và gửi TCN đến SW1. Nhưng chắc chắn là SW3 không thể gửi được do TP của nó bị hỏng.
- SW1 gửi BPDU cấu hình với FLAG TCN mà tất cả Switch nhận được.
- SW2 và SW3 nhận được BPDU với FLAG. Chúng đổi bộ đặt giờ địa chỉ MAC thành bộ hẹn giờ trễ và xóa địa chỉ MAC cũ. SW2 không biết có sự thay đổi cấu trúc.
- SW3 đợi BPDU của Root hoặc bộ đếm thời gian Max Age hết hạn để đặt lại trạng thái cổng và bắt đầu chuyển sang trạng thái Listening trên cổng Gi1/2 của nó.
- Trước khi Gi1/2 của SW3 thành RP, SW3 mất 15 giây cho trạng thái Listening và 15 giây cho trạng thái Learning. Tổng cộng là 30 giây.
Kịch bản 3:
Liên kết giữa SW1 và SW2 bị lỗi. Cổng Gi1/2 của SW3 bị chặn làm lưu lượng từ SW1 và SW3 sang SW2 bị ngăn chặn.
Quá trình STP phản ứng như sau:
- SW1 phát hiện lỗi liên kết trên Gi1/2 và SW2 phát hiện lỗi trên Gi1/1.
- SW2 xóa BPDU nhận từ SW1 trên cổng Gi1/1 và gửi TCN đến SW1 nhưng không thể.
- SW1 gửi tin BPDU cấu hình có FLAG TCN mà SW3 nhận được. SW3 không thể chuyển tiếp tới SW2 vì cổng Gi1/2 của nó bị chặn. SW2 giả định rằng đó là Root và gửi các BPDU cho biết cầu gốc chính là cầu nối đó.
- SW3 nhận BPDU FLAG TCN từ SW1 và đặt lại độ đếm thời gian địa chỉ MAC thành bộ đếm thời gian trễ chuyển tiếp và xóa các địa chỉ MAC cũ. Nó cũng nhận BPDU từ SW2 nhưng loại bỏ vì nó đang nhận BPDU tốt hơn từ SW1.
- Khi bộ đếm thời gian Max Age của SW3 hết hạn và cổng Gi1/2 trên SW3 chuyển từ trạng thái Blocking sang Listening. SW3 sẽ có thể chuyển tiếp BPDU cấu hình sang SW2.
- SW2 nhận BPDU từ SW1 qua SW3 và thấy rằng các BPDU tốt hơn và đánh dấu G1/3 là RP và chuyển sang trạng thái Listening.
- Tổng thời gian để SW2 hoàn tất quá trình là 52 giây. Gồm 20 của bộ đếm thời gian Max-Age trên SW3, 2 giây cho BPDU cấu hình từ SW3, 15 giây để Listening và 15 giây cho trạng thái Learning.
2. Lỗi liên kết gián tiếp
Các lỗi liên kết gián tiếp bao gồm giao tiếp STP bị mất hoặc bị lọc giữa các Switch khi liên kết hoạt động. Hãy xem ví dụ dưới đây để thấy liên kết giữa SW1 và SW3 bị hỏng:
Quá trình STP phản ứng như sau:
SW1 và SW3 vẫn báo cáo liên kết trạng thái “UP”.
SW3 ngừng nhận BPDU cấu hình. Giao diện Gi1/01 của nó lưu trữ mục nhập được lưu trong bộ nhớ đệm cho RP. Cổng Gi1/02 của SW3 bị chặn, bỏ qua các BPDU cấu hình của SW1 thông qua SW2. Bộ đếm thời gian Max Age của SW3 hết hạn và nó sẽ xóa mục nhập RP được lưu trong bộ nhớ đệm. Sau đó nó chuyển Gi1/0/2 từ trạng thái Blocking sang trạng thái Listening.
SW2 tiếp tục phát các BPDU cấu hình của SW1 tới SW3. Trên cổng Gi1/0/2 SW2 tiếp tục phát các BPDU cấu hình của SW1 tới SW3.
Trên Gi1/0/2, SW3 nhận BPDU cấu hình từ SW1 qua SW2. Cổng hiện được chỉ định là RP và tiếp tục chuyển đổi giữa trạng thái Listening và Learning.
Tổng thời gian SW3 hoàn thành quá trình này là 52 giây. Trong đó, bộ đếm thời gian Max age 20 giây, 2 giấy cho BPDU cấu hình trên SW2, 15 giây để Listening và 15 giây cho trạng thái Learning.
Mong rằng qua bài viết này bạn đã có cái nhìn tổng quan nhất về cách giao thức STP phản ứng lại khi có sự thay đổi cấu trúc liên kết. Từ đó bạn đã hiểu rõ hơn về giao thức STP. Nếu có câu hỏi thắc mắc gì? Hãy để lại dưới phần bình luận để mình giải đáp chi tiết!
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!