Cơ chế bảo vệ Cây Spanning Tree
+ Để đạt được và duy trì một Cây Spanning Tree :
– Một quá trình gởi và nhận BPDU xuyên suốt mô hình mạng.Với điều kiện bình thường, với tất cả các Switch đều ngang bằng nhau và tuân theo một quy luật chung
– Cơ chế chống lặp sẽ được xác định một cách tự động. Hai nguyên nhân cơ bản có thể phá vỡ quá trình hoạt động của cây Spanning Tree (Ngay cả trong khi STP đang chạy):
- Trên một cổng mà chưa được nhận BPDU , những BPDU không mong đợi. Khi BPDU đột nhiên xuất hiện vì lý do nào, các cấu trúc liên kết STP có thể hội tụ lại để cho kết quả khác
- Trên một cổng thông thường nhận được BPDUs, BPDUs luôn được mong đợi. Khi BPDUs đột nhiên biến mất vì lý do nào đó, một chuyển đổi nhỏ có thể làm cho mô hình mạng thay đổi và tạo nên 1 vòng lặp khác.
1. Bảo vệ cây Spanning Tree trước những BPDU không mong muốn
Một mạng đang chạy STP sử dụng BPDU để giao tiếp giữa cácSwitch .Switch nhận thức nhau và mô hình liên kết liên giữa chúng. Sau khi một RootSwitch được bầu, BPDUs được tạo ra bởi RootSwitch và được chuyển tiếp qua các switch khác. Cuối cùng, tất cả các switch trong vùng chạy STP nhận BPDU của Root để các mạng hội tụ cây Spanning tree ổn định.
Để duy trì sự liên kết hiệu quả, các vị trí của các Rootswitch phải được dự đoán được. Phải chắc rằng ta đã cấu hình một switch để trở thành Root Switch và thứ hai Rootswitch dự phòng. Điều gì xảy ra khi một “switch ngoại” được kết nối vào mạng, và đột nhiên có khả năng trở thành Root Switch? Do vậy Cisco bổ sung thêm hai tính năng STP giúp ngăn ngừa việc đó là RootGuard , BPDU guard , LoopGuard , mất BPDU .
2. Root Guard
Khi STP topology đã hội tụ và tạo thành một sơ đồ mạng không bị loop (loop-free topology) thì các cổng của switch sẽ đóng một số loại vai trò trong spanning tree. Rootport là cổng của switch có đường đi về rootswitch thấp nhất. Designated port là cổng trên một phân đoạn mạng có đường đi ngắn nhất về rootswitch. Cổng này có nhiệm vụ truyền các BPDUs xuống cho các switch ở nhánh dưới.
Blocking port là những cổng không phải là root hay designated. Alternated port là những cổng ở trạng thái blocking, sẽ thay thế root port ngay lập tức nếu root port bị hỏng hóc hay sự cố. Alternated port là khái niệm được dùng khi sử dụng tính năng UplinkFast. Forwarding port 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 rootswitch đượ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ừ root switch nhằm xem xét xem root switch 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 root switch đã bị sự cố hoặc đường dẫn đến root 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 RootSwitch trong STP topology rất quan trọng. Nó quyết định đường đi của các switch nhánh dưới lên Rootswitch là có tối ưu hay không. Do đặc điểm bầu chọn Root 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 RootSwitch cũng như đường đi mới đến RootSwitch. Trong BPDUs có chứa BridgeID, trong BridgeID lại chứa độ ưu tiên của switch. Switch nào có priority nhỏ nhất sẽ trở thành Root switch. Tuy nhiên, nếu có một switch lạ đã được cấu hình với priority thấp hơn cả priority của RootSwitch hiện tại, switch này gắn vào mạng và sẽ trở thành RootSwitch. Tính năng Root guard ra đời cho phép admin luôn giữ được vị trí Root switch 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 STP topology.
Với tính năng này, nếu có một switch lạ quảng bá một Superior BPDU cho root switch, Rootswitch sẽ không cho phép switch lạ này trở thành New Root Switch. Nó sẽ đưa cổng nhận superior BPDU trước đó trở về trạng thái Root-inconsistent. Data sẽ không được gửi nhận ở trạng thái này. Khi superior BPDUs 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 root guard trên Root switch hoặc các switch nào mà ta không muốn nhận BPDUs của một switch lạ, không cấu hình rootguard trên swich có tính năng uplinkfast. Vì khi cấu hình RootGuard trên switch này sẽ làm cho các alternated port rơi vào trạng thái Root-inconsistent. Điều này làm cho các alternated port không thể chuyển sang trạng thái forwarding.
+ Cấu hình Rootguard trên interface nào muốn bảo vệ bằng câu lệnh:
+ Nếu áp đặt tính năng RootGuard lên cổng thì cho dù Switch mới có Bridge ID ư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, ta sẽ không thấy được Switch trong mạng. Root Guard và BPDU Guard là hai phương pháp nhằm ngăn chặn gói BPDU lạ đi vào mạng.
+ Nói rõ hơn 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ó bật tính năng này lên. Các tính năng này chỉ có tác dụng trên cổng, có nghĩa là ta phải cấu hình trên từng cổng. Nếu ta 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. Ta có thể xem trạng thái Root Port khi mà tính năng Root Guard đặt nó vào trạng thái root-inconsistent theo câu lệnh sau :
Lê Đức Thịnh – VnPro
+ Để đạt được và duy trì một Cây Spanning Tree :
– Một quá trình gởi và nhận BPDU xuyên suốt mô hình mạng.Với điều kiện bình thường, với tất cả các Switch đều ngang bằng nhau và tuân theo một quy luật chung
– Cơ chế chống lặp sẽ được xác định một cách tự động. Hai nguyên nhân cơ bản có thể phá vỡ quá trình hoạt động của cây Spanning Tree (Ngay cả trong khi STP đang chạy):
- Trên một cổng mà chưa được nhận BPDU , những BPDU không mong đợi. Khi BPDU đột nhiên xuất hiện vì lý do nào, các cấu trúc liên kết STP có thể hội tụ lại để cho kết quả khác
- Trên một cổng thông thường nhận được BPDUs, BPDUs luôn được mong đợi. Khi BPDUs đột nhiên biến mất vì lý do nào đó, một chuyển đổi nhỏ có thể làm cho mô hình mạng thay đổi và tạo nên 1 vòng lặp khác.
1. Bảo vệ cây Spanning Tree trước những BPDU không mong muốn
Một mạng đang chạy STP sử dụng BPDU để giao tiếp giữa cácSwitch .Switch nhận thức nhau và mô hình liên kết liên giữa chúng. Sau khi một RootSwitch được bầu, BPDUs được tạo ra bởi RootSwitch và được chuyển tiếp qua các switch khác. Cuối cùng, tất cả các switch trong vùng chạy STP nhận BPDU của Root để các mạng hội tụ cây Spanning tree ổn định.
Để duy trì sự liên kết hiệu quả, các vị trí của các Rootswitch phải được dự đoán được. Phải chắc rằng ta đã cấu hình một switch để trở thành Root Switch và thứ hai Rootswitch dự phòng. Điều gì xảy ra khi một “switch ngoại” được kết nối vào mạng, và đột nhiên có khả năng trở thành Root Switch? Do vậy Cisco bổ sung thêm hai tính năng STP giúp ngăn ngừa việc đó là RootGuard , BPDU guard , LoopGuard , mất BPDU .
2. Root Guard
Khi STP topology đã hội tụ và tạo thành một sơ đồ mạng không bị loop (loop-free topology) thì các cổng của switch sẽ đóng một số loại vai trò trong spanning tree. Rootport là cổng của switch có đường đi về rootswitch thấp nhất. Designated port là cổng trên một phân đoạn mạng có đường đi ngắn nhất về rootswitch. Cổng này có nhiệm vụ truyền các BPDUs xuống cho các switch ở nhánh dưới.
Blocking port là những cổng không phải là root hay designated. Alternated port là những cổng ở trạng thái blocking, sẽ thay thế root port ngay lập tức nếu root port bị hỏng hóc hay sự cố. Alternated port là khái niệm được dùng khi sử dụng tính năng UplinkFast. Forwarding port 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 rootswitch đượ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ừ root switch nhằm xem xét xem root switch 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 root switch đã bị sự cố hoặc đường dẫn đến root 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 RootSwitch trong STP topology rất quan trọng. Nó quyết định đường đi của các switch nhánh dưới lên Rootswitch là có tối ưu hay không. Do đặc điểm bầu chọn Root 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 RootSwitch cũng như đường đi mới đến RootSwitch. Trong BPDUs có chứa BridgeID, trong BridgeID lại chứa độ ưu tiên của switch. Switch nào có priority nhỏ nhất sẽ trở thành Root switch. Tuy nhiên, nếu có một switch lạ đã được cấu hình với priority thấp hơn cả priority của RootSwitch hiện tại, switch này gắn vào mạng và sẽ trở thành RootSwitch. Tính năng Root guard ra đời cho phép admin luôn giữ được vị trí Root switch 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 STP topology.
Với tính năng này, nếu có một switch lạ quảng bá một Superior BPDU cho root switch, Rootswitch sẽ không cho phép switch lạ này trở thành New Root Switch. Nó sẽ đưa cổng nhận superior BPDU trước đó trở về trạng thái Root-inconsistent. Data sẽ không được gửi nhận ở trạng thái này. Khi superior BPDUs 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 root guard trên Root switch hoặc các switch nào mà ta không muốn nhận BPDUs của một switch lạ, không cấu hình rootguard trên swich có tính năng uplinkfast. Vì khi cấu hình RootGuard trên switch này sẽ làm cho các alternated port rơi vào trạng thái Root-inconsistent. Điều này làm cho các alternated port không thể chuyển sang trạng thái forwarding.
+ Cấu hình Rootguard trên interface nào muốn bảo vệ bằng câu lệnh:
Code:
[I] Switch(config-if)# spanning-tree guard root[/I]
+ Nói rõ hơn 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ó bật tính năng này lên. Các tính năng này chỉ có tác dụng trên cổng, có nghĩa là ta phải cấu hình trên từng cổng. Nếu ta 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. Ta có thể xem trạng thái Root Port khi mà tính năng Root Guard đặt nó vào trạng thái root-inconsistent theo câu lệnh sau :
Code:
[I] Switch#show spanning-tree inconsistentports[/I]
Lê Đức Thịnh – VnPro