Network [LT] Spanning tree protocol (STP) (Phần 1)

Mục lục​
I. Switching loops
II. Spanning Tree Protocol (STP)
1. Root Bridge
2. Root Port
3. Designated port và block
4. Port ID
5. Cấu hình cơ bản STP
6. Port state
7. STP Timers
8. STP Diameter
9. STP Topology Changes
III. Cải thiện hội tụ của STP
1. PortFast
2. UplinkFast
3. BackboneFast
IV. Protecting STP
1. Root guard
2. BPDU Guard
3. BPDU Filtering
4. Loop Guard
V. Versions of STP
1. Rapid spanning tree Protocol(RSTP)
2. Mulitple spanning tree (MST)
Trong một mô hình mạng không thể tránh khỏi các biện pháp dự phòng, nhưng các biện pháp dự phòng này lại tìm tàng những lỗi không mong muốn khiến cho kiến trúc mạng bị sụp đỗ. Một trong các lỗi nặng nhất có thể nói là Swithching loops, đây là lỗi khi chúng ta kết nối các switch lại với nhau(thường là để dự phòng) thành một vòng tròn, do cơ chế broadcast của switch mà làm cho các gói tin liên tục được chuyển tiếp qua các switch từ đó gây ra loop, để giải quyết vấn đề này người ta đã tạo ra spanning tree protocol(STP) giao thức chống loop trong mạng máy tính. Trong bài viết này mình sẽ tìm hiểu về các vấn đề loop trong layer 2 switch và giao thức STP.​

I.Switching loops



1724123200215.png

- Trong mô hình mạng trên, khi PC gửi gói tin broadcast vào switch A thì với cơ chế broadcast các gói tin ra các tất cả các port outbound (trừ port inbound), các gói tin cứ liên tục gửi broadcast cho nhau mà không dừng lại từ đó gây ra hiện tượng loops và sẽ không bao giờ dừng lại cho đến khi tắt hết các switch.
Hiện tượng loop thường xảy ra khi mà:
1724123230894.png

- Hai switch cắm kết nối với nhau bằng 2 dây.
1724123251422.png

- Cắm nhầm 2 đầu dây trên cùng 1 switch.
1724123292692.png

- Kết nối vòng tròn, thường là để triển khai các mô hình dự phòng trong mạng.
Câu hỏi: Vậy để loại bỏ loop thì phải làm cách nào?
Đơn giản nhất là chỉ cần xóa đi một kết nối trong mô hình thì sẽ không còn gây ra loop nữa. Nhưng không phải lúc nào xảy ra loop thì admin cũng phải xuống hạ tầng để xóa đi một kết nối rồi bật lên lại. Do đó, STP ra đời để giúp admin mạng có thể tự động hóa việt đó.
1724123344036.png

II. Spanning Tree Protocol (STP)


- Các switch chạy STP sẽ xây dựng một topology(cấu trúc) của toàn bộ mạng Switch. STP sẽ xác định xem có bất kỳ loop nào hay không, và sau đó vô hiệu hóa hoặc chặn càng nhiều port cần thiết để loại bỏ tất cả các loop.
- Một port bị chặn có thể được kích hoạt lại nếu một port khác gặp sự cố.(Cho phép STP duy trì tính dự phòng và khả năng chịu lỗi)
- Tuy nhiên, vì các port bị chặn để loại bỏ loop, STP không hỗ trợ cân bằng tải trừ khi sử dụng EtherChannel - Wikipedia.
- Các switch trao đổi các Bridge Protocol Data Units (BPDU) để xây dựng topology. BPDU được chuyển tiếp qua tất cả các port mỗi hai giây, tới một địa chỉ MAC multicast chuyên dụng là 0180.c200.0000.​
- Để xây dựng một STP topology bao gồm các bước:
  • Chọn ra Root Bridge(Root Switch).
Fact: Người ta tạo ra STP cho Bridge layer-2 nên gọi là Root bridge.
  • Xác định Root port.
  • Chọn Designated port.
  • Chọn các port cần thiết để ngăn loop.
- Root Bridge đóng vai trò là điểm tham chiếu chính trong Spanning tree. Sau khi xây dựng STP topology xong, loop được loại bỏ, các switch được coi là hội tụ(converge).
- Tính năng STP được bật mặc định trên tất cả các switch của cisco cho tất cả VLANs.

1. Root Bridge


Bước đầu tiên trong xây dựng STP topology, chọn ra đâu là Root Bridge. Root Bridge đóng vai trò là điểm tham chiếu chính của STP topology. Để có thể làm cho mô hình hoàn hảo nhất thì Root Bridge nên là switch trung tâm.
- Root Bridge được chọn dựa trên Bridge ID, bao gồm 2 thành phần cơ bản trong 802.1D:
  • 16-bit Bridge priority.
  • 48-bit địa chỉ MAC.
- Root Bridge trong 802.1t là phần mở rộng của 802.1D có thể được dùng để xác định VLAN ID người ta gọi đây là (Extended system ID):
  • 4-bit Bridge priority
  • 12-bit System hoặc VLAN ID
  • 48-bit địa chỉ MAC
- Mặc định là 32768(0- 65,535), switch nào nhỏ hơn thì làm Root Bridge. Nếu có priority ngang nhau thì địa chỉ MAC nào nhỏ hơn sẽ làm Root Bridge. Trong 802.1t thì default vẫn là 32768(0-61440, cấp số nhân của 4096).
Câu hỏi: tại sao là 32.768?
Theo một nguồn tin, cũng đáng tin cậy một chút trên STP Priority : Why is it 32768 by default? Why is it increased or decreased by 4096? (youtube.com) thì do 32768 là số nằm ở giữa của 16 bit.
1724123659662.png

- Các switch sẽ trao đổi các BPDU, và tiến hành bầu chọn, quá trình lựa chọn Root Bridge như sau:
  • Switch A và D có số priority nhỏ nhất cho nên sẽ được vào vòng trong.
  • Switch A có MAC nhỏ hơn D nên A sẽ được chọn
- Mặc định, tất cả các switch sẽ nghĩ mình là cái rốn của vũ trụ (Root Bridge) cho đến khi nó biết có thằng giỏi hơn nó khi trao đổi BPDU(BPDU nhỏ hơn). Quá trình này sẽ diễn ra liên tục khi có một switch khác tham gia vào trong topology.

2. Root Port


- Bước tiếp theo là lựa chọn Root port. Sẽ lựa chọn root port dựa trên root path cost(chi phí đường đi), cái nào nhỏ nhất sẽ được chọn.
- Mỗi Switch chỉ có 1 root port. Root bridge sẽ không có root port, vì mục đích của root port là để tìm đường đi đến root bridge.
- Path cost sẽ được xác định dựa trên bandwith(băng thông) của liên kết. Bandwith càng cao, thì path cost càng thấp, các bạn có thể tham khảo bảng dưới đây.
1724124173389.png

1724124190788.png

- Switch A có cost là 0 vì nó là root bridge(chúng ta đã chọn ở trên). Khi mà switch A gửi BPDU thì nó sẽ để path cost là 0.
- Switch B có 2 đường để đi đến root bridge(Switch A) là B->A, B->C->D->A:
  • B sẽ chọn port kết nối trực tiếp từ B->A làm root port do nó có cost thấp nhất = 4.
  • Đường còn lại cost = 10 nên không chọn.
- Switch C có 2 đường để đi đến root bridge(Switch A) là C->B->A, C->D->A:
  • C sẽ chọn port kết nối tới D làm root port do nó có cost thấp nhất = 6.
  • Đường còn lại cost = 8 nên không chọn.
- Root Bridge sẽ quảng bá các BPDU với path cost = 0. Khi các switch nhận được các BPDU này, chúng sẽ thêm path cost của port nhận BPDU và sau đó quảng bá path cost tích lũy cho các switch liền kề.
- Lấy ví dụ là mô hình trên đầu tiên switch B sẽ nhận BPDU từ switch A(root bridge) lúc này path cost là 0. Sau đó, switch tiếp tục cộng path cost từ port nhận (A->B) lúc này path cost = 4. Tiếp tục, trao đổi BPDU với switch C thì path cost tại C là 8. Nhưng C sẽ chọn port nối với D do path cost = 6.
- Path cost có thể cấu hình ảo trên port. Thường người ta sẽ dùng để chỉ định đường đi tới root:
Bash:
Switch(config)# int gi2/22
Switch(config-if)# spanning-tree vlan 10 cost 2
Bash:
https://securityzone.vn/t/lt-spanning-tree-protocol-stp-phan-cuoi.12485/
 

Attachments

  • 1724123307323.png
    1724123307323.png
    81.7 KB · Views: 0
  • 1724123271562.png
    1724123271562.png
    88.8 KB · Views: 0
  • 1724124049212.png
    1724124049212.png
    58.7 KB · Views: 0
  • 1724124049212.png
    1724124049212.png
    58.7 KB · Views: 0
Last edited:

About us

  • Securityzone.vn là một trang web chuyên về an ninh mạng và công nghệ thông tin. Trang web này cung cấp các bài viết, tin tức, video, diễn đàn và các dịch vụ liên quan đến lĩnh vực này. Securityzone.vn là một trong những cộng đồng IT lớn và uy tín tại Việt Nam, thu hút nhiều người quan tâm và tham gia. Securityzone.vn cũng là nơi để các chuyên gia, nhà nghiên cứu, sinh viên và người yêu thích an ninh mạng có thể trao đổi, học hỏi và chia sẻ kiến thức, kinh nghiệm và giải pháp về các vấn đề bảo mật trong thời đại số.

Quick Navigation

User Menu