Bầu chọn Root Bridge & Xác định Root Port trong STP (giải thích “đến nơi đến chốn” cho anh em CCNA/CCNP/CCIE)
Bạn đã bao giờ thấy mạng Layer 2 “điên loạn” vì loop, broadcast storm rồi phải chạy đi tắt cổng “cháy nhà” chưa? STP tồn tại để ngăn điều đó — và trái tim của STP chính là Root Bridge. Hiểu đúng cơ chế bầu chọn Root Bridge và cách Root Port được chọn ở mỗi switch sẽ giúp bạn điều khiển topology lớp 2 như một chỉ huy thực thụ.
1) Bridge ID là gì và vì sao nó quyết định Root Bridge?
Mỗi switch STP có một Bridge ID (BID) duy nhất gồm:
Root Bridge là switch có Bridge ID thấp nhất. Nếu toàn mạng dùng chung một priority, switch có MAC thấp nhất thắng.
2) Bầu chọn Root Bridge diễn ra như thế nào?
Ban đầu mỗi switch tự cho mình là root và gửi BPDU thông báo BID của nó. Khi nhận BPDU “tốt hơn” (BID thấp hơn), switch thừa nhận mình không phải root. Quá trình này lặp lại cho đến khi tất cả đều đồng thuận một Root Bridge.
Lưu ý: Đây là quá trình liên tục. Nếu có switch mới với BID tốt hơn xuất hiện, nó có thể trở thành Root Bridge mới (topology sẽ hội tụ lại).
3) Sau khi có Root Bridge: Root Port được chọn ra sao?
Trên mỗi non-root switch, Root Port (RP) là cổng có đường về Root Bridge tốt nhất theo tổng Path Cost tích lũy từ switch hiện tại → ... → Root.
Nếu bằng cost, chuẩn 802.1D dùng chuỗi tie-break:
4) Ví dụ “cầm tay chỉ việc” chọn Root Port
Giả sử SW1 có hai đường về Root Bridge:
So sánh tổng cost: 100 < 200 ⇒ Eth0/0 được bầu làm Root Port trên SW1.
5) STP Path Cost được tính từ băng thông link
Băng thông càng cao ⇒ Cost càng thấp. STP có hai thang cost (chuẩn cũ và chuẩn mới). Bạn phải nhất quán để tránh tính sai:
6) Có nên chỉnh tay cost trên interface?
Có thể, nhưng không khuyến nghị trừ khi bạn đang tối ưu topology có chủ đích hoặc mô phỏng một đường đi ưu tiên:
7) Tóm tắt nhanh “đủ xài trong ca sự cố”
8) Bài tập nhỏ cho lab (gợi ý cho anh em VnPro)
Bạn đã bao giờ thấy mạng Layer 2 “điên loạn” vì loop, broadcast storm rồi phải chạy đi tắt cổng “cháy nhà” chưa? STP tồn tại để ngăn điều đó — và trái tim của STP chính là Root Bridge. Hiểu đúng cơ chế bầu chọn Root Bridge và cách Root Port được chọn ở mỗi switch sẽ giúp bạn điều khiển topology lớp 2 như một chỉ huy thực thụ.
1) Bridge ID là gì và vì sao nó quyết định Root Bridge?
Mỗi switch STP có một Bridge ID (BID) duy nhất gồm:
- Bridge Priority (mặc định 32768), giá trị từ 0 đến 61440, phải là bội số của 4096.
- MAC Address của switch.
Root Bridge là switch có Bridge ID thấp nhất. Nếu toàn mạng dùng chung một priority, switch có MAC thấp nhất thắng.
Mẹo thực chiến: Đừng để Root Bridge “tự nhiên sinh” (MAC nhỏ bất kỳ). Hãy ấn định bằng cách giảm priority có chủ đích:
- Nhanh gọn: spanning-tree vlan <VLAN-ID> root primary hoặc root secondary.
- Tỉ mỉ: spanning-tree vlan <VLAN-ID> priority <0|4096|8192|...|61440>.
2) Bầu chọn Root Bridge diễn ra như thế nào?
Ban đầu mỗi switch tự cho mình là root và gửi BPDU thông báo BID của nó. Khi nhận BPDU “tốt hơn” (BID thấp hơn), switch thừa nhận mình không phải root. Quá trình này lặp lại cho đến khi tất cả đều đồng thuận một Root Bridge.
Lưu ý: Đây là quá trình liên tục. Nếu có switch mới với BID tốt hơn xuất hiện, nó có thể trở thành Root Bridge mới (topology sẽ hội tụ lại).
3) Sau khi có Root Bridge: Root Port được chọn ra sao?
Trên mỗi non-root switch, Root Port (RP) là cổng có đường về Root Bridge tốt nhất theo tổng Path Cost tích lũy từ switch hiện tại → ... → Root.
- Path Cost = tổng chi phí các link trên đường đi.
- Root Port = cổng có tổng cost thấp nhất.
Nếu bằng cost, chuẩn 802.1D dùng chuỗi tie-break:
- Sender Bridge ID thấp hơn (switch “hàng xóm” phía upstream tốt hơn).
- Sender Port ID thấp hơn (cổng upstream tốt hơn).
- Cuối cùng, nếu còn hoà, Local Port ID.
Tài liệu gốc bạn đưa nói “nếu hai cổng có cùng cost, dùng sender Port_ID để phá hòa”. Điều này đúng trong một số hiện trạng nhưng về chuẩn, trình tự đầy đủ như trên sẽ giúp bạn debug chính xác hơn khi thi hoặc đi production.
4) Ví dụ “cầm tay chỉ việc” chọn Root Port
Giả sử SW1 có hai đường về Root Bridge:
- Đường 1 qua Eth0/1: SW1 ↔ SW2 (cost 100), SW2 ↔ SW3 (cost 100). Trên một trong hai link sẽ bị STP chặn để tránh vòng lặp, nhưng cost cộng dồn để tính đường đi tốt nhất vẫn là 200.
- Đường 2 qua Eth0/0: SW1 ↔ (đi thẳng tới Root) với cost 100.
So sánh tổng cost: 100 < 200 ⇒ Eth0/0 được bầu làm Root Port trên SW1.
5) STP Path Cost được tính từ băng thông link
Băng thông càng cao ⇒ Cost càng thấp. STP có hai thang cost (chuẩn cũ và chuẩn mới). Bạn phải nhất quán để tránh tính sai:
- 802.1D-1998 (thang “ngắn” – short path cost)
- 10 Mbps → 100
- 100 Mbps → 19
- 1 Gbps → 4
- 10 Gbps → 2
- (4 Mbps → 250, 16 Mbps → 62, 2 Gbps → 3, …)
- 802.1D-2004 (thang “dài” – long path cost)
- 10 Mbps → 2,000,000
- 100 Mbps → 200,000
- 1 Gbps → 20,000
- 10 Gbps → 2,000
- (4 Mbps → 5,000,000, 16 Mbps → 1,250,000, 2 Gbps → 10,000, …)
Trên thiết bị Cisco, bạn có thể chọn thang:
- Mặc định truyền thống thường là short.
- Chuyển sang long với: spanning-tree pathcost method long.
Lý do dùng long: Khi link tốc độ rất cao (40G/100G/400G), thang short khó phân biệt đủ độ chênh để tối ưu đường đi.
6) Có nên chỉnh tay cost trên interface?
Có thể, nhưng không khuyến nghị trừ khi bạn đang tối ưu topology có chủ đích hoặc mô phỏng một đường đi ưu tiên:
- Cấu hình trên interface: spanning-tree cost <value>.
- Thận trọng: Chỉnh tay sai có thể khiến đường đi “lệch kỳ vọng”, gây mất cân bằng tải hoặc hội tụ chậm.
7) Tóm tắt nhanh “đủ xài trong ca sự cố”
- Root Bridge = BID thấp nhất (ưu tiên: priority rồi đến MAC).
- Đặt Root Bridge cố định bằng cách hạ priority trên switch “core/Distribution” mong muốn.
- Root Port trên non-root = cổng có tổng Path Cost thấp nhất về Root; hoà thì xét sender BID → sender Port ID → local Port ID.
- Biết bạn đang dùng thang cost nào (1998 “short” hay 2004 “long”) để tính đúng.
- Hạn chế chỉnh tay cost trừ khi có mục tiêu rõ ràng.
8) Bài tập nhỏ cho lab (gợi ý cho anh em VnPro)
- Dựng 3 switch L2 dạng tam giác.
- Đặt SW2 làm Root Bridge cho VLAN 10:
- spanning-tree vlan 10 priority 4096 (trên SW2).
- Trên SW1, so sánh tổng cost hai đường về SW2, xác định Root Port là cổng nào.
- Đổi thang cost sang long trên tất cả switch:
- spanning-tree pathcost method long
Kiểm tra lại Root Port — có đổi không?
- spanning-tree pathcost method long
- (Tuỳ chọn) Chỉnh tay cost trên một cổng để “đẩy” Root Port sang cổng còn lại, rồi ghi nhận sự khác biệt.