CCNA [Lý Thuyết] #3: Tìm Hiểu Giao Thức Ngăn Chặn Layer 2 Loop (STP, RSTP, MSTP)

MỤC LỤC​

I. Giới Thiệu​

II. Khái Niệm​

III. Cơ Chế Hoạt Động​

IV. Trạng Thái Của Port​

V. Các Loại STP​

VI. Cơ Chế Bảo Mật Cho STP​


I. Giới Thiệu​

Trong kỷ nguyên mạng hiện đại, tính liên tục và khả năng phục hồi của hệ thống mạng đóng vai trò then chốt đối với mọi tổ chức. Để đạt được điều này, các thiết kế mạng thường tích hợp tính dự phòng, sử dụng nhiều thiết bị Layer 2 kết nối với nhau. Tuy nhiên, việc tạo ra các đường dẫn dự phòng này cũng mang đến một thách thức lớn: Layer 2 Loop.

1742269837418.png


Layer 2 Loop xảy ra khi các gói tin, đặc biệt là các gói tin broadcast, bị luân chuyển liên tục trong mạng do có nhiều đường dẫn dự phòng. Điều này dẫn đến tình trạng Broadcast Storm, làm nghẽn mạng và gây ra nhiều vấn đề nghiêm trọng khác. Để giải quyết vấn đề này, giao thức Spanning Tree (STP) được phát triển.


II. Khái Niệm​

STP là một giao thức Layer 2 được thiết kế để ngăn chặn vòng lặp (loop) trong mạng LAN. Vòng lặp xảy ra khi có nhiều đường dẫn dự phòng giữa các switch, dẫn đến việc các gói tin được chuyển tiếp lặp đi lặp lại vô tận, gây ra Broadcast Storm và các vấn đề khác. STP hoạt động bằng cách sử dụng thuật toán Spanning Tree Algorithm (STA) tạo ra một cấu trúc cây logic trong mạng, loại bỏ các đường dẫn dự phòng và chỉ giữ lại một đường dẫn hoạt động duy nhất giữa hai thiết bị. Điều này đảm bảo rằng không có vòng lặp nào tồn tại trong mạng, đồng thời vẫn duy trì tính dự phòng. STP sử dụng gói tin BPDU để trao đổi thông tin giữa các switch và đưa ra quyết định về cấu trúc mạng như chặn các cổng dư thừa để đảm bảo mạng hoạt động ổn định và hiệu quả.

Gói tin BPDU (Bridge Protocol Data Unit):

  • BPDU là đơn vị dữ liệu giao thức cầu nối, được sử dụng bởi các thiết bị Layer 2 (switch) để trao đổi thông tin với nhau trong quá trình hoạt động của STP.
  • BPDU chứa các thông tin quan trọng như Bridge ID, Root Bridge ID, Root Path Cost, Port ID, v.v., giúp các switch đưa ra quyết định về cấu trúc mạng.
    • Configuration BPDU: Được sử dụng để bầu chọn Root Bridge và tính toán đường dẫn.
    • TCN BPDU (Topology Change Notification BPDU): Được sử dụng để thông báo về sự thay đổi cấu trúc mạng.
1742271255566.png

  • Cấu trúc BPDU Header:
    • Bridge ID (BID): Định danh duy nhất cho mỗi switch, bao gồm Bridge Priority (2 bytes) và Bridge MAC address (6 bytes).
    • Bridge Priority: Giá trị số nguyên từ 0 đến 65535, mặc định là 32768.
    • Bridge MAC address: Địa chỉ MAC của switch.
    • Root Bridge ID: Định danh của Root Bridge, có cấu trúc tương tự Bridge ID.
      • Path Cost là giá trị đo lường chi phí của một đường dẫn từ switch đến Root Bridge.
      • Path Cost được tính dựa trên băng thông của các cổng trên đường đi, với băng thông càng cao thì chi phí càng thấp. Ví dụ, một cổng 10 Mbps có Path Cost là 100, trong khi một cổng 1 Gbps có Path Cost là 4.
      • Path Cost được sử dụng để xác định đường dẫn tốt nhất đến Root Bridge, với đường dẫn có Path Cost thấp nhất được ưu tiên.
    • Port ID: Định danh của cổng, bao gồm Port Priority (1 byte) và Port Number (1 byte).
    • Message Age, Max Age, Hello Time, Forward Delay: Các tham số thời gian được sử dụng trong quá trình hoạt động của STP.

III. Cơ chế hoạt động của STP​

STP hoạt động theo một quy trình gồm 4 bước chính, mỗi bước đóng vai trò quan trọng trong việc xây dựng cấu trúc cây logic và loại bỏ vòng lặp:
1. Chọn Root Bridge
2. Chọn Root Port
3. Chọn Designated Port
4. Chặn các cổng dự phòng
Quá trình bầu chọn và tính toán được thực hiện thông qua việc trao đổi gói tin Configuration BPDU theo chu kỳ Hello Time (mặc định 2 giây).
Khi có sự thay đổi về cấu trúc mạng, các switch sẽ trao đổi TCN BPDU để thông báo cho nhau và thực hiện lại quá trình bầu chọn.


1. Chọn Root Bridge:​

Root Bridge là switch trung tâm của mạng, là điểm gốc của cấu trúc cây STP.
Root Bridge đóng vai trò quan trọng trong việc xác định cấu trúc mạng và đảm bảo tính nhất quán.

Quá trình:

  1. Khi các switch khởi động, chúng sẽ gửi các gói tin Configuration BPDU, chứa thông tin về Bridge ID của mình.
  2. Bridge ID bao gồm Bridge Priority (2 byte) và Bridge MAC address (6 byte).
  3. Switch có Bridge ID thấp nhất sẽ được bầu làm Root Bridge.
  4. Nếu có nhiều switch có cùng Bridge Priority, switch có Bridge MAC address thấp nhất sẽ được chọn.
  5. Root Bridge sẽ gửi các gói tin Configuration BPDU với Root Bridge ID bằng chính Bridge ID của nó.
  6. Các switch khác sẽ nhận các gói tin BPDU này và cập nhật thông tin về Root Bridge.
1742302411873.png


Trong hình ảnh, Switch1 có Priority là 24577, thấp hơn so với Switch2 và Switch3 (34769). Do đó, Switch1 sẽ được bầu làm Root Bridge.

1742302395874.png

2. Chọn Root Port:

Root Port là cổng trên mỗi switch không phải Root Bridge, có đường dẫn đến Root Bridge với Path Cost thấp nhất.
Root Port đóng vai trò là cổng chính để switch giao tiếp với Root Bridge.
1742298521843.png

Quá trình:

  1. Mỗi switch tính toán Path Cost đến Root Bridge thông qua các cổng của mình.
  2. Path Cost được tính dựa trên băng thông của các cổng trên đường đi, với băng thông càng cao thì chi phí càng thấp.
  3. Switch chọn cổng có Path Cost thấp nhất làm Root Port.
  4. Nếu có nhiều cổng có cùng Path Cost, các tiêu chí khác như Bridge ID và Port ID của switch láng giềng sẽ được sử dụng để chọn Root Port.

Từ ví dụ trước đó:

Switch 1: Root Bridge nên không có Root Port.

Switch 2:
  • G0/2 → G0/1 của Switch1 (1 Gbps) → Path Cost = 4
  • G0/1 → G0/2 của Switch3 (1 Gbps) → G0/1 đi tới Switch1 (1 Gbps) → Path Cost = 4 + 4 = 8
=> Chọn G0/2 làm Root Port vì có Path Cost thấp hơn (4 < 8).

Switch 3:
  • G0/1 → G0/2 của Switch1 (1 Gbps) → Path Cost = 4
  • G0/2 → G0/1 của Switch2 (1 Gbps) → G0/2 đi tới Switch1 (1 Gbps) → Path Cost = 4 + 4 = 23
=> Chọn G0/1 làm Root Port vì Path Cost thấp hơn (4 < 8).
1742302378850.png

3. Chọn Designated Port:​

Designated Port là cổng trên mỗi phân đoạn mạng, có đường dẫn đến Root Bridge với Path Cost thấp nhất.
Designated Port đóng vai trò là cổng chính để chuyển tiếp lưu lượng trên phân đoạn mạng đó.
Quá trình:

  1. Trên mỗi phân đoạn mạng, các switch so sánh Path Cost đến Root Bridge thông qua các cổng của mình.
  2. Cổng có Path Cost thấp nhất sẽ được bầu làm Designated Port.
  3. Nếu có nhiều cổng có cùng Path Cost, các tiêu chí khác như Bridge ID và Port ID của switch láng giềng sẽ được sử dụng để chọn Designated Port.
  4. Tất cả các cổng của Root Bridge đều là Designated Port.
Từ ví dụ trước đó:
Giao diện kết nối với Root Port của switch khác thì mặc định là Designated Port trên Root Bridge.
Switch1 G0/1 & G0/2: Designated Port (vì là Root Bridge).
Switch2 G0/1: Designated Port (vì trên segment giữa Switch2 ↔ Switch3, do cả hai có cost bằng nhau khi đi đến Root Bridge, ta xét MAC Address. SW2 có MAC nhỏ hơn nên SW2 sẽ là Designated Bridge).
1742302465886.png

4. Chặn Các Cổng Dự Phòng:​

Các cổng không phải Root Port hoặc Designated Port sẽ bị chặn (Block Port) để ngăn chặn vòng lặp. Việc chặn các cổng dự phòng đảm bảo rằng chỉ có một đường dẫn hoạt động duy nhất giữa hai thiết bị, loại bỏ vòng lặp.
Quá trình:

  1. Các switch sẽ gửi các gói tin Configuration BPDU để thông báo về vai trò của các cổng.
  2. Các cổng không phải Root Port hoặc Designated Port sẽ chuyển sang trạng thái Blocking.
  3. Block Port không chuyển tiếp lưu lượng, nhưng vẫn lắng nghe BPDU để cập nhật thông tin về cấu trúc mạng.
1742302924056.png


IV. Trạng Thái Của Port​

Trong quá trình hoạt động của STP, các cổng switch sẽ chuyển đổi giữa các trạng thái khác nhau, tùy thuộc vào vai trò và tình trạng của chúng trong cấu trúc mạng. Mỗi trạng thái có một chức năng riêng biệt, đảm bảo rằng mạng không có vòng lặp và hoạt động hiệu quả.
Tổng thời gian để một cổng chuyển từ trạng thái Blocking sang Forwarding là khoảng 30 giây (15 giây Listening + 15 giây Learning).
Thời gian chuyển đổi giữa các trạng thái được xác định bởi các tham số như Forward Delay, Max Age và Hello Time.
RSTP (Rapid STP) có một số khác biệt về trạng thái cổng so với STP gốc (802.1D).
Việc hiểu rõ các trạng thái cổng giúp quản trị viên mạng theo dõi và khắc phục sự cố liên quan đến STP.

1. Blocking (Chặn):​

  • Đây là trạng thái ban đầu của tất cả các cổng khi switch khởi động.
  • Cổng ở trạng thái Blocking không chuyển tiếp lưu lượng dữ liệu.
  • Cổng chỉ nhận và xử lý các gói tin BPDU (Bridge Protocol Data Units) để cập nhật thông tin về cấu trúc mạng.
  • Mục đích của trạng thái Blocking là ngăn chặn vòng lặp bằng cách chặn các đường dẫn dự phòng.
  • Cổng sẽ ở trạng thái Blocking cho đến khi STP xác định vai trò của nó trong cấu trúc mạng.

2. Listening (Lắng nghe):​

  • Sau khi xác định được Root Bridge, các cổng sẽ chuyển từ trạng thái Blocking sang Listening.
  • Cổng ở trạng thái Listening vẫn không chuyển tiếp lưu lượng dữ liệu.
  • Cổng tiếp tục nhận và xử lý các gói tin BPDU để thu thập thông tin về cấu trúc mạng.
  • Mục đích của trạng thái Listening là chờ đợi để xác định xem cổng có nên chuyển sang trạng thái Learning hay không.
  • Thời gian ở trạng thái Listening được xác định bởi tham số Forward Delay.

3. Learning (Học):​

  • Sau khi thời gian Forward Delay kết thúc, các cổng sẽ chuyển từ trạng thái Listening sang Learning.
  • Cổng ở trạng thái Learning vẫn không chuyển tiếp lưu lượng dữ liệu.
  • Cổng bắt đầu học địa chỉ MAC nguồn từ các gói tin nhận được và xây dựng bảng CAM (Content Addressable Memory).
  • Mục đích của trạng thái Learning là xây dựng bảng CAM trước khi chuyển tiếp lưu lượng dữ liệu.
  • Thời gian ở trạng thái Learning cũng được xác định bởi tham số Forward Delay.

4. Forwarding (Chuyển tiếp):​

  • Sau khi thời gian Forward Delay kết thúc, các cổng sẽ chuyển từ trạng thái Learning sang Forwarding.
  • Cổng ở trạng thái Forwarding chuyển tiếp lưu lượng dữ liệu như bình thường.
  • Cổng tiếp tục nhận và xử lý các gói tin BPDU để duy trì thông tin về cấu trúc mạng.
  • Mục đích của trạng thái Forwarding là cho phép lưu lượng dữ liệu đi qua cổng.

5. Disabled (Vô hiệu hóa):​

  • Đây là trạng thái khi cổng bị quản trị viên vô hiệu hóa.
  • Cổng ở trạng thái Disabled không chuyển tiếp lưu lượng dữ liệu và không nhận hoặc xử lý các gói tin BPDU.
  • Mục đích của trạng thái Disabled là loại bỏ hoàn toàn cổng khỏi mạng.

V. Các Loại STP​

STP đã trải qua nhiều phiên bản và cải tiến để đáp ứng nhu cầu ngày càng phức tạp của mạng hiện đại. Dưới đây là một số loại STP phổ biến:

1. STP (802.1D - Common Spanning Tree):​

  • Đây là phiên bản gốc của STP, được định nghĩa trong chuẩn IEEE 802.1D.
    • Đơn giản, dễ cấu hình.
    • Tương thích với hầu hết các thiết bị mạng.
  • STP phù hợp với các mạng nhỏ, đơn giản.

2. RSTP (802.1w - Rapid Spanning Tree Protocol):​

  • RSTP là phiên bản cải tiến của STP, được định nghĩa trong chuẩn IEEE 802.1w.
    • Hoạt động nhanh hơn, thời gian hội tụ nhanh hơn nhiều so với STP (vài giây).
    • Tương thích ngược với STP, các thiết bị RSTP có thể hoạt động với các thiết bị STP.
    • Hiệu quả hơn trong các mạng lớn.
  • RSTP phù hợp với các mạng lớn hơn, yêu cầu thời gian hội tụ nhanh hơn.

3. MSTP (802.1s - Multiple Spanning Tree Protocol):​

  • MSTP là phiên bản nâng cao của RSTP, được định nghĩa trong chuẩn IEEE 802.1s.
    • Hỗ trợ nhiều Spanning Tree instances (MSTI), mỗi MSTI tương ứng với một hoặc nhiều VLAN.
    • Cho phép tối ưu hóa lưu lượng mạng trong môi trường VLAN, cân bằng tải giữa các đường dẫn.
    • Giảm thiểu tác động của sự cố mạng trong một VLAN đến các VLAN khác.
    • Tăng cường tính dự phòng và khả năng phục hồi.
  • MSTP phù hợp với các mạng VLAN lớn, phức tạp, yêu cầu khả năng tối ưu hóa lưu lượng và dự phòng cao.

VI. Cơ Chế Bảo Mật Cho STP​

STP là một giao thức quan trọng để đảm bảo tính ổn định của mạng Layer 2, nhưng nó cũng có thể trở thành mục tiêu tấn công của kẻ xấu. Các cuộc tấn công STP có thể gây ra vòng lặp, làm gián đoạn mạng và cho phép kẻ tấn công chiếm quyền kiểm soát lưu lượng mạng. Do đó, việc bảo mật STP là rất quan trọng.
Việc sử dụng các cơ chế bảo mật STP cần được thực hiện cẩn thận và phù hợp với yêu cầu cụ thể của từng môi trường mạng. Cần kiểm tra và giám sát cấu hình STP thường xuyên để đảm bảo tính ổn định và bảo mật của mạng.

1. Root Guard:​

Mục đích: Ngăn chặn các switch trái phép trở thành Root Bridge.
Cơ chế hoạt động:

  • Root Guard được cấu hình trên các cổng của Root Bridge hoặc các switch mà bạn muốn đảm bảo không bao giờ trở thành Root Bridge.
  • Khi một switch trái phép gửi gói tin BPDU Superior (có Bridge ID thấp hơn) đến cổng được cấu hình Root Guard, cổng đó sẽ chuyển sang trạng thái Root-Inconsistent.
  • Trạng thái Root-Inconsistent chặn tất cả lưu lượng dữ liệu và BPDU trên cổng.
  • Cổng sẽ tự động chuyển về trạng thái bình thường khi không còn nhận được BPDU Superior.
Ưu điểm: Đảm bảo Root Bridge luôn là switch được chỉ định, ngăn chặn tấn công giả mạo Root Bridge.
Nhược điểm: Cần cấu hình trên từng cổng, có thể gây khó khăn trong các mạng lớn.

2. BPDU Guard:​

Mục đích: Ngăn chặn các switch trái phép kết nối vào các cổng PortFast.
Cơ chế hoạt động:

  • BPDU Guard được cấu hình trên các cổng PortFast (các cổng kết nối trực tiếp đến thiết bị đầu cuối).
  • Khi một switch trái phép gửi gói tin BPDU đến cổng được cấu hình BPDU Guard, cổng đó sẽ chuyển sang trạng thái Errdisable.
  • Trạng thái Errdisable chặn tất cả lưu lượng dữ liệu trên cổng.
  • Cổng cần được kích hoạt lại thủ công hoặc sau một khoảng thời gian cấu hình.
Ưu điểm: Ngăn chặn tấn công giả mạo BPDU trên các cổng PortFast, bảo vệ mạng khỏi vòng lặp do kết nối trái phép.
Nhược điểm: Cần cấu hình trên từng cổng PortFast, có thể gây khó khăn trong các mạng lớn.
 
Cho mình hỏi thiết bị PC hoặc Router khi kết nối vào cụm Switch được cấu hình STP thì có nhận hay gửi gói BPDU hay không?
 
Back
Top