I. GIAO THỨC CÂY MỞ RỘNG 802.1D (STP)
STP (giao thức cây mở rộng) là giao thức dùng các thông điệp giữa các switch để giúp ổn định hệ thống mạng về một sơ đồ không bị vòng lặp. Để làm được như vậy, STP sẽ đưa vài cổng của switch về trạng thái khoá (blocking), cổng sẽ không truyền hay nhận dữ liệu. Lưu ý trạng thái khoá ở đây chỉ mang ý nghĩa luận lý. Các cổng còn lại sẽ ở trạng thái chuyển tiếp (forwarding). Tất cả các loại cổng này sẽ giúp hình thành một sơ đồ mạng không bị vòng lặp.
1. Hoạt động của STP
Có thể khái quát hoá việc hoạt động của STP thành các bước sau:
1.1. Bầu chọn switch gốc
Chỉ một switch có thể là gốc của một cây mở rộng (spanning tree). Để tìm ra gốc, các switch cần phải bầu chọn. Từng switch sẽ bắt đầu quá trình hoạt động cây mở rộng của nó bằng cách tạo và gửi các gói STP BPDU, trong đó thông báo chính nó là gốc. Nếu một switch lắng nghe được một BPDU tốt hơn (tức là BPDU có bridge ID nhỏ hơn), switch đó sẽ không còn khai báo nó là gốc nữa. Thay vào đó, switch sẽ bắt đầu gửi ra các BPDU nhận được từ switch ứng cử viên tốt hơn. Cuối cùng, tất cả các switch ngoại trừ switch có bridge ID tốt nhất sẽ ngừng gửi BPDU. Switch chiến thắng trong quá trình bầu cử trở thành switch gốc.
Giá trị bridge ID nguyên thủy của 802.1D có hai trường
Định dạng của BPDU bị thay đổi là do việc phát minh ra các phiên bản PVST+ và MST. Với kiểu bridge ID cũ, một bridge ID của một switch cho mỗi phiên bản STP là giống nhau nếu switch dùng một địa chỉ MAC. Nếu dùng nhiều STP, việc mỗi switch chỉ có một bridge ID có thể gây ra nhầm lẫn. Vì vậy Cisco dùng một địa chỉ MAC khác nhau cho từng VLAN khi tạo ra bridge ID. Điều này dẫn đến các giá trị bridge ID khác nhau mỗi VLAN, nhưng cũng sẽ làm tốn nhiều địa chỉ MAC trong từng switch. Trường định danh hệ thống (system ID) mở rộng cho một mạng dùng nhiều phiên bản STP, mà không cần dùng các địa chỉ MAC riêng biệt cho từng switch. Trường này cho phép các VLAN ID được đặt trong 12 bit cuối cùng của trường ưu tiên. Một switch có thể dùng một địa chỉ MAC để xây dựng nên bridge ID và với chỉ số VLAN trong trường system ID, switch này vẫn có một bridge ID duy nhất trong từng VLAN. Việc sử dụng trường system ID mở rộng còn được gọi là cơ chế giảm địa chỉ MAC (MAC address reduction).
1.2. Xác định cổng gốc-RP
Sau khi switch gốc đã được bầu chọn, các switch còn lại cần phải xác định cổng gốc. Tiến trình bầu chọn được mô tả như sau:
Gốc tạo ra các gói hello BPDU và gửi mỗi hai giây. Từng switch khi nhận gói tin hello sẽ tiếp tục chuyển các gói hello. Switch có cập nhật một số trường trong hello như chi phí (cost), bridge ID, độ ưu tiên của cổng (port priority) và số cổng (port number) của switch gửi. Switch không gửi hello BPDU ra những cổng đã trong trạng thái khoá. Trong tất cả các cổng của switch nhận gói tin hello, các cổng có chi phí thấp nhất về gốc sẽ là cổng gốc-RP. Một switch phải kiểm tra giá trị chi phí trong mỗi BPDU, thêm vào giá trị chi phí của cổng để xác định đường đi ngắn nhất về gốc. Switch sẽ cộng thêm vào giá trị chi phí được chỉ ra trong BPDU với giá trị chi phí của cổng của switch mà nó nhận gói BPDU.
Trong hình trên, SW1 là gốc và ban đầu gửi ra các gói hello có chi phí là 0. SW3 sẽ nhận được hai gói hello. Một gói có chi phí 0 và một gói có chi phí bằng 38. Tuy nhiên, SW3 sẽ tính toán chi phí của nó để đi về gốc. Chi phí này được tính bằng cách cộng chi phí của cổng của nó vào các giá trị trên. Kết quả là, mặc dù SW3 có kết nối trực tiếp về SW1, chi phí tổng cộng đi ra cổng F0/4 thấp hơn chi phí đi ra cổng F0/1. Vì vậy SW3 sẽ chọn F0/4 là đường đi về Switch gốc. Cần lưu ý là giá trị chi phí của STP thường được kết hợp với các giao diện (interface). Thực tế có vài khuyến cáo dùng cùng giá trị chi phí của STP trên từng kết nối điểm-điểm của các phân đoạn Ethernet. Giá trị mặc định của một số cổng Ethernet:
Bảng 3.1: Giá trị chi phí mặc định của các cổng Ethernet
Khi một switch nhận được nhiều BPDU có tổng chi phí bằng nhau, switch sẽ dùng tiêu chí sau để so sánh nhằm lựa ra được cổng gốc:
Trong danh sách này, nếu điều kiện đầu tiên không thỏa mãn, switch này phải có nhiều kết nối đến cùng switch láng giềng. Hai điều kiện sau chỉ giúp thiết bị nên chọn kết nối nào để dùng.
1.3. Xác định cổng chỉ định-DP
Một mạng STP hội tụ sẽ dẫn đến chỉ một switch đẩy lưu lượng vào và ra trên phân đoạn mạng đó. Switch đẩy lưu lượng vào hoặc ra một phân đoạn mạng được gọi là switch được chỉ định (designated switch). Cổng dùng để chuyển khung tin ra khỏi phân đoạn mạng đó được gọi là cổng chỉ định (DP). Để được bầu chọn quyền làm DP, một switch phải gửi gói tin hello với giá trị chi phí thấp nhất vào phân đoạn mạng.
2. Hội tụ về sơ đồ mạng mới
STP sẽ tiếp tục giám sát tiến trình gửi các BPDU ngay cả khi cấu trúc mạng đã ổn định. Khi có sự thay đổi, STP cần phải phản ứng và hội tụ về một sơ đồ mạng mới. Khi mạng đã ổn định, các tiến trình sau sẽ tiếp tục:
Khi có sự khác biệt với các tiến trình nêu trên, STP biết rằng sơ đồ mạng đã thay đổi và sự hội tụ mới cần phải diễn ra. Ví dụ, switch gốc mất nguồn điện, tất cả các switch sẽ không nghe BPDU và sau khi khoảng thời gian MaxAge đã hết, các switch sẽ phải bầu chọn lại switch gốc mới.
Một vài bước sẽ xảy ra:
3. Các thông báo thay đổi 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ệ. Xét ví dụ trên, SW3 có trong bảng MAC của nó một hàng là 0200.1111.1111 là địa chỉ MAC của Router 1 chỉ ra cổng F0/4 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:
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 báo 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ề gốc. Sau đó, gốc sẽ báo cho tất cả các switch còn lại.
Quá trình hoạt động như sau:
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 gói tin hello BPDU của nó và gửi ra tất cả các switch khác, lưu ý các switch khác biết 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ẽ giảm khoảng thời gian hết hạn của các thành phần trong bảng CAM.
4. Chuyển đổi từ khoá 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 khoá 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ừ khoá sang 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 (listening), sau đó sang trạng thái học (learning). Mỗi trạng thái sẽ tồn tại trong khoảng thời gian gọi là thời gian trễ do chuyển tiếp (15 giây).
Bảng 3.2: Các trạng thái của cổng trên Switch
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 trước khi có thể chuyển sang trạng thái chuyển tiếp. Trong khi quá trình từ chuyển tiếp sang khoá có thể thực hiện tức thời.
II. STP CHO MỖI VLAN VÀ STP THÔNG QUA TRUNG KẾ
Nếu chỉ có một phiên bản STP được dùng cho một mạng chuyển mạch với các kết nối dự phòng và có nhiều VLAN, sẽ có vài cổng sẽ luôn ở trạng thái khoá, không dùng được mặc dù trong lúc đó mạng vẫn ở trạng thái ổn định. Các kết nối này sẽ được dùng cho mục đích dự phòng.
Tính năng PVST+ của Cisco 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ị khoá 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.
Ví dụ, trong hình 3.4, các switch ở lớp truy cập sẽ bị khoá trên các cổng khác nhau của VLAN 1 và VLAN 2 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í của 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 giao thức trung kế 802.1Q với STP không hỗ trợ PVST+ trong giai đoạn ban đầu. Tuy nhiên, các switch của Cisco hỗ trợ PVST+ trên các kết nối trung kế dùng giao thức 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 VLAN native 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 3.5, 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 gán thẻ 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 khung tin này như là BPDU. Khi các BPDU đến được switch chạy 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.
STP (giao thức cây mở rộng) là giao thức dùng các thông điệp giữa các switch để giúp ổn định hệ thống mạng về một sơ đồ không bị vòng lặp. Để làm được như vậy, STP sẽ đưa vài cổng của switch về trạng thái khoá (blocking), cổng sẽ không truyền hay nhận dữ liệu. Lưu ý trạng thái khoá ở đây chỉ mang ý nghĩa luận lý. Các cổng còn lại sẽ ở trạng thái chuyển tiếp (forwarding). Tất cả các loại cổng này sẽ giúp hình thành một sơ đồ mạng không bị vòng lặp.
1. Hoạt động của STP
Có thể khái quát hoá việc hoạt động của STP thành các bước sau:
- Bầu chọn switch gốc (root switch). Trong thực tế, switch gốc đôi khi còn mang tên gọi là bridge gốc (root bridge). Cả 2 thuật ngữ này là như nhau. Switch có giá trị bridge ID nhỏ nhất sẽ được bầu chọn làm switch gốc. Thông thường, bridge ID được hình thành gồm giá trị ưu tiên (priority) có độ lớn 2 byte và địa chỉ MAC của switch.
- Xác định cổng gốc (root port - RP): là cổng trên những switch không phải là switch gốc có kết nối ngắn nhất về switch gốc.
- Xác định cổng được chỉ định (cổng được chọn designated Port- DP) trên từng phân đoạn mạng: khi có nhiều switch kết nối vào một phân đoạn mạng, đây là cổng của switch chịu trách nhiệm đưa lưu lượng ra khỏi phân đoạn mạng.
1.1. Bầu chọn switch gốc
Chỉ một switch có thể là gốc của một cây mở rộng (spanning tree). Để tìm ra gốc, các switch cần phải bầu chọn. Từng switch sẽ bắt đầu quá trình hoạt động cây mở rộng của nó bằng cách tạo và gửi các gói STP BPDU, trong đó thông báo chính nó là gốc. Nếu một switch lắng nghe được một BPDU tốt hơn (tức là BPDU có bridge ID nhỏ hơn), switch đó sẽ không còn khai báo nó là gốc nữa. Thay vào đó, switch sẽ bắt đầu gửi ra các BPDU nhận được từ switch ứng cử viên tốt hơn. Cuối cùng, tất cả các switch ngoại trừ switch có bridge ID tốt nhất sẽ ngừng gửi BPDU. Switch chiến thắng trong quá trình bầu cử trở thành switch gốc.
Giá trị bridge ID nguyên thủy của 802.1D có hai trường
- Trường ưu tiên có độ lớn 2 byte: được thiết kế nhằm cấu hình trên các switch khác nhau để ảnh hưởng đến kết quả của quá trình bầu chọn của STP.
- Một trường có độ dài 6 byte chứa địa chỉ MAC, được dùng để so sánh trong trường hợp độ ưu tiên của các switch là bằng nhau.
- Chắc chắn là sẽ có một switch thắng quá trình bầu chọn. Định dạng của bridge ID ở dạng nguyên thủy và dạng đã định nghĩa lại như hình 3.1.
Định dạng của BPDU bị thay đổi là do việc phát minh ra các phiên bản PVST+ và MST. Với kiểu bridge ID cũ, một bridge ID của một switch cho mỗi phiên bản STP là giống nhau nếu switch dùng một địa chỉ MAC. Nếu dùng nhiều STP, việc mỗi switch chỉ có một bridge ID có thể gây ra nhầm lẫn. Vì vậy Cisco dùng một địa chỉ MAC khác nhau cho từng VLAN khi tạo ra bridge ID. Điều này dẫn đến các giá trị bridge ID khác nhau mỗi VLAN, nhưng cũng sẽ làm tốn nhiều địa chỉ MAC trong từng switch. Trường định danh hệ thống (system ID) mở rộng cho một mạng dùng nhiều phiên bản STP, mà không cần dùng các địa chỉ MAC riêng biệt cho từng switch. Trường này cho phép các VLAN ID được đặt trong 12 bit cuối cùng của trường ưu tiên. Một switch có thể dùng một địa chỉ MAC để xây dựng nên bridge ID và với chỉ số VLAN trong trường system ID, switch này vẫn có một bridge ID duy nhất trong từng VLAN. Việc sử dụng trường system ID mở rộng còn được gọi là cơ chế giảm địa chỉ MAC (MAC address reduction).
1.2. Xác định cổng gốc-RP
Sau khi switch gốc đã được bầu chọn, các switch còn lại cần phải xác định cổng gốc. Tiến trình bầu chọn được mô tả như sau:
Gốc tạo ra các gói hello BPDU và gửi mỗi hai giây. Từng switch khi nhận gói tin hello sẽ tiếp tục chuyển các gói hello. Switch có cập nhật một số trường trong hello như chi phí (cost), bridge ID, độ ưu tiên của cổng (port priority) và số cổng (port number) của switch gửi. Switch không gửi hello BPDU ra những cổng đã trong trạng thái khoá. Trong tất cả các cổng của switch nhận gói tin hello, các cổng có chi phí thấp nhất về gốc sẽ là cổng gốc-RP. Một switch phải kiểm tra giá trị chi phí trong mỗi BPDU, thêm vào giá trị chi phí của cổng để xác định đường đi ngắn nhất về gốc. Switch sẽ cộng thêm vào giá trị chi phí được chỉ ra trong BPDU với giá trị chi phí của cổng của switch mà nó nhận gói BPDU.
Trong hình trên, SW1 là gốc và ban đầu gửi ra các gói hello có chi phí là 0. SW3 sẽ nhận được hai gói hello. Một gói có chi phí 0 và một gói có chi phí bằng 38. Tuy nhiên, SW3 sẽ tính toán chi phí của nó để đi về gốc. Chi phí này được tính bằng cách cộng chi phí của cổng của nó vào các giá trị trên. Kết quả là, mặc dù SW3 có kết nối trực tiếp về SW1, chi phí tổng cộng đi ra cổng F0/4 thấp hơn chi phí đi ra cổng F0/1. Vì vậy SW3 sẽ chọn F0/4 là đường đi về Switch gốc. Cần lưu ý là giá trị chi phí của STP thường được kết hợp với các giao diện (interface). Thực tế có vài khuyến cáo dùng cùng giá trị chi phí của STP trên từng kết nối điểm-điểm của các phân đoạn Ethernet. Giá trị mặc định của một số cổng Ethernet:
Tốc độ Ethernet | Giá trị chi phí kiểu cũ | Giá trị chi phí kiểu mới |
10Mbps | 100 | 100 |
100Mbps | 10 | 19 |
1Gbps | 1 | 4 |
10Gbps | 1 | 2 |
Khi một switch nhận được nhiều BPDU có tổng chi phí bằng nhau, switch sẽ dùng tiêu chí sau để so sánh nhằm lựa ra được cổng gốc:
- Chọn giá trị Bridge ID thấp nhất của switch gửi.
- Dùng giá trị ưu tiên cổng thấp nhất của switch kế cận. Switch kế cận đã thêm vào giá trị ưu tiên cổng của nó trước khi tiếp tục gửi BPDU đi.
- Dùng giá trị chỉ số cổng của switch.
Trong danh sách này, nếu điều kiện đầu tiên không thỏa mãn, switch này phải có nhiều kết nối đến cùng switch láng giềng. Hai điều kiện sau chỉ giúp thiết bị nên chọn kết nối nào để dùng.
1.3. Xác định cổng chỉ định-DP
Một mạng STP hội tụ sẽ dẫn đến chỉ một switch đẩy lưu lượng vào và ra trên phân đoạn mạng đó. Switch đẩy lưu lượng vào hoặc ra một phân đoạn mạng được gọi là switch được chỉ định (designated switch). Cổng dùng để chuyển khung tin ra khỏi phân đoạn mạng đó được gọi là cổng chỉ định (DP). Để được bầu chọn quyền làm DP, một switch phải gửi gói tin hello với giá trị chi phí thấp nhất vào phân đoạn mạng.
2. Hội tụ về sơ đồ mạng mới
STP sẽ tiếp tục giám sát tiến trình gửi các BPDU ngay cả khi cấu trúc mạng đã ổn định. Khi có sự thay đổi, STP cần phải phản ứng và hội tụ về một sơ đồ mạng mới. Khi mạng đã ổn định, các tiến trình sau sẽ tiếp tục:
- Switch gốc sẽ gửi ra các BPDU định kỳ theo khoảng thời gian hello.
- Mỗi switch không phải gốc định kỳ nhận một BPDU trên cổng gốc của nó.
- Mỗi switch sẽ cập nhật và tiếp tục đẩy BPDU ra các cổng được chỉ định.
- Đối với các cổng đang bị khoá, switch sẽ định kỳ nhận một bản BPDU từ DP trên phân đoạn mạng đó. Switch không gửi BPDU ra các cổng đang bị khoá.
Khi có sự khác biệt với các tiến trình nêu trên, STP biết rằng sơ đồ mạng đã thay đổi và sự hội tụ mới cần phải diễn ra. Ví dụ, switch gốc mất nguồn điện, tất cả các switch sẽ không nghe BPDU và sau khi khoảng thời gian MaxAge đã hết, các switch sẽ phải bầu chọn lại switch gốc mới.
Một vài bước sẽ xảy ra:
- SW2 không còn nhận được BPDU trên các RP của nó.
- Bởi vì SW2 không nhận được BPDU trên bất kỳ đường đi nào, nó bắt đầu quá trình bầu chọn gốc mới bằng cách thông báo chính nó là gốc và bắt đầu gửi BPDU ra tất cả các cổng.
- SW4 nhận thấy BPDU cuối cùng có đề cập đến một gốc mới, nhưng SW4 sẽ giữ nguyên giá trị RP. SW4 sẽ gửi BPDU về SW3 sau khi cập nhật các trường phù hợp trong BPDU.
- SW3 nhận được BPDU từ SW4 nhưng BPDU này kém hơn (không ưu tiên) so với BPDU mà SW3 nhận được từ SW1. Vì vậy, SW3 trở thành DP trên phân đoạn mạng giữa nó và SW4 và bắt đầu gửi ra BPDU trên cổng đó.
- Trước đây, SW1 đã thắng quá trình bầu cử, như vậy các gói BPDU từ SW1 và SW2 sẽ tiếp tục cạnh tranh với nhau và SW1 sẽ thắng một lần nữa. Phần còn lại của tiến trình sẽ dẫn đến cổng F0/4 của SW3 là DP, cổng F0/3 của SW4 là RP, SW4 F0/2 là DP và SW2 F0/4 là RP.
3. Các thông báo thay đổi 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ệ. Xét ví dụ trên, SW3 có trong bảng MAC của nó một hàng là 0200.1111.1111 là địa chỉ MAC của Router 1 chỉ ra cổng F0/4 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 hết hạn (timeout) ngắn, tương đương thời gian trễ do chuyển tiếp (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 báo 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ề gốc. Sau đó, gốc sẽ báo cho tất cả các switch còn lại.
Quá trình hoạt động như sau:
- Bước 1: 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 gói tin hello BPDU.
- Bước 2: Switch đã được chỉ định 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 gốc port của nó và chờ 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 gói tin hello BPDU của nó và gửi ra tất cả các switch khác, lưu ý các switch khác biết 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ẽ giảm khoảng thời gian hết hạn của các thành phần trong bảng CAM.
4. Chuyển đổi từ khoá 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 khoá 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ừ khoá sang 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 (listening), sau đó sang trạng thái học (learning). Mỗi trạng thái sẽ tồn tại trong khoảng thời gian gọi là thời gian trễ do chuyển tiếp (15 giây).
Trạng thái | Có chuyển khung tin dữ liệu | Học địa chỉ MAC nguồn trên khung tin nhận được | Trạng thái tạm thời hay ổn định? |
Khoá | Không | Không | Ổn định |
Lắng nghe | Không | Không | Tạm thời |
Học | Không | Có | Tạm thời |
Chuyển tiếp | Có | Có | Ổn định |
Tắt | Không | Không | Ổ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 trước khi có thể chuyển sang trạng thái chuyển tiếp. Trong khi quá trình từ chuyển tiếp sang khoá có thể thực hiện tức thời.
II. STP CHO MỖI VLAN VÀ STP THÔNG QUA TRUNG KẾ
Nếu chỉ có một phiên bản STP được dùng cho một mạng chuyển mạch với các kết nối dự phòng và có nhiều VLAN, sẽ có vài cổng sẽ luôn ở trạng thái khoá, không dùng được mặc dù trong lúc đó mạng vẫn ở trạng thái ổn định. Các kết nối này sẽ được dùng cho mục đích dự phòng.
Tính năng PVST+ của Cisco 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ị khoá 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.
Ví dụ, trong hình 3.4, các switch ở lớp truy cập sẽ bị khoá trên các cổng khác nhau của VLAN 1 và VLAN 2 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í của 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 giao thức trung kế 802.1Q với STP không hỗ trợ PVST+ trong giai đoạn ban đầu. Tuy nhiên, các switch của Cisco hỗ trợ PVST+ trên các kết nối trung kế dùng giao thức 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 VLAN native 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 3.5, 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 gán thẻ 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 khung tin này như là BPDU. Khi các BPDU đến được switch chạy 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.