I. CÁC KHÁI NIỆM
RootGuard
Khi mô hình STP đã hội tụ và tạo thành một mô hình không bị lặp vòng thì các cổng của switch sẽ đóng một số vai trò. Cổng gốc (RP) là cổng của switch có đường đi về switch gốc (RB) thấp nhất. cổng chỉ định (DP) là cổng trên một phân đoạn mạng có đường đi ngắn nhất về RB. Cổng này có nhiệm vụ truyền các BPDUs xuống cho các switch ở nhánh dưới. Cổng bị khóa (BP) là những cổng không phải là RP hay DP. Cổng thay thế (AP) là những cổng ở trạng thái bị khóa, sẽ thay thế RP ngay lập tức nếu RP bị hỏng hóc hay sự cố. AP là khái niệm được dùng khi sử dụng tính năng UplinkFast. Cổng chuyển tiếp là cổng bình thường của switch cho phép thiết bị đầu cuối kết nối vào. Sau khi RB được tạo ra, nó sẽ gửi ra các BPDU xuống cho các switch ở nhánh dưới. Các switch nhánh dưới sẽ luôn luôn theo dõi các BPDUs được gửi ra từ RB nhằm xem xét xem RB có còn hoạt động bình thường nữa không. Nếu BPDU không còn nhận được nữa, các switch ở nhánh dưới sẽ cho rằng switch gốc (RB) đã bị sự cố hoặc đường dẫn đến RB không còn tồn tại nữa. Giải thuật STP được chạy lại và tạo lại một sơ đồ mạng khác.
Vị trí của RB trong mô hình STP rất quan trọng. Nó quyết định đường đi của các switch nhánh dưới lên RB là có tối ưu hay không. Do đặc điểm bầu chọn RB là dựa vào các BPDUs nên khi có một switch mới được thêm vào trong sơ đồ mạng STP thì sơ đồ mạng STP lúc này thay đổi. Các switch cần phải tính toán và bầu chọn lại switch gốc (RB) cũng như đường đi mới đến RB. Trong BPDUs có chứa BridgeID, trong BridgeID lại chứa độ ưu tiên của switch. Switch nào có độ ưu tiên nhỏ nhất sẽ trở thành RB. Tuy nhiên, nếu có một switch lạ đã được cấu hình với độ ưu tiên thấp hơn cả độ ưu tiên của RB hiện tại, switch này gắn vào mạng và sẽ trở thành RB mới.
Tính năng RootGuard ra đời cho phép người quản trị luôn giữ được vị trí switch gốc (RB) theo ý đã chọn mà không sợ bị bất kì một switch lạ nào gắn thêm vào làm thay đổi mô hình STP. Nếu có một switch lạ quảng bá một BPDU tốt hơn vào hệ thống mạng, RootGuard sẽ không cho phép switch lạ này trở thành RB. Nó sẽ đưa cổng nhận BPDU trước đó trở về trạng thái không bền vững. Dữ liệu sẽ không được gửi nhận ở trạng thái này. Khi BPDU tốt hơn không còn nhận được trên cổng này, cổng này sẽ trải qua các trạng thái của STP để đưa về sử dụng bình thường. Ta chỉ cấu hình tính năng RootGuard trên RB hoặc các switch nào mà ta không muốn nhận BPDUs của một switch lạ. Ta không nên cấu hình RootGuard trên swich có tính năng uplinkfast. Vì khi này, các cổng thay thế rơi vào trạng thái không bền vững. Điều này làm cho các cổng dự phòng không thể chuyển sang trạng thái chuyển tiếp. Cấu hình RootGuard trên các giao diện bằng câu lệnh:
Switch(config-if)#spanning-tree guard root
Nếu áp đặt tính năng RootGuard lên cổng thì cho dù Switch mới có BridgeID ưu tiên hơn (về trị số sẽ là thấp hơn) thì vẫn không ảnh hưởng gì đến mạng. Tính năng này rất mạnh, nó cấm hoàn toàn Switch lạ vào mạng không thực hiện được telnet, ping …Khi kiểm tra láng giềng trên Switch mới này, bạn sẽ không thấy được Switch trong mạng.
Switch(config-if)#spanning-tree guard root
RootGuard và BPDUGuard là hai phương pháp nhằm ngăn chặn gói BPDU lạ đi vào mạng. Khi có Switch lạ cắm vào mạng thì Switch này không thể trao đổi với các Switch khác trong mạng nếu như có triển khai tính năng này. Các tính năng này chỉ có tác dụng trên cổng, có nghĩa là bạn phải cấu hình trên từng cổng. Nếu bạn cấu hình trên cổng f0/1 mà lại đi cắm Switch lạ vào cổng f0/2 thì Switch mới này vẫn có thể trao đổi thông tin với mạng một cách bình thường.
BPDU Guard
Vấn đề lớn cần quan tâm là khi có switch lạ nối vào mạng, switch này sẽ truyền gói BPDU của nó vào mạng. Các switch sẽ đồng bộ với nhau về sơ đồ mạng thông qua các gói tin BPDU. BPDU được truyền đến cổng của các Switch khác trong mạng, làm thay đổi quan điểm của những Switch này về mạng mà nó đang hoạt động và điều này có thể dẫn đến vòng lặp có thể xảy ra. Khi BPDU bị mất, cổng cũng thay đổi trạng thái của nó làm ảnh hưởng đến mô hình mạng ban đầu. Cả hai trường hợp vừa nêu ra ở trên đều có thể gây ra trạng thái lặp vòng và điều làm chúng ta lo lắng đó là mô hình cũ của mạng bị thay đổi. Tính năng BPDUGuard cũng tương tự như RootGuard. Tính năng BPDUGuard được khuyến cáo sử dụng ở cổng có tính năng portfast. Tính năng portfast cho phép cổng của switch có thể vào trạng thái Forwarding ngay lập tức khi link kết nối với cổng đó up lên. Tính năng portfast được sử dụng trên những thiết bị switch ở lớp truy cập khi ta chắc chắn rằng trên cổng đó không thể xảy ra lặp vòng. Ta bật portfast lên không có nghĩa là đã tắt STP trên cổng đó. Nếu có một switch mới bị cắm nhầm vào cổng có tính năng portfast thì loop có thể xảy ra vì portfast cho phép chuyển cổng sang trạng thái forwarding ngay lập tức. Trong khi đó để phát hiện ra vòng lặp thì phải trải qua một khoảng thời gian và các trạng thái khác nhau thì cổng mới đưa vào sử dụng bình thường được. BPDUGuard sẽ cấm không cho switch lạ trao đổi BPDU với mạng. Khi switch nhận được BPDU trên portfast với tính năng BPDUGuard thì cổng sẽ bị đưa vào trạng thái errdisable. Muốn sử dụng lại cổng này thì phải cho phép cổng một cách thủ công hoặc đợi khoảng thời gian errdisable hết hạn.