Chapter 1.2 Rapid Spanning Tree

root

Well-Known Member
1. Giới thiệu RSTP
- Giao thức RSTP (802.1W) được xây dựng và phát triển dựa trên chuẩn IEEE 802.1D STP
- Giao thức RSTP cải tiến thêm nhiều ưu điểm hơn và cung cấp tốc độ hội tụ nhanh hơn.
  • Thời gian tính toán lại của thuật toán spanning-tree sẽ nhanh hơn rất nhiều, chỉ khoảng dưới 1 giây
  • Trong khi đó với giao thức IEEE 802.1D STP thì thời gian tính toán lại mất đến 50 giây.
- Giao thức RSTP cung cấp tốc độ hội tụ rất nhanh bằng cách gán thêm vai trò của các port và giảm bớt quá trình hoạt động của spanning-tree.

2. Vai trò port trong RSTP
- Bước 1: Chọn 1 switch có priority thấp nhất làm root.
- Bước 2: RSTP sẽ gán các port của switch với vai trò sau:
  • Root port:
    • là port có path cost thấp nhất đến root switch
    • Mỗi switch có duy nhất một root pot.
    • Root port không bao giờ nằm trên root bridge.
  • Designated port:
    • port có path cost thấp nhất từ một mạng LAN (segment hoặc colision domain) đến root switch.
    • Port này sẽ gửi các gói tin BPDU trên các segment mạng
  • Alternate port: là cổng dự phòng cho root port. Khi xảy ra sự cố, alternate port sẽ trở thành root port mới cho cấu trúc mới.
  • Backup port:
    • Dự phòng cho một đường truyền dữ liệu được cung cấp bởi designated port.
    • Backup có thể tồn tại duy nhất trong trường hợp khi
      • Có hai port cùng kết nối trực tiếp vào trong một loopback bởi một liên kết point-to-point
      • Hoặc khi một switch cùng có hai port trở lên đang cùng kết nối vào một segment LAN.
  • Disable port: khi một port đang ở trạng thái shutdown hoặc port này không hoạt động với giao thức RSTP.

- Active topology:​

  • Các root port or designated port sẽ thuộc Active topology
  • Các port đóng vai trò là root hoặc designated sẽ ngay lập tức chuyển sang trạng thái forwarding
- Alternate port hoặc backup port sẽ không nằm trong một active topology nào.
  • Các alternate port và backup port sẽ luôn ở trạng thái discarding
=> Trạng thái của port sẽ chịu trách nhiệm điều khiển sự hoạt động của tiến trình forwarding và learning.

3. Trạng thái port
- Các trạng thái port trong RSTP gồm:
  • Discarding : khi các frame đến đều bị drop, switch sẽ không học địa chỉ MAC tại những cổng này (Trạng thái này giống trạng thái disable, blocking, listening trong 802.1D; vì cả 3 trạng thái này đều không hề chuyển tiếp bất cứ frame nào => Vì vậy với RSTP trạng thái Listening không cần thiết.)
  • Learning : trạng thái này frame vẫn bị bỏ đi, nhưng địa chỉ MAC thì được học.
  • Forwarding : frame được chuyển tiếp theo các địa chỉ MAC đã được học (và đang được học).

4. Các loại link

- Edge port:
  • Edge port hoạt động giống như một port Port Fast thường dùng kết nối đến các host
  • khi port được cấu hình là edge port lập tức chuyển sang trạng thái forwarding.
  • Cấu hình: spanng-tree portfast ở chế độ interface
  • Nếu một BPDU được nhận trên các cổng này, lập tức cổng này mất trạng thái Edge port
- Root ports: nếu giao thức RSTP chọn một root port mới, thì nó sẽ block root port cũ lại và lập tức chuyển root port mới sang trạng thái forwarding.
- Shared Link: Là link kết nối với 1 thiết bị half-duplex (SW với Hub)
- Point-to-point links:
  • Là link kết nối giữa 2 SW full-duplex
  • Bất kì một port nào kết nối với một switch khác đều trở thành designated port
  • Nó sẽ tự động đàm phán rất nhanh với các port khác bằng cơ chế proposal-agreement handshake để đảm bảo rằng không có loop được tìm thấy trong quá trình hoạt động.


- Point-to-point port tự động được xác định theo phương thức song song. STP nhanh chóng được hội tụ trên một liên kết điểm tới điểm, thông qua gói tin bắt tay nhanh RSTP.
- RSTP xử lý hội tụ thông qua cơ chế truyền, bắt tay nhau điểm đến điểm giữa các switch. Khi một switch nhu cầu thực hiện một quyết định STP, cơ chế bắt tay được thực hiện với switch hàng xóm gần nhất.
- Khi qui trình thành công, quá trình bắt tay được chuyển tới switch tiếp theo và tiếp theo nữa, như là một cơ chế truyền sóng lan tỏa trong mạng.
- Trong mỗi chuỗi bắt tay, một switch phải có biện pháp để hoàn toàn đảm bảo rằng nó sẽ không giới thiệu một vòng lặp trước khi kết thúc quá trình “bắt tay”.
 

root

Well-Known Member
5. Định dạng của gói tin BPDU.
- Các gói tin BPDU của giao thức RSTP cũng có cùng định dạng với các gói tin BPDU của giao thức IEEE 802.1D, ngoại trừ thông tin của trường protocol version được gán giá trị là 2. RSTP sử dụng BPDU có type 2, version 2
- Một trường mới tên là Version 1 Length có độ dài là 1-byte được gán giá trị là 0.



- Các switch sẽ trực tiếp quảng bá các thông tin về flag trong gói RSTP BPDU để đề xuất chính nó là designated switch trong mạng LAN. Vai trò của port trong thông tin quảng bá luôn luôn được gán với vai trò là desiganted port.
- Các switch sẽ gửi thông điệp agreement flag trong gói RSTP BPDU để chấp nhận những thông tin quảng bá đó. Vai trò của các port trong thông điệp agreement sẽ luôn giữ vai trò là root port.



- Sư khác nhau flag BPDU
  • 802.1D chỉ sử dụng 2 flag Topology Change (TC) and TC Acknowledgment (TCA)
  • 802.1W sử dụng cả 6 bits của flag
- Vì vậy mà 802.1W sẽ không có gói tin BPDU TCN để thông báo về sự thay đổi của topology riêng biệt. Mà nó sử dụng TC (topology change) flags để hiển thị sự thay đổi về topology. Tuy nhiên, do khả năng tương thích với sự hoạt động của các switch IEEE 802.1D, nên các switch chạy RSTP vẫn có khả năng xử lý và đưa ra các gói tin TCN BPDUs.
- Một switch chạy RSTP ( 802.1W ) có thể giao tiếp với STP ( 802.1D ) trên bất kỳ liên kết nối nào hoặc với bất kỳ switch chạy 802.1D. RSTP gửi BPDU với cách bố trí hơi khác so với 802.1D:
  • BPDU báo cáo có hiện tượng thay đổi sẽ được gửi ngay lập tức nếu switch không nhận được gói "hello" trong 3 lần Hello (mặc định là 6 giây), hoặc là hết thời gian Max age.
  • BPDU được sử dụng như là một cơ chế báo cáo về cấu trúc mạng. Nếu ba gói tin BPDU liên tiếp bị mất thì hệ thống biết rằng kết nối gặp sự cố. Cơ chế cập nhật thông tin đã cho phép phát hiện nhanh chóng sự cố.
- RSTP sử dụng BPDU version 2, như được minh họa ở trên:
  • Bit 0 và 7 được sử dụng để thông báo thay đổi cấu trúc và như là một thông báo lại là switch đó đang gặp sự cố, có trong 802.1D.
  • Bit 1 và 6 được sử dụng cho quá trình đề xuất và bầu chọn (được sử dụng cho hội tụ nhanh chóng ).
  • Bit từ 2 đến 3 cho biết trạng thái cổng.
  • Bits 4 và 5 cho biết vai trò của cổng.

5. Quá trình xử lý những thông tin BPDU tốt hơn.
- Nếu một port nào đó của switch nhận được những thông tin tốt hơn (ví dụ như: switch ID thấp hơn, path cost thấp hơn...) thì port đó sẽ lưu trữ những thông tin đó, và lập tức giao thức RSTP sẽ thực hiện quá trình tính toán lại.
- Nếu port này đề nghị và được chọn là một root port mới, thì giao thức RSTP sẽ yêu cầu tất cả các port khác đồng bộ thông tin với root port mới này.
- Nếu gói BPDU đã nhận là gói RSTP BPDU với flag được gán, thì switch sẽ gửi một thông điệp thỏa thuận sau đó tất cả các port khác sẽ được đồng bộ.
- Nếu BPDU là một IEEE 802.1D BPDU, thì switch sẽ không gán giá trị cho flag và sẽ khởi tạo một khoảng thời gian forward-delay cho port đó. Root port mới sẽ cần một thời gian bằng hai lần thời gian của forward-delay để chuyển sang trạng thái forwarding.

6. Quá trình xử lý khi nhận một gói tin BPDU chứa thông tin không tốt.
- Nếu một designated port nhận một gói tin BPDU chứa những thông tin không tốt (ví dụ: switch ID cao hơn, path cost cao hơn và những thông tin khác cao hơn những thông tin đang lưu trữ trên port đó), port đó sẽ lập tức gửi lại một gói tin BPDU khác với những thông tin của chính nó.
- Nếu những thông tin tốt hơn đã nhận trên một port thì port đó trở sẽ thành một backup port hoặc một alternate port, thì giao thức RSTP sẽ đưa port đó trở về trạng thái blocking nhưng sẽ không gửi thông điệp thỏa thuận.
- Designated port sẽ tiếp tục gửi các gói BPDU với giá trị flag sẽ được gán cho đến khi hết thời gian forward-delay, ở thời điểm này port sẽ chuyển sang trạng thái forwarding.
 

root

Well-Known Member
Quá trình đồng bộ của các port có vai trò khác nhau
- Khi một switch nhận được một thông tin quảng bá trên một port của nó và port đó được chọn hoạt động với vai trò là root port mới, thì giao thức RSTP sẽ bắt buộc tất cả các port khác trên switch phải thực hiện quá trình đồng bộ thông tin với root port mới.
- Switch đồng bộ khi mà những thông tin tốt hơn được nhận trên root port của switch, nếu tất cả các port khác đã thực hiện tiến trình đồng bộ. Một port trên switch đã thực hiện xong tiến trình đồng bộ nếu:
  • Port đó đang ở trạng thái blocking.
  • Port đó trở thành edge port
  • Nếu một designated port đang trong trạng thái forwarding và không được cấu hình như một edge port, thì nó sẽ chuyển sang trạng thái blocking khi giao thức RSTP bắt buộc nó thực hiện đồng bộ thông tin với root port mới. Thông thường, khi giao thức RSTP bắt buộc một port thực hiện quá trình đồng bộ thông tin với một root port mới và port đó không đáp ứng được những điều kiện đó thì lập tức port đó sẽ được đưa về trạng thái blocking.
=> Sau khi chắc chắn rằng tất cả các port của switch đã được đồng bộ, thì switch sẽ gửi một thông tin thỏa thuận đến designated switch thông qua root port của nó.
- Khi các switch được kết nối trực tiếp với nhau bằng kết nối point-to-point thì vai trò của các port của switch sẽ được xác định và giao thức RSTP lập tức chuyển đổi trạng thái của các port sang trạng thái forwarding.



- Để tham gia vào quá trình hội tụ RSTP, một switch phải quyết định trạng thái của mỗi cổng của nó.
  • Port đó đang ở trạng thái blocking.
  • Port đó trở thành edge port
- Sau khi BPDUs được trao đổi giữa các switch và switch hàng xóm của nó, Root Bridge có thể được xác định.
- Nếu 1 port nhận được một BPDU tốt hơn từ một switch hàng xóm, cổng đó sẽ trở thành root port.
- Đối với một cổng không phải là edge, switch thiết lập cơ chế “bắt tay” thỏa thuận đề nghị-quyết định trạng thái của mỗi đầu của liên kết. Mỗi switch giả định rằng cổng của nó trở thành designated port cho đường dẫn, và một tin nhắn đề nghị (một BPDU cấu hình) được gửi tới các hàng xóm đề xuất này.
- Khi một switch nhận được một tin nhắn đề nghị trên một cổng, các bước sử lý theo trình tự sau:
  • 1. Nếu SW gửi có BPDU tốt hơn, switch sẽ nhận ra switch gửi là root bridge (có các cổng đều là designated port) và cổng của nó trở thành root port.
  • 2. Switch sẽ phải đồng bộ hóa chính nó với cấu trúc này.
  • 3. Tất cả các cổng không phải là edge ngay lập tức được chuyển sang trạng thái discard (chặn) để các vòng lặp không thể hình thành.
  • 4. Một thông báo thỏa thuận (một BPDU cấu hình) được gửi lại switch gửi, chỉ ra rằng switch đồng ý với nó về designated port mới được hình thành. Cho biết SW này đã đồng bộ với nó.
  • 5. Root port ngay lập tức được chuyển sang trạng thái forwarding. Các cổng của switch gửi cũng ngay lập tức có thể bắt đầu chuyển tiếp dữ liệu.
  • 6. Đối với mỗi cổng không phải là edge hiện đang trong tình trạng discard, một tin nhắn đề nghị được gửi tới các hàng xóm tương ứng.
  • 7. Một thông báo đồng ý được chờ đợi và được nhận được từ một switch hàng xóm trên một cổng không phải là edge.
  • 8. Một cổng không phải là edge ngay lập tức được đưa vào trạng thái forwarding.
- Chú ý rằng sự hội tụ RSTP bắt đầu với một switch gửi tin nhắn đề nghị. Switch nhận đề nghị phải đồng bộ hóa phần còn lại của bản thân nó với phần còn lại của cấu trúc này.
- Tất cả các cổng không phải là edge bị chặn cho đến khi một tin nhắn đề nghị có thể được gửi đi, bởi những người hàng xóm gần nhất để đồng bộ hóa bản thân nó.



- Điều này tạo ra một sự lan truyền theo kiểu sóng của switch khi đồng bộ hóa, và điều đó có thể nhanh chóng quyết định bắt đầu chuyển tiếp trên các liên kết của chúng chỉ khi hàng xóm của chúng đồng ý. Các con số kế tiếp cho thấy làn sóng đồng bộ hóa như thế nào đi qua mạng tại ba khoảng thời gian kế tiếp. Cô lập các switch dọc theo “làn song” lan truyền đó đã ngăn cản vòng lặp hình thành.

 
Top