I.CÁC KHÁI NIỆM VÀ HOẠT ĐỘNG CỦA GIAO THỨC STP BRIDGING LOOP
Các thông báo thay đổi mô hình STP (TCN) và việc cập nhật bảng CAM
Khi STP tái hội tu, một vài hàng trong bảng CAM có thể không còn hợp lệ. Ví dụ, trong ví dụ trên, SW3 có trong bảng MAC của nó một hàng là 0200.1111.1111 là địa chỉ của Router1 MAC chỉ ra cổng F0/4 của nó. Khi kết nối giữa SW1 và SW2 bị lỗi, SW3 cần phải cập nhật bảng CAM của nó để chỉ ra 0200.1111.1111 chỉ ra cổng F0/1. Để cập nhật bảng CAM, có hai việc cần diễn ra: Tất cả các switch cần phải được lưu ý để xóa các hàng trong bảng CAM. Từng switch phải sử dụng khoảng thời gian timeout ngắn, tương đương forward delay 15 giây để xóa bảng CAM.
Bởi vì một vài switch có thể không trực tiếp nhận thấy sự thay đổi trong sơ đồ mạng, bất kỳ switch nào khi phát hiện một sự thay đổi đều có trách nhiêm lưu ý cho các switch còn lại. Lúc này, một switch sẽ lưu ý switch gốc thông qua các TCN BPDU. TCN sẽ được gửi ngược về switch gốc. Sau đó, switch gốc sẽ lưu ý tất cả các switch còn lại. Quá trình hoạt động như sau:
Khi một switch nhận ra một sự thay đổi trạng thái, switch sẽ gửi ra TCN BPDU ra khỏi cổng gốc. Switch sẽ lặp lại thông điệp này cho đến khi nào nó nhận được ACK. Switch kế tiếp nhận được TCN BPDU sẽ gửi ngược lại ACK thông qua hello BPDU bằng cách đánh dấu bit TCA trong hello BPDU. Switch Designated trên một phân đoạn mạng sẽ tiếp tục gửi ra các TCN BPDU trên các cổng gốc của nó và chờ hồi đáp (ACK) từ DP trên phân đoạn mạng đó.
Bằng cách lặp lại các bước 1 và 2, cuối cùng switch gốc cũng sẽ nhận được TCN BPDU. Khi nhận được, switch gốc sẽ thiết lập bit TCA trong hello BPDU của nó và gửi ra tất cả các switch khác, lưu ý các switch khác là đã có một sự thay đổi xảy ra. Một switch nhận một hello BPDU với bit TCA được thiết lập sẽ làm ngắn khoảng thời gian xóa các dòng không còn hợp lệ trong bảng CAM.
Chuyển đổi từ trạng thái khóa sang chuyển tiếp
Khi STP chuyển sang một dạng hội tụ mới, một vài cổng đang trong trạng thái khóa có thể được gán vai trò là DP hoặc RP. Vì vậy, các cổng này cần phải được chuyển sang trạng thái chuyển tiếp. Tuy nhiên, việc chuyển trạng thái từ khóa sang trạng thái chuyển tiếp không thể được thực hiện mà không có nguy cơ gây ra vòng lặp. Để chuyển một cổng sang trạng thái chuyển tiếp, đầu tiên switch sẽ đặt cổng này vào trạng thái lắng nghe, sau đó sang trạng thái học địa chỉ MAC. Mỗi trạng thái sẽ tồn tại trong khoảng thời gian gọi là thời gian trì hoãn chuyển tiếp (forward delay timer) 15 giây.
Trạng thái |
Có chuyển frame dữ liệu |
Học địa chỉ MAC nguồn trên frame nhận được |
Trạng thái tạm thời hay ổn định? |
Khóa (blocking) |
No |
No |
Ổn định |
Lắng nghe (listening) |
No |
No |
Tạm thời |
Học địa chỉ MAC (learning) |
No |
Yes |
Tạm thời |
Chuyển tiếp (forwarding) |
Yes |
Yes |
Ổn định |
Tắt (disable) |
No |
No |
Ổn định |
Tóm lại, khi STP nhận ra một sự thay đổi trong sơ đồ mạng, nó sẽ hội tụ có thể bằng cách chọn ra một số cổng khác làm RP, DP…Bất kỳ một switch nào thay đổi các RP hoặc DP sẽ gửi ra các TCN BPDU về switch gốc. Đối với các cổng được gán như RP hoặc DP, 802.1D sẽ dùng các trạng thái lắng nghe và học địa chỉ MAC trước khi có thể chuyển sang trạng thái chuyển tiếp. Trong khi quá trình từ trạng thái chuyển tiếp sang trạng thái khóa có thể thực hiện tức thời.
PVST và STP chạy trên đường trung kế
Nếu chỉ có 1 phiên bản STP được dùng cho một mạng switch với các kết nối dự phòng và có nhiều VLAN, sẽ có vài cổng sẽ trong trạng thái bị khóa, không dùng được mặc dù trong trạng thái ổn định. Các kết nối dự phòng này sẽ được dùng cho mục đích dự phòng.
Tính năng Cisco PVST+ cho phép tạo ra các phiên bản STP cho từng VLAN. Bằng cách hiệu chỉnh cấu hình STP cho từng VLAN, mỗi phiên bản STP có thể dùng các switch gốc khác nhau và có những cổng bị khóa khác nhau. Kết quả là, tải có thể được cân bằng trên vài kết nối có sẵn. PVST+ cho phép hoạt động linh hoạt hơn CST. Mỗi VLAN sẽ chạy một tiến trình STP riêng biệt và không bị phụ thuộc lẫn nhau. Thêm vào đó, nó còn cung cấp thêm khả năng cân bằng tải. Khuyết điểm của giao thức này là việc sử dụng nhiều tài nguyên của CPU trong việc quản lí nhiều VLAN. PVST sử dụng kiểu trung kế ISL nên đối với một mạng tồn tại 2 dạng STP là PVST và CST thì sẽ dẫn đến không tương thích về mặt trung kế. Do đó BPDUs sẽ không được quảng bá giữa 2 loại STP này. Cisco tung ra một phiên bản khác của STP là PVST+ nhằm giải quyết vấn đề tương thích giữa CST và PVST. PVST+ đảm nhiệm vai trò như là một trình thông dịch giữa PVST và CST. PVST+ có thể giao tiếp với PVST qua kết nối ISL, ngược lại PVST+ có thể giao tiếp với CST qua kết nối dot1q. Tại biên giới của PVST và PVST+ sẽ diễn ra việc ánh xạ STP một-một. Tại biên giới của PVST+ và CST sẽ diễn ra việc ánh xạ giữa một STP của CST và một PVST trong PVST+.
Trong hình trên có một kí hiệu là MST, nhưng MST ở đây không phải là Multiple Spanning tree mà là Mono Spanning tree. Ta có thể hiểu MST trong trường hợp này đồng nghĩa với CST.
Ví dụ, trong hình trên, các switch ở lớp truy cập sẽ bị khóa trên các cổng khác nhau của VLAN1 và VLAN2 với các switch gốc khác nhau. Với các switch gốc khác nhau và các giá trị chi phí trên cổng khác nhau, các thiết bị lớp truy cập sẽ gửi lưu lượng của VLAN 1 trên một kết nối trung kế và VLAN 2 trên kết nối trung kế còn lại.
Dùng kiểu trung kế 802.1Q (còn gọi là Dot1Q) với STP không hỗ trợ PVST+ trong giai đoạn ban đầu. Tuy nhiên, switch của Cisco hỗ trợ PVST+ trên các kết nối trung kế 802.1Q. Vì vậy, với tất cả các switch của Cisco, mặc định PVST+ sẽ đươc dùng. Khi dùng 802.1Q với các switch không phải là Cisco, switch phải hoàn toàn tuân theo chuẩn của IEEE. Vì vậy kết nối trung kế chỉ hỗ trợ CST. Nếu dùng chuẩn 802.1Q, chỉ có một phiên bản của STP chạy trên native VLAN và sơ đồ STP sẽ được dùng cho tất cả các VLAN. Mặc dù dùng chỉ một phiên bản của STP giúp làm giảm phí tổn gửi BPDU, cơ chế này có hạn chế là không hỗ trọ cân bằng tải dùng nhiều phiên bản STP.
Trong hình này, không có một thông tin PVST+ cần phải truyền giữa các miền CST. Các miền PVST+ sẽ ánh xạ các CST vào các phiên bản của PVST+. Hai miền của PVST+ bị tách biệt bởi một miền CST. Các thông tin của PVST+ cần phải xem các miền CST như một một kết nối đơn và sẽ đóng gói các BPDU của PVST+ xuyên qua miền CST. Quá trình đóng gói (tunnel) được tạo ra bằng cách gửi các BPDU về địa chỉ multicast là 0100.0CCC.CCCD và các BPDU sẽ được đuôi với giá trị VLAN-ID. Kết quả là, các switch không phải của Cisco sẽ chuyển các BPDU như là multicast và không diễn dịch các frame này như là BPDU. Khi các BPDU đến được switch PVST+ đầu tiên trong miền PVST+ khác, switch đang lắng nghe ở địa chỉ multicast 0100.0CCC.CCCD sẽ đọc và diễn dịch BPDU. 802.1Q cùng với 802.1s sẽ cho phép các kết nối trung kế 802.1Q hỗ trợ nhiều phiên bản STP khác nhau.