I. Giới thiệu giao thức Multiple Spanning Tree:
Ban đầu, ta đã có giao thức IEEE STP, được được phát triển theo 2 bản thể của DEC và IBM, chúng có đôi chút khác nhau. Tất cả 2 bản thể này đều có chung một cơ chế logic, được đề xuất bởi Radia Perlman trong những năm 80, trong khi bà được làm việc tại DEC.
Các phiên bản IEEE đều tương thích để sử dụng với nhiều VLAN sử dụng cơ chế trunking 802.1Q . Trong một spanning-tree được chia sẻ, đôi khi được gọi là Mono Spanning Tree (MST) theo Cisco, hoặc thường thông dụng hơn là Common Spanning Tree (CST) được sử dụng để tạo ra một cấu trúc hệ thống duy nhất chông vòng lặp.
Hạn chế của phương pháp này là không có khả năng để thực hiện các kỹ thuật giao thông VLAN qua các liên kết dự phòng: nếu liên kết bị chặn, nó sẽ bị khóa cho tất cả các VLAN. Một vấn đề khác liên quan đến xây dựng cấu trúc STP: Truyền tải dày đặc hơn trên những switch gần root bridge hơn, trong khi đó đòi hỏi yêu cầu cao hơn về tài nguyên của root bridge - cả về CPU và khả năng liên kết.
Để khắc phục những hạn chế này, Cisco giới thiệu độc quyền giao thức Per-VLAN Spanning Tree Protocol (PVST), sử dụng riêng biệt mỗi cấu trúc STP cho mỗi VLAN. Ban đầu, PVST được tạo ra để được sử dụng với kiểu đóng gói ISL (của Cisco sở hữu độc quyền), nhưng sau đó phiên bản PVST + cho phép PVST BPDU có thể tạo ra tunnel chạy được trên đường trunk IEEE 802.1q và trên IEEE STP. PVST được phép sử dụng cấu trúc logic khác nhau với từng VLAN, nâng cao kỹ thuật truyền tải cơ bản trên Layer 2. Mỗi VLAN có thể sử dụng root bridge của mình và cấu trúc mạng riêng cho phép sử dụng hợp lý tài nguyên của các switch. Phương pháp này có một số hạn chế là nó không đối phó được với trường hợp các liên kết mạng thực tế có khả năng và tần suất sử dụng khác nhau, thống kê nhiều VLAN trên các cấu trúc mạng khác nhau.
Tuy nhiên, đây là hạn chế cố hữu đối với bất kỳ phương pháp cân bằng tải dựa trên STP. Vấn đề chính của PVST là với số lượng ngày càng tăng VLAN, PVST trở thành một sự lãng phí tài nguyên của switch và làm nặng khâu quản lý. Điều này là do số lượng hợp lý các cấu trúc mạng khác nhau, thường là nhỏ hơn nhiều so với số VLAN hoạt động.
Theo thời gian, PVST được thông qua nhanh chóng giới thiệu các đặc tính hội tụ bằng giao thức IEEE RSTP, nhưng các tính năng cốt lõi là việc giữ một bản sao riêng của STP trên mỗi VLAN thì không thay đổi. Nhìn thấy những vấn đề với liên kết với PVST, Cisco đã đến với ý tưởng tách các khái niệm về STP và VLAN ra. Việc thực hiện ban đầu được gọi là MISTP (Multiple Instances Spanning Tree - nhiều trường hợp Spanning Tree) và sau đó phát triển thành tiêu chuẩn được gọi là IEEE 802.1S MSTP (Multiple Spanning Trees Protocol).
II. Khái quát giao thức Multiple Spanning Tree:
MSTP sử dụng giao thức RSTP cho tốc độ hội tụ của hệ thống mạng, cho phép các VLAN có thể được nhóm vào trong một spanning-tree instace, với mỗi một instance có một mô hình spanning-tree riêng không phụ thuộc vào các spanning-tree instance khác. Với kiến trúc này sẽ cung cấp nhiều đường truyền cho các lưu lượng dữ liệu, cho phép thực hiện cơ chế cân bằng tải, và hạn chế số lượng spanning-tree instance cần thiết để hỗ trợ cho số lượng lớn VLAN hoạt động.
III. Các khái niệm trong giao thức Multiple Spanning Tree:
1. Các vùng MSTP
MST khác với 802.1Q và PVST +, mặc dù MST vẫn có thể tương thích với chúng. Nếu một switch được cấu hình sử dụng MST, bằng kiểu BPDU, nó biết được switch láng giềng đang sử dụng loại STP nào. Điều này được thực hiện bằng cách cấu hình switch vào vùng MST chung, nơi mà mọi Switch trong khu vực chạy MST với các thông số tương thích với nhau.
Trong hầu hết các mạng, cần một vùng MST duy nhất là đủ, mặc dù ta có thể cấu hình nhiều hơn. Trong khu vực, tất cả các switch phải chạy trên một khu vực có các thuộc tính sau:
Nếu hai switch có cùng một bộ thuộc tính, chúng thuộc về cùng một vùng MST. Nếu không, chúng thuộc về hai khu vực MST độc lập.
MST BPDU chứa cấu hình các thuộc tính sao cho switch nhận BPDUs có thể so sánh chúng với các cấu hình MST địa phương của chúng. Nếu các thuộc tính phù hợp, các trường hợp STP trong MST có thể được chia sẻ như là một phần của cùng một vùng.
Một vùng MST bao gồm nhiều thiết bị trong mạng chuyển mạch và các phân đoạn mạng giữa chúng. Các thiết bị này có các đặc điểm sau:
2. Các trường hợp Spanning Tree trong MSTP
MST được thiết kế để tương thích với tất cả các hình thức khác nhau của STP. Vì vậy, nó cũng phải hỗ trợ mỗi trường hợp STP. Đây là nơi MST có thể bị lẫn lộn. Hãy suy nghĩ nếu mạng của toàn bộ doanh nghiệp chỉ có một cấu trúc Common Spanning Tree (CST) duy nhất để một trong những trường hợp của STP đại diện cho tất cả các VLAN và tất cả các khu vực MST. CST duy trì một cấu trúc chống vòng lặp thông thường trong khi tích hợp tất cả các hình thức STP có thể được sử dụng trong mạng.
Để làm điều này, CST phải đối mặt với từng vùng MST như một “hộp đen” cầu nối đơn bởi vì nó không có chức năng gì bên trong từng khu vực MST. CST duy trì một cấu trúc không vòng lặp với các liên kết kết nối các vùng với nhau với switch độc lập chạy 802.1Q CST.
a) Trường hợp IST:
Một Internal Spanning Tree (IST), là Spanning tree hoạt động trong một MST region. Với mỗi MST region, MSTP sẽ duy trì nhiều spanning tree instance. Instance 0 là một instance đặc biệt cho một region, nó được biết đến nhưn một Internal Spanning Tree (IST).Tất cả các MST instance khác có giá trị từ 1 đến 4094. IST là một instance duy nhất có khả năng gửi và nhận các gói tin BPDUs. Tất cả các thông tin về các spanning tree instance khác sẽ được chứa trong một trường gọi là M-records, và những thông tin này được đóng gói bởi MSTP BPDUs. Bởi vì MSTP BPUD có khả năng chứa tất cả các thông của các instance khác, nên số lượng của các gói BPDUs cần thiết để xử lý và để hỗ trợ nhiều spanning-tree instance là được hạn chế đáng kể.
Tất cả MST instance với cùng một MST region sẽ có cùng các tham số thời gian, nhưng mỗi một MST instance sẽ có riêng các tham số mô hình của chúng như: root switch ID, root path cost... Theo mặc định, tất cả các VLAN được gán vào trong IST. Một MST instance là một vùng của region. Ví dụ, MST instance 1 trong region A là hoàn toàn độc lập với MST instance 1 trong region B.
Hình minh họa tầm quan trọng của IST. Hình cho thấy hai khu vực 10 và 20. Hai switch 1 và 3 nằm trong khu vực 10. Switch2, thuộc khu vực 20, có giá trị BID cao hơn hai switch 1 và 3. Do đó, BPDU cấp trên của switch2 được chấp nhận bởi Switch1 và Switch3 cho trường hợp IST. Theo Switch1 và Switch3, Switch2 là gốc cho tất cả các VLAN cho MST 0. Switch1 có vai trò bổ sung. Một trong các cổng của nó là cổng biên giới, nghĩa là cổng đó được kết nối với một khu vực khác. Khi nó nhận được BPDU từ Switch2, đầu tiên switch1 đổi các BPDU của switch2 trước khi chuyển tiếp nó cho Switch3. Nó cho biết thêm một ID Master IST và IST Master Path Cost cho BPDU. Theo mặc định, IST Master ID là ID bridge và các Chi phí Path Master là 0.
Hai phương pháp khác nhau để chọn một Master IST:
b) Trường hợp MST:
Toàn bộ ý tưởng đằng của MST là khả năng thiết lập cấu trúc cho nhiều VLAN vào một số ít STP một cách hợp lí. Bên trong một khu vực, các trường hợp thực tế MST instance (MSTI) tồn tại bên cạnh các IST. Cisco hỗ trợ tối đa là 16 MSTI trong từng khu vực. Mặc định thì IST luôn tồn tại như MSTI số 0, MSTI từ 1 đến 15 có sẵn để sử dụng khi muốn cấu hình. Hình minh họa cho thấy các MSTI khác nhau có thể tồn tại trong một vùng MST duy nhất (phần bên trái). Trong mạng lưới này, hai trường hợp MST là MSTI 1 và MSTI 2, được cấu hình với VLAN khác nhau cho từng mạng. Cấu trúc của chúng theo cùng một cấu trúc mạng ở phía bên trái của hình, nhưng mỗi trường hợp có cấu trúc, root khác nhau.
Chú ý rằng trong đám mây MST, hiện nay có ba trường hợp cùng tồn tại độc lập STP: MSTI1, MSTI2, và IST.
Chỉ có IST (MSTI 0) được phép gửi và nhận MST BPDU. Thông tin về mỗi MSTIs khác được gắn vào BPDU MST. Vì vậy, ngay cả khi một khu vực có tất cả 16 trường hợp hoạt động, chỉ cần có 1 BPDU để chuyển tải thông tin STP đến tất cả các thiết bị.
Mỗi MSTI chỉ có ý nghĩa trong một khu vực, ngay cả khi một khu vực liền kề có sử dụng cùng một MSTI. Nói cách khác, kết hợp với IST, MSTI là duy nhất trong khu vực ranh giới để tạo thành một trường hợp con của CST. Điều đó có nghĩa chỉ IST BPDU được gửi vào và ra khỏi một khu vực IST.
Điều gì sảy ra nếu một vùng MST kết nối với một switch chạy PVST+ truyền thống? MST có thể phát hiện tình trạng này bằng cách lắng nghe các BPDU nhận được. Nếu BPDU được nghe từ nhiều hơn một VLAN (các CST), PVST+ phải được sử dụng. Khi một MSTI gửi một BPDU PVST+ đến switch, các BPDU IST được nhân rộng vào tất cả các VLAN trên các STP PVST+ switch trunk.
Hãy ghi nhớ rằng các trường hợp IST đang hoạt động trên tất cả các cổng trên switch. Ngay cả khi một cổng không thuộc VLAN cũng được ánh xạ tới các IST, IST phải được chạy trên các cổng. Ngoài ra, theo mặc định, tất cả các VLAN được ánh xạ vào các trường hợp IST. Nếu cần thiết bạn phải cấu hình rõ ràng chúng vào trường hợp khác.
3. Spanning Tree chung và riêng (Common and Internal Spanning Tree - CIST):
Mỗi khu vực chạy MSTP là trường đặc biệt của spanning-tree được biết đến như là IST hoặc Spanning Tree nội bộ ( Internal Spannign Tree = MSTI0). Trường hợp này chủ yếu phục vụ mục đích phổ biến thông tin cấu trúc STP cho MSTI. IST có một root bridge, được bầu dựa trên Bridge ID thấp nhất (Bridge Priority + địa chỉ MAC). Trường hợp thay đổi với nhiều vùng MSTP trong mạng. Khi chuyển một thông điệp phát hiện BPDU nguồn từ một khu vực (hoặc STP / PVST + BPDU), nó đánh dấu cổng tương ứng làm ranh giới MSTP. Để thuận tiện, chúng ta sẽ gọi tất cả các cổng khác như cổng nội địa. Một switch có cổng ranh giới được gọi là switch ranh giới.
Trên hình ta có thể nhìn thấy ba khu vực MSTP kết nối với nhau theo kiểu vòng, bằng cách sử dụng cặp liên kết giữa các khu vực. Các liên kết kết nối các khu vực kết nối với các cổng biên giới. Khi switch có một cổng kết nối đến một số khu vực khác, tất cả các switch đó là những switch ranh giới. Thông báo với các ký hiệu đơn giản hóa cho các chi phí đường dẫn và các Bridge Priority. Chúng ta sẽ sử dụng chúng để chứng minh làm thế nào ICST được xây dựng. Để đơn giản thế này, giả định rằng tất cả các chi phí liên kết bên trong khu vực có cùng một giá trị là 1.
4. Spanning Tree chung:
CST là một spanning tree duy nhất kết nối tất cả các vùng MST trong mạng chuyển mạch. Nếu chúng ta coi từng vùng MST như một thiết bị layre2, CST là một spanning tree bao trùm những thiết bị này thông qua STP hoặc RSTP.
Các BPDU MSTP chứa hai khối thông tin quan trọng của hệ thống, được minh họa trong hình bên dưới:
Một, được đánh dấu bằng màu đỏ, có liên quan đến CIST Root và bầu cử CIST Root khu vực. Như chúng ta sẽ thấy bên dưới, CIST Root được bầu trong số tất cả các vùng, và CIST Root khu vực được bầu ở mỗi khu vực. Các khối màu xanh lá cây phác thảo các thông tin về CIST Root khu vực (mà trở thành Root IST trong nhiều khu vực). Các chi phí CIST Root nội địa là chi phí nội bộ khu vực để đạt được CIST Root khu vực. Điều quan trọng cần ghi nhớ rằng IST Root = CIST Root khu vực trong trường hợp khu vực có nhiều phần. Sự thay đổi này được giải thích thêm trong bên dưới.
a) CIST root chung và riêng (Common and Internal Spanning Tree Root - CIST root):
CIST Root là bridge có Bridge ID thấp nhất giữa tất cả các vùng. Có thể là một bridge bên trong một khu vực hoặc switch ranh giới trong một khu vực.
b) Spanning tree root khu vực chung và riêng (Common and Internal Spanning Tree Regional Root - CIST Regional Root):
CIST Root khu vực là một ranh giới switch cho mỗi khu vực bầu dựa trên các chi phí đường đi bên ngoài ngắn nhất để tiếp cận với Root CIST. Chi phí đường dẫn được tính trên chi phí của các liên kết kết nối các vùng, không bao gồm các đường dẫn nội bộ khu vực.
IV. Cơ chế hoạt động
1. Các loại cổng:
MSTP tính toán để phân vai trò các cổng: root port, designated port, master port, alternate port, and backup port. Một cổng có thể đóng vai trò khác nhau trong các MSTI khác nhau.
2. Các trạng thái cổng:
Trong MSTP, một cổng nằm trong một trong ba trạng thái sau đây tuỳ thuộc vào việc nó học địa chỉ MAC và chuyển tiếp dữ liệu:
3. Bầu chọn Root Bridge chung và riêng
Khi switch khởi động, nó sẽ tuyên bố chính nó như là CIST Root và CIST Root khu vực và thông báo trong BPDU gửi đi. Switch sẽ điều chỉnh quyết định của nó khi tiếp nhận thông tin BPDU tốt hơn và tiếp tục quảng cáo BPDU tốt nhất đó về CIST Root và CIST Root khu vực trên tất cả các cổng nội bộ. Trên cổng biên giới, switch chỉ quảng cáo các CIST Root Bridge ID và CIST Root Path Cost bên ngoài, và ẩn các chi tiết của cấu trúc mạng nội bộ của riêng khu vực.
CIST Root Path Cost bên ngoài là chi phí để tiếp cận với Root CIST qua các liên kết kết nối các cổng biên giới - tức là các liên kết liên vùng ( liên kết chung giữ các vùng MST ). Khi một BPDU được nhận trên một cổng nội bộ, chi phí này là không thay đổi. Khi một BPDU được nhận trên một cổng biên giới, chi phí này được điều chỉnh dựa trên các chi phí cổng tiếp nhận ranh giới. Kết quả, các CIST Root Path Cost bên ngoài được tuyên truyền không sửa đổi bên trong các khu vực, chỉ thay đổi trên các cổng biên.
Chỉ có một switch ranh giới có thể được bầu làm CIST Root khu vực, và điều này là việc switch có chi phí thấp nhất để tiếp cận tới CIST Root. Nếu một switch ranh giới CIST nghe có CIST Root Path Cost bên ngoài tốt hơn chi phí đã nhận vào liên kết bên trong của nó, nó sẽ từ bỏ vai trò của nó là CIST Root khu vực và bắt đầu công bố số liệu mới ra cổng biên giới của nó.
Tất cả các swicth biên giới cần chặn cổng biên giới của nó. Nếu một switch là CIST Root khu vực, nó bầu một trong những cổng ranh giới của nó như là CIST Root port và chặn tất cả các cổng biên giới. Nếu một switch ranh giới không phải là CIST Root khu vực, nó sẽ đánh dấu các cổng biên giới như CIST Designated port hoặc CIST Alternate port.
Cổng ranh giới trên một switch không phải mà Root bridge khu vực chỉ trở thành designated port chỉ khi nó có thông tin cao hơn cho CIST Root: CIST Root Path Cost bên ngoài tốt hơn hoặc nếu các chi phí đều được bình đẳng CIST Root Bridge ID khu vực tốt hơn. Điều này tuân theo quy tắc thông thường của quá trình STP.
Như một kết quả của xây dựng CIST, mỗi khu vực sẽ có một switch có một cổng bị chặn trong sự chỉ đạo của CIST Root khu vực. Tất cả các switch sẽ quảng cáo ranh giới của khu vực CIST Root Bridge ID khu vực ra khỏi ranh giới các cổng không bị chặn của chúng. Từ góc nhìn bên ngoài, toàn vùng sẽ giống như một switch ảo duy nhất với Bridge ID = CIST Root ID khu vực và root port duy nhất được bầu vào CIST Root switch khu vực.
Khu vực chứa CIST Root sẽ có tất cả các cổng biên giới không bị cấm và đánh dấu như là CIST designated port. Khu vực sẽ trông giống như một root bridge ảo với Bridge ID bằng CIST Root và tất cả các cổng đều là designated port. Chú ý rằng các khu vực với CIST Root có CIST Root khu vực bằng CIST Root khi chúng chia sẻ cùng giá trị ưu tiên thấp nhất trên toàn hệ thống tất cả các vùng.
Hình minh họa trên thể hiện cấu trúc CIST tính từ cấu trúc vật lý.
Trước tiên, SW1-1 được bầu làm CIST Root vì nó có Bridge ID thấp nhất trong số tất cả các switch ở tất cả các vùng. Điều này sẽ tự động làm cho khu vực 1 là bridge nối ảo với tất cả các cổng biên giới không bị chặn.
Tiếp theo, SW2-1 và SW3-1 được bầu làm các CIST Root khu vực trong các khu vực tương ứng. Chú ý rằng SW3-1 và SW2-3 có chi phí ngoài để tiếp cận với CIST Root bằng nhau nhưng SW3-1 thắng vì do có ưu tiên CIST Root khu vực thấp hơn. Hãy ghi nhớ rằng trong cấu trúc với nhiều vùng MSTP , mọi khu vực mà không chứa các CIST Root phải thay đổi quá trình bầu cử IST Root và làm cho IST Root bằng CIST Root khu vực.
4. Điều hành hoạt động trong MST
IST kết nối với tất cả các MSTP switch trong một khu vực. Khi IST hội tụ, root của IST sẽ trở thành IST master, đó là switch trong khu vực với các bridge ID thấp nhất và chi phí đường dẫn đến CST root thấp nhất. Các IST master cũng là CST root nếu chỉ có một khu vực trong hệ thống. Nếu gốc CST nằm bên ngoài khu vực, một trong những switch tại biên giới của khu vực này được chọn làm IST master.
Khi một MSTP switch khởi chạy, nó sẽ gửi BPDU tuyên bố chính nó như là root của CST và IST master, với cả chi phí của đường dẫn vào CST root và IST master đều thiết lập về 0. Switch này cũng khởi tạo tất cả các trường hợp MST và tuyên bố rằng mình là root cho tất cả. Nếu switch nhận được thông tin cấp trên MST root ( Bridge ID thấp hơn, chi phí thấp hơn, v..v.. ) tốt hơn so với hiện tại được lưu giữ cho cổng, nó từ bỏ của nó như là làm IST master.
Trong quá trình khởi tạo, một khu vực có thể có nhiều vùng nhỏ, chúng có IST master riêng của mình. Khi nhận được thông tin switch IST cấp trên, chúng rời khỏi tiểu vùng cũ của chúng và tham gia các tiểu vùng mới mà có thể chứa các IST master thật sự. Do đó tất cả các tiểu vùng thu nhỏ, ngoại trừ một trong đó có các IST master thật sự.
Đối với hoạt động chính xác, tất cả các switch trong vùng MST phải đồng ý về cùng IST master. Vì vậy, bất kỳ hai switch trong khu vực cổng đồng bộ hóa vai trò của chúng cho một trường hợp MST chỉ khi chúng hội tụ về một IST master chung.
5. Điều hành hoạt động trong các vùng MST:
Nếu có nhiều khu vực hoặc switch di sản của 802.1D trong mạng, MSTP thiết lập và duy trì các CST, bao gồm tất cả các vùng MST và tất cả các switch di sản STP trong mạng. Các trường hợp MST kết hợp với các IST tại ranh giới của khu vực để trở thành CST.
IST kết nối tất cả MSTP các switch trong khu vực và xuất hiện như một cây con trong CST, mà nó bao gồm toàn bộ các switch domain, với root của cây con trở thành các IST master. Vùng MST xuất hiện như một switch ảo để tiếp giáp STP chuyển mạch và các vùng MST.
Hình dưới cho thấy một mạng lưới với ba vùng MST và một switch di sản 802.1D (D). Các IST master cho khu vực 1 (A) cũng là gốc CST. Các IST master cho khu vực 2 (B) và là IST master cho khu vực 3 (C) là root cho subtrees của mình trong vòng CST này. RSTP chạy trong tất cả các vùng:
Hình minh họa không hiển thị các trường hợp bổ sung MST cho từng khu vực. Lưu ý rằng trường hợp cấu trúc của MST có thể khác với của IST cho cùng một vùng.
Chỉ trường hợp CST gửi và nhận BPDU, và trường hợp MST thêm thông tin spanning-tree của họ vào BPDU để tương tác với switch lân cận và tính toán cấu trúc spanning-tree cuối cùng. Bởi vì điều này, các thông số spanning-tree có trong BPDU truyền (ví dụ, hello time, time forwarding, Max age, và max-hop) được cấu hình chỉ trên các trường hợp CST nhưng ảnh hưởng đến tất cả các trường hợp MST. Các thông số liên quan đến cấu trúc spanning-tree (switch priority, port VLAN cost, port VLAN priority) có thể được cấu hình trên cả các trường hợp CST và các trường hợp MST.
MSTP switch sử dụng phiên bản 3: RSTP BPDU hoặc STP 802.1D BPDUs để giao tiếp với switch di sản 802.1D. MSTP switch sử dụng MSTP BPDU để giao tiếp với switch MSTP.
6. Cơ chế điếm bước nhảy ( Hop count ):
IST và MST instances không sử dụng những thông tin message-age và maximum-age được cấu hình trong BPDU để tính toán mô hình spanning-tree. Thay vào đó, chúng sử dụng kỹ thuật path cost đến root và hop-count giống như kỹ thuật IP time-to-live (TTL).
Bằng cách sử dụng câu lệnh: spanning-tree mst max-hops ở chế độ global configuration, bạn có thể cấu hình giá trị hop tối đa bên trong region và ứng dụng nó vào trong IST và tất cả các MST instance trong region. Hop count sẽ đạt được cùng một kết quả như thông tin về message-age. Root switch của một instance luôn gửi một gói BPDU (hoặc M-record) với chi phí bằng 0 và giá trị hop count sẽ được cấu hình giá trị tối đa. Khi một switch nhận gói BPDU này, thì switch đó sẽ giảm giá trị hop count xuống một đơn vị và đưa giá trị hop count mới này vào gói BPDU để quảng bá tiếp. Khi hop count đạt xuống mức giá trị 0, thì switch sẽ hủy gói BPDU và những thông tin trong gói BPDU đó sẽ được lưu trữ trên port.
Thông tin về message-age và maximum-age trong phần RSTP của gói tin BPDU sẽ giống nhau trong một region, và có cùng các giá trị được quảng bá bởi region designated port trong phạm vi region.
7. Ranh giới giữa các cổng (Boundary Ports):
Trong các chuẩn trước kia của Cisco đã được triển khai, một boundary port sẽ kết nối một MST region đến một spanning-tree region đang chạy RSTP, và đến một spanning-tree region đang chạy PVST+ hoặc rapid PVST+, hoặc đến các MST region với những cấu hình MST khác nhau. Một boundary port cũng kết nối đến một LAN.
Trong chuẩn IEEE 802.1s không có một khái niệm hoặc định nghĩa nào về boundary port. Chuẩn IEEE 802.1Q-2002 đã xác định hai loại thông điệp mà một port có thể nhận đó là: internal (đến từ các switch trong cùng một region) và external. Khi một thông điệp là external, thì thông điệp đó chỉ được nhận duy nhất bởi CIST. Nếu vai trò CIST là root hoặc alternate, hoặc nếu một gói tin BPDU external là một sự thay đổi của mô hình mạng, nó sẽ có ảnh hưởng trên một MST instance. Khi một thông điệp là internal, thì các thông tin về CIST sẽ được nhận bởi CIST, và mỗi MST instance sẽ nhận một M-record tương ứng của MST instance đó. Với các chuẩn trước kia của Cisco thì một port có khả năng nhận một thông điệp external sẽ đóng vai trò như một boundary port. Và port này sẽ không có khả năng nhận đồng thời cùng lúc hai loại thông điệp internal hoặc external.
Một MST region sẽ chứa cả hai: các switch và các Lan. Một segment nằm bên dưới một region thì port được kết nối vào segment đó sẽ có vai trò là designated port. Vì vậy, một port nằm trong một region khác với designated port sẽ đóng vai trò là boundary port. Chính sự định nghĩa này sẽ cho phép một port nằm trong một region có thể nằm chung trên một segment với một port nằm ở region khác, tạo ra khả năng có thể cùng nhận được cả hai loại thông điệp internal và external trên một port.
8. Thay đổi vai trò của các port:
Port có vai trò boundary không còn tồn tại trong các chuẩn MST bây giờ, nhưng khái niệm về boundary vẫn được duy trì trong quá trình triển khai của Cisco. Tuy nhiên, một MST instance port với vai trò là boundary của một region sẽ không được phép trao đổi thông tin với CIST port. Trong hệ thống bây giờ sẽ tồn tại hai trường hợp sau:
Boundary port là một root port của CIST regional root - khi CIST instance port được tiến cử và đồng bộ, nó có thể gửi lại một sự thỏa thuận và chuyển sang trạng thái forwarding sau khi tất cả các port MSTI đã trao đổi thông tin cho nhau. MSTI port bây giờ có một vai trò đặc biệt là master.
Boundary port không phải là một root port của CIST regional root - MSTI port sẽ giữ vai trò và trạng thái của CIST port. Chuẩn này sẽ cung cấp ít thông tin hơn, và nó sẽ khó khăn cho việc hiểu tại sao một MSTI port có thể trở thành trạng thái blocking khi nó không nhận được các gói BPDUs (MRecords). Trong trường hợp này, mặc dù vai trò boundary không tồn tại nhưng các bạn dùng câu lệnh show vẫn có thể xác định được một port đóng vai trò là boundary.
9. Sự tương thích giữa các chuẩn cũ và chuẩn mới của switch:
Với lý do quá trình xác định các chuẩn của switch có khả năng bị lỗi, nên bạn có thể sử dụng một câu lệnh thực hiện trong chế độ interface để xác định các chuẩn của các port. Một region không thể định dạng giữa một chuẩn mới và một chuẩn cũ của switch, nhưng chúng có khả năng tương thích với nhau bằng cách sử dụng CIST. Duy nhất một tính năng không thể thực hiện được trong trường hợp này là: cân bằng tải trên những instance khác nhau.
Trên màn hình CLI (command-line interface) sẽ hiển thị các cờ khác nhau phụ thuộc vào các tham số cấu hình trên port khi một port nhận một gói tin BPDUs của chuẩn cũ. Một thông điệp nằm trong nhật ký hệ thống (syslog) cũng xác định được lần đầu tiên switch nhận gói tin BPDU của chuẩn cũ trên một port không được cấu hình cho quá trình truyền dữ liệu của BPDU theo chuẩn cũ.
10. Xác định liên kết bị lỗi:
Tính năng này không tồn tại trên chuẩn IEEE MST, nhưng nó được tích hợp trong các phiên bản của hệ điều hành của Cisco (Cisco IOS). Hệ điều hành sẽ tiến hành kiểm tra vai trò của port và trạng thái của port đó trong quá trình nhận gói tin BPDUs để xác định liên kết bị lỗi có thể là nguyên nhân gây ra loop.
Khi một designated port xác định được một sự đụng độ, nó sẽ vẫn giữ nguyên vai trò của nó, nhưng nó sẽ chuyển đổi sang trạng thái discarding bởi vì kết nối bị hỏng trong trường hợp này sẽ có loop xảy ra.
11. Khả năng tương thích với chuẩn IEEE 802.1D STP:
Một switch đang hoạt động với giao thức MSTP sẽ có khả năng hỗ trợ được những giao thức đã được tích hợp sẵn trên switch (IEEE 802.1D). Nếu switch này nhân một gói tin BPDU của một switch đang hoạt động với giao thức IEEE 802.1D STP (một BPDU với trường protocol version chứa giá trị 0) thông qua một port nào đó, thì nó sẽ gửi duy nhất IEEE 802.1D BPDUs trên port đó. Một switch đang hoạt động với giao thức MSTP sẽ có khả năng xác định được một port có đóng vai trò là boundary trong một region hay không khi nó nhận một IEEE 802.1D BPDU, một MSTP BPDU (version 3) có khả năng trao đổi với các region khác nhau, hoặc một RSTP BPDU (Version 2).
Tuy nhiên, các switch này không có khả năng tự động chuyển đổi thành chế độ MSTP nếu nó không nhận được các gói tin IEEE 802.1D BPDU bởi vì nó không có khả năng xác định switch nào đang hoạt động giao thức IEEE 802.1D STP. Một switch sẽ tiếp gán một port với vai trò là boundary khi switch đó đang kết nối trực tiếp vào một region. Để khởi động lại tiến trình xử lý của giao thức này thì bạn có thể sử dụng câu lệnh: clear spanning-tree detected-protocols ở chế độ privileged EXEC.
Nếu tất cả các switch đang chạy giao thức IEEE 802.1D kết nối với các switch đang chạy giao thức RSTP, thì chúng cũng có khả năng xử lý các gói tin MSTP BPDUs. Vì vậy, các switch chạy MSTP có khả năng gửi được cả một IEEE 802.1D BPDU (Version 0) và TCN BPDU hoặc MSTP BPDU (version 3) trên boundary port.
Ban đầu, ta đã có giao thức IEEE STP, được được phát triển theo 2 bản thể của DEC và IBM, chúng có đôi chút khác nhau. Tất cả 2 bản thể này đều có chung một cơ chế logic, được đề xuất bởi Radia Perlman trong những năm 80, trong khi bà được làm việc tại DEC.
Các phiên bản IEEE đều tương thích để sử dụng với nhiều VLAN sử dụng cơ chế trunking 802.1Q . Trong một spanning-tree được chia sẻ, đôi khi được gọi là Mono Spanning Tree (MST) theo Cisco, hoặc thường thông dụng hơn là Common Spanning Tree (CST) được sử dụng để tạo ra một cấu trúc hệ thống duy nhất chông vòng lặp.
Hạn chế của phương pháp này là không có khả năng để thực hiện các kỹ thuật giao thông VLAN qua các liên kết dự phòng: nếu liên kết bị chặn, nó sẽ bị khóa cho tất cả các VLAN. Một vấn đề khác liên quan đến xây dựng cấu trúc STP: Truyền tải dày đặc hơn trên những switch gần root bridge hơn, trong khi đó đòi hỏi yêu cầu cao hơn về tài nguyên của root bridge - cả về CPU và khả năng liên kết.
Để khắc phục những hạn chế này, Cisco giới thiệu độc quyền giao thức Per-VLAN Spanning Tree Protocol (PVST), sử dụng riêng biệt mỗi cấu trúc STP cho mỗi VLAN. Ban đầu, PVST được tạo ra để được sử dụng với kiểu đóng gói ISL (của Cisco sở hữu độc quyền), nhưng sau đó phiên bản PVST + cho phép PVST BPDU có thể tạo ra tunnel chạy được trên đường trunk IEEE 802.1q và trên IEEE STP. PVST được phép sử dụng cấu trúc logic khác nhau với từng VLAN, nâng cao kỹ thuật truyền tải cơ bản trên Layer 2. Mỗi VLAN có thể sử dụng root bridge của mình và cấu trúc mạng riêng cho phép sử dụng hợp lý tài nguyên của các switch. Phương pháp này có một số hạn chế là nó không đối phó được với trường hợp các liên kết mạng thực tế có khả năng và tần suất sử dụng khác nhau, thống kê nhiều VLAN trên các cấu trúc mạng khác nhau.
Tuy nhiên, đây là hạn chế cố hữu đối với bất kỳ phương pháp cân bằng tải dựa trên STP. Vấn đề chính của PVST là với số lượng ngày càng tăng VLAN, PVST trở thành một sự lãng phí tài nguyên của switch và làm nặng khâu quản lý. Điều này là do số lượng hợp lý các cấu trúc mạng khác nhau, thường là nhỏ hơn nhiều so với số VLAN hoạt động.
Theo thời gian, PVST được thông qua nhanh chóng giới thiệu các đặc tính hội tụ bằng giao thức IEEE RSTP, nhưng các tính năng cốt lõi là việc giữ một bản sao riêng của STP trên mỗi VLAN thì không thay đổi. Nhìn thấy những vấn đề với liên kết với PVST, Cisco đã đến với ý tưởng tách các khái niệm về STP và VLAN ra. Việc thực hiện ban đầu được gọi là MISTP (Multiple Instances Spanning Tree - nhiều trường hợp Spanning Tree) và sau đó phát triển thành tiêu chuẩn được gọi là IEEE 802.1S MSTP (Multiple Spanning Trees Protocol).
II. Khái quát giao thức Multiple Spanning Tree:
MSTP sử dụng giao thức RSTP cho tốc độ hội tụ của hệ thống mạng, cho phép các VLAN có thể được nhóm vào trong một spanning-tree instace, với mỗi một instance có một mô hình spanning-tree riêng không phụ thuộc vào các spanning-tree instance khác. Với kiến trúc này sẽ cung cấp nhiều đường truyền cho các lưu lượng dữ liệu, cho phép thực hiện cơ chế cân bằng tải, và hạn chế số lượng spanning-tree instance cần thiết để hỗ trợ cho số lượng lớn VLAN hoạt động.
III. Các khái niệm trong giao thức Multiple Spanning Tree:
1. Các vùng MSTP
MST khác với 802.1Q và PVST +, mặc dù MST vẫn có thể tương thích với chúng. Nếu một switch được cấu hình sử dụng MST, bằng kiểu BPDU, nó biết được switch láng giềng đang sử dụng loại STP nào. Điều này được thực hiện bằng cách cấu hình switch vào vùng MST chung, nơi mà mọi Switch trong khu vực chạy MST với các thông số tương thích với nhau.
Trong hầu hết các mạng, cần một vùng MST duy nhất là đủ, mặc dù ta có thể cấu hình nhiều hơn. Trong khu vực, tất cả các switch phải chạy trên một khu vực có các thuộc tính sau:
- MST configuration name: Tên cấu hình MST (32 ký tự)
- MST configuration revision number: MST số sửa đổi cấu hình (0-65.535)
- MST instance-to-VLAN mapping table: MST bảng trường hợp VLAN (4.096 mục)
Nếu hai switch có cùng một bộ thuộc tính, chúng thuộc về cùng một vùng MST. Nếu không, chúng thuộc về hai khu vực MST độc lập.
MST BPDU chứa cấu hình các thuộc tính sao cho switch nhận BPDUs có thể so sánh chúng với các cấu hình MST địa phương của chúng. Nếu các thuộc tính phù hợp, các trường hợp STP trong MST có thể được chia sẻ như là một phần của cùng một vùng.
Một vùng MST bao gồm nhiều thiết bị trong mạng chuyển mạch và các phân đoạn mạng giữa chúng. Các thiết bị này có các đặc điểm sau:
- Tất cả các thiết bị đều được cấu hình MSTP
- Chúng đều có chung một tên vùng MST
- Chúng phải có chung cấu hình VLAN cho các trường hợp STP
- Chúng có chung cấu hình sửa đổi MST
- Chúng đều được liên kết với nhau
2. Các trường hợp Spanning Tree trong MSTP
MST được thiết kế để tương thích với tất cả các hình thức khác nhau của STP. Vì vậy, nó cũng phải hỗ trợ mỗi trường hợp STP. Đây là nơi MST có thể bị lẫn lộn. Hãy suy nghĩ nếu mạng của toàn bộ doanh nghiệp chỉ có một cấu trúc Common Spanning Tree (CST) duy nhất để một trong những trường hợp của STP đại diện cho tất cả các VLAN và tất cả các khu vực MST. CST duy trì một cấu trúc chống vòng lặp thông thường trong khi tích hợp tất cả các hình thức STP có thể được sử dụng trong mạng.
Để làm điều này, CST phải đối mặt với từng vùng MST như một “hộp đen” cầu nối đơn bởi vì nó không có chức năng gì bên trong từng khu vực MST. CST duy trì một cấu trúc không vòng lặp với các liên kết kết nối các vùng với nhau với switch độc lập chạy 802.1Q CST.
a) Trường hợp IST:
Một Internal Spanning Tree (IST), là Spanning tree hoạt động trong một MST region. Với mỗi MST region, MSTP sẽ duy trì nhiều spanning tree instance. Instance 0 là một instance đặc biệt cho một region, nó được biết đến nhưn một Internal Spanning Tree (IST).Tất cả các MST instance khác có giá trị từ 1 đến 4094. IST là một instance duy nhất có khả năng gửi và nhận các gói tin BPDUs. Tất cả các thông tin về các spanning tree instance khác sẽ được chứa trong một trường gọi là M-records, và những thông tin này được đóng gói bởi MSTP BPDUs. Bởi vì MSTP BPUD có khả năng chứa tất cả các thông của các instance khác, nên số lượng của các gói BPDUs cần thiết để xử lý và để hỗ trợ nhiều spanning-tree instance là được hạn chế đáng kể.
Tất cả MST instance với cùng một MST region sẽ có cùng các tham số thời gian, nhưng mỗi một MST instance sẽ có riêng các tham số mô hình của chúng như: root switch ID, root path cost... Theo mặc định, tất cả các VLAN được gán vào trong IST. Một MST instance là một vùng của region. Ví dụ, MST instance 1 trong region A là hoàn toàn độc lập với MST instance 1 trong region B.
Hình minh họa tầm quan trọng của IST. Hình cho thấy hai khu vực 10 và 20. Hai switch 1 và 3 nằm trong khu vực 10. Switch2, thuộc khu vực 20, có giá trị BID cao hơn hai switch 1 và 3. Do đó, BPDU cấp trên của switch2 được chấp nhận bởi Switch1 và Switch3 cho trường hợp IST. Theo Switch1 và Switch3, Switch2 là gốc cho tất cả các VLAN cho MST 0. Switch1 có vai trò bổ sung. Một trong các cổng của nó là cổng biên giới, nghĩa là cổng đó được kết nối với một khu vực khác. Khi nó nhận được BPDU từ Switch2, đầu tiên switch1 đổi các BPDU của switch2 trước khi chuyển tiếp nó cho Switch3. Nó cho biết thêm một ID Master IST và IST Master Path Cost cho BPDU. Theo mặc định, IST Master ID là ID bridge và các Chi phí Path Master là 0.
Hai phương pháp khác nhau để chọn một Master IST:
- Các Root cho CST nằm trong khu vực cũng sẽ được chọn là IST Master. Ví dụ, Switch2 cũng sẽ là Master IST cho khu vực 20.
- Bridge ranh giới được định nghĩa là chi phí nhỏ nhất đến con đường Root CST. Trong trường hợp này, đó là switch1, bởi vì nó có một kết nối trực tiếp tới Switch2 ở Region20, trong khi nó nằm ở Region10.
b) Trường hợp MST:
Toàn bộ ý tưởng đằng của MST là khả năng thiết lập cấu trúc cho nhiều VLAN vào một số ít STP một cách hợp lí. Bên trong một khu vực, các trường hợp thực tế MST instance (MSTI) tồn tại bên cạnh các IST. Cisco hỗ trợ tối đa là 16 MSTI trong từng khu vực. Mặc định thì IST luôn tồn tại như MSTI số 0, MSTI từ 1 đến 15 có sẵn để sử dụng khi muốn cấu hình. Hình minh họa cho thấy các MSTI khác nhau có thể tồn tại trong một vùng MST duy nhất (phần bên trái). Trong mạng lưới này, hai trường hợp MST là MSTI 1 và MSTI 2, được cấu hình với VLAN khác nhau cho từng mạng. Cấu trúc của chúng theo cùng một cấu trúc mạng ở phía bên trái của hình, nhưng mỗi trường hợp có cấu trúc, root khác nhau.
Chú ý rằng trong đám mây MST, hiện nay có ba trường hợp cùng tồn tại độc lập STP: MSTI1, MSTI2, và IST.
Chỉ có IST (MSTI 0) được phép gửi và nhận MST BPDU. Thông tin về mỗi MSTIs khác được gắn vào BPDU MST. Vì vậy, ngay cả khi một khu vực có tất cả 16 trường hợp hoạt động, chỉ cần có 1 BPDU để chuyển tải thông tin STP đến tất cả các thiết bị.
Mỗi MSTI chỉ có ý nghĩa trong một khu vực, ngay cả khi một khu vực liền kề có sử dụng cùng một MSTI. Nói cách khác, kết hợp với IST, MSTI là duy nhất trong khu vực ranh giới để tạo thành một trường hợp con của CST. Điều đó có nghĩa chỉ IST BPDU được gửi vào và ra khỏi một khu vực IST.
Điều gì sảy ra nếu một vùng MST kết nối với một switch chạy PVST+ truyền thống? MST có thể phát hiện tình trạng này bằng cách lắng nghe các BPDU nhận được. Nếu BPDU được nghe từ nhiều hơn một VLAN (các CST), PVST+ phải được sử dụng. Khi một MSTI gửi một BPDU PVST+ đến switch, các BPDU IST được nhân rộng vào tất cả các VLAN trên các STP PVST+ switch trunk.
Hãy ghi nhớ rằng các trường hợp IST đang hoạt động trên tất cả các cổng trên switch. Ngay cả khi một cổng không thuộc VLAN cũng được ánh xạ tới các IST, IST phải được chạy trên các cổng. Ngoài ra, theo mặc định, tất cả các VLAN được ánh xạ vào các trường hợp IST. Nếu cần thiết bạn phải cấu hình rõ ràng chúng vào trường hợp khác.
3. Spanning Tree chung và riêng (Common and Internal Spanning Tree - CIST):
Mỗi khu vực chạy MSTP là trường đặc biệt của spanning-tree được biết đến như là IST hoặc Spanning Tree nội bộ ( Internal Spannign Tree = MSTI0). Trường hợp này chủ yếu phục vụ mục đích phổ biến thông tin cấu trúc STP cho MSTI. IST có một root bridge, được bầu dựa trên Bridge ID thấp nhất (Bridge Priority + địa chỉ MAC). Trường hợp thay đổi với nhiều vùng MSTP trong mạng. Khi chuyển một thông điệp phát hiện BPDU nguồn từ một khu vực (hoặc STP / PVST + BPDU), nó đánh dấu cổng tương ứng làm ranh giới MSTP. Để thuận tiện, chúng ta sẽ gọi tất cả các cổng khác như cổng nội địa. Một switch có cổng ranh giới được gọi là switch ranh giới.
Trên hình ta có thể nhìn thấy ba khu vực MSTP kết nối với nhau theo kiểu vòng, bằng cách sử dụng cặp liên kết giữa các khu vực. Các liên kết kết nối các khu vực kết nối với các cổng biên giới. Khi switch có một cổng kết nối đến một số khu vực khác, tất cả các switch đó là những switch ranh giới. Thông báo với các ký hiệu đơn giản hóa cho các chi phí đường dẫn và các Bridge Priority. Chúng ta sẽ sử dụng chúng để chứng minh làm thế nào ICST được xây dựng. Để đơn giản thế này, giả định rằng tất cả các chi phí liên kết bên trong khu vực có cùng một giá trị là 1.
4. Spanning Tree chung:
CST là một spanning tree duy nhất kết nối tất cả các vùng MST trong mạng chuyển mạch. Nếu chúng ta coi từng vùng MST như một thiết bị layre2, CST là một spanning tree bao trùm những thiết bị này thông qua STP hoặc RSTP.
Các BPDU MSTP chứa hai khối thông tin quan trọng của hệ thống, được minh họa trong hình bên dưới:
Một, được đánh dấu bằng màu đỏ, có liên quan đến CIST Root và bầu cử CIST Root khu vực. Như chúng ta sẽ thấy bên dưới, CIST Root được bầu trong số tất cả các vùng, và CIST Root khu vực được bầu ở mỗi khu vực. Các khối màu xanh lá cây phác thảo các thông tin về CIST Root khu vực (mà trở thành Root IST trong nhiều khu vực). Các chi phí CIST Root nội địa là chi phí nội bộ khu vực để đạt được CIST Root khu vực. Điều quan trọng cần ghi nhớ rằng IST Root = CIST Root khu vực trong trường hợp khu vực có nhiều phần. Sự thay đổi này được giải thích thêm trong bên dưới.
a) CIST root chung và riêng (Common and Internal Spanning Tree Root - CIST root):
CIST Root là bridge có Bridge ID thấp nhất giữa tất cả các vùng. Có thể là một bridge bên trong một khu vực hoặc switch ranh giới trong một khu vực.
b) Spanning tree root khu vực chung và riêng (Common and Internal Spanning Tree Regional Root - CIST Regional Root):
CIST Root khu vực là một ranh giới switch cho mỗi khu vực bầu dựa trên các chi phí đường đi bên ngoài ngắn nhất để tiếp cận với Root CIST. Chi phí đường dẫn được tính trên chi phí của các liên kết kết nối các vùng, không bao gồm các đường dẫn nội bộ khu vực.
IV. Cơ chế hoạt động
1. Các loại cổng:
MSTP tính toán để phân vai trò các cổng: root port, designated port, master port, alternate port, and backup port. Một cổng có thể đóng vai trò khác nhau trong các MSTI khác nhau.
- Root port: một cổng chịu trách nhiệm về dữ liệu chuyển tiếp để các root bridge.
- Designated port: một cổng chịu trách nhiệm về dữ liệu chuyển tiếp đến tầng thấp hơn trong mạng hoặc thiết bị.
- Master port: một cổng trên đường ngắn nhất từ vùng hiện hành đến root bridge chung, kết nối MST khu vực đến Root bridge chung
- Alternate port: cổng dự phòng cho một root port hoặc master port. Khi root port hoặc master port bị chặn, các cổng thay thế sẽ trở thành root port mới hoặc master port mới.
- Backup port: cổng dự phòng của một designated port. Khi designated port bị chặn, các backup port sẽ trở thành một designated port mới và bắt đầu chuyển dữ liệu ngay lập tức. Bởi vì hai cổng kết nối trên thiết bị MSTP cùng có thể gây ra các vòng lặp. Các thiết bị sẽ chặn một trong hai cổng. Một trong những cổng bị chặn sẽ trở thành backup port.
2. Các trạng thái cổng:
Trong MSTP, một cổng nằm trong một trong ba trạng thái sau đây tuỳ thuộc vào việc nó học địa chỉ MAC và chuyển tiếp dữ liệu:
- Discarding: các cổng không học địa chỉ MAC và cũng không chuyển tiếp dữ liệu.
- Learning: cổng học địa chỉ MAC nhưng không chuyển tiếp dữ liệu.
- Forwarding: cổng dùng địa chỉ MAC đã học ( và sẽ học ) để chuyển tiếp dữ liệu.
3. Bầu chọn Root Bridge chung và riêng
Khi switch khởi động, nó sẽ tuyên bố chính nó như là CIST Root và CIST Root khu vực và thông báo trong BPDU gửi đi. Switch sẽ điều chỉnh quyết định của nó khi tiếp nhận thông tin BPDU tốt hơn và tiếp tục quảng cáo BPDU tốt nhất đó về CIST Root và CIST Root khu vực trên tất cả các cổng nội bộ. Trên cổng biên giới, switch chỉ quảng cáo các CIST Root Bridge ID và CIST Root Path Cost bên ngoài, và ẩn các chi tiết của cấu trúc mạng nội bộ của riêng khu vực.
CIST Root Path Cost bên ngoài là chi phí để tiếp cận với Root CIST qua các liên kết kết nối các cổng biên giới - tức là các liên kết liên vùng ( liên kết chung giữ các vùng MST ). Khi một BPDU được nhận trên một cổng nội bộ, chi phí này là không thay đổi. Khi một BPDU được nhận trên một cổng biên giới, chi phí này được điều chỉnh dựa trên các chi phí cổng tiếp nhận ranh giới. Kết quả, các CIST Root Path Cost bên ngoài được tuyên truyền không sửa đổi bên trong các khu vực, chỉ thay đổi trên các cổng biên.
Chỉ có một switch ranh giới có thể được bầu làm CIST Root khu vực, và điều này là việc switch có chi phí thấp nhất để tiếp cận tới CIST Root. Nếu một switch ranh giới CIST nghe có CIST Root Path Cost bên ngoài tốt hơn chi phí đã nhận vào liên kết bên trong của nó, nó sẽ từ bỏ vai trò của nó là CIST Root khu vực và bắt đầu công bố số liệu mới ra cổng biên giới của nó.
Tất cả các swicth biên giới cần chặn cổng biên giới của nó. Nếu một switch là CIST Root khu vực, nó bầu một trong những cổng ranh giới của nó như là CIST Root port và chặn tất cả các cổng biên giới. Nếu một switch ranh giới không phải là CIST Root khu vực, nó sẽ đánh dấu các cổng biên giới như CIST Designated port hoặc CIST Alternate port.
Cổng ranh giới trên một switch không phải mà Root bridge khu vực chỉ trở thành designated port chỉ khi nó có thông tin cao hơn cho CIST Root: CIST Root Path Cost bên ngoài tốt hơn hoặc nếu các chi phí đều được bình đẳng CIST Root Bridge ID khu vực tốt hơn. Điều này tuân theo quy tắc thông thường của quá trình STP.
Như một kết quả của xây dựng CIST, mỗi khu vực sẽ có một switch có một cổng bị chặn trong sự chỉ đạo của CIST Root khu vực. Tất cả các switch sẽ quảng cáo ranh giới của khu vực CIST Root Bridge ID khu vực ra khỏi ranh giới các cổng không bị chặn của chúng. Từ góc nhìn bên ngoài, toàn vùng sẽ giống như một switch ảo duy nhất với Bridge ID = CIST Root ID khu vực và root port duy nhất được bầu vào CIST Root switch khu vực.
Khu vực chứa CIST Root sẽ có tất cả các cổng biên giới không bị cấm và đánh dấu như là CIST designated port. Khu vực sẽ trông giống như một root bridge ảo với Bridge ID bằng CIST Root và tất cả các cổng đều là designated port. Chú ý rằng các khu vực với CIST Root có CIST Root khu vực bằng CIST Root khi chúng chia sẻ cùng giá trị ưu tiên thấp nhất trên toàn hệ thống tất cả các vùng.
Hình minh họa trên thể hiện cấu trúc CIST tính từ cấu trúc vật lý.
Trước tiên, SW1-1 được bầu làm CIST Root vì nó có Bridge ID thấp nhất trong số tất cả các switch ở tất cả các vùng. Điều này sẽ tự động làm cho khu vực 1 là bridge nối ảo với tất cả các cổng biên giới không bị chặn.
Tiếp theo, SW2-1 và SW3-1 được bầu làm các CIST Root khu vực trong các khu vực tương ứng. Chú ý rằng SW3-1 và SW2-3 có chi phí ngoài để tiếp cận với CIST Root bằng nhau nhưng SW3-1 thắng vì do có ưu tiên CIST Root khu vực thấp hơn. Hãy ghi nhớ rằng trong cấu trúc với nhiều vùng MSTP , mọi khu vực mà không chứa các CIST Root phải thay đổi quá trình bầu cử IST Root và làm cho IST Root bằng CIST Root khu vực.
4. Điều hành hoạt động trong MST
IST kết nối với tất cả các MSTP switch trong một khu vực. Khi IST hội tụ, root của IST sẽ trở thành IST master, đó là switch trong khu vực với các bridge ID thấp nhất và chi phí đường dẫn đến CST root thấp nhất. Các IST master cũng là CST root nếu chỉ có một khu vực trong hệ thống. Nếu gốc CST nằm bên ngoài khu vực, một trong những switch tại biên giới của khu vực này được chọn làm IST master.
Khi một MSTP switch khởi chạy, nó sẽ gửi BPDU tuyên bố chính nó như là root của CST và IST master, với cả chi phí của đường dẫn vào CST root và IST master đều thiết lập về 0. Switch này cũng khởi tạo tất cả các trường hợp MST và tuyên bố rằng mình là root cho tất cả. Nếu switch nhận được thông tin cấp trên MST root ( Bridge ID thấp hơn, chi phí thấp hơn, v..v.. ) tốt hơn so với hiện tại được lưu giữ cho cổng, nó từ bỏ của nó như là làm IST master.
Trong quá trình khởi tạo, một khu vực có thể có nhiều vùng nhỏ, chúng có IST master riêng của mình. Khi nhận được thông tin switch IST cấp trên, chúng rời khỏi tiểu vùng cũ của chúng và tham gia các tiểu vùng mới mà có thể chứa các IST master thật sự. Do đó tất cả các tiểu vùng thu nhỏ, ngoại trừ một trong đó có các IST master thật sự.
Đối với hoạt động chính xác, tất cả các switch trong vùng MST phải đồng ý về cùng IST master. Vì vậy, bất kỳ hai switch trong khu vực cổng đồng bộ hóa vai trò của chúng cho một trường hợp MST chỉ khi chúng hội tụ về một IST master chung.
5. Điều hành hoạt động trong các vùng MST:
Nếu có nhiều khu vực hoặc switch di sản của 802.1D trong mạng, MSTP thiết lập và duy trì các CST, bao gồm tất cả các vùng MST và tất cả các switch di sản STP trong mạng. Các trường hợp MST kết hợp với các IST tại ranh giới của khu vực để trở thành CST.
IST kết nối tất cả MSTP các switch trong khu vực và xuất hiện như một cây con trong CST, mà nó bao gồm toàn bộ các switch domain, với root của cây con trở thành các IST master. Vùng MST xuất hiện như một switch ảo để tiếp giáp STP chuyển mạch và các vùng MST.
Hình dưới cho thấy một mạng lưới với ba vùng MST và một switch di sản 802.1D (D). Các IST master cho khu vực 1 (A) cũng là gốc CST. Các IST master cho khu vực 2 (B) và là IST master cho khu vực 3 (C) là root cho subtrees của mình trong vòng CST này. RSTP chạy trong tất cả các vùng:
Hình minh họa không hiển thị các trường hợp bổ sung MST cho từng khu vực. Lưu ý rằng trường hợp cấu trúc của MST có thể khác với của IST cho cùng một vùng.
Chỉ trường hợp CST gửi và nhận BPDU, và trường hợp MST thêm thông tin spanning-tree của họ vào BPDU để tương tác với switch lân cận và tính toán cấu trúc spanning-tree cuối cùng. Bởi vì điều này, các thông số spanning-tree có trong BPDU truyền (ví dụ, hello time, time forwarding, Max age, và max-hop) được cấu hình chỉ trên các trường hợp CST nhưng ảnh hưởng đến tất cả các trường hợp MST. Các thông số liên quan đến cấu trúc spanning-tree (switch priority, port VLAN cost, port VLAN priority) có thể được cấu hình trên cả các trường hợp CST và các trường hợp MST.
MSTP switch sử dụng phiên bản 3: RSTP BPDU hoặc STP 802.1D BPDUs để giao tiếp với switch di sản 802.1D. MSTP switch sử dụng MSTP BPDU để giao tiếp với switch MSTP.
6. Cơ chế điếm bước nhảy ( Hop count ):
IST và MST instances không sử dụng những thông tin message-age và maximum-age được cấu hình trong BPDU để tính toán mô hình spanning-tree. Thay vào đó, chúng sử dụng kỹ thuật path cost đến root và hop-count giống như kỹ thuật IP time-to-live (TTL).
Bằng cách sử dụng câu lệnh: spanning-tree mst max-hops ở chế độ global configuration, bạn có thể cấu hình giá trị hop tối đa bên trong region và ứng dụng nó vào trong IST và tất cả các MST instance trong region. Hop count sẽ đạt được cùng một kết quả như thông tin về message-age. Root switch của một instance luôn gửi một gói BPDU (hoặc M-record) với chi phí bằng 0 và giá trị hop count sẽ được cấu hình giá trị tối đa. Khi một switch nhận gói BPDU này, thì switch đó sẽ giảm giá trị hop count xuống một đơn vị và đưa giá trị hop count mới này vào gói BPDU để quảng bá tiếp. Khi hop count đạt xuống mức giá trị 0, thì switch sẽ hủy gói BPDU và những thông tin trong gói BPDU đó sẽ được lưu trữ trên port.
Thông tin về message-age và maximum-age trong phần RSTP của gói tin BPDU sẽ giống nhau trong một region, và có cùng các giá trị được quảng bá bởi region designated port trong phạm vi region.
7. Ranh giới giữa các cổng (Boundary Ports):
Trong các chuẩn trước kia của Cisco đã được triển khai, một boundary port sẽ kết nối một MST region đến một spanning-tree region đang chạy RSTP, và đến một spanning-tree region đang chạy PVST+ hoặc rapid PVST+, hoặc đến các MST region với những cấu hình MST khác nhau. Một boundary port cũng kết nối đến một LAN.
Trong chuẩn IEEE 802.1s không có một khái niệm hoặc định nghĩa nào về boundary port. Chuẩn IEEE 802.1Q-2002 đã xác định hai loại thông điệp mà một port có thể nhận đó là: internal (đến từ các switch trong cùng một region) và external. Khi một thông điệp là external, thì thông điệp đó chỉ được nhận duy nhất bởi CIST. Nếu vai trò CIST là root hoặc alternate, hoặc nếu một gói tin BPDU external là một sự thay đổi của mô hình mạng, nó sẽ có ảnh hưởng trên một MST instance. Khi một thông điệp là internal, thì các thông tin về CIST sẽ được nhận bởi CIST, và mỗi MST instance sẽ nhận một M-record tương ứng của MST instance đó. Với các chuẩn trước kia của Cisco thì một port có khả năng nhận một thông điệp external sẽ đóng vai trò như một boundary port. Và port này sẽ không có khả năng nhận đồng thời cùng lúc hai loại thông điệp internal hoặc external.
Một MST region sẽ chứa cả hai: các switch và các Lan. Một segment nằm bên dưới một region thì port được kết nối vào segment đó sẽ có vai trò là designated port. Vì vậy, một port nằm trong một region khác với designated port sẽ đóng vai trò là boundary port. Chính sự định nghĩa này sẽ cho phép một port nằm trong một region có thể nằm chung trên một segment với một port nằm ở region khác, tạo ra khả năng có thể cùng nhận được cả hai loại thông điệp internal và external trên một port.
8. Thay đổi vai trò của các port:
Port có vai trò boundary không còn tồn tại trong các chuẩn MST bây giờ, nhưng khái niệm về boundary vẫn được duy trì trong quá trình triển khai của Cisco. Tuy nhiên, một MST instance port với vai trò là boundary của một region sẽ không được phép trao đổi thông tin với CIST port. Trong hệ thống bây giờ sẽ tồn tại hai trường hợp sau:
Boundary port là một root port của CIST regional root - khi CIST instance port được tiến cử và đồng bộ, nó có thể gửi lại một sự thỏa thuận và chuyển sang trạng thái forwarding sau khi tất cả các port MSTI đã trao đổi thông tin cho nhau. MSTI port bây giờ có một vai trò đặc biệt là master.
Boundary port không phải là một root port của CIST regional root - MSTI port sẽ giữ vai trò và trạng thái của CIST port. Chuẩn này sẽ cung cấp ít thông tin hơn, và nó sẽ khó khăn cho việc hiểu tại sao một MSTI port có thể trở thành trạng thái blocking khi nó không nhận được các gói BPDUs (MRecords). Trong trường hợp này, mặc dù vai trò boundary không tồn tại nhưng các bạn dùng câu lệnh show vẫn có thể xác định được một port đóng vai trò là boundary.
9. Sự tương thích giữa các chuẩn cũ và chuẩn mới của switch:
Với lý do quá trình xác định các chuẩn của switch có khả năng bị lỗi, nên bạn có thể sử dụng một câu lệnh thực hiện trong chế độ interface để xác định các chuẩn của các port. Một region không thể định dạng giữa một chuẩn mới và một chuẩn cũ của switch, nhưng chúng có khả năng tương thích với nhau bằng cách sử dụng CIST. Duy nhất một tính năng không thể thực hiện được trong trường hợp này là: cân bằng tải trên những instance khác nhau.
Trên màn hình CLI (command-line interface) sẽ hiển thị các cờ khác nhau phụ thuộc vào các tham số cấu hình trên port khi một port nhận một gói tin BPDUs của chuẩn cũ. Một thông điệp nằm trong nhật ký hệ thống (syslog) cũng xác định được lần đầu tiên switch nhận gói tin BPDU của chuẩn cũ trên một port không được cấu hình cho quá trình truyền dữ liệu của BPDU theo chuẩn cũ.
10. Xác định liên kết bị lỗi:
Tính năng này không tồn tại trên chuẩn IEEE MST, nhưng nó được tích hợp trong các phiên bản của hệ điều hành của Cisco (Cisco IOS). Hệ điều hành sẽ tiến hành kiểm tra vai trò của port và trạng thái của port đó trong quá trình nhận gói tin BPDUs để xác định liên kết bị lỗi có thể là nguyên nhân gây ra loop.
Khi một designated port xác định được một sự đụng độ, nó sẽ vẫn giữ nguyên vai trò của nó, nhưng nó sẽ chuyển đổi sang trạng thái discarding bởi vì kết nối bị hỏng trong trường hợp này sẽ có loop xảy ra.
11. Khả năng tương thích với chuẩn IEEE 802.1D STP:
Một switch đang hoạt động với giao thức MSTP sẽ có khả năng hỗ trợ được những giao thức đã được tích hợp sẵn trên switch (IEEE 802.1D). Nếu switch này nhân một gói tin BPDU của một switch đang hoạt động với giao thức IEEE 802.1D STP (một BPDU với trường protocol version chứa giá trị 0) thông qua một port nào đó, thì nó sẽ gửi duy nhất IEEE 802.1D BPDUs trên port đó. Một switch đang hoạt động với giao thức MSTP sẽ có khả năng xác định được một port có đóng vai trò là boundary trong một region hay không khi nó nhận một IEEE 802.1D BPDU, một MSTP BPDU (version 3) có khả năng trao đổi với các region khác nhau, hoặc một RSTP BPDU (Version 2).
Tuy nhiên, các switch này không có khả năng tự động chuyển đổi thành chế độ MSTP nếu nó không nhận được các gói tin IEEE 802.1D BPDU bởi vì nó không có khả năng xác định switch nào đang hoạt động giao thức IEEE 802.1D STP. Một switch sẽ tiếp gán một port với vai trò là boundary khi switch đó đang kết nối trực tiếp vào một region. Để khởi động lại tiến trình xử lý của giao thức này thì bạn có thể sử dụng câu lệnh: clear spanning-tree detected-protocols ở chế độ privileged EXEC.
Nếu tất cả các switch đang chạy giao thức IEEE 802.1D kết nối với các switch đang chạy giao thức RSTP, thì chúng cũng có khả năng xử lý các gói tin MSTP BPDUs. Vì vậy, các switch chạy MSTP có khả năng gửi được cả một IEEE 802.1D BPDU (Version 0) và TCN BPDU hoặc MSTP BPDU (version 3) trên boundary port.
Comment