Trang Chủ » Quản trị mạng
Wednesday, July 25, 2018
Giao Thức Dự Phòng Spanning Tree Protocol, E-Channel
I.Giao thức Spanning Tree Protocol
(giao thức độc quyền của cisco)
- Trong môi trường layer 2: Thì không có giao thức định tuyến được sử dụng
- Thay vào đó, một số dạng của bridge cung cấp sự vận chuyển data giữa hai network hay giữa switch port. Giao thức spanning tree protocol cung cấp link dự phòng nên network của swicth layer 2 có thể phục hồi những sự cố mà không cần sự can thiệp một cách kịp thời.
- Swicth layer 2 giống chức năng trong suốt (transparent) của bridge. Một bridge trong suốt phải cung cấp những tính năng sau:
Bridge không có kiến thức khởi tạo của thiết bị bất kì nào vì thế nó phải “lắng nghe” khi frame đến cổng của nó và tính toán xem nó thuộc network nào. Sau đó bridge sẽ xây dựng một bảng liên quan giữa địa chỉ MAC nguồn với port của bridge nơi mà frame được tìm thấy.
Bridge luôn luôn update khi nó phát hiện ra địa chỉ MAC mới hay có sự thay đổi địa chỉ MAC từ port này sang port khác. Nó chuyển tiếp frame bằng cách nhìn vào địa chỉ MAC đích trong bảng của bridge.
Để tìm hiểu về bridging loop(gây nghẽn mạng treo switch) chúng ta xét ví dụ sau:
Mô hình không có link dự phòng
Ở hình trên ta thấy đây là một phần của hệ thống mạng của chúng ta. Các port của switch có chức năng như là bridge chuyển tiếp frame với thiết bị đầu cuối. Nhưng trong mô hình trên thì ta nhận thấy rằng chúng không có đường dự phòng nên khi đường link đến switch bị sư cố thì hệ thống sẽ không hoạt động được. Để thêm vào tính dự phòng cho hệ thống ta có thể thêm vào một đường link như hình dưới đây.
Ta xét ví dụ sau:
PC-1 gửi frame cho PC-4 nhưng switch không biết gì về PC-1 hay PC-4. Lúc này PC-1 sẽ gửi frame đến sw1 qua port f0/3. Sw1 nhận frame (lúc này địa chỉ mac và port f0/3 của pc-1 được ghi vào bảng mac của sw1) và đẩy ra tất cả các cổng f0/1,f0/2,f0/4 còn lại trừ cổng frame đi vào.
Sw2 nhận cùng một frame (có thông tin giống nhau) ở cả 2 port f0/1 và f0/2
ở cổng f0/1 gói tin đi vào và đẩy ra tất cả các cổng còn lại kể cả cổng f0/12 ở
ở cổng f0/2 gói tin đi vào và đẩy ra tất cả các cổng còn lại kể cả cổng f0/2 -> mỗi lần như vậy sw lại cập nhật lại địa mac và số cổng làm cho frame chạy lòng vòng
Quá trình chuyển frame xung quanh giữa hai switch được gọi là bridging loop. Không có gì có thể ngăn chặn quá trình chuyển tiếp frame. Việc gì sẽ xảy ra nếu PC-1 gửi broadcast, sẽ xuất hiện bão broadcast trong hệ thống và sẽ lặp lại mãi mãi cho đến khi một trong hai switch bị ngắt kết nối.
Quá trình bão broacast có thể làm cho hệ thống của bạn không thể hoạt động được. Vì thế việc ngăn chặn nó là một vấn đề quan trọng cần phải chú ý khi thiết kế hệ thống. Spanning tree protocol được vận dụng trong trường hợp này để tránh bão broadcast bằng cách nó đặt những đường link dự phòng ở chế độ block để ngăn chặn việc chuyển tiếp frame. Nếu active link bị sự cố thì nó sẽ tính toán lại và những đường link bị block ấy có thể active lại. Bây giờ, chúng ta sẽ tìm hiểu về Spanning tree protocol:
STP sử dụng thuật toán Spanning-Tree để chọn một switch đóng vai trò làm Root Bridge trong mô hình hệ thống có dự phòng.
Cách các sw bình chọn Root SW: dựa vào gói tin BPDU: gồm 2 thông số sau: priority và Mac của sw
Đầu tiên các sw trao đổi gói tin BPDU cho nhau sau đó chúng so sánh priority(mặc định là 32768) của nhau nếu sw nào có priority nhỏ nhất sẽ là Root SW, nếu bằng nhau sẽ dùng địa chỉ mac để so sánh nhỏ nhất được bình chọn là Root SW
=> Cách so sánh địa chỉ MAC: So sánh hàng gióng hàng, cột gióng cột. Chỉ cần 1 giá trị của địa chỉ MAC này nhỏ hơn tất cả các giá trị của địa chỉ MAC kia là nó nhỏ nhất.
VD: So sánh địa chỉ MAC sau:
(1) 0010.5a0c.fd86
(2) 0010.5a0c.fd87
(3) 0010.6000.0000
Ta thấy (1) có địa chỉ MAC nhỏ nhất.
- Designated port: Các cổng của Root SW điều là Designated
- Root port: cung cấp đường về root-sw , nghĩa là cổng nào đối nối với cổng Designated nó sẽ là Root port.
Mô Hình 4 SW
Mô Hình 3 SW
Mô Hình 5 SW
Mô Hình 2 SW
Như vậy theo 2 hình trên cho thấy chúng so sánh địa chỉ mac với nhau vì priority mặc định là bằng nhau rồi.
- Theo mô hình 3 sw
Mac nhỏ nhất sẽ là ROOT-SW các sw nằm gần nó. sw nào có địa chỉ mac lớn sẽ bị khóa.
- Theo mô hình 4 sw
Mac nhỏ nhất sẽ là ROOT-SW các sw nằm gần nó sẽ không bị khóa dù địa chỉ mác lớn hơn. Nó sẽ khóa sw ở xa hơn(có đường đi xa hơn path cost đi vào sw cộng 1 , đi ra không tính) nên sw 4 bị khóa và khóa cổng f0/1 vì nó đối nối với sw2 có địa chỉ mac lớn hơn sw3.
- Theo mô hình 5 sw
Mac nhỏ nhất sẽ là ROOT-SW các sw nằm gần nó sẽ không bị khóa dù địa chỉ mác lớn hơn. Nó sẽ khóa sw ở xa hơn(có đường đi xa hơn path cost đi vào sw cộng 1 , đi ra không tính) => ta thấy sw1,sw3 ở xa nên nó sẽ so sánh địa chỉ mac , mac nào nhỏ hơn sw sẽ bị khóa, cổng bị khóa sẽ là cổng có tổng path cost lớn hơn có nghĩa là tổng đường đi xa hơn.
- Theo Mô Hình 2 SW
Thì nó sẽ so sánh địa chỉ mac, sw nào có mac nhỏ hơn sẽ làm ROOT SW, sw còn lại sẽ bị khóa cổng f0/2 vì nó đối nối với cổng f0/12 mà f0/12 >f0/4.
Chú ý: port – ưu tiên : từ 0 -255 và mặc đinh là 128
Port- số: f0/1, f0/2…..
Thực hành
Có hai cách chạy stp:
cách 1: chỉ chạy 1 vlan (mặc định) (trên phần mềm giả lập ta sẽ thấy cổng bi khóa vàng cam)
cách 2: chạy nhiều vlan (per vlan) (trên phần mềm giả lập ta sẽ không nhìn thấy cổng bi khóa vàng cam)
ở bài này ta áp dụng per vlan – spanning tree
BC1: trunk
sw1(config)#int range f0/1-2
sw1(config-if-range)#switchport mode trunk
sw2(config)#int range f0/1-2
sw2(config-if-range)#switchport mode trunk
sw3(config)#int range f0/1-2
sw3(config-if-range)#switchport mode trunk
BC2: VTP
Sw1(config)#vtp domain ccna
sw1(config)#vtp version 2
sw1(config)#vtp password ccna
sw1(config)#vtp mode server
sw2(config)#vtp domain ccna
sw2(config)#vtp version 2
sw2(config)#vtp password ccna
sw2(config)#vtp mode client
sw3(config)#vtp domain ccna
sw3(config)#vtp version 2
sw3(config)#vtp password ccna
sw3(config)#vtp mode client
BC3: Tạo 10 vlan trên server vtp
BC4: Bật mode STP
Sw1(config)#spanning-tree mode rapid-pvst
Sw2(config)#spanning-tree mode rapid-pvst
Sw3(config)#spanning-tree mode rapid-pvst
RSTP ( Rapid spanning tree protocol ) : là giao thức được cải tiến từ giao thức STP nhằm rút ngắn thời gian ( tăng tốc ) hội tụ của mạng. Nếu như STP phải trải qua 4 bước : Blocking, Listening, Learning, Forwarding và mất 50 giây cho 4 bước thì RSTP chỉ trải qua 3 bước :Blocking ( Discarding ), Learning, Forwarding và mất ít hơn 10 giây.
y/c: 10 vlan từ vlan 2-4 :sw1 làm root sw, f0/1(sw2) block
từ vlan 5-8 :sw2 làm root sw, f0/2(sw3) block
từ vlan 9-10 :sw3 làm root sw, f0/2(sw1) block
có hai cách làm theo y/c trên
cách 1: thay đổi priority
sw1(config)#spanning-tree vlan 2-4 priority 4096
sw2(config)#spanning-tree vlan 5-8 priority 4096
sw3(config)#spanning-tree vlan 9-10 priority 4096
ta khóa các cổng của vlan theo y/c
f0/1(sw2) block
sw3(config)#spanning-tree vlan 2-4 priority 8192
f0/2(sw3) block
sw1(config)#spanning-tree vlan 5-8 priority 8192
f0/2(sw1) block
sw2(config)#spanning-tree vlan 9-10 priority 8192
cách 2: đặt root primary trên các sw gốc
sw1(config)#spanning-tree vlan 2-4 root primary
sw2(config)#spanning-tree vlan 5-8 root primary
sw3(config)#spanning-tree vlan 9-10 root primary
lệnh Switch(config)#spanning-tree vlan ID root secondary
câu lệnh xem stp: sw#sh spanning-tree vlan ID xem từng vlan
sw#sh spanning-tree xem tất cả vlan
sw(config)#spanning-tree vlan 2-4,7,9-10 priority thay đổi độ ưu tiên trên nhiều vlan
II.Giao thức EtherChannel
Ở bài này mình sẽ giới thiệu cho các bạn một công nghệ thường được triển khai trong mạng campus để tăng băng thông và tính sẵn sàng khi kết nối các Switch
Để nâng cao khả năng dự phòng trong mạng, người ta thường kết nối 2 switch lại bằng 2 kết nối trunking . Để đảm bảo không bị loop, 1 kết nối sẽ bị block lại. Ở dạng này, tại một thời điểm ta chỉ có thể sử dụng một kết nối duy nhất
Cisco cho ra đời một kĩ thuật mới, kĩ thuật Etherchannel cho phép ghép nhiều link song song giữa các switch lại với nhau thành một kết nối logic . Kết nối này vừa đảm bảo băng thông rất cao, vừa cung cấp khả năng dự phòng .
EtherChannels cung cấp khả năng chịu lỗi với những kết nối tốc độ cao giữa switch-to-switch, routers-to-switch, và các servers.
EtherChannels cung cấp khả năng phục hồi cho những liên kết bị mất, khi dữ liệu đang trong quá trình truyền mà có một kết nối bị hỏng thì dữ liệu đó sẽ được chuyển sang những kết nối còn lại để truyền tiếp.
Một EtherChannel bao gồm nhiều đường vật lý fast ethernet (Fa 10/100Mbps) hoặc gigabit ethernet (10/100/1000 Mbps) được gộp thành một kết nối logical.
EtherChannel có khả năng cho phép các port dùng để kết nối hoạt động ở chế độ Full-duplex. Và băng thông trên mỗi một kết nối vật lý có thể đạt tới tốc độ là 800 Mbps đối với kết nối Fast Ethernet (Fast EtherChannel), đối với kết nối gigabit ethernet thì tốc độ của mỗi đường vật lý có thể đạt mức tối đa là 8 Gbps (Gigabit EtherChannel)
–Hiện nay cisco hỗ trợ Số EtherChannel có thể cấu hình tối đa trên Switch được giới hạn là 6.
– Để thực hiện việc nhóm các link thành một Etherchannel thì các switch phải chạy các giao thức:
- Port Aggregation Protocol (PAgP) –chuẩn độc quyền cisco
- Hoặc
- Link Aggregation Control Protocol (LACP) – chuẩn mở rộng IEEE
Giao thức:
- Port Aggregation Protocol (PAgP)
– Port Aggregation Protocol (PAgP) – Cisco Proprietary là giao thức chạy giữa 2 switch , bằng cách trao đổi với nhau những message nhằm thương lượng và tự động tạo nên channel. PAgP hoạt động ở các mode sau:
ON : mode này cho phép thiết lập Channel mà không cần phải gửi PAgP message giữa 2 switch với nhau . Etherchannel chỉ được tạo ra khi switch đối tác cũng bật chế độ ON lên
OFF : không cho phép tạo Etherchannel
AUTO: mode này chỉ chờ và nhận PAgP message mà thôi, không được gửi PAgP message ra. Đây là default mode .
DESIRABLE : mode này cho phép gửi, nhận PAgP message .
– Ngoài ra còn 2 sub-mode của DESIRABLE và AUTO là silent và non-silent.
Silent mode được sử dụng khi ta kết nối với một thiết bị không hỗ trợ giao thức PAgP .
Ví dụ Cisco switch kết nối với một file server, file server này không hổ trợ PAgP nhưng ta vẫn muốn thực hiện một kết nối Etherchannel giữa switch và file server nhằm tăng băng thông.
Mode silent cho phép ta thực hiện điều này. Silent dịch nôm na là ” im lặng và đồng ý ” tạo Etherchannel.
Non-silent mode được sử dụng khi kết nối với một thiết bị có hỗ trợ PAgP. Default thì mode silent được sử dụng
– Các chế độ hoạt động tương ứng để tạo được Etherchannel : on-on , desirable-desirable , auto-desirable .
Giao thức:
- Link Aggregation Control Protocol (LACP)
– Tương tự giống như giao thức PAgP , nhưng LACP là chuẩn mở của IEEE. Nó cho phép tạo Etherchannel với những thiết bị non-Cisco. Hoạt động ở 4 mode sau :
ON: Cho phép tạo Etherchannel mà không cần chạy LACP.
OFF: Không cho phép tạo Etherchannel.
ACTIVE: chủ động gửi LACP message để tạo Etherchannel.
PASSIVE: Chỉ lắng nghe LACP message mà không gửi ra LACP message.
– Các chế độ hoạt động tương ứng để tạo được Etherchannel: on-on , active-active , active-passive .
– Đối với LACP cho phép chúng ta nhóm nhiều link lại thành 1 bundle nhưng cũng cho phép chúng ta chỉ sử dụng một số link trong bundle đó mà thôi. Các link còn lại trong bundle sẽ ở trạng thái stanby, sẽ up lên khi các link đang active bị down .
- EtherChannel là gì?
Tại sao cần EtherChannel
Như các bạn đã biết, switch có thể sử dụng các cổng Ethernet, Fast-Ethernet(FE), GigaEthernet(GE), 10 GigaEthernet(10GE) để tăng tốc độ các link. Mỗi lần link bị quá tải ta có thể nâng cấp các đường lên 10 lần, nhưng như vậy sẽ rất tốn kém trong việc mua module gắn vào và dây dẫn, bên cạnh đó, không phải switch nào cũng có module để bạn gắn cũng như tốn chi phí về mua dây dẫn. Ví dụ bạn đang dùng 1 link FE, giờ quá tải, bạn tăng lên GE, hiệu quả sử dụng rất thấp và không cần thiết.
Một phương pháp khác phù hợp hơn trong trường hợp này để tăng băng thông các link đó là kếp hợp (“bó”) các link lại. Công nghệ này được gọi là EtherChannel.
Công nghệ EtherChannel có thể bó từ 2 đến 8 link FE, GE, 10GE thành 1 link logical. Khi đó, switch đối xử các port thuộc EtherChannel như 1 port duy nhất.
Switch hoặc thiết bị ở 2 đầu EtherChannel phải hiểu và sử dụng công nghệ EtherChannel để đảm bảo hoạt động đúng và chống loop. Nếu chỉ có 1 đầu sử dụng EtherChannel, còn đầu bên kia không sử dụng thì có thể gây ra loop.
Traffic không phải lúc nào cũng được phân bố đồng đều qua các đường link thuộc EtherChannel, mà nó phụ thuộc vào phương pháp load balancing mà switch sử dụng và mẫu traffic trong mạng.
Nếu một trong các link thuộc EtherChannel bị down thì traffic sẽ tự động được chuyển sang link khác trong channel chỉ trong vòng vài miliseconds (theo kết quả mình test trên thiết bị thật thì thậm chí không bị rớt 1 gói tin nào). Khi link up trở lại thì traffic được phân bố lại như cũ.
Điều kiện để chạy EtherChannel
– Cùng tốc độ (speed)
– Cùng loại (full-duplex, half-duplex)
– Cùng vlan, cùng trunk
– sw có hỗ trợ etherchannel
Note: Nếu PAgP hoặc LACP được cấu hình ở mode on thì switch sẽ tự đưa các ports vào EtherChannel mà không thương lượng với neighbor, nghĩa là không có bất kỳ gói tin PAgP hoặc LACP nào được trao đổi. Điều này có thể dẫn đến trường hợp ở một đầu thì các ports được đưa vào EtherChannel, trong khi đầu bên kia thì không (nghĩa là một bên thì xem đó là một logical link, trong khi phía bên kia thì vẫn xem là nhiều physical links), và có thể gây ra loop. Vì vậy, đối với EtherChannel ta không nên cấu hình mode on, mà nên sử dụng giao thức để thương lượng.
Note: Điểm khác biệt cơ bản để ta chọn PAgP hay LACP là:
PAgP: cho phép định nghĩa EtherChannel với tối đa 8 ports.
LACP: cho phép định nghĩa EtherChannel với tối đa là 16 ports, khi đó 8 ports sẽ ở trạng thái active, 8 ports ở trạng thái Hot-Standby. Khi 1 port ở trạng thái active bị down, switch sẽ chọn 1 port từ Hot-Standby -> Active
Thực hành
y/c: – chạy e-channel 1: LACP
– chạy e-channel 2: PAGP
- chạy e-channel 1: LACP
BC1: tạo channel
sw3(config)#int range f0/1-2
sw3(config-if-range)#channel-group 1 mode active
sw4(config)#int range f0/1-2
Sw4(config-if-range)#channel-Group 1 Mode Passive
BC2: trunk trên channel
sw3(config)#int port-channel 1
sw3(config-if)#switchport mode trunk
sw4(config)#int port-channel 1
sw4(config-if)#switchport mode trunk
- chạy e-channel 2: PAGP (tương tự)
câu lệnh xem e-channel: Switch#sh etherchannel port-channel liệt kê tất cả
Bạn có thể bình luận bài viết tại đây...