BẢO VỆ MÔ HÌNH CÂY STP
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.
UDLD
Giao thức phát hiện kết nối một chiều - Unidirectional Link Detection (UDLD) cho phép các thiết bị đang kết nối với nhau bằng cáp quang hoặc cáp đồng có thể quan sát và phát hiện được các vấn đề về trạng thái kết nối vật lý của hệ thống cáp khi có hiện tượng kết nối theo một hướng duy nhất (Unidirectional Link) xảy ra. Khi hiện tượng Unidirectional Link được phát hiện, UDLD sẽ tắt các cổng của switch bị ảnh hưởng, và phát ra cảnh báo cho các người dùng biết được tình trạng hiện tại của cổng này. Hiện tượng Unidirectional link này gây ra nhiều hệ quả khác nhau không có lợi cho môi trường LAN, bao gồm cả việc gây ảnh hưởng đến khả năng chống lặp vòng trong giao thức spanning-tree. UDLD là giao thức hoạt động tại lớp 2 nhưng lại làm việc với các thiết bị lớp một để có thể xác định trạng thái kết nối vật lý của một kết nối nào đó. Tại lớp 1, các phương thức tự động thương lượng (autonegotiation) đảm trách các tín hiệu vật lý và phát hiện lỗi. UDLD thực thi các tác vụ mà các phương thức tự động thương lượng không thể thực thi, ví dụ như phát hiện tình trạng hiện tại của các láng giềng và tắt các cổng kết nối sai. Khi ta bật lên đồng thời "autonegotiation" và UDLD, lớp 1 và 2 sẽ làm việc cùng nhau để ngăn ngừa các hiện tượng kết nối theo một hướng về mặt vật lý và logic.
Hiện tượng Unidirectional Link xảy ra khi có bản thận thiết bị nào đó phát ra các tín hiệu và được tiếp nhận bởi thiết bị láng giềng nhưng bản thân thiết bị này lại không thể tiếp nhận các tín hiệu do thiết bị láng giềng này trả về. Nếu một trong các mạch quang trong một cặp dây bị ngắt , khi mà autonegotiation đã được bật, kết nối không ở trạng thái hoạt động. Nếu cặp dây cáp quang này hoạt động bình thường ở lớp 1, thì giao thức UDLD tại lớp 2 sẽ xác định các cáp quang này có được kết nối đúng hay không và các lưu lượng dữ liệu có đang truyền theo cả hai hướng giữa các láng giềng hay không. Autonegotiation không thể thực thi khả năng này bởi vì negotiation hoạt động ở lớp 1. Switch truyền các gói UDLD tới các switch láng giềng theo chu kỳ thông qua các cổng khi giao thức UDLD đã được bật lên. Các thiết bị ở cả hai đầu kết nối phải hổ trợ giao thức UDLD để giao thức này có thể định nghĩa và ngăn chặn các hiện tượng Unidirectional Link. Mặc định, giao thức UDLD được tắt trên giao diện kết nối bằng cáp đồng để tránh việc gửi các lưu lượng điều khiển không cần thiết.
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.
UDLD
Giao thức phát hiện kết nối một chiều - Unidirectional Link Detection (UDLD) cho phép các thiết bị đang kết nối với nhau bằng cáp quang hoặc cáp đồng có thể quan sát và phát hiện được các vấn đề về trạng thái kết nối vật lý của hệ thống cáp khi có hiện tượng kết nối theo một hướng duy nhất (Unidirectional Link) xảy ra. Khi hiện tượng Unidirectional Link được phát hiện, UDLD sẽ tắt các cổng của switch bị ảnh hưởng, và phát ra cảnh báo cho các người dùng biết được tình trạng hiện tại của cổng này. Hiện tượng Unidirectional link này gây ra nhiều hệ quả khác nhau không có lợi cho môi trường LAN, bao gồm cả việc gây ảnh hưởng đến khả năng chống lặp vòng trong giao thức spanning-tree. UDLD là giao thức hoạt động tại lớp 2 nhưng lại làm việc với các thiết bị lớp một để có thể xác định trạng thái kết nối vật lý của một kết nối nào đó. Tại lớp 1, các phương thức tự động thương lượng (autonegotiation) đảm trách các tín hiệu vật lý và phát hiện lỗi. UDLD thực thi các tác vụ mà các phương thức tự động thương lượng không thể thực thi, ví dụ như phát hiện tình trạng hiện tại của các láng giềng và tắt các cổng kết nối sai. Khi ta bật lên đồng thời "autonegotiation" và UDLD, lớp 1 và 2 sẽ làm việc cùng nhau để ngăn ngừa các hiện tượng kết nối theo một hướng về mặt vật lý và logic.
Hiện tượng Unidirectional Link xảy ra khi có bản thận thiết bị nào đó phát ra các tín hiệu và được tiếp nhận bởi thiết bị láng giềng nhưng bản thân thiết bị này lại không thể tiếp nhận các tín hiệu do thiết bị láng giềng này trả về. Nếu một trong các mạch quang trong một cặp dây bị ngắt , khi mà autonegotiation đã được bật, kết nối không ở trạng thái hoạt động. Nếu cặp dây cáp quang này hoạt động bình thường ở lớp 1, thì giao thức UDLD tại lớp 2 sẽ xác định các cáp quang này có được kết nối đúng hay không và các lưu lượng dữ liệu có đang truyền theo cả hai hướng giữa các láng giềng hay không. Autonegotiation không thể thực thi khả năng này bởi vì negotiation hoạt động ở lớp 1. Switch truyền các gói UDLD tới các switch láng giềng theo chu kỳ thông qua các cổng khi giao thức UDLD đã được bật lên. Các thiết bị ở cả hai đầu kết nối phải hổ trợ giao thức UDLD để giao thức này có thể định nghĩa và ngăn chặn các hiện tượng Unidirectional Link. Mặc định, giao thức UDLD được tắt trên giao diện kết nối bằng cáp đồng để tránh việc gửi các lưu lượng điều khiển không cần thiết.
Hình 26
Comment