1. Khái quát về Giao thức Spanning Tree 2.Tiến trình bầu chọn và hoạt động của Giao thức Spanning Tree3 Nhân tố định thời của Giao thức Spanning Tree.4.Các trạng thái trong một tiến trình STP

Giao thức Spanning Tree

Tiếp nối series “Tự Học CCNAx” hôm nay mình xin chia sẻ về một giao thức có tính năng dự phòng cao. Chống loop cho hệ thống mạng. Giao thức Spanning Tree. Như mọi người đã biết hệ thống mạng luôn cần có một giải pháp dự phòng(backup) và các “điểm nhạy cảm” trong một giải pháp dự phòng thì có thể gây đe dọa đến toàn hoạt động của hệ thống.

Bạn đang xem: Bpdu là gì

– Và tính hội tụ của một giải pháp dự phòng cũng rất quan trọng nên hôm nay mình xin chia sẻ về Giao thức Spanning Tree một tính năng chống loop trong giải pháp backup. Và cách mà Giao thức Spanning Tree hoạt động để xóa bỏ các điểm nhạy cảm trong hệ thống chuyển mạch LAYER 2. Chúng ta bắt đầu với bài 7 trong chuỗi bài “Tự học CCNAx” nhé.

Bài viết nên xem qua :Series “Tự học CCNA”

1. Giới thiệu khái quát về STP

1.1 Broadcast storm

1.2 Trùng lập Frame

2.Tiến trình bầu chọn và hoạt động của STP

2.1 Chọn Root-Bridge của STP1

2.3 Bầu chọn Designated Port trong phiên làm việc của STP

2.4 Thực hiện Blocking các port còn lại của STP

3. Nhân tố định thời trong STP

4. Các trạng thái trong một tiến trình STP

1. Khái quát về Giao thức Spanning Tree

– Trong một hệ thống mạng có một số điểm nhạy cảm gọi là “Single point of failure”. Nếu tại đây xảy ra lỗi thì cả một hệ thống mạng sẻ bị gián đoạn hoạt động.

-Ví dụ điển hình:

Trong một hệ thống mạng Core của một doanh nghiệp nhỏ chỉ sử dụng một Switch core hay một Router làm Gateway thì khi thiết bị này bị sự cố thì cả một hệ thống mạng bên trong sẻ không hoạt động đi Internet được nữa. Khi đó thiết bị Layer 3 này được gọi là một Single point of failure.Để Phòng tránh thì trạng này thì hệ thống mạng cần được thiết kế có tính dự phòng nếu một đường chính (thiết bị chính) bị lỗi thì lập tức thiết bị backup sẻ được kích hoạt để đảm bảo tính thông suốt của hoạt động mạng bên trong.

– Một hệ thống Layer 2 để được tính dự phòng. Chúng ta thường đấu nối nhiều Switch lại với nhau mục đích để tăng tính dự phòng và cũng vô tình gây ra “Single point of failure” đó là loop.

*

STP-1 Đấu nối dự phòng

– Hình trên mô tả tính dự phòng của hoạt động Switch khi chuyển frame. Nhưng vô tình cũng tạo ra một vòng loop. Các hình thức loop trên Layer 2 có thể kể đến.

1.1 Broadcast storm

*

STP-1 Broadcast StormGiả sử PC A tiến hành gửi một broadcast frame vào hệ thống. Khi SwX nhận được frame này nó sẻ đẩy frame ra tất cả các port đến SwY. SwY nhận được broadcast frame này lại tiếp tục gửi ra tất cả các port trừ port nhận vào và quá trình frame này cứ chạy mãi một vòng giữa SwX và SwY. Các Sw cứ nhân bản và flood broadcast frame này ra. Số lượng frame này sẻ ngày càng lớn. Và khi Sw không còn khả năng xử lý nữa thì sẻ khiến Sw bị treo.

1.2 Trùng lập Frame

*

STP-3 Trùng lập FramePCA gửi một unicast frame đến PCB và địa chỉ MAC của B chưa được cập nhật vào bảng MAC của Sw thì Sw sẻ xử lý các frame này như một broadcast frame và flood ra tất cả các port trừ port nhận vào. Và SwX và SwY đều thực hiện chuyển flood frame này ra nhiều port khiến PCB phải xử lí frame này 2 lần.

– Để phòng tránh các trường hợp loop có thể xảy ra này thì giao thức STP được ra đời để giải quyết triệt để single point of failure trên Layer 2. STP được IEEE chuẩn hóa trong IEEE 802.1D.

2.Tiến trình bầu chọn và hoạt động của Giao thức Spanning Tree

*

STP-4 Mô hình đấu nối dự phòng dùng STP

Hoạt động bầu chọn của một tiến trình STP :

Thực hiện bầu chọn Root-BridgeBầu chọn Root-PortLựa chọn các Designated-portBlocking các port còn lại

2.1 Chọn Root-Bridge của Giao thức Spanning Tree

*

STP-5 Tiến trình STP hoạt động bầu chọn Root-BridgeMột khi tiến trình STP được bật, các Sw sẻ gửi các gói tin BPDU (Bridge Protocol Data Unit) để trao đổi giữa các Switch với nhau, BPDU là một gói tin quan trọng trong tiến trình STP, BPDU chứa một thông tin quan trọng là Bridge-ID của các switch, giá trị này dùng để dịnh danh mỗi Switch khi náo tham gia tiến trình STP.

Bridge-ID dài 8byte:

Số Priority(2byte): có giá trị từ 0 – 65535 mặc định là 32768MAC address(6byte)

Tiến trình bầu chọn Root-Bridge sẻ tiến hành như sau:

Đầu tiên sẻ so sánh Sw nào có số Priority thấp nhất sẻ là Root-BridgeCác Sw được thiết lập số Priority bằng nhau thì tiến trình thứ 2 là so sánh MAC sẻ thực hiện, Sw nào có MAC nhỏ nhất sẻ làm Root-Bridge. MAC là địa chỉ duy nhất trên thế giới nên sẻ không xảy ra trùng lập được. VD như hình trên SW1 có MAC nhỏ nhất nên sẻ được bầu chọn làm Root-Bridge.Sau khi đã bầu chọn được Root-Bridge thì chỉ có SW làm root mới gửi BPDU ra khỏi cổng để duy trì tiến trình STP ( gửi 2s/lần). Các SW con chỉ nhận, bổ xung thông tin BPDU và forward thông tin BPDU này.STP-6 Root Bridge gửi BPDU ra các cổng đế thực hiện tiến trình STP

2.2 Bầu chọn Root-port của Giao thức Spanning Tree

Sau khi đã bầu chọn Root-bridge các SW sẻ bầu chọn Root-port, Root-port là port có đường về Root-bridge có tổng cost tích lũy nhỏ nhất.

Mỗi interface của Ethernet LAN đều gán một giá trị gọi là cost, để thực hiện tính toán của STP

10Mbps100
100Mbps19
1Gbps4
10Gbps2

Bảng cost của một số loại Interface Ethernet LAN

– Để xác định được cost tích lũy của một port đến Switch làm Root-bridge ta thực hiện tính ngược từ Root về cổng đó theo qui tắc “vào cộng ra không cộng” dựa theo chiều lan truyền BPDU. VD:

STP-7 Bầu chọn Root-port

Trên hình: SW1 đã làm Root-bridge nên ta sẻ tiến hành bầu chọn Root-port:

SW2 ta tính cost trên cổng e0/1 sẻ là 100, trên cổng e0/3 sẻ là 300 nên cổng e0/1 sẻ được chọn là Root-port trên SW2.Tương tự trên SW3 là e0/1.Trên SW ta sẻ thấy e0/1 và e0/3 đều có tổng cost là 200 nên SW4 sẻ xem đường đấu nấu giữa 2 port này đến 2 Sw2 và Sw3, SW nào có MAC thấp hơn sẻ được ưu tiên hơn(giả sử default priority). Như vậy e0/1 sẻ được bầu chọn làm Root-port trên SW4.

Giả sử mô hình ta đấu nối thêm một đường backup giữa SW2 và SW4 như hình :

*

STP-8 Các thông số theo thứ tự ưu tiên bầu chọn Root-port

– Tại cổng e0/1 và e0/0 đều có tổng cost là 200 và cùng đấu nối về một Sw có Sender Bridge ID nên không thể sử dụng cost tích lũy và Sender Bridge ID để bầu chọn. Nên ta phải sử dụng một nhân tố gọi là Port-ID.

Xem thêm: Pull Request Là Gì – Chuyện Những Pull Requests Trong Lập Trình

– Port-ID được dùng để định danh cho mỗi cổng của Ethernet LAN gồm : port-priority(0-255 mặc định là 128) và port-number(là số vị trí vật lý trên port của SW vd: f0/0)

– Trong trường hợp này sẻ tiến hành so sánh cổng nào đấu nối đến đầu xa có port-ID nhỏ hơn sẻ được chọn làm Root-port. Tiến trình so sánh này sẻ tiến hành so sánh port-priority trước rồi mới đến port-number. Ở VD trên thì cổng e0/0 sẻ được bầu chọn làm Root-port vì nó đấu nối đến e0/2 còn e0/1 thì đấu nối tới e0/3 (2Xét đến trường hợp cuối cùng, sơ đồ được đấu nối như hình

*

STP-9 Phân cấp thứ tự ưu tiên Port-ID trong bầu chọn Root-port

Lúc này e0/1 và e0/2 đều cùng cost tích lũy, Sender-id, port-id đầu xa nên phải dùng port-id đầu gần để bầu chọn, lúc này ta dùng thông số port-number, do (1Hoạt động bầu chọn Root-port đã hoàn thành

*

STP-9 Hoạt động bầu chọn Root-port đã hoàn thànhThông thường các port đấu nếu với Switch làm root-bridge đều là root-port

2.3 Bầu chọn Designated Port

– Tiếp theo trong tiến trình của Giao thức Spanning Tree ta thực hiện bầu chọn Designated port trên các phân đoạn mạng. Designated port là port cung cấp đường về root-bridge có tổng cost nhỏ nhất trên phân đoạn mạng đang xét.

– Một link kết nối chỉ có một Designated port

– Các qui tắc trong bầu chọn Designated port:

Tất cả các port của Root-bridge đều là Designated PortTrên một link p2p thì đối diện Root-port là Designated port.Nếu trên một link có 2 cổng cung cấp đường về Root-bridge có cost tích lũy bằng nhau. Lúc đó sẻ dùng Sender ID để xác định, nếu Sender ID lại bằng nhau thì dùng đến port-ID để xét.

Ta chọn được các Designated port như trên sơ đồ của VD trên.

*

STP-10 Hoạt động bầu chọn Designated Port đã hoàn thành

Port e0/3 của SW3 trên phân đoạn mạng giữa SW3 và SW4 có tổng cost là 100, e0/3 của SW4 có tổng cost 200 nên e0/3 SW3 sẻ thành Designated port

2.4 Tiến trình Blocking các port còn lại của Giao thức Spanning Tree

Bước cuối cùng trong tiến trình STP thì các port không có vai trò là Root hay Designated sẻ bị Block và được gọi là Alternated port. Hình dưới port e0/3 của SW4 sẻ bị block và trở thành Alternated port.

*

STP-10 Tiến trình STP đã hoàn thành

– Tiến trình STP đã hoàn thành và tiến hành khóa port e0/3 trên SW4 để cắt vòng loop. Khi có sự cố e0/1 Sw4 down thì STP sẻ lập tức mở lại e0/3 để mạng được thông suốt.

– Luồng BPDU sẻ được Forward qua các Sw và kết thúc ở SW4 vì cổng block port của SW4 chỉ nhận BPDU mà không chuyển tiếp BPDU. Các Switch dựa vào luồng BPDU để tính độ hội tụ và duy trì tính ổn định của STP. BPDU đi vào Root và blocking port, đi ra các Designated port.

3 Nhân tố định thời của Giao thức Spanning Tree.

STP sử dụng các định thời : hello timer, forward delay timer, max age timer.

Hello timer: default 2s. Khoảng thời gian mà Root-bridge tiến hành gửi các gói tin BPDU ra khỏi cổng của nó để duy trì tiến trình STP.Forward delay timer: default là 15s. Thời gian các trạng thái Listening. Learning trước khi sang Forwarding để hội tụ.Max age timer: default là 20s. Khi một cổng đang tiến hành nhận BPDU và đột nhiên nhận một BPDU kém hơn(inferior BPDU). Port này sẻ chờ hết thời gian Max-age timer rồi mới thực hiện các hoạt động hội tụ mạng.

Chất lượng của một gói tin BPDU được đánh giá:

So sánh bridge ID của Root Switch. BPDU nào mà thông số Bridge ID nhỏ hơn được xem là tốt hơn.Vậy nếu các BPDU muốn so sánh đều chung một Root-Bridge ta thực hiện so sánh tổng cost tích lũy đi về Root-bridge. BPDU có tổng cost tích lũy nhỏ hơn sẻ tốt hơn.Khi tổng cost bằng nhau tiến hành so sánh Sender Bridge ID của Sw kết nối gửi đến cho SW đang xét. Sender Bridge ID nào nhỏ hơn thì BPDU được xem là tốt hơn.Sender Bridge ID bằng nhau tiến hành so sánh tiếp đến port-ID: nhỏ hơn thì BPDU này tốt hơn.

4.Các trạng thái trong một tiến trình STP

Các trạng thái trong một tiến trình STP đến khi hội tụ bao gồm:

Disabled : cổng này đang ở trạng thái không active.Blocking: port đang bị khóa Alternated port. Chỉ tiếp nhận BPDU mà không cho BPDU đi ra khỏi cổng. Không học địa chỉ MAC vào bảng MAC và không forward được dữ liệu.Listening: có đặc tính cổng chỉ nhận BPDU hoặc gửi BPDU. Không học địa chỉ MAC vào bảng MAC và không forward được dữ liệuLearning: giống như trạng thái Listenning cổng chỉ nhận BPDU hoặc gửi BPDU. Có thể học được địa chỉ MAC vào bảng MAC và không forward được dữ liệu.Forwarding: cổng chỉ nhận BPDU hoặc gửi BPDU. Tương tự Learning có thể học địa chỉ MAC vào bảng MAC và có thể forward được dữ liệu.

Xem thêm: Định Ngữ Là Gì – Định Ngữ Trong Tiếng Trung

Tiến trình chạy STP

Giao thức Spanning Tree chạy. Cổng bị đưa vào trạng thái Blocking sẻ bị khóa ngay lập tức. Còn các cổng như Root và Designated port thì phải trải qua các trạng thái Listening(15s) rồi tiếp tục chuyển sang trạng thái Learning(15s). Rồi mới chuyển sang trạng thái Forwarding để forward được dữ liệu. Đợi tiến trình STP chạy hết để chống loop qua các trạng thái Listening và Learning mất 30s khá lâu. Cho nên Cisco đã đưa ra một số các tính năng nhằm hạ thấp khoảng thời gian timer này lại như: Portfast, Uplinkfast, Backbonefast hay version Rapid SPAN IEEE 802.1W.

Lời Kết Bài 7: Giao thức Spanning Tree

Bài chia sẻ về “Spanning Tree và hoạt động của Giao thức Spanning Tree” của mình xin tạm dừng tại đây. Chia sẻ tiếp theo mình xin chia sẻ về” Rapid SPAN và pVST+. Một phương thức khác nâng cấp hơn của Giao thức Spanning Tree và cách thức hoạt động trong một hệ thộng mạng chuyển mạch LAN”. Hãy theo dõi bài viết tiếp theo trong Series Tự học CCNA tại website và blog thienmaonline.vn.vcode.ovh nhé. Nếu có thắc mắc hay đóng góp các Anh em hãy comment bên dưới nhé! Thân ái!

Tác giả: Quân Lê – thienmaonline.vn

Bạn có thể tương tác và cập nhật thông tin mới nhất của Nhóm Facebook thienmaonline.vn, Các khóa học mới do group tổ chức tại «Portal»

Chuyên mục: Hỏi Đáp