test

3.1 Giới thiệu về Spanning-Tree

Spanning-tree là 1 giao thức chạy trên switch nó giúp chúng ta giải quyết vấn đề loops trong hệ thống. Đây là giao thức mà 1 network engineer phải hiểu và sử dụng tốt nó. Trong bài này tôi sẽ giới thiệu qua về các khái niệm cơ bản liên quan tới Spanning-tree.
Vậy tại sao chúng ta cần tới Spanning-tree và loop là gì?
Trong ví dụ trên chúng ta có 2 switch, mỗi switch kết nối vào 1 PC với chỉ duy nhất 1 dây. Để dự phòng cho 1 dây duy nhất kết nối giữa các switch, giờ tôi sẽ cắm thêm 1 dây mạng giữa 2 switch nhé.
Với việc thêm 1 dây mạng, chúng ta đã có đường dự phòng. Nhưng không may là đường dự phòng này lại tạo ra loops . Vậy tại sao chúng ta lại có loop, giờ tôi sẽ giải thích nhé.

  1. H1 gửi 1 gói tin ARP request bởi vì nó đang tìm kiểm MAC của H2. ARP chính là 1 gói tin broadcast 
  2. Sw1 sẽ chuyển tiếp gói tin đi toàn bộ interface, trừ interface nó nhận được gói tin.
  3. Sw2 sẽ nhận toàn bộ broadcast frame đó.
GIờ hãy xem Sw2 làm gì với broadcast frames nhé.
  1. Nó sẽ chuyển tiếp ra toàn bộ các interfaces khác trừ interfaces nó nhận được gói tin.
  2. Nó nghĩa là frames mà nó vừa nhận được từ cổng fa0/1 sẽ được chuyển tiếp qua cổng fa0/0
  3. Frame trên công fa0/0 cũng sẽ lại chuyển tiếp qua fa0/1.
Giờ bạn có thấy vấn đề gì xảy ra không? Chúng ta gọi đó là Loops. Cả 2 switch sẽ giữ trạng thành chuyển tiếp các frames không cần thiết 1 cách liên tục tới khi chúng tai giải quyết vấn đề.
  • Ngắt 1 dây mạng kết nối giữa 2 switch.
  • 1 trong 2 switch sẽ bị lỗi bởi vì nó bị overload
Khác với packets, ethernet frames không có tham số TTL nên chúng sẽ truyền đi truyền lại mãi mãi. Hơn nữa ARP chỉ là 1 ví dụ, chúng ta còn rất nhiều broadcast frames khác nữa, nên nếu hệ thống sẽ rất dễ gặp loops nếu chúng ta không có biện pháp ứng phó.
Vậy Spanning-tree giúp giải quyết loops như thế nào
Spanning-tree sẽ giúp chúng ta xây dựng 1 topology không có loops bằng cácg block 1 hoặc 1 vài interfaces. Hãy xem ví dụ nhé:
Chúng ta có 3 switches và bạn có thể thấy chúng được kết nối nối tiếp với nhau để back up cho nhau. Như đã giải thích bên trên với topo này chúng ta sẽ bị loop.
Nhưng với spanning-tree được enable thì sao? Tất cả switch sẽ gửi 1 frames đặc biệt cho các switch khác gọi là frame BPDU(Bride Protôcl Data Unit). Trong BPDU có 2 thông tin mà spanning-tree yêu cầu:
  • Mac address
  • Priority
Mac address và prioity cùng nhau tạo thành bridge ID. Frame BPDU gửi giữa các switch sẽ như sau:
Spanning-tree yêu cầu bridge ID để nó có thể tính toán các giá trị.
  • Đầu tiên là toàn bộ spanning-tree sẽ chọn 1 root bridge, root-bridge này sẽ có 1 bridge ID tối nhất.
  • Bridge ID tốt nhất là bride ID có số nhỏ nhất.
  • Mặc định thì bridge ID là 32768, nhưng chúng ta có thể thay đổi nếu chúng ta muốn.
Vậy trong 3 switch trên thì switch nào sẽ trở thành root bridge? Ta có thể thấy đó chính là sw1. Priority và mac-address sẽ tạo thành bridge ID, với việ priority giống nhau thì MAC-address sẽ được đem ra so sánh. Các bạn cần nhớ là chúng sẽ so sánh priority trước nhé. Nếu priority bằng nhau thì mới so sánh tới MAC-address. Ở đây ta thấy MAC của sw1 là thấp nhất nên sw1 sẽ đóng vai trò là root-bridge.
Các port trên root-bridge đều ở trạng thánh desinated port. Nghĩa là chúng luôn ở trạng thái forwarding.
Bên trên bạn có thể thấy các port trên sw1 đều ở trạng thái "D"- desinated
GIờ chúng ta đã có root-bridge. Tiếp theo toàn bộ các switch còn lại là non-root-bridge .Chúng sẽ phải chọn con đường ngắn nhất để đi tới root bridge. Port kết nối tới đường ngắn nhất đó được gọi là root-port 
Rồi ta có root-port và được đánh dấu là "R" trên mỗi switch. Vậy làm thế nào để đánh giá đâu là đường đi tốt nhất tới root-bridge? Chúng ta dữa vào cost interface. 
  • 10 Mbit = Cost 100
  • 100 Mbit = Cost 19
  • 1000 Mbit = Cost 4
Tuyệt vời rồi. Chúng ta đã có designated port và root ports. Nhưng chúng ta vẫn còn loop cho tới khi chúng 1 trong 2 port trên switch 2 hoặc 3 shutdown. Vậy port nào sẽ down đây? Giờ chúng ta hãy nhìn vào bridge ID trên mỗi switch 2 và 3 nhé. Switch nào có brige ID cao hơn thì block port sẽ đặt trên switch đó
  • Bridge ID = MAC address + Priority.
Thấp hơn là tốt hơn OK? cả 2 switch đều cùng priority, MAC-address sw2 thấp hơn vậy block port sẽ nằm trên switch3.
Các bạn để ý trên hình nhé. fa0/1 của sw3 có trạng thái là alternate. Một alternate port sẽ bị block. 1 cách gọi khác chúng ta có thể gọi nó là ND (Non Designated) port. Port bị shutdown đã giải quyết được bài toàn loop rồi.
Bởi vì priority mặc định là 32768 nên việc lựa chọn root bridge sẽ phụ thuộc vào mac. Vậy trong hệ thống mạng thực tế thì việc lựa chọn root bridge sẽ như thế nào?
Chi nhánh tôi đã lâu không mua switch hoặc switch của tôi đã quá cũ, cái switch cũ đó đương nhiên có mac-address nhỏ hơn các switch mới. Việc này nghe chừng không ổn phải không nào. Chúng ta cần phải control được switch nào là root-bridge phải ko nào. Đó chính là lý do chúng ta có thể thay đổi priority như tôi đã nói ở trên.
Phần trình bày phía trên mới là mức cơ bản của Spanning-tree. Giờ tôi sẽ nói thêm 1 vài thứ nhé.
Nếu như các bạn làm việc nhiều với Cisco switch các bạn có để ý khi mà bạn cắm dây mạng vào switch thì đèn báo đầu tiên là màu cam, sau đó là màu xanh. Vậy vấn đề gì xảy ra ở đây vậy, tại sao không phải màu xanh. Đó chính là các trạng thái port do spanning-tree đó.
  • Port listening : 15 giây. Đây là pha khi mà port nhận và gửi BPDUs. Vẫn đang trong quá trình học MAC chứ chưa gửi dữ liệu.
  • Port learning: 15 giây. Port vẫn trong quá trinh gửi nhận BPDUs nhưng nó đã học được toàn bộ MAC. Chưa transfer data nhé.
  • Port forwarding: Đây là trạng thái port sau cùng mà chúng ta mong muốn có để có thể transfer data.
Giờ hãy xem tổng kết các trạng thái ports nhé.
Giờ chúng ta đã có các khái niệm cơ bản về Spanning-tree rồi. Bây giờ đi thử cấu hình trên switch nhé. Hãy theo ví dụ dưới đây:
Mặc định thì Spanning-tree sẽ được bật lên.

SW1#show spanning-tree

VLAN0001
Spanning tree enabled protocol ieee

Root ID                 Priority          32769
Address                 000f.34ca.1000
Cost                       19
Port                        19 (FastEthernet0/17)
Hello Time           2 sec         Max Age 20 sec                  Forward Delay 15 sec
Bridge ID              Priority          32769                (priority 32768 sys-id-ext 1)
Address                 0011.bb0b.3600
Hello Time           2 sec         Max Age 20 sec                  Forward Delay 15 sec
Aging Time 300

Interface                    Role           Sts         Cost                    Prio.Nbr         Type
----------------------- ---------------  --------   -------------------  -------------     ---------------------
Fa0/14                      Desg            FWD     19                       128.16            P2P
Fa0/17                      Root            FWD      19                       128.19           P2P

Câu lệnh trên cho chúng ta thấy khá nhiều thông tin quan trọng.

VLAN0001
      Spanning tree enabled protocol ieee

Chúng ta đang nhìn vào spanning-tree ở VLAN1, Spanning-tree có nhiều version, version mặc định là PVST(Per Vlan Spanning-tree). Và đây là spanning-tree cho VLAN 1

Root ID           Priority            32769
                       Address            000f.34ca.1000
                       Cost                  19
                       Port                   19 (FastEthernet0/17)

Phía trên bạn có thể thấy thông tin của root-bridge. Nó có priority là 32769, mac là 000f.34ca.1000. Cost của port là 19 và root port là fa0/17.
Tương tự thế các bạn có thể thấy thông tin về Designated port trên port fa0/14, các thông tin liên quan trới spanning-tree ở sw2 và sw3. Có 1 điều tôi muốn chú ý các bạn 1 vài thông số là:
  • Hello time: Cứ mỗi 2 giây là gói tin BPDU được gửi đi
  • Max Age: Nếu như switch không nhận được gói tin BPDU nào trong 20 giây thì nó biết là có gì đó đã thay đổi topo của network, lúc này chúng ta cần kiểm tra lại topo.
  • Forward Delay: Đây là thời gian được sử dụng cho trạng thái listening và learning của port. Mặc định là 15 giây.
Trên đây là toàn bộ thông tin cơ bản về Spanning-tree. Các bạn có thể theo dõi sâu hơn về Spanning-tree ở các bài tiếp theo.
Trân trọng!

3.1 Giới thiệu về Spanning-Tree 3.1 Giới thiệu về Spanning-Tree Reviewed by phucvm on tháng 8 22, 2019 Rating: 5

Không có nhận xét nào:

Được tạo bởi Blogger.