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

Trong phần trước, mình đã giới thiệu về Switching loop, giao thức STP, cách STP chống loop và các thành phần trong STP. Trong phần này mình sẽ tiếp tục nói về các thành phần trong STP.

II. Spanning Tree Protocol (STP) (tiếp theo)


3. Designated port và block


- Bước thứ 3 và 4, là tìm designated port (port chỉ định). Mỗi segment chỉ có một port chỉ định và port này chịu trách nhiệm chuyển tiếp BPDU và frame đến các segment đó. Nếu có 2 port cùng làm port chỉ định sẽ xảy ra loop, 1 port sẽ được chặn để tránh loop.
- Giống như root port, port chỉ định được xác định dựa trên path cost tích lũy nhỏ nhất. Một port được chỉ định sẽ không bao giờ bị block, trừ khi có sự thay đổi trong topology hoặc là cấu hình path cost ảo như trên.
Lưu ý: 1 port sẽ không bao giờ vừa làm root port và designated port.
1724124753513.png

- Các port trên Root Bridge không bao giờ bị đặt ở trạng thái block. Do đó, hai port trên SwitchA sẽ tự động trở thành các port được chỉ định.
- Mỗi segment phải có một port được chỉ định, bất kể liệu đã có một root port tồn tại trên segment đó hay không. Do đó, port giữa switch B-C và D-C sẽ được coi là port chỉ định.
- Port giữa switch B-C không có root port. Do hai port này đều đủ điều kiện để làm một port chỉ định cho nên sẽ chặn một trong 2 port để tránh loop.
- Port bên switch C có path cost tích lũy nhiều hơn (= 6) nên sẽ trở thành port bị block, trong trường hợp 2 path cost bằng nhau sẽ xét đến priority nào lớn hơn sẽ bị block, nếu priority bằng nhau sẽ lựa dựa trên địa chỉ MAC.
Lưu ý: Port nào không được đặt là root hoặc designated sẽ bị block.

4. Port ID


- Khi bầu chọn ra root và designated port, có thể sẽ có trường hợp vừa bằng path cost vừa bằng brigde ID.
1724124802294.png

Bandwith giữa 2 switch đều bằng nhau, cả hai switch đều có path cost bằng nhau và Root Brigde bằng nhau. Thông thường thì bridge id sẽ được sử dụng nhưng cũng bằng nhau.
Port ID sẽ được chọn làm tiêu chuẩn để quyết định cuối cùng, bao gồm:​
  • 4-bit port priority.​
  • 12-bit port number, được lấy từ số của port vật lý hoặc VLAN ID.​
- Mặc định của port priority là 128 và port nào có priority thấp hơn sẽ được chọn. Nếu bằng priority sẽ chọn port number.
- Sender(Từ bên gửi BPDU) Port ID sẽ là nhân tố quyết định chứ không phải là bên nhận được BPDU. Switch B phải quyết định xem gi0/22 hay gi0/23 sẽ trở thành root port. Switch B sẽ quan sát BPDU từ switch A, trong đó chứa các port ID cho gi0/10 và gi0/11.
- Nếu các priority bằng nhau, port ID của port từ gi2/10 được ưu tiên do số port thấp hơn. Do đó, gi0/22 trên switch B sẽ trở thành root port.
- Port number là giá trị cố định, nhưng priority có thể cấu hình được​
Bash:
Switch(config)# int gi0/11
Switch(config-if)# spanning-tree vlan 10 port-priority 32
Port ID là nhân tố cuối cùng mà STP sẽ xem xét. STP xác định các root port và port được chỉ định theo các tiêu chí sau, theo thứ tự:​
  • Đường đi có chi phí thấp nhất đến Root Bridge​
  • Bridge ID thấp nhất​
  • Sender Port ID thấp nhất​
Bridge ID thấp nhất luôn được sử dụng để xác định Root Bridge.

5. Cấu hình cơ bản STP


STP được bật mặc định trên switch của Cisco, cho tất cả VLAN và port. Có thể tắt STP:
Tắt với VLAN được chỉ định:
Bash:
Switch(config)# no spanning-tree vlan 10

Tắt với Range VLAN được chỉ định:

Bash:
Switch(config)# no spanning-tree vlan 1 – 4094

Tắt với port cơ bản của switch với VLAN được chỉ định:

Bash:
Switch(config)# interface gi2/23

Switch(config-if)# no spanning-tree vlan 10

Như đã nói ở trên Root Bridge được chọn dựa trên bridge ID thấp nhất. Cho nên cấu hình trên switch muốn làm root:

Bash:
SwitchA(config)# spanning-tree vlan 10 priority 8192

Hoặc có thể bắt buộc một switch làm Root bridge:

Bash:
SwitchA(config)# spanning-tree vlan 10 root primary

Và trên switch dự phòng:

Bash:
SwitchB(config)# spanning-tree vlan 10 root secondary

Switch có tham số primary sẽ được mặt định đặt priority = 24576 nếu các switch khác nhỏ hơn sẽ đặt priority nhỏ hơn 4096 so với Root bridge hiện tại. STP không hỗ trợ dự phòng, nhưng root secondary có thể backup cho root primary.

6. Port state


- Khi một STP hội tụ Port thay đổi qua các trạng thái: Disabled, Blocking, Listening, Learning, Forwarding.
- Ban đầu, port của switch sẽ bắt đầu ở trạng thái chặn (blocking):​
  • Port sẽ không chuyển tiếp frame hoặc học địa chỉ MAC.​
  • Port vẫn sẽ lắng nghe BPDU từ các switch khác để tìm hiểu về các thay đổi trong topology của switch.​
- Sau đó, port sẽ chuyển từ trạng thái chặn sang trạng thái lắng nghe (listening):​
  • Switch phải tin rằng port này sẽ không bị tắt để loại bỏ loop. Nói cách khác, port có thể trở thành root port hoặc port được chỉ định.​
  • Port lắng nghe sẽ không chuyển tiếp frame hoặc học địa chỉ MAC​
  • Port lắng nghe sẽ gửi và lắng nghe BPDU để tham gia vào quá trình chọn Root Bridge, root port, và port được chỉ định.​
  • Nếu port lắng nghe không được chọn làm root port hoặc port được chỉ định, nó sẽ chuyển trở lại trạng thái chặn.​
- Nếu port lắng nghe được bầu chọn làm root port hoặc port được chỉ định, nó sẽ chuyển sang trạng thái học (learning):​
  • Port phải chờ một khoảng thời gian ngắn, được gọi là forward delay, trước khi chuyển từ trạng thái lắng nghe sang học.​
  • Port sẽ tiếp tục gửi và lắng nghe BPDU.​
  • Port sẽ bắt đầu thêm địa chỉ MAC vào bảng CAM.​
  • Tuy nhiên, port chưa thể chuyển tiếp frame.​
- Cuối cùng, port ở trạng thái học sẽ chuyển sang trạng thái chuyển tiếp (forwarding):​
  • Port phải chờ thêm một forward delay nữa trước khi chuyển từ trạng thái học sang chuyển tiếp.​
  • Port chuyển tiếp hoàn toàn hoạt động – nó sẽ gửi và lắng nghe BPDU, học địa chỉ MAC, và chuyển tiếp frame.​
  • Root port và port được chỉ định cuối cùng sẽ chuyển sang trạng thái chuyển tiếp.​
- Một port ở trạng thái vô hiệu hóa(Disabled) sẽ bị tắt bởi quản trị viên. Port vô hiệu hóa không chuyển tiếp frame và không tham gia vào quá trình hội tụ của STP.

Câu hỏi: Tại sao một port lại bắt đầu ở trạng thái chặn (blocking)?

STP phải giả định ban đầu rằng một loop đang tồn tại. Một loop có thể hình thành chỉ trong vài giây và cần có sự can thiệp vật lý để dừng nó.

- Để xem trạng thái hiện tại của port:

Bash:
SwitchA# show spanning-tree interface gi0/0/0
 

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