Network [LT] Spanning tree protocol (STP) (Phần cuối)

Trong phần trước, mình đã giới thiệu về cách để bảo vệ STP. Trong phần này mình sẽ nói về các phiên bản nâng cấp của STP.

V. Versions of STP


Có 3 giao thức của STP trong chuẩn 802.1D:
  • Common Spanning Tree (CST)
  • Per-VLAN Spanning Tree (PVST)
  • Per-VLAN Spanning Tree Plus (PVST+)
- CST sử dụng một phiên bản STP duy nhất cho tất cả các VLAN và đôi khi được gọi là spanning tree đơn (mono spanning tree). Tất cả các BPDU của CST được gửi qua VLAN root trên port trunk, và do đó không gán thẻ (untagged VLAN ID).
- PVST sử dụng một phiên bản STP riêng cho từng VLAN, cải thiện tính linh hoạt và hiệu suất. PVST yêu cầu các port trunk phải sử dụng đóng gói ISL. PVST và CST không tương thích với nhau.
- PVST+ là phiên bản nâng cao của PVST, tương thích với cả CST và PVST, và hỗ trợ cả đóng gói ISL và 802.1Q. PVST+ là chế độ mặc định trên nhiều nền tảng của Cisco.
Ngoài ra còn có các phiên bản hiện đại hơn là:
  • Rapid Spanning Tree Protocol (RSTP)
  • Multiple Spanning Tree (MST)

1. Rapid spanning tree Protocol(RSTP)


- STP bản cũ thì gian hội tụ vào khoảng 30-50 giây, thật không thể chấp nhận một khoảng thời gian lâu như vậy trong mạng ngày nay, người dùng cấm vô switch và phải đợi 50 giây mới được sử dụng. Do đó người ta đã cải tiến, từ tiêu chuẩn 802.1D thành 802.1W và RSTP ra đời.
- RSTP hoạt động cũng như STP:
  • Gửi các gói BPDU giữa các switch
  • Chọn ra một root bridge dựa trên Bridge ID nhỏ nhất.
  • Root và designated port được chọn và hoạt động y như STP.
- RSTP có 4 port role:
  • Root port: port có path cost đến root bridge nhỏ nhất. Một switch chỉ có 1 root port.
  • Alternate port: Port dự phòng cho root port.
  • Designated port: Port không phải root port dùng để làm port chuyển tiếp cho segment
  • Backup port: Port dự phòng cho Designated port.
- 802.1D STP hỗ trợ 5 trạng thái(Disabled, Blocking, Listening, Learning, Forwarding) nhưng RSTP hỗ trợ 3 trạng thái(Discarding, Learning, Forwarding).
- Ban đầu, một port bắt đầu ở trạng thái discarding:
  • Một port discarding sẽ không chuyển tiếp các frame hoặc học các địa chỉ MAC.
  • Một port discarding sẽ lắng nghe các BPDU.
  • Các port alternate và backup sẽ vẫn ở trạng thái discarding.
- RSTP không cần trạng thái listening. Thay vào đó, nếu một port được chọn là root port hoặc designated, nó sẽ chuyển từ trạng thái discarding sang trạng thái learning:
  • Một port learning sẽ bắt đầu thêm các địa chỉ MAC vào bảng CAM.
  • Tuy nhiên, một port learning vẫn chưa thể chuyển tiếp các frame.
- Cuối cùng, một port learning sẽ chuyển sang trạng thái forwarding:
  • Một port forwarding hoàn toàn hoạt động – nó sẽ gửi và lắng nghe các BPDU, học các địa chỉ MAC, và chuyển tiếp các frame.
  • Các root port và designated sẽ cuối cùng chuyển sang trạng thái forwarding.
- Lợi ích của RSTP là thời gian hội tụ nhanh hơn, nhờ vào:
  • BPDU được tạo ra bởi tất cả switch, và được gửi ở khoảng thời gian gửi gói hello.
  • Các switch không còn phải đợi 3 trạng thái Disabled, Blocking, Listening mà được gộp lại thành Discarding.
  • Switch không còn yêu cầu các bộ đếm thời gian ảo forward delay.
- Trong 802.1D, các BPDU được tạo ra bởi Root Bridge. Nếu một switch nhận được một BPDU từ Root Bridge trên root port của nó, nó sẽ chuyển tiếp BPDU đó xuống các switch liền kề. Quá trình hội tụ này chậm, và STP dựa vào các bộ đếm thời gian forward delay để đảm bảo môi trường không có loop.
- Trong RSTP, các switch sẽ thực hiện quá trình bắt tay trực tiếp với các switch hàng xóm, cho phép đồng bộ hóa nhanh chóng. Điều này cho phép các port chuyển tiếp từ trạng thái discarding sang trạng thái forwarding nhanh chóng mà không cần bộ đếm thời gian delay.
- Một thành phần chính của quy trình RSTP là loại của từng port:
  • Edge: port kết nối với một host. Port này hoạt động giống như một port được kích hoạt PortFast, chuyển ngay lập tức sang trạng thái forwarding.
  • Root: port kết nối với một switch khác, và có chi phí đường dẫn tốt nhất đến Root Bridge.
  • Point-to-Point: port kết nối với một switch khác, với khả năng trở thành port designated cho một segment.
Lưu ý: Nếu một port edge nhận được một BPDU, nó sẽ mất trạng thái port edge và chuyển qua quy trình RSTP bình thường. Trên các switch của Cisco, bất kỳ port nào được cấu hình với PortFast trở thành port Edge.
- Quy trình hội tụ RSTP như sau:
  • Các switch trao đổi BPDU để bầu chọn Root Bridge.
  • Các port Edge ngay lập tức chuyển sang trạng thái forwarding.
  • Tất cả các root port và point-to-point bắt đầu ở trạng thái discarding.
  • Nếu một port nhận được một BPDU ưu tiên hơn, nó sẽ trở thành root port và chuyển ngay lập tức sang trạng thái forwarding.
  • Đối với port point-to-point, mỗi switch sẽ trao đổi một tiến trình bắt tay để xác định port nào trở thành designated.
  • Khi các switch đồng ý, port designated sẽ ngay lập tức chuyển sang trạng thái forwarding.
- Mỗi switch sẽ thực hiện quy trình bắt tay này với từng láng giềng của nó, cho đến khi tất cả các switch được đồng bộ hóa. Hội tụ hoàn chỉnh xảy ra rất nhanh – trong vòng vài giây.
- Topology Change Notification(TCN) là thứ giúp cho RSTP nhận biết quá trình thay đổi topology hiệu quả hơn là STP trong 2 trường hợp:
  • Khi mà port chuyển sang trạng thái forwarding.
  • Khi mà port chuyển sang trạng thái blocking hoặc down.
- TCN sẽ thông báo cho tất cả các switch khác về sự thay đổi bằng cách gửi BPDU với các bit Topology Change (TC). Chỉ có các port không phải edge chuyển sang trạng thái forwarding mới tạo ra một TCN. Switch nhận biết sự thay đổi topology không cần phải thông báo cho Root Bridge trước. Bất kỳ switch nào cũng có thể tạo và chuyển tiếp một TC BPDU, cho phép topology nhanh chóng hội.
- Một switch nhận được TC BPDU sẽ xóa tất cả các địa chỉ MAC đã học trên các port designated, ngoại trừ port nhận TC BPDU.
- Trong trường hợp thay đổi cấu trúc mạng, RSTP sẽ cho phép các port alternate hoặc backup ngay lập tức chuyển sang trạng thái forwarding. Thêm vào đó, RSTP không cần phải chờ max age timer để chấp nhận một BPDU kém hơn, nếu có sự cố gián tiếp trong topology.
- RSTP hỗ trợ chức năng của UplinkFast và BackboneFast một cách tích hợp.
- RSTP tương thích với STP 802.1D. Nếu một switch không phản hồi RSTP, port sẽ trở lại trạng thái chuyển đổi qua các trạng thái của 802.1D. Lưu ý rằng điều này có nghĩa là tất cả các lợi ích của RSTP sẽ bị mất trên port đó.
- RSTP gần như là giống với với STP kể cả cấu hình, để kích hoạt RSTP trên một switch:
Bash:
Switch(config)# spanning-tree mode rapid

2. Mulitple spanning tree (MST)


- Multiple Spanning Tree (MST), được định nghĩa trong IEEE 802.1s, cho phép nhóm các VLAN được ánh xạ đến một instance STP. Mỗi MST instance(MSTI) xây dựng cơ sở dữ liệu topology RSTP riêng của nó, bao gồm việc bầu chọn Root Bridge của nó. Một VLAN chỉ có thể được gán cho một instance duy nhất.
- MST còn phân tách topology STP thành các khu vực (regions). Tất cả các switch trong một khu vực phải được cấu hình với các tham số MST giống nhau:
  • 32-byte đặt tên
  • 16-bit revision number
  • VLAN-to-instance mapping database
- Nếu 2 switch cấu hình tham số MST khác nhau, thì nó sẽ nằm ở 2 khu vực khác nhau. Đối với hầu hết các nền tảng Cisco, một khu vực có thể chứa tối đa 16 instance MST, được đánh số từ 0 đến 15. Theo mặc định, tất cả các VLAN thuộc về instance 0.
- Internal Spanning Tree (IST) chịu trách nhiệm duy trì topology cho toàn bộ khu vực và tất cả các MSTI. Chỉ IST mới có thể gửi và nhận BPDUs, và nó đóng gói thông tin MSTI trong một BPDU dưới dạng MST record (M-record). IST luôn được ánh xạ đến instance 0.
- MST tương thích với tất cả các triển khai khác của STP. Một khu vực MST không bị phát hiện bởi các switch không phải MST, và chúng sẽ thấy toàn bộ khu vực MST như một switch 802.1D hoặc RSTP.
- Để mở chế độ MST trên switch:
Bash:
Switch(config)# spanning-tree mode mst
- Để thay đổi các tham số của MST cần phải vào mode cấu hình:
Bash:
Switch(config)# spanning-tree mst configuration
Switch(config-mst)#
- Để gán tên MST và revision number:
Bash:
Switch(config-mst)# name MYMSTNAME
Switch(config-mst)# revision 2
- Để gán VLAN vào một MSTI:
Bash:
Switch(config-mst)# instance 2 vlan 1-100
Switch(config-mst)# instance 3 vlan 101-200
- Để xem các thay đổi đối với cấu hình:
Bash:
Switch(config-mst)# show pending
- Tất cả các tham số MST khác đều được cấu hình tương tự như 802.1D STP, với hai ngoại lệ:
  • Tham số mst phải được sử dụng trên tất cả các lệnh.
  • Tất cả các lệnh tham chiếu đến instance MST thay vì một VLAN.
- Do đó, để cấu hình một switch làm Root Bridge cho instance MST 2:
Bash:
Switch(config)# spanning-tree mst 2 root primary
 

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