Bài viết này nhằm phân biệt các loại STP . Tạm thời , có thể chia ra các loại sau :
- CST
- PVST
- PVST+
- MST ( IEEE 802.1s)
- IST
- STP ( dạng truyền thống 802.1d )
- RSTP ( IEEE 802.1w)
1 . CST : Common Spanning Tree .
Ta đã biết IEEE 802.1q không chỉ định nghĩa làm sao mà các vlan có thể trunking qua các switch , nó còn chỉ ra rằng chỉ có một tiến trình STP duy nhất chạy trên toàn bộ các vlan mà thôi . Và tiến trình duy nhất này người ta gọi tên là CST . Tất cả các CST BPDUs được vận chuyển trên đường trunk bằng native vlan với các untagged frame . Việc chạy duy nhất một tiến trình STP có lợi ở chỗ nó không tiêu tốn nhiều khả năng xử lí của CPU khi phải tính toán lại STP topology , cũng như làm cho công việc cấu hình của chúng ta trở nên đơn giản . Tuy nhiên , nó hạn chế ở chỗ sẽ không cho phép load balancing được thực hiện ( layer 2 loadbalancing sẽ đề cập ở các trang dưới ) .
2 . PVST : per VLan Spanning Tree .
Đây là một version độc quyền của Cisco , 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 .
Ưu điểm : làm giảm kích thước của STP topology , chia ra làm các topology nhỏ hơn , dẫn đến thời gian converge của STP giảm xuông . Thêm vào đó , nó còn cung cấp thêm khả năng load balancing .
Khuyết điểm : 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 ISL trunking 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 trunking .( CST xài dot1q ) . Do đó BPDUs sẽ không được quảng bá giữa 2 loại STP này .
3 . PVST+ : per Vlan Spanning Tree Plus
Cisco tung ra một version 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 translator giữa PVST và CST . PVST+ có thể giao tiếp với PVST qua kết nối ISL trunking , ngược lại PVST+ có thể giao tiếp với CST qua kết nối dot1q trunking . Tại biên giới của PVST và PVST+ sẽ diễn ra việc mapping STP one-to-one . Tại biên giới của PVST+ và CST sẽ diễn ra việc mapping giữa một STP của CST và một PVST trong PVST+ ( STP trong CST chỉ có một mà thôi ) .
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 lại CST .
4 . MST : Multiple Spanning Tree .
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 .
Nghĩ xa 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 . Topology cho mỗi instance là độc lập và được chỉ ra như hình vẽ . Vlan A có thể chọn đường uplink bên trái để đi , và blocking đường uplink bên phải . Tương tự , Vlan B có thể chọn đường uplink bên phải để đi và blocking đường uplink bên trái . Như vậy cả 2 đường uplink đều được sử dụng , load balancing đã đượ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 uplink duy nhất ( ví dụ đường uplink 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ì topology của các instance tính toán được cũng chỉ đi qua một trong 2 kết nối uplink mà thôi . Như vậy việc sử dụng tới 100 STP instance trong khi topology thì chỉ đi qua một trong 2 đường uplink sẽ làm tiêu tốn rất nhiều resource của CPU . Ta sẽ hạn chế số instance lại bằng cách cho instance thứ nhất chạy cho 1 range vlan ( ví dụ từ 1-50 ) , instance thứ 2 chạy cho range vlan từ 51-100 . Chúng ta đã hạn chế được số lượng instance đồng thời vẫn đảm bảo cho load balancing hoạt động .
Ví dụ cấu hình load balancing :
Ta sẽ cấu hình sao cho range vlan 3-6 sẽ lấy đường trunk 2 làm forwarding và trunk 1 là blocking . Trong khi đó , range vlan 8-10 sẽ lấy đường trunk 1 làm forwarding và trunk 2 lại là blocking . Nếu một trong 2 kết nối trunk 1 hoặc trunk 2 bị down , toàn bộ traffice trong cả 2 range vlan đều dồn về một phía và chạy . Có thể cấu hình bằng cách gán priority 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 mapping 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 sau đây :
- Số lượng Instance cần phải dùng là bao nhiêu
- Range vlan cần map cho mỗi instance là gì .
Để hiểu được các khái niệm kế tiếp , chúng ta cần phải nắm được MST region là gì ? Để 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 MST region .
5 . IST , CIST , CST :
CST chạy trên toàn bộ domain , CST coi các MST region như là một “ big switch “ tham gia vao CST instance . CST lúc này sẽ tạo ra một loop-free topology 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 sub loop-free tree . Các instance chạy trong một MST region gọi là các MSTIs . Và các MSTIs này được quản lí bởi một IST instance . Trong MST , thì IST được coi như là một locally CST trong MST đó . Các MSTIs được đánh số từ 0-15 . Trong đó , MSTIs 0 ( instance 0 ) chính là IST . IST đại diện cho toàn bộ MST region để 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 MSTIs khác được đưa vào BPDUs với giá trị M record . Mặc dù MST region 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 . MSTIs chỉ có ý nghĩa cục bộ trong một MST region mà thôi . Nếu MST region 1 có MSTI 2 , MST region 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 MST region kết nối với một PVST+ switch thì nó sẽ nhận biết ngay được điều này bằng cách kiểm tra BPDUs . Nếu BPDUs được nghe thấy từ nhiều VLAN , nghĩa là neighbor đang chạy PVST+ . Khi MST region gửi BPDUs cho PVST+ switch nó se replicate IST BPDUs cho mỗi Vlan trong PVST+ .
CIST là một tập hợp các MSTIs trong một MST region .
IST trong một MST region lúc converge 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 .
Mọi ý kiến đóng góp xin gửi về : hoanglenhan@vnpro.org !
Cảm ơn !
- CST
- PVST
- PVST+
- MST ( IEEE 802.1s)
- IST
- STP ( dạng truyền thống 802.1d )
- RSTP ( IEEE 802.1w)
1 . CST : Common Spanning Tree .
Ta đã biết IEEE 802.1q không chỉ định nghĩa làm sao mà các vlan có thể trunking qua các switch , nó còn chỉ ra rằng chỉ có một tiến trình STP duy nhất chạy trên toàn bộ các vlan mà thôi . Và tiến trình duy nhất này người ta gọi tên là CST . Tất cả các CST BPDUs được vận chuyển trên đường trunk bằng native vlan với các untagged frame . Việc chạy duy nhất một tiến trình STP có lợi ở chỗ nó không tiêu tốn nhiều khả năng xử lí của CPU khi phải tính toán lại STP topology , cũng như làm cho công việc cấu hình của chúng ta trở nên đơn giản . Tuy nhiên , nó hạn chế ở chỗ sẽ không cho phép load balancing được thực hiện ( layer 2 loadbalancing sẽ đề cập ở các trang dưới ) .
2 . PVST : per VLan Spanning Tree .
Đây là một version độc quyền của Cisco , 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 .
Ưu điểm : làm giảm kích thước của STP topology , chia ra làm các topology nhỏ hơn , dẫn đến thời gian converge của STP giảm xuông . Thêm vào đó , nó còn cung cấp thêm khả năng load balancing .
Khuyết điểm : 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 ISL trunking 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 trunking .( CST xài dot1q ) . Do đó BPDUs sẽ không được quảng bá giữa 2 loại STP này .
3 . PVST+ : per Vlan Spanning Tree Plus
Cisco tung ra một version 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 translator giữa PVST và CST . PVST+ có thể giao tiếp với PVST qua kết nối ISL trunking , ngược lại PVST+ có thể giao tiếp với CST qua kết nối dot1q trunking . Tại biên giới của PVST và PVST+ sẽ diễn ra việc mapping STP one-to-one . Tại biên giới của PVST+ và CST sẽ diễn ra việc mapping giữa một STP của CST và một PVST trong PVST+ ( STP trong CST chỉ có một mà thôi ) .
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 lại CST .
4 . MST : Multiple Spanning Tree .
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 .
Nghĩ xa 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 . Topology cho mỗi instance là độc lập và được chỉ ra như hình vẽ . Vlan A có thể chọn đường uplink bên trái để đi , và blocking đường uplink bên phải . Tương tự , Vlan B có thể chọn đường uplink bên phải để đi và blocking đường uplink bên trái . Như vậy cả 2 đường uplink đều được sử dụng , load balancing đã đượ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 uplink duy nhất ( ví dụ đường uplink 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ì topology của các instance tính toán được cũng chỉ đi qua một trong 2 kết nối uplink mà thôi . Như vậy việc sử dụng tới 100 STP instance trong khi topology thì chỉ đi qua một trong 2 đường uplink sẽ làm tiêu tốn rất nhiều resource của CPU . Ta sẽ hạn chế số instance lại bằng cách cho instance thứ nhất chạy cho 1 range vlan ( ví dụ từ 1-50 ) , instance thứ 2 chạy cho range vlan từ 51-100 . Chúng ta đã hạn chế được số lượng instance đồng thời vẫn đảm bảo cho load balancing hoạt động .
Ví dụ cấu hình load balancing :
Ta sẽ cấu hình sao cho range vlan 3-6 sẽ lấy đường trunk 2 làm forwarding và trunk 1 là blocking . Trong khi đó , range vlan 8-10 sẽ lấy đường trunk 1 làm forwarding và trunk 2 lại là blocking . Nếu một trong 2 kết nối trunk 1 hoặc trunk 2 bị down , toàn bộ traffice trong cả 2 range vlan đều dồn về một phía và chạy . Có thể cấu hình bằng cách gán priority 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 mapping 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 sau đây :
- Số lượng Instance cần phải dùng là bao nhiêu
- Range vlan cần map cho mỗi instance là gì .
Để hiểu được các khái niệm kế tiếp , chúng ta cần phải nắm được MST region là gì ? Để 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 MST region .
5 . IST , CIST , CST :
CST chạy trên toàn bộ domain , CST coi các MST region như là một “ big switch “ tham gia vao CST instance . CST lúc này sẽ tạo ra một loop-free topology 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 sub loop-free tree . Các instance chạy trong một MST region gọi là các MSTIs . Và các MSTIs này được quản lí bởi một IST instance . Trong MST , thì IST được coi như là một locally CST trong MST đó . Các MSTIs được đánh số từ 0-15 . Trong đó , MSTIs 0 ( instance 0 ) chính là IST . IST đại diện cho toàn bộ MST region để 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 MSTIs khác được đưa vào BPDUs với giá trị M record . Mặc dù MST region 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 . MSTIs chỉ có ý nghĩa cục bộ trong một MST region mà thôi . Nếu MST region 1 có MSTI 2 , MST region 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 MST region kết nối với một PVST+ switch thì nó sẽ nhận biết ngay được điều này bằng cách kiểm tra BPDUs . Nếu BPDUs được nghe thấy từ nhiều VLAN , nghĩa là neighbor đang chạy PVST+ . Khi MST region gửi BPDUs cho PVST+ switch nó se replicate IST BPDUs cho mỗi Vlan trong PVST+ .
CIST là một tập hợp các MSTIs trong một MST region .
IST trong một MST region lúc converge 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 .
Mọi ý kiến đóng góp xin gửi về : hoanglenhan@vnpro.org !
Cảm ơn !
Comment