Tự Học CCNA Bài 7: Giao thức Spanning Tree (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.
– 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
2.Tiến trình bầu chọn và hoạt động của STP 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 |
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.
– 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
- Giả 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
- PCA 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
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-Bridge
- Bầu chọn Root-Port
- Lựa chọn các Designated-port
- Blocking các port còn lại
2.1 Chọn Root-Bridge của Giao thức Spanning Tree
- Mộ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à 32768
- MAC 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-Bridge
- Cá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.
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
10Mbps | 100 |
100Mbps | 19 |
1Gbps | 4 |
10Gbps | 2 |
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:
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 :
– 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.
– 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 (2<3) – giả sử các cổng này đều sử dụng port-priority là 128.
Xét đến trường hợp cuối cùng, sơ đồ được đấu nối như hình
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 (1<2) nên e0/1 được bầu chọn là Root-port.
- Hoạt động bầu chọn Root-port đã hoàn thành
- Thô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 Port
- Trê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.
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.
– 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ệu
- Learning: 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.
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 itforvn.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ê – ITFORVN.COM
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 ITFORVN, Các khóa học mới do group tổ chức tại «Portal»
Tất cả bài viết về ccna tại đây
PHẦN I: SWITCHING
Tự Học CCNA Bài 1-Mạng máy tính là gì ?
Tự Học CCNA Bài 2-Mô hình OSI và TCP/IP
Tự Học CCNA Bài 3: Lớp Transport TCP/IP Topology
Tự Học CCNA Bài 4: Lớp Internet TCP/IP
Tự Học CCNA Bài 5: Ethernet LAN và hoạt động chuyển mạch
Tự Học CCNA Bài 6: VLAN, Trunking, VTP
Tự Học CCNA Bài 7: Giao thức Spanning Tree (STP)
Tự Học CCNA Bài 8: Giao Thức RSTP, pVST+
Tự Học CCNA Bài 9: Giao Thức DHCP cấp phát IP động
Tự Học CCNA Bài 10: Etherchannel
PHẦN II: ROUTING
Tự Học CCNA Bài 11: Các Kĩ Thuật Định Tuyến
Tự Học CCNA Bài 12: Giao thức định tuyến RIP
Tự Học CCNA Bài 13: Giao thức EIGRP (phần 1)
Tự Học CCNA Bài 14: Giao thức EIGRP (phần 2)
Tự Học CCNA Bài 15: Giao thức EIGRP (phần 3)
Phần Thực Hành demo lab
Tự Học CCNA Lab 1: Cấu hình Router Cisco cơ bản
Tự Học CCNA Lab 2 Cấu hình CDP, Telnet
Tự Học CCNA Lab 3: Cấu hình VLAN, Trunking VTP
Tự Học CCNA Lab 4: VLAN Routing
Tự Học CCNA Lab 5: Cấu hình STP
Tự Học CCNA Lab 6: Cấu hình DHCP
Tự Học CCNA Lab 7: Cấu hình Etherchannel
Tự Học CCNA Lab 8: Cấu hình Static Route