Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Em hỏi cách hoạt động của Rapid - Spanning tree

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Em hỏi cách hoạt động của Rapid - Spanning tree

    Các sư phụ cho em hỏi cách hoạt động của Rapid Spanning tree. Tại sao nó lại hộ tụ nhanh hơn Traditional spanning tree. Và Superior BPDU nó lấy từ đâu ạ. Cám ơn nhiều

  • #2
    Rapid Spanning Tree và Multiple Spanning Tree (tháng 11/2007)

    Bài này đăng lại cho hai thành viên hieunt và invalid-password của diễn đàn VnPro.
    ————————
    Rapid Spanning Tree Protocol


    IEEE 802.1w Rapid Spanning Tree Protocol (RSTP) cải tiến hoạt động của 802.1D truyền thống với một mục đích duy nhất: cải tiến sự hội tụ của STP. Để thực hiện được việc này, RSTP định nghĩa ra một dạng biến thể khác của BPDU, các trạng thái mới của cổng và các vai trò cổng mới. Tất cả các dạng thay đổi này đều đảm bảo tính tương thích ngược với 802.1D. Các yếu tố chủ chốt giúp cho việc tăng tốc khả năng hội tụ là:
    Chỉ chờ một khoảng thời gian tối đa là 3 lần hello trên một RP trước khi phản ứng với sự thay đổi. Trước đây, khoảng thòi gian này là MaxAge. Các tiến trình mới cho phép chuyển đổi từ trạng thái disabed (thay thế cho trạng thái blocking trong 802.1D) sang trạng thái learning, bỏ qua trạng thái learning của 802.1D. Chuẩn hóa các đặc điểm như Cisco PortFast, UplinkFast và backbonefast. Thêm vào các đặc điểm như cho phép cổng dự phòng cho DP khi switch có nhiều cổng kết nối vào cùng một phân đoạn mạng dùng chung.

    Để hỗ trợ các tiến trình mới này, RSTP dùng cùng cơ chế hello BPDU, sử dụng thêm một số bit chưa dùng trước đây. Ví dụ, RSTP sẽ định nghĩa thông điệp hello có thêm tuỳ chọn giống như chức năng RLQ của Cisco backbonefast. RSTP nhóm các cổng lại, dùng các kiểu kết nối khác nhau để mô tả từng nhóm. RSTP có thể quyết định trạng thái của cổng dựa trên loại thiết bị kết nối vào từng cổng, vì vậy giúp cho quá trình hội tụ nhanh hơn.

    <table border="1" cellpadding="0" cellspacing="0"> <tbody><tr> <td valign="top" width="175"> Kiểu kết nối (link type)
    </td> <td valign="top" width="415"> Mô tả
    </td> </tr> <tr> <td valign="top" width="175"> Point-to-point
    </td> <td valign="top" width="415"> Kết nối một switch đến một switch khác. Cisco switch xem các kết nối FullDupleX trong đó hello BPDU được nhận là các kết nối point-to-point.
    </td> </tr> <tr> <td valign="top" width="175"> Dùng chung (Shared)
    </td> <td valign="top" width="415"> Kết nối một switch đến một hub
    </td> </tr> <tr> <td valign="top" width="175"> Edge
    </td> <td valign="top" width="415"> Kết nối đến một thiết bị của người dùng cuối.
    </td> </tr> </tbody></table>
    Trong phần lớn các thiết kế mạng LAN hiện đại, hub không được dùng nữa. Vì vậy tất cả các kết nối phải là hoặc là điểm-điểm (point-to-point) hoặc là kiểu edge. Kiểu kết nối là edge nghĩa là cổng đang gắn vào một thiết bị và thiết bị không phải là một switch. Vì vậy, RSTP xem các kết nối edge giống như tính năng Cisco portfast. Và thật ra, câu lệnh spanning-tree portfast được dùng để định nghĩa một kết nối như là edge trong RSTP. Nói cách khác, RSTP đặt các kết nối kiểu edge vào trạng thái forwarding một cách tức thì.

    Đối với các kết nối point-to-point, RSTP sẽ hỏi switch láng giềng về tình trạng của nó. Ví dụ nếu một switch không nhận được gói hello định kỳ trên kết nối điểm-điểm, switch sẽ truy vấn switch láng giềng. Thiết bị láng giềng sẽ trả lời, nêu rõ là nó có mất đường đi về root hay không. Tính năng này giống như tính năng backbonefast của Cisco, nhưng dùng thông điệp chuẩn của IEEE để đạt cùng một mục đích. RSTP cũng định nghĩa lại các trạng thái cổng của 802.1D, trong đó trạng thái listening là không còn cần thiết nữa.

    <table border="1" cellpadding="0" cellspacing="0"> <tbody><tr> <td valign="top" width="197"> Trạng thái quản trị
    </td> <td valign="top" width="197"> Trạng thái của 802.1D
    </td> <td valign="top" width="197"> Trạng thái 802.1w
    </td> </tr> <tr> <td valign="top" width="197"> Disabled
    </td> <td valign="top" width="197"> Disabled
    </td> <td valign="top" width="197"> Discarding
    </td> </tr> <tr> <td valign="top" width="197"> Enable
    </td> <td valign="top" width="197"> Blocking
    </td> <td valign="top" width="197"> Discarding
    </td> </tr> <tr> <td valign="top" width="197"> Enable
    </td> <td valign="top" width="197"> Listening
    </td> <td valign="top" width="197"> Discarding
    </td> </tr> <tr> <td valign="top" width="197"> Enable
    </td> <td valign="top" width="197"> Learning
    </td> <td valign="top" width="197"> Learning
    </td> </tr> <tr> <td valign="top" width="197"> Enable
    </td> <td valign="top" width="197"> Forwarding
    </td> <td valign="top" width="197"> Forwarding
    </td> </tr> </tbody></table>
    Trong RSTP, trạng thái discarding có nghĩa là cổng sẽ không truyền hay nhận frame hoặc học địa chỉ MAC, bất chấp cổng có bị shutdown, sự cố…Khi RSTP đã quyết định chuyển trạng thái từ discarding sang forwarding, cổng đó sẽ ngay lập tức đi vào trạng thái learning. Từ thời điểm đó, quá trình tiếp tục giống như trong 802.1D. RSTP không còn cần trạng thái listening bởi vì nó sẽ chủ động hỏi các thiết bị láng giềng, đảm bảo sao cho không bị vòng lặp.

    RSTP dùng thuật ngữ vai trò cổng (role) để chỉ ra một cổng là RP hay là một DP. RSTP sử dụng RP và DP giống như trong 802.1D, tuy nhiên RSTP thêm vào vài vai trò khác.

    <table border="1" cellpadding="0" cellspacing="0"> <tbody><tr> <td valign="top" width="199"> RSTP Role
    </td> <td valign="top" width="391"> Định nghĩa
    </td> </tr> <tr> <td valign="top" width="199"> Root port
    </td> <td valign="top" width="391"> Giống như trong 802.1D
    </td> </tr> <tr> <td valign="top" width="199"> Designated port
    </td> <td valign="top" width="391"> Giống như trong 802.1D
    </td> </tr> <tr> <td valign="top" width="199"> Alternate port
    </td> <td valign="top" width="391"> Giống như cổng dự phòng trong UplinkFast
    </td> </tr> <tr> <td valign="top" width="199"> Backup port
    </td> <td valign="top" width="391"> Một cổng kết nối vào cùng một phân đoạn mạng dùng chung giống như nhiều cổng khác trên cùng switch nhưng cổng kia là DP cho phân đoạn mạng đó. Cổng backup sẽ thay thế khi port DP bị sự cố.
    </td> </tr> </tbody></table> Khái niệm Alternate Port thì giống như khái niệm UplinkFast. Chức năng Backup port thì không có chức năng tương đương bên Cisco. Bạn có thể bật chức năng RSTP trong switch dùng lệnh spanning-tree mode rapid-pvst. Ngoài ra, bạn có thể dùng 802.1s MST.

    Multiple Spanning Trees: IEEE 802.1s


    IEEE 802.1s Multiple Spanning Trees (MST) định nghĩa cách thức dùng nhiều phiên bản của STP trên một hạ tầng mạng dùng 802.1q. Giống như PVST+, MST cho phép hiệu chỉnh các thông số của STP sao cho một vài cổng là bị block trong một vlan nhưng nó có thể là forwarding trong vlan khác. Luôn luôn dùng kết hợp với 802.1w để hội tụ nhanh hơn. Không yêu cầu từng phiên bản của STP cho từng vlan. Thay vào đó, thiết kế tốt nhất thường dùng một phiên bản spanning tree cho các đường đi dự phòng. Nếu hệ thống mạng bao gồm tất cả các thiết bị có khả năng hỗ trợ MST, MST sẽ tương đối dễ hiểu. Một nhóm các switch dùng chung với nhau được gọi là MST region. Để tạo ra một MST region, các switch cần phải được cấu hình như sau:

    1. Bật MST ở chế độ toàn cục:
    # spanning-tree mode mst
    2. Trong chế độ cấu hình của MST, tạo ra MST region (tối đa 32 ký tự) dùng lệnh name.
    3.Trong chế độ cấu hình của MST, tạo ra một chỉ số MST revision number bằng cách dùng lệnh revision.

    Trong chế độ cấu hình của MST, chỉ định các VLAN nào vào phiên bản spanning tree nào bằng câu lệnh instance. Chìa khóa cho việc cấu hình của MST là cấu hình tất cả các thông số giống nhau trên tất cả các switch của cùng region. Ví dụ nếu bạn cho phiên bản instance 1 của MST chạy trên VLAN 1 đến VLAN 4 và vlan 5-8 đến cũng instance 1 trên switchkhác, hai switch sẽ không xem như chúng cùng MST region, mặc dù cả tên region và chỉ số revision là tương tự nhau. Ví dụ, trong hình dưới đây, một MST region đã được định nghĩa cùng với các kết nối đến các switch không chạy MST.


    Phía bên trái của hình, bên trong một MST bạn chỉ cần hai phiên bản của STP. Mỗi phiên bản cho một nửa số vlan. Nếu có hai phiên bản, các switch ở lớp access sẽ truyền các frame trên các kết nối của nó cho tập hợp một số vlan và truyền các frame của các vlan còn lại trên kết nối kia. Một trong những đặc điểm chủ yếu của MST so với PVST+ là việc yêu cầu chỉ cần một phiên bản của STP cho một nhóm các vlan. Nếu MST region này có hàng trăm VLAN và dùng PVST+, sẽ có tương ứng hàng trăm STP thông điệp sẽ được dùng. Khi kết nối một MST region đến một miền không chạy MST, MST sẽ làm cho cả một miền MST xuất hiện như là một switch duy nhất. Một MST sẽ đảm bảo tình trạng không bị lặp bên trong một MST region. Để ngăn ngừa vòng lặp trên kết nối CST từ miền MST đến miền phi MST, MST sẽ tham gia vào phiên bản STP đang chạy bên ngoài miền MST. Phiên bản thêm vào này gọi là Internal Spanning Tree (IST). Khi tham gia trong STP với các switch bên ngoài, miền MST sẽ xuất hiện như một switch duy nhất.
    Đặng Quang Minh, CCIEx2#11897 (Enterprise Infrastructure, Wireless), DEVNET, CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/

    Comment


    • #3
      Hôm nay tình cờ đi ngang qua đây thấy pác Minh post bài này có CC cho mình. Nhưng rất tiếc là cũng chưa có cái mình quan tâm (phương pháp hash [Name] + [Revision number] + [VLAN-to-instance mapping table] và nó đặt ở đâu trong bản tn BPDU).

      Có người nói là nó nằm trong 12 bit sau cùng của field priority (hash MD5 tất cả VLAN), có tài liệu nói là 12 bit đó chứa instance number, có người lại nói là nó thêm 1 field trong BPDU để chứa hash string của riêng từng hãng - cái này có lý nhất).

      Comment


      • #4
        Cho em hỏi thêm về quá trình Synchronization các switch thực hiện gửi proposal như thế nào. Và switch Synchronization như thế nào ạ. Vấn đề như thế nào khi nó nhận được 2 proposal khác nhau từ 2 switch (vì các switch giao tiếp độc lập với nhau). Và switch nào có thể gửi proposal cho switch khác. và nó lấy proposal ở đâu ???

        Comment


        • #5
          Hi Hieunt

          Có vài điểm mà Rapid Spanning Tree cải tiến so với Spanning Tree truyền thống.

          Trước hết, mục tiêu mà rapid spanning tree nhắm đến để cải tiến spanning tree truyền thống (CST - Common Spanning Tree) chính là cải thiện thời gian hội tụ. Như bạn Hieunt đã đọc trong CST, nhược điểm của CST chính là ở chổ, mỗi khi có một biến cố hoặc một thay đổi về sơ đồ mạng xảy ra, các switch phải tốn một khoảng thời gian nhất định để có thể tái hội tụ.

          Khoảng thời gian mà các switch có thể phải chờ thường nằm trong khoảng MaxAge (20 giây), sau đó mới bắt đầu tính toán lại. Nếu các cổng của switch phải chuyển đổi trạng thái, ví dụ như từ blocking chuyển sang forwarding, khoảng thời gian cần mất thêm là forward delay...

          Cisco cũng đã đưa ra vài cải tiến cho vấn đề hội tụ chậm này. Một số đặc điểm mà bạn Hieunt từng biết như Port Fast, Uplink Fast và Backbone Fast. Nhìn chung, các đặc điểm này giúp giảm thời gian phải chờ đợi.

          Một đặc điểm khác của Spanning Tree truyền thống là trạng thái của cổng (5 trạng thái: disabled, blocking, listening, learning, forwarding) thường gắn liền với vai trò của cổng (port role). Do đó, thường thì các switch phải xác định vai trò của các cổng sau khi tái hội tụ thì sẽ xác định được trạng thái của cổng. Ví dụ như, designated port luôn là forwarding, root port luôn là forwarding....

          Trong 5 trạng thái của một cổng của switch hoạt động ở CST- spanning tree truyền thống, thật sự chỉ có trạng thái forwarding là có khả năng đẩy các frame dữ liệu đi. Ba trạng thái disable, blocking, listening không thực sự forward dữ liệu.

          Phần vừa rồi đã nhắc sơ qua vài khuyết điểm nhỏ của SPAnning tree truyền thống. Chắc chắn rằng, RSPT sẽ cố gắng hoạt động để cải tiến một số điểm nêu trên...

          (còn tiếp)
          Đặng Quang Minh, CCIEx2#11897 (Enterprise Infrastructure, Wireless), DEVNET, CCSI#31417

          Email : dangquangminh@vnpro.org
          https://www.facebook.com/groups/vietprofessional/

          Comment


          • #6
            Vâng ạ .Vậy có nghĩa là dùng rapid spanning tree để tăng khả năng hội tụ nhanh cho những thay đổi của mạng (có nghĩa là mạng đã hội tụ do traditional spanning tree rồi và nó dùng rapid để nhằm giảm thời gian hội tụ). Em hểu thế có đúng khộng ạ thầy ???.
            Cám ơn thầy nhiều ạ

            Comment


            • #7
              Hi Hieunt

              Cải tiến đầu tiên của RSTP liên quan đến số trạng thái của các cổng của switch. Trong RSTP, các cổng của switch chỉ có ba trạng thái: discarding, learning và forwarding. TRạng thái discarding bao gồm ba trạng thái rất "vô dụng" trước đây trong spanning tree truyền thống là "disabled, blocking, listening". Gọi là vô dụng là bởi vì ba trạng thái vừa nêu không có thực sự truyền các data frame. Do đó, RSTP gộp cả ba trạng thái trên thành một trạng thái là "discarding".

              SỐ trạng thái ít hơn, về nguyên tắc, sẽ giúp các cổng của switch ít chuyển đổi trạng thái hơn.

              (còn tiếp)
              Đặng Quang Minh, CCIEx2#11897 (Enterprise Infrastructure, Wireless), DEVNET, CCSI#31417

              Email : dangquangminh@vnpro.org
              https://www.facebook.com/groups/vietprofessional/

              Comment


              • #8
                Một hướng cải tiến thứ hai của RSTP so với CST là sự tách biệt giữa vai trò cổng (port-role) và trạng thái cổng (port state).

                Trong CST, mỗi khi có một sự thay đổi trong sơ đồ mạng, vai trò của các cổng sẽ được xác định trước, sau đó, trạng thái của các cổng sẽ phụ thuộc vào vai trò "mới" của cổng của switch sau khi đã có sự thay đổi xảy ra.

                Trong RSTP, trạng thái của cổng sẽ tách biệt với vai trò của cổng (port role). Mỗi khi có sự thay đổi xảy ra, trạng thái cổng có thể xác định được ngay mà không cần chờ để tính toán lại vai trò của cổng (port role).

                (còn tiếp)
                Đặng Quang Minh, CCIEx2#11897 (Enterprise Infrastructure, Wireless), DEVNET, CCSI#31417

                Email : dangquangminh@vnpro.org
                https://www.facebook.com/groups/vietprofessional/

                Comment


                • #9
                  Khi một con switch đang chạy MSTP mà nhận được một gói BPDU RSTP thì nó sẽ phản ứng thế nào ?

                  Comment


                  • #10
                    RSTP cũng dùng cùng một định dạng BPDU như trong kiểu spanning tree truyền thống. Tuy nhiên, trong RSTP, một vài bit trước đây trong BPDU không được dùng thì giờ RSTP sẽ sử dụng.

                    Trường version trong BPDU của RSTP sẽ được gán bằng 2 để phân biệt với BPDU của STP truyền thống.

                    Khi một switch đang chạy RSTP (tức dùng BPDU version 2), nó có thể cùng tồn tại với các switch vẫn đang chạy SPT truyền thống (802.1D). Các cổng của switch sẽ cố gắng hoạt động theo loại BPDU mà nó nhận được.

                    Ví dụ, khi switch nhận được một BPDU kiểu cũ (802.1D - version 0) trên một cổng của nó, cổng đó sẽ hoạt động theo các qui luật của 802.1D.

                    Tuy nhiên, các cổng sẽ có cơ chế để "khóa" loại giao thức đang sử dụng trong trường hợp nhận đồng thời cả hai loại BPDU trong một thời gian ngắn. Tình huống này xảy ra khi các switches trong một hệ thống mạng đang chuyển đổi từ loại spanning tree này sang loại spanning tree khác. Thay vì chuyển đổi qua lại giữa hai loại spanning tree, switch sẽ tạm thời lưu giữ một khoảng thời gian. Sau khoảng thời gian này, cổng của switch sẽ được quyền chuyển đổi giao thức (loại spanning tree).

                    Sau cùng, chức năng cơ bản của RSTP có thể áp dụng cho một phiên bản đơn (single instance) hoặc phiên bản đa (multiple instance). RSTP cũng dùng như một cơ chế bên dưới trong trường hợp toàn bộ mạng của ta đang chạy Per-VLAN Spanning Tree. Kết hợp này gọi là Rapid PVST+. Thậm chí, trong IEEE 802.1s Multiple spanning tree MST, RSTP cũng có thể được sử dụng cho từng phiên bản của MSTP.
                    Đặng Quang Minh, CCIEx2#11897 (Enterprise Infrastructure, Wireless), DEVNET, CCSI#31417

                    Email : dangquangminh@vnpro.org
                    https://www.facebook.com/groups/vietprofessional/

                    Comment


                    • #11
                      Originally posted by dangquangminh View Post
                      Khi một switch đang chạy RSTP (tức dùng BPDU version 2), nó có thể cùng tồn tại với các switch vẫn đang chạy SPT truyền thống (802.1D). Các cổng của switch sẽ cố gắng hoạt động theo loại BPDU mà nó nhận được.
                      Làm sao có thể cố gắng hoạt động theo loại BPDU mà nó nhận được ? Hình như trong chuẩn không quy định một switch phải cố gắng hoạt động theo kiểu BPDU. Bây giờ em có một mạng trong đó có loại switch support STP & RSTP, loại khác support STP và MSTP (con biết R thì không biết M và ngược lại) thì nó vẫn chạy, nhưng lâu lâu nó bị loop (vài ngày), nhưng tại sao nó không loop ngay (traffic nhiều), lâu lâu root bầu chọn sai, khi active lên ngày đầu tiên thì root đúng. Nói chung không biết lỗi do thiết bị nào.

                      Originally posted by dangquangminh View Post
                      Tuy nhiên, các cổng sẽ có cơ chế để "khóa" loại giao thức đang sử dụng trong trường hợp nhận đồng thời cả hai loại BPDU trong một thời gian ngắn. Tình huống này xảy ra khi các switches trong một hệ thống mạng đang chuyển đổi từ loại spanning tree này sang loại spanning tree khác. Thay vì chuyển đổi qua lại giữa hai loại spanning tree, switch sẽ tạm thời lưu giữ một khoảng thời gian. Sau khoảng thời gian này, cổng của switch sẽ được quyền chuyển đổi giao thức (loại spanning tree).
                      Cơ chế khóa, timeout rồi chuyển đổi này thực hiện như thế nào với mạng RSTP và MSTP (single instance 0) khi mà lúc nào cũng có 2 loại BPDU, chẳng lẽ nó cứ chuyển qua chuyển lại ?

                      Nói chung em đang đau đầu với cái mạng mix này, theo lý thuyết thì MSTP instance 0 (không có ins khác) và RSTP chạy chung được, nhưng một vài ngày không bị loop, lâu lâu lại loop phải disable đi, nếu loop thì cắm ring vào thì loop ngay chứ.

                      Comment

                      Working...
                      X