Ôn Tập Spanning Tree Protocol (STP) – Kiến Thức Nền Tảng Mọi CCNA Cần Nắm
Nếu bạn đã từng học switching, chắc hẳn bạn đã gặp một câu hỏi quen thuộc: Tại sao chúng ta phải cần Spanning Tree Protocol khi việc thêm đường dự phòng vào mạng vốn là điều tốt?
Thoạt nhìn, việc kết nối nhiều switch bằng các đường dự phòng là một thiết kế hợp lý. Nếu một đường truyền gặp sự cố, traffic có thể tự động đi theo đường khác, giúp hệ thống duy trì hoạt động liên tục. Tuy nhiên, trong mạng Layer 2, chính sự dự phòng này lại có thể trở thành nguyên nhân gây ra những sự cố nghiêm trọng nếu không có cơ chế kiểm soát phù hợp.
Đó chính là lý do Spanning Tree Protocol (STP) ra đời.
Layer 2 Loop – Vấn Đề Cốt Lõi
Hãy tưởng tượng bạn có ba switch kết nối với nhau tạo thành vòng lặp:
SW1
/ \
/ \
SW3-----SW2
Hoặc đơn giản hơn, chỉ cần hai switch kết nối với nhau bằng hai sợi cáp:
SW1 ===== SW2
Điều gì xảy ra nếu một frame Ethernet được gửi vào mạng này?
Switch hoạt động theo nguyên tắc chuyển tiếp frame dựa trên MAC address. Nếu switch chưa biết MAC đích nằm ở đâu, nó sẽ flood frame ra các cổng khác.
Vấn đề là Ethernet frame không có cơ chế tự hủy giống IP packet.
Trong Layer 3:
Nhưng trong Layer 2:
Kết quả là lưu lượng cứ quay vòng không dứt.
Hậu Quả Của Layer 2 Loop
Broadcast Storm
Đây là hậu quả dễ gặp nhất.
Ví dụ một máy gửi ARP Request:
Who has 192.168.1.1?
Switch flood frame này ra toàn mạng.
Nếu có loop:
Kết quả:
MAC Address Table Instability
Switch học MAC address từ source MAC.
Ví dụ:
Ban đầu switch học:
AAAA.AAAA.AAAA via Fa0/1
Một lúc sau, do frame loop quay lại:
AAAA.AAAA.AAAA via Fa0/2
Rồi lại đổi ngược.
Hiện tượng này gọi là:
MAC flapping
Khi điều này xảy ra:
Duplicate Frames
Thiết bị đích có thể nhận nhiều bản sao của cùng một frame.
Ví dụ:
PC gửi một frame duy nhất, nhưng server nhận hai hoặc ba bản giống nhau.
Điều này có thể gây lỗi ứng dụng và hiệu năng bất thường.
Giải Pháp: Spanning Tree Protocol
Chuẩn IEEE 802.1D đưa ra Spanning Tree Protocol (STP) để giải quyết bài toán này.
Nguyên tắc hoạt động:
Cho phép topology vật lý có đường dự phòng, nhưng topology logic không có vòng lặp.
Ví dụ:
Physical topology:
SW1------SW2
| |
| |
SW3------
Sau khi STP hoạt động:
SW1------SW2
| X
|
SW3------
Một cổng sẽ bị block.
Như vậy:
STP Hoạt Động Như Thế Nào?
1. Root Bridge Election
STP trước tiên sẽ chọn một switch làm trung tâm của toàn bộ cây spanning tree.
Switch này gọi là:
Root Bridge
Quy tắc chọn:
Switch có Bridge ID nhỏ nhất sẽ thắng.
Bridge ID gồm:
Ví dụ:
SW1:
Priority: 32768
MAC: AAAA.AAAA.AAAA
SW2:
Priority: 32768
MAC: BBBB.BBBB.BBBB
SW3:
Priority: 32768
MAC: CCCC.CCCC.CCCC
Vì priority giống nhau, switch có MAC nhỏ nhất thắng.
=> SW1 trở thành Root Bridge.
2. Root Port Selection
Mỗi switch không phải Root sẽ chọn một cổng tốt nhất để đi về Root.
Cổng này gọi là:
Root Port
Tiêu chí:
Lowest Path Cost
Ví dụ:
Nếu một switch có hai đường về Root:
Switch sẽ chọn GigabitEthernet.
3. Designated Port Selection
Trên mỗi đoạn mạng, chỉ một switch được quyền forward traffic.
Cổng đó gọi là:
Designated Port
Switch nào có đường tốt hơn về Root sẽ thắng.
4. Blocking Port
Các cổng dư thừa sẽ bị đưa vào trạng thái blocking để ngăn loop.
Các cổng này:
Các Trạng Thái Cổng STP
Một câu hỏi rất hay gặp trong CCNA.
STP classic có các trạng thái: Blocking
Listening
Learning
Forwarding
Disabled
Thời Gian Hội Tụ (Classic STP)
Thông số mặc định:
Tổng cộng:
50 giây
Đây là lý do classic STP khá chậm.
Các Lệnh Quan Trọng Trong Cisco
Kiểm tra spanning tree:
show spanning-tree
Xem root bridge:
show spanning-tree root
Xem trạng thái cổng:
show spanning-tree interface fa0/1
Xem topology changes:
show spanning-tree detail
Những Điểm CCNA Hay Hỏi
Hãy ghi nhớ:
Root Bridge
→ switch trung tâm
Root Port
→ cổng tốt nhất đi về root
Designated Port
→ cổng được forward trên từng segment
Blocking Port
→ cổng bị chặn để tránh loop
Mẹo Ghi Nhớ
Một cách dễ nhớ:
Root nhận – Designated gửi – Blocking đứng ngoài
Hoặc:
Kết Luận
Spanning Tree Protocol là một trong những nền tảng quan trọng nhất của switching.
Nếu không có STP:
Nếu bạn học CCNA, hãy chắc chắn rằng bạn hiểu thật rõ:
Bởi vì đây là phần kiến thức nền tảng mà bất kỳ kỹ sư mạng nào cũng sẽ gặp trong thực tế.
Nếu bạn đã từng học switching, chắc hẳn bạn đã gặp một câu hỏi quen thuộc: Tại sao chúng ta phải cần Spanning Tree Protocol khi việc thêm đường dự phòng vào mạng vốn là điều tốt?
Thoạt nhìn, việc kết nối nhiều switch bằng các đường dự phòng là một thiết kế hợp lý. Nếu một đường truyền gặp sự cố, traffic có thể tự động đi theo đường khác, giúp hệ thống duy trì hoạt động liên tục. Tuy nhiên, trong mạng Layer 2, chính sự dự phòng này lại có thể trở thành nguyên nhân gây ra những sự cố nghiêm trọng nếu không có cơ chế kiểm soát phù hợp.
Đó chính là lý do Spanning Tree Protocol (STP) ra đời.
Layer 2 Loop – Vấn Đề Cốt Lõi
Hãy tưởng tượng bạn có ba switch kết nối với nhau tạo thành vòng lặp:
SW1
/ \
/ \
SW3-----SW2
Hoặc đơn giản hơn, chỉ cần hai switch kết nối với nhau bằng hai sợi cáp:
SW1 ===== SW2
Điều gì xảy ra nếu một frame Ethernet được gửi vào mạng này?
Switch hoạt động theo nguyên tắc chuyển tiếp frame dựa trên MAC address. Nếu switch chưa biết MAC đích nằm ở đâu, nó sẽ flood frame ra các cổng khác.
Vấn đề là Ethernet frame không có cơ chế tự hủy giống IP packet.
Trong Layer 3:
- Gói IP có trường TTL (Time To Live)
- Mỗi lần qua router, TTL giảm đi
- Khi TTL về 0, packet bị loại bỏ
Nhưng trong Layer 2:
- Ethernet frame không có TTL
- Nếu frame bị loop, nó có thể chạy mãi mãi
Kết quả là lưu lượng cứ quay vòng không dứt.
Hậu Quả Của Layer 2 Loop
Broadcast Storm
Đây là hậu quả dễ gặp nhất.
Ví dụ một máy gửi ARP Request:
Who has 192.168.1.1?
Switch flood frame này ra toàn mạng.
Nếu có loop:
- frame quay trở lại switch
- switch lại flood tiếp
- số lượng frame tăng lên rất nhanh
Kết quả:
- băng thông bị chiếm hết
- switch hoạt động quá tải
- mạng trở nên rất chậm hoặc ngừng hoạt động
MAC Address Table Instability
Switch học MAC address từ source MAC.
Ví dụ:
Ban đầu switch học:
AAAA.AAAA.AAAA via Fa0/1
Một lúc sau, do frame loop quay lại:
AAAA.AAAA.AAAA via Fa0/2
Rồi lại đổi ngược.
Hiện tượng này gọi là:
MAC flapping
Khi điều này xảy ra:
- switch không xác định đúng vị trí thiết bị
- forwarding sai
- packet bị mất
Duplicate Frames
Thiết bị đích có thể nhận nhiều bản sao của cùng một frame.
Ví dụ:
PC gửi một frame duy nhất, nhưng server nhận hai hoặc ba bản giống nhau.
Điều này có thể gây lỗi ứng dụng và hiệu năng bất thường.
Giải Pháp: Spanning Tree Protocol
Chuẩn IEEE 802.1D đưa ra Spanning Tree Protocol (STP) để giải quyết bài toán này.
Nguyên tắc hoạt động:
Cho phép topology vật lý có đường dự phòng, nhưng topology logic không có vòng lặp.
Ví dụ:
Physical topology:
SW1------SW2
| |
| |
SW3------
Sau khi STP hoạt động:
SW1------SW2
| X
|
SW3------
Một cổng sẽ bị block.
Như vậy:
- loop bị loại bỏ
- đường dự phòng vẫn tồn tại
- nếu link chính gặp lỗi, đường dự phòng có thể được kích hoạt
STP Hoạt Động Như Thế Nào?
1. Root Bridge Election
STP trước tiên sẽ chọn một switch làm trung tâm của toàn bộ cây spanning tree.
Switch này gọi là:
Root Bridge
Quy tắc chọn:
Switch có Bridge ID nhỏ nhất sẽ thắng.
Bridge ID gồm:
- Bridge Priority
- MAC Address
Ví dụ:
SW1:
Priority: 32768
MAC: AAAA.AAAA.AAAA
SW2:
Priority: 32768
MAC: BBBB.BBBB.BBBB
SW3:
Priority: 32768
MAC: CCCC.CCCC.CCCC
Vì priority giống nhau, switch có MAC nhỏ nhất thắng.
=> SW1 trở thành Root Bridge.
2. Root Port Selection
Mỗi switch không phải Root sẽ chọn một cổng tốt nhất để đi về Root.
Cổng này gọi là:
Root Port
Tiêu chí:
Lowest Path Cost
Ví dụ:
Nếu một switch có hai đường về Root:
- FastEthernet cost = 19
- GigabitEthernet cost = 4
Switch sẽ chọn GigabitEthernet.
3. Designated Port Selection
Trên mỗi đoạn mạng, chỉ một switch được quyền forward traffic.
Cổng đó gọi là:
Designated Port
Switch nào có đường tốt hơn về Root sẽ thắng.
4. Blocking Port
Các cổng dư thừa sẽ bị đưa vào trạng thái blocking để ngăn loop.
Các cổng này:
- không forward user traffic
- vẫn nhận BPDU
Các Trạng Thái Cổng STP
Một câu hỏi rất hay gặp trong CCNA.
STP classic có các trạng thái: Blocking
- Không forward frame
- Không học MAC
- Nhận BPDU
Listening
- Chuẩn bị tham gia forwarding
- Chưa học MAC
- Trao đổi BPDU
Learning
- Bắt đầu học MAC
- Chưa forward traffic
Forwarding
- Forward traffic
- Học MAC
- Gửi/nhận BPDU
Disabled
- Interface bị shutdown hoặc không hoạt động
Thời Gian Hội Tụ (Classic STP)
Thông số mặc định:
- Max Age = 20 giây
- Listening = 15 giây
- Learning = 15 giây
Tổng cộng:
50 giây
Đây là lý do classic STP khá chậm.
Các Lệnh Quan Trọng Trong Cisco
Kiểm tra spanning tree:
show spanning-tree
Xem root bridge:
show spanning-tree root
Xem trạng thái cổng:
show spanning-tree interface fa0/1
Xem topology changes:
show spanning-tree detail
Những Điểm CCNA Hay Hỏi
Hãy ghi nhớ:
Root Bridge
→ switch trung tâm
Root Port
→ cổng tốt nhất đi về root
Designated Port
→ cổng được forward trên từng segment
Blocking Port
→ cổng bị chặn để tránh loop
Mẹo Ghi Nhớ
Một cách dễ nhớ:
Root nhận – Designated gửi – Blocking đứng ngoài
Hoặc:
- Mỗi non-root switch có 1 Root Port
- Mỗi segment có 1 Designated Port
- Các cổng còn lại bị block
Kết Luận
Spanning Tree Protocol là một trong những nền tảng quan trọng nhất của switching.
Nếu không có STP:
- redundancy sẽ tạo ra loop
- loop gây broadcast storm
- MAC table bị rối loạn
- toàn bộ mạng có thể sập
Nếu bạn học CCNA, hãy chắc chắn rằng bạn hiểu thật rõ:
- tại sao cần STP
- cách bầu Root Bridge
- Root Port là gì
- Designated Port là gì
- trạng thái các cổng
- các lệnh kiểm tra trên Cisco
Bởi vì đây là phần kiến thức nền tảng mà bất kỳ kỹ sư mạng nào cũng sẽ gặp trong thực tế.