I. CÁC KHÁI NIỆM VÀ CÁCH THỨC HOẠT ĐỘNG
Multiple Spanning Trees: IEEE 802.1s
Trong hầu hết các network, một switch đều có kết nối dự phòng tới switch khác. Ví dụ một access-layer switch sẽ có 2 kết nối uplink đến 2 distribution/core switch khác nhau. Khi STP hoạt động ở dạng CST thì chỉ có một kết nối là forwarding và kết nối kia rơi vào trạng thái blocking. Như vậy chúng ta đã lãng phí mất một kết nối. Chúng ta sẽ sắp xếp làm sao đó để sử dụng đồng thời 2 kết nối trên nhằm mục đích load balancing. PVST+ có vẻ là một lựa chọn hấp dẫn, vì nó cho phép các vlan khác nhau tạo ra những loop-free topology khác nhau và chạy trên các đường uplink khác nhau. Tuy nhiên, nếu số lượng VLAN tăng lên, đồng nghĩa với việc xuất hiện nhiều STP instance hơn sẽ làm cho CPU tiêu tốn nhiều resource hơn. Ví dụ chúng ta có 100 VLAN tương ứng chúng ta cũng sẽ có 100 loop-free topology. Nhưng 100 topology này có một điểm chung là đều đi qua một trong 2 kết nối uplink.
Trong hình trên, có 2 STP instance. Mỗi instance chạy cho một vlan. Mô hình mạng cho mỗi instance là độc lập và được chỉ ra như hình vẽ. VLAN A có thể chọn đường bên trái để đi, và khóa đường bên phải. Tương tự, VLAN B có thể chọn đường bên phải để đi và khóa đường bên trái. Như vậy cả 2 đường đều được sử dụng. Cân bằng tải đã được thực hiện. Không loại trừ trường hợp cả VLAN A và VLAN B đều tính toán và chọn ra đi một đuờng duy nhất, ví dụ đường bên phải. Tuy nhiên chúng ta sẽ phải can thiệp vào quá trình tính toán của chúng bằng cách cấu hình sao cho cả 2 đường đều được sử dụng. Cũng với hình này, nếu chúng ta có 100 VLAN thì mô hình mạng của các instance tính toán được cũng chỉ đi qua một trong 2 kết nối mà thôi. Như vậy việc sử dụng tới 100 STP instance trong khi mô hình mạng thì chỉ đi qua một trong 2 kết nối sẽ làm tiêu tốn rất nhiều tài nguyên của bộ vi sử lý (CPU). Ta sẽ hạn chế số instance lại bằng cách cho instance thứ nhất chạy cho 1 dãy VLAN ( ví dụ từ VLAN1-50), instance thứ 2 chạy cho dãy VLAN từ VLAN51-100. Chúng ta đã hạn chế được số lượng instance đồng thời vẫn đảm bảo cho cân bằng tải hoạt động.
Ví dụ cấu hình cân bằng tải :
Ta sẽ cấu hình sao cho phiên bản spanning tree chạy trên dãy VLAN 3-6 sẽ lấy đường trung kế 2 làm cổng chuyển tiếp (forwarding) và trung kế 1 là cổng bị khóa (blocking). Trong khi đó, spanning tree chạy trên dãy VLAN 8-10 sẽ lấy đường trung kế 1 làm forwarding và trung kế 2 lại là blocking. Nếu một trong hai kết nối trung kế 1 hoặc trung kế 2 bị sự cố, toàn bộ lưu lượng trong cả 2 dãy VLAN đều dồn về một phía trunking. Có thể cấu hình bằng cách gán độ ưu tiên như hình vẽ.
Đoạn trên đã mô tả khái niệm của MST. Như vậy MST được xây dựng dựa trên việc ánh xạ một hay nhiều VLAN vào một STP instance. Khi triển khai MST, chúng ta cân chú ý những điều như số lượng Instance cần phải dùng là bao nhiêu, dãy VLAN cần ánh xạ cho mỗi instance là gì… Để các switch có thể tham gia vào một MST instance thì nó phải được cấu hình với các thông số nhất quán với nhau. Các thông số này bao gồm MST region, revision number, và MST Vlan map. Tập hợp các switch có cấu hình MST giống nhau tạo thành phân vùng MST (MST region).
IEEE 802.1s Multiple Spanning Trees (MST) định nghĩa cách thức dùng nhiều phiên bản của STP trên một hạ tầng mạng dùng 802.1q. Giống như PVST+, MST cho phép hiệu chỉnh các thông số của STP sao cho một vài cổng là bị khóa (block) trong một VLAN nhưng nó có thể là chuyển tiếp (forwarding) trong VLAN khác. Luôn luôn dùng kết hợp với 802.1w để hội tụ nhanh hơn. Không yêu cầu từng phiên bản của STP cho từng VLAN. Thay vào đó, thiết kế tốt nhất thường dùng một phiên bản spanning tree cho các đường đi dự phòng. Nếu hệ thống mạng bao gồm tất cả các thiết bị có khả năng hỗ trợ MST, MST sẽ tương đối dễ hiểu. Một nhóm các switch dùng chung với nhau được gọi là MST region.
Để tạo ra một MST region, các switch cần phải được cấu hình như sau:
1. Bật MST ở chế độ toàn cục:
(config)# spanning-tree mode mst
2. Trong chế độ cấu hình của MST, tạo ra phân vùng MST (MST region) (tối đa 32 ký tự) dùng lệnh name.
3.Trong chế độ cấu hình của MST, tạo ra một chỉ số MST revision number bằng cách dùng lệnh revision.
Trong chế độ cấu hình của MST, ta chỉ định các VLAN nào vào phiên bản spanning tree nào bằng câu lệnh instance. Chìa khóa cho việc cấu hình của MST là cấu hình tất cả các thông số giống nhau trên tất cả các switch của cùng region. Ví dụ nếu bạn cho phiên bản instance 1 của MST chạy trên VLAN 1 đến VLAN 4 và VLAN 5-8 đến cũng instance 1 trên switch khác, hai switch sẽ không xem như chúng cùng MST region, mặc dù cả tên miền và chỉ số revision là tương tự nhau. Ví dụ, trong hình dưới đây, một MST region đã được định nghĩa cùng với các kết nối đến các switch không chạy MST.
Phía bên trái của hình, bên trong một MST bạn chỉ cần hai phiên bản của STP. Mỗi phiên bản cho một nửa số VLAN. Nếu có hai phiên bản, các switch ở lớp truy cập (access) sẽ truyền các frame trên các kết nối của nó cho tập hợp một số VLAN và truyền các frame của các VLAN còn lại trên kết nối kia. Một trong những đặc điểm chủ yếu của MST so với PVST+ là việc yêu cầu chỉ cần một phiên bản của STP cho một nhóm các VLAN. Nếu MST region này có hàng trăm VLAN và dùng PVST+, sẽ có tương ứng hàng trăm STP thông điệp sẽ được dùng. Khi kết nối một MST region đến một miền không chạy MST, MST sẽ làm cho cả một miền MST xuất hiện như là một switch duy nhất. Một MST sẽ đảm bảo tình trạng không bị lặp bên trong một MST region. Để ngăn ngừa vòng lặp trên kết nối CST từ miền MST đến miền phi MST, MST sẽ tham gia vào phiên bản STP đang chạy bên ngoài miền MST. Phiên bản thêm vào này gọi là Internal Spanning Tree (IST). Khi tham gia trong STP với các switch bên ngoài, miền MST sẽ xuất hiện như một switch duy nhất. Phiên bản STP phổ biến (CST) chạy trên toàn bộ phân vùng STP. CST coi các MST region như là một switch lớn tham gia vào CST instance. CST lúc này sẽ tạo ra một mô hình mạng không bị lặp vòng cho các MST region. Trong mỗi MST region cũng cần phải có các sub STP instance để tạo ra một nhánh cây không bị lặp vòng. Các instance chạy trong một MST region gọi là các MSTIs. Các MSTIs này được quản lí bởi một IST instance. IST được coi như là một CST nội bộ trong MST đó. Các MSTIs được đánh số từ 0-15. Trong đó, MSTI0 (instance 0) chính là IST. IST đại diện cho toàn bộ miền MST để giao tiếp với các MST region khác. Chỉ có IST instance là cho phép gửi và nhận các MST BPDUs. Thông tin của các MSTI khác được đưa vào BPDUs với giá trị M record. Mặc dù một miền MST có thể có tới 16 MSTIs cùng chạy nhưng chỉ có một BPDUs là mang thông tin của chúng đi. MSTI chỉ có ý nghĩa cục bộ trong một MST mà thôi. Nếu miền MST 1 có MSTI 2, miền MST 2 cũng có một MSTI được đánh số là 2 thì cũng không hề bị ảnh hưởng. Nếu một miền MST kết nối với một switch chạy PVST+ thì nó sẽ nhận biết ngay được điều này bằng cách kiểm tra BPDU. Nếu BPDUs được nghe thấy từ nhiều VLAN, nghĩa là switch láng giềng đang chạy PVST+. Khi MST region gửi BPDUs cho switch chạy PVST+, switch đó sẽ nhân bản các IST BPDUs cho mỗi VLAN trong PVST+. CIST là một tập hợp các MSTIs trong một miền MST. IST trong một MST region lúc hội tụ sẽ tạo ra một IST master (CIST regional Root) của region đó. Sau đó các CIST regional root nay sẽ tiếp tục được gửi ra ngoài một Region để tiếp tục đọ sức với các CIST regional root khác. Kết quả của các cuộc đọ sức này là tạo nên được một CST root.