Như các bạn đã biết thì Spanning Tree Protocol (STP) là một giao thức chống loop, nó hoặc động dựa vào các gói tin BPDU. Một hệ thống Switch hoạt động tốt khi không có sự thay đổi về cấu trúc cây STP.
.
Trong trường hợp ta thêm một Switch mới vào để mở rộng quy mô cho hệ thống, lúc này Switch mới tham gia sẽ gửi các gói tin BPDU vào trong hệ thống Switch. Hệ thống Switch có thể bị Loop hoặc có thể xảy ra quá trình bầu chọn lại Root Bridge tùy thuộc vào trạng thái cổng kết nối với Switch mới. Nếu ta bật tính năng portfast thì có nghĩa là tắt tính năng STP và sẽ bị loop nếu có Switch lạ cắm vào. Còn nếu để cổng ở trạng thái mặc định thì khi nhận được BPDU thì Switch sẽ so sánh với BPDU do Root Bridge gửi xuống và sẽ tiến hành xử lý gói tin BPDU này.
.
.
Trưòng hợp: cổng F0/3 của SW03 đã bật tính năng portfast, lúc này hiện tượng loop sẽ xảy ra, do tính năng portfast bỏ qua quá trình phát hiện vòng lặp
.
.
Trường hợp: CổngF0/3 của SW03 không bật tính năng Portfast. Khi nhận được BPDU mới, nếu gói tin BPDU này tốt hơn BPDU của Root Switch thì giữa các Switch xảy quá trình bầu chọn lại Root Bridge. Khi này Switch mới tham gia vào hệ thống sẽ chiếm quyền làm Root Bridge và làm thay đổi toàn bộ cấu trúc STP
.
Tính năng BPDU Guard
Để tránh việc thay đổi cấu trúc cây STP cũng như ngăn chặn việc loop để các hoạt động được diễn ra bình thường thì ta có ngăn chặn các gói tin BPDU gửi vào hệ thống. Ta sử dụng tính năng BPDU Guard, tính năng này được bật trên từng cổng cụ thể, các cổng được bật khi nhận được gói tin BPDU thi lập tức sẽ chặn lại và đưa cổng vào trạng thái err-disable.
.
Cấu hình tính năng BPDU Guard
Sau khi cấu hình xong,cắm SW04 vào SW03 ta sẽ thấy các syslog thông báo lỗi:
Trạng thái này sẽ không thay đổi cho dù ta có ngắt kết nối giữa hai thiết bị. Để thay đổi trạng thái cổng ta phải dùng lệnh “shutdown” và “no shutdown” để reset trạng thái cổng.
Để trạng thái cổng có thể tự động thay đổi, trên SW03 ta dùng lệnh sau:
Ngắt kết nối nữa SW3 và SW2, sau 30 giây sẽ xuất hiện thông trạng thái của port F0/23 sẽ trở lại bình thường:
.
Hệ thống Switch hoạt động bình thường
.
.
Trong trường hợp ta thêm một Switch mới vào để mở rộng quy mô cho hệ thống, lúc này Switch mới tham gia sẽ gửi các gói tin BPDU vào trong hệ thống Switch. Hệ thống Switch có thể bị Loop hoặc có thể xảy ra quá trình bầu chọn lại Root Bridge tùy thuộc vào trạng thái cổng kết nối với Switch mới. Nếu ta bật tính năng portfast thì có nghĩa là tắt tính năng STP và sẽ bị loop nếu có Switch lạ cắm vào. Còn nếu để cổng ở trạng thái mặc định thì khi nhận được BPDU thì Switch sẽ so sánh với BPDU do Root Bridge gửi xuống và sẽ tiến hành xử lý gói tin BPDU này.
.
Hệ thống Switch khi có Switch mới tham gia
.
Trưòng hợp: cổng F0/3 của SW03 đã bật tính năng portfast, lúc này hiện tượng loop sẽ xảy ra, do tính năng portfast bỏ qua quá trình phát hiện vòng lặp
.
Hệ thống Switch bị loop
.
Trường hợp: CổngF0/3 của SW03 không bật tính năng Portfast. Khi nhận được BPDU mới, nếu gói tin BPDU này tốt hơn BPDU của Root Switch thì giữa các Switch xảy quá trình bầu chọn lại Root Bridge. Khi này Switch mới tham gia vào hệ thống sẽ chiếm quyền làm Root Bridge và làm thay đổi toàn bộ cấu trúc STP
.
Hệ thống Switch sau khi có Switch mới tham gia và chiếm quyền Root
.
.
Tính năng BPDU Guard
Để tránh việc thay đổi cấu trúc cây STP cũng như ngăn chặn việc loop để các hoạt động được diễn ra bình thường thì ta có ngăn chặn các gói tin BPDU gửi vào hệ thống. Ta sử dụng tính năng BPDU Guard, tính năng này được bật trên từng cổng cụ thể, các cổng được bật khi nhận được gói tin BPDU thi lập tức sẽ chặn lại và đưa cổng vào trạng thái err-disable.
.
Hệ thống Switch khi dùng tính năng BPDU Guard
.
.
Cấu hình tính năng BPDU Guard
Code:
SW3(config)# interface f0/3 SW3(config-if-range)# spanning-tree bpduguard enable SW3(config-if-range)# exit
Code:
*Mar 1 00:51:57.869: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port Fa0/3 with BPDU Guard enabled. Disabling port. *Mar 1 00:51:57.869: %PM-4-ERR_DISABLE: bpduguard error detected on Fa0/3, putting Fa0/3 in err-disable state *Mar 1 00:51:57.886: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to down *Mar 1 00:51:58.875: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to down *Mar 1 00:51:59.882: %LINK-3-UPDOWN: Interface FastEthernet0/3, changed state to down
Để trạng thái cổng có thể tự động thay đổi, trên SW03 ta dùng lệnh sau:
Code:
SW3(config)# errdisable recovery cause bpduguard SW3(config)# errdisable recovery interval 30
Code:
*Mar 1 01:02:31.913: %PM-4-ERR_RECOVER: Attempting to recover from bpduguard err-disable state on Fa0/3