Thứ Tư, 6 tháng 5, 2015

Tìm hiểu về LACP và công nghệ EtherChannel trên Switch Cisco

Ở 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ội dung giới thiệu:
1. EtherChannel là gì?
2. Các phương thức thương lượng trong EtherChannel
3. Cấu hình EtherChannel
4. Troubleshoot EtherChannel
OK, Let’s jumping.
iiii. GIỚI THIỆU VỀ ETHERCHANNELS
1. Khái niệm:
– Để 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)
– 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) – Cisco Proprietary
  • HoặcLink Aggregation Control Protocol (LACP) – 802.1ad
2. Giao thức:
2A.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 .
2B. Link Aggregation Control Protocol (LACP) – 802.1ad:
– 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 .
1. 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.
 photo etherchannel_zps6541fc74.gif
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ũ.
Kết hợp các port với EtherChannel
EtherChannel có thể kết hợp các physical ports chỉ khi:
– Cùng tốc độ (speed)
– Cùng loại (full-duplex, half-duplex)
– Nếu port Layer 2 thì cùng port access thì phải access cùng VLAN còn port trunk thì phải cùng native VLAN và allowed VLAN. Hoặc cùng là port Layer 3 (routed port).
Phân phối traffic trong EtherChannel - Load Balancing
Switch lựa chọn đường link nào trong EtherChannel để forward frame dựa vào kết quả của thuật toán hash. Thuật toán có thể sử dụng source IP, destination IP (hoặc cả hai), source MAC, destination MAC (hoặc cả hai), TCP/UDP port number. Thuật toán hash sẽ cho ra một chuỗi số nhị phân (0 & 1).
Nếu chỉ có source hoặc destination được hash (IP, MAC, port number) thì switch sẽ sử dụng một hoặc nhiều low-oder bits của giá trị hash để làm index lựa chọn link trong EtherChannel. Nếu cả source và destination được hash, switch sẽ thực hiện phép toán exclusive-OR (XOR) trên một hoặc nhiều low-order bits để làm index.
Bảng phân loại EtherChannel Load Balancing
 photo etherchannelloadbalancing_zps25c7b469.png
Note: Theo như mình test trên thiết bị thật thì Catalyst 3550 chỉ hỗ trợ load balancing dựa vào src-mac và dst-mac, còn Catalyst 3750 thì hỗ trợ tất cả các kiểu load balancing ngoại trừ TCP/UDP port.
Tùy thuộc vào mô hình mạng mà ta cấu hình load balancing sử dựng các link physical nhiều nhất có thể. Ví dụ ở port Layer 3 thì không nên dùng MAC address để forward, vì khi đó, địa chỉ MAC luôn không đổi. Cách tốt nhất là sử dụng port để load balancing, vì src-port là random nên tận dụng được tối đa các đường có thể.
Thuật toán hash cho kết quả có giá trị từ 0-7 (000-111). Kết quả hash có giá trị nào thì port tương ứng sẽ được chọn. Đối với 8 ports thì cần 3 bits, 4 port thì cần 2 bits…
Bảng giá trị Load Balancing:
 photo 9-28-201312-31-15AM_zps123f30b3.png
Note: Tương ứng với số port mà thuật toán hash chỉ cần tính toán với số bit tương ứng.
Có 2 port: Cần 1 bit (2 giá trị 0,1) để chọn đường đi. Ví dụ kết quả 0 đi link 0, kết quả 1 đi link 1.
Có 3-4 port: Cần 2 bit( 4 giá trị 00,01,10,11).
Có 5-8 port: Cần 3 bit (8 giá trị 000-111).
Switch đối xử EtherChannel như là một đường link duy nhất, do đó khi nó nhận frame từ bất cứ một link nào thuộc EtherChannel thì nó sẽ không forward ngược ra các link còn lại trong EtherChannel (để chống loop). Spanning Tree cũng xem EtherChannel (port-channel) là một link duy nhất và đại diện cho tất cả các link thuộc EtherChannel. Khi một trong các link thuộc EtherChannel bị down thì EtherChannel vẫn up, do đó Spanning Tree không cần phải hội tụ. Trừ khi tất cả các link thuộc EtherChanel bị down (khiến cho EtherChannel cũng down theo) thì Spanning Tree mới phải hội tụ. Do đó EtherChannel giúp giảm việc tính toán lại Spanning Tree của switch.
Khi switch nhận được broadcast hoặc multicast frames thì nó cũng thực hiện load balancing tương tự như các frame khác: dùng địa chỉ broadcast hoặc multicast cho vào thuật toán hash để tính ra kết quả và lựa chọn link.
2. Các phương thức thương lượng trong EtherChannel
Có hai giao thức dùng để thương lượng trong EtherChannel là PAgP (Port Aggregation Protocol – độc quyền của Cisco) và LACP (Link Aggregation Control Protocol – giao thức chuẩn hóa IEEE 802.3ad).
 photo Etherchannelnegotiationprotocol_zpsef2552c8.png
Ở mode On: Switch không cần thương lượng mà tự động gán port vào Channel.
Ở mode Auto (PAgP)/Passive (LACP): chờ thương lượng để lên EtherChannel – bị động.
Ở mode Desirable (PAgP)/Active (LACP): Chủ động thương lượng switch bên kia để lên EtherChannel
 photo Etherchannelnegotiationprotocol2_zpsed5d6218.png
Những trường hợp trên đều không thể thương lượng thành EtherChannel . Những trường hợp còn lại đều lên EtherChannel (tất nhiên phải cùng protocol PAgP hoặc LACP).
Note: Theo như sách CCNP Switch 642-813 Official Cert Guide thì nếu 2 switch cùng chạy PAgP với mode là auto và submode là silent thì sau khoảng 15s EtherChannel vẫn được thiết lập (vì switch không còn chờ nhận PAgP packets từ phía bên kia nữa). Tuy nhiên, kết quả test của mình trên cả switch 3550 và 3750 thì switch đều không thiết lập EtherChannel (lệnh show etherchannel summary cho thấy các port vẫn Stand Alone chứ không Bundled).
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
3. Cấu hình EtherChannel
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.
Khi các ports được cấu hình là thành viên của EtherChannel thì switch sẽ tự động tạo ra một logical port-channel interface. Interface này đại diện cho toàn bộ channel.
Khi cấu hình EtherChannel thì ta không cần thiết phải chỉ định giao thức thương lượng là PAgP hay LACP, mà chỉ cần cấu hình các mode tương ứng với giao thức đó là switch tự động biết sử dụng giao thức nào.
Cấu hình PAgP
Switch(config)# interface type mod/num
Switch(config-if)# channel-protocol pagp
Switch(config-if)# channel-group number mode {on | {{auto | desirable} [non-silent]}}
Ví dụ:
Switch(config)# interface f0/1 - 4
Switch(config-if)# channel-protocol pagp
Switch(config-if)# channel-group 1 mode desirable
Cấu hình LACP

Switch(config)# lacp system-priority priority
Switch(config)# interface type mod/num
Switch(config-if)# channel-protocol lacp
Switch(config-if)# channel-group number mode {on | passive | active}
Switch(config-if)# lacp port-priority priority
Giải thích:
 photo s_zps36ec42a6.png
System-id gồm LACP system-priority có giá trị từ 1  – 65535 (mặc định là 32768) và địa chỉ MAC, switch nào có system-id nhỏ hơn sẽ có quyền lựa chọn active port (switch còn lại nghe theo).
 photo portid_zpsfe2124c7.png
Port-id gồm LACP port-priority có giá trị từ 1 – 65535 (mặc định là 32768) và port number, Port nào có port-id nhỏ hơn sẽ trở thành Active Port
Ví dụ:
Switch1(config)# lacp system-priority 100
Switch1(config)# interface range gig 2/1 – 4 , gig 3/1 – 4
Switch1(config-if)# channel-protocol lacp
Switch1(config-if)# channel-group 1 mode active
Switch1(config-if)# lacp port-priority 100
Switch1(config-if)# exit
Switch1(config)# interface range gig 2/5 – 8 , gig 3/5 – 8
Switch1(config-if)# channel-protocol lacp
Switch1(config-if)# channel-group 1 mode active
Switch1 cấu hình lacp system-priority 100, nếu Switch 2 cấu hình mặc định (không cấu hình câu lệnh này -> sys-priority=32768) thì Switch 1 sẽ có quyền lựa chọn port nào Active, port nào Hot-Standby.
Port gig 2/1 – 4 , gig 3/1 – 4 có port-priority là 100 nhỏ hơn port gig 2/5 – 8 , gig 3/5 – 8 nên gig 2/1 – 4 , gig 3/1 – 4 là Active port,  port gig 2/5 – 8 , gig 3/5 – 8 là Hot-Standby Port
Cấu hình Load Balancing:
Switch(config)# port-channel load-balance src-dst-port
4. CCNA configure
Dưới đây là cấu hình tiến hành đưa 2 port f0/1 và f0/2 vào port channel mode LACP sau đó là cấu hình trunk.
Switch(config)#int range f0/1 – 2
Switch(config-if-range)#channel-group 1 mode ?
active         Enable LACP unconditionally
auto           Enable PAgP only if a PAgP device is detected
desirable      Enable PAgP unconditionally
on             Enable Etherchannel only
passive Enable LACP only if a LACP device is detected
Switch(config-if-range)#channel-group 1 mode active
Switch(config-if-range)#exit
Switch(config)# interface port-channel 1
Switch(config-if)#switchport mode trunk
Cấu hình trên là ở Switch 2960, các bạn nếu cấu hình ở Switch khác thì cần thêm câu lệnh
# switchport trunk encapsulation dot1q
Để kiểm tra các bạn có thể sử dụng câu lệnh show etherchannel summary
Switch#show etherchannel summary
Flags: D – down P – in port-channel
I – stand-alone s – suspended
H – Hot-standby (LACP only)
R – Layer3 S – Layer2
U – in use f – failed to allocate aggregator
u – unsuitable for bundling
w – waiting to be aggregated
d – default port
Number of channel-groups in use: 1
Number of aggregators: 1Group Port-channel Protocol Ports
——+————-+———–+———————————————-
1 Po1(SU) LACP Fa0/1(P) Fa0/2(P)
Khi show etherchannel summary mà thấy chữ P (in port-channel) tức là bạn đã cấu hình thành công, còn D (down) thì có thể bạn cấu hình chưa đúng, hoặc xem lại dây kết nối.
Bạn nào có thắc mắc gì thì cứ email cho mình để cùng tìm hiểu. :D

0 nhận xét:

Đăng nhận xét