Logo CNTTShop.vn

Hotline: 0862 323 559

Công Ty TNHH Công Nghệ Việt Thái Dương
NTT03, Line 1, Thống Nhất Complex, 82 Nguyễn Tuân, Thanh Xuân, Hà Nội.
Danh mục sản phẩm

EtherChannel Design - Những lưu ý khi thiết kế EtherChannel

 

Trong bài viết này, chúng ta sẽ cùng trao đổi về Etherchannel và cách thiết kế nó trong hệ thống mạng nhé.

Như các bạn đã biết thì Etherchannel là công nghệ cho phép chúng ta cấu hình nhiều cổng vật lý thành 1 cổng logic, để dự phòng và tăng băng thông cho hệ thống mạng. Việc cấu hình Ether channel thì rất đơn giản, chúng ta chỉ cần xác định 2 đầu thiết bị hỗ trợ giao thức nào, sau đó cấu hình mode 2 đầu tương ứng cho các cổng member là được. Tuy nhiên trong video này mình sẽ đưa ra 1 số lưu ý để các bạn có thể tối ưu hóa được công nghệ này nhé. Các bạn cũng cần lưu ý là không phải hệ thống nào cũng có thể áp dụng được tất cả, chúng ta cần tính toán dựa trên các hệ thống khác nhau.

Sử dụng LACP bất cứ khi nào có thể

Đầu tiên là về giao thức. Chúng ta sẽ có 2 loại cơ bản là StaticDynamic, trong dynamic thì chúng ta sẽ có LACPPAgP. Với static thì chúng ta rất khó để xử lý sự cố do các bạn chỉ cần cấu hình 1 đầu là portchannel đã UP luôn rồi. Do vậy bất cứ khi nào có thể thì các bạn nên dùng Dynamic, và nên dùng LACP do LACP thì phổ thông và hỗ trợ trên hầu hết các thiết bị. Với LACP thì nó sẽ có cơ chế phát hiện lỗi trên các cổng và chuyển lưu lượng sang các cổng khác, và LACP thì có các gói tin LACP PDU để trao đổi giữa 2 đầu link, do vậy chúng ta có thể debug các gói LACP PDU này hoặc nếu 1 trong 2 đầu cấu hình sai thì port channel sẽ không UP.

các mode trong etherchannel

LACP thì sẽ có 2 mode là ActivePassive, chúng ta chỉ cần có ít nhất 1 đầu là active thì port channel có thể được thiết lập, nghĩa là các bạn cấu hình 2 đầu active hoặc 1 đầu active, 1 đầu passive cũng được. Tuy nhiên Recommend thì các bạn nên cấu hình 1 đầu active, và 1 đầu passive, như vậy có thể giảm được vài mili giây để thiết lập được liên kết. Vài mili giây đối với hệ thống lớn thì cũng rất quan trọng. Vì khi LACP hội tụ sẽ kéo theo các giao thức khác như các giao thức định tuyến, hay spanning tree hội tụ theo nữa. Nên chúng ta cần giảm downtime càng nhiều càng tốt. Một vấn đề nữa là chỉ có mode active mới gửi các gói tin LACP, còn passive thì chỉ phản hồi khi nó nhận được LACP packet chứ không tự gửi ra, do vậy thì chúng ta sẽ giảm được số lượng các gói LACP PDU trong mạng.

Tuy nhiên 1 số thiết bị hoặc ứng dụng vẫn chỉ hỗ trợ static port-channel, do vậy thì đôi khi chúng ta vẫn bắt buộc phải sử dụng static, các bạn nên tìm hiểu về các tính năng hỗ trợ trên các thiết bị ở 2 đầu port-channel nhé.

Load Balancing và băng thông

Vấn đề thứ 2 liên quan đến băng thông và các tùy chọn loadbalancing. Khi cấu hình port channel thành công, chúng ta sẽ có 1 link logical với băng thông show ra sẽ bằng tổng băng thông của số member port. Tuy nhiên thì không có nghĩa là nó sẽ hiệu quả như 1 link physical duy nhất. Ví dụ 2 link 1G sẽ không thể bằng 1 link 2G được. LACP sẽ phân bổ traffic dựa trên phương thức hash chứ không phải phân bổ ngang bằng nhau giữa 2 link bằng round-robin hay các phương thức khác. Do vậy thì sẽ có trường hợp traffic sẽ được đẩy chỉ qua 1 link. Để dễ hiểu thì các bạn có thể hình dung thế này.

Hàm hash là hàm 1 chiều, với 1 kết quả đầu vào nó sẽ cho ra 1 chuỗi duy nhất. Trong Etherchannel thì kết quả hàm hash giống nhau sẽ được coi là traffic giống nhau, và được đẩy qua 1 link cụ thể. Ví dụ các bạn chọn load-balancing hash trong LACP là Source IP, thì với bất cứ traffic nào xuất phát từ source IP đó, dù là duyệt web, FTP, SSH… thì nó vẫn chỉ đẩy ra 1 cổng, do đầu vào của hàm hash chỉ là source IP, do vậy nó không quan tâm đến đích hay dịch vụ là gì, nên kết quả là có nhiều traffic được đẩy qua chỉ 1 cổng. Do vậy trong hầu hết các trường hợp, tốt nhất thì các bạn nên sử dụng cả Source, destination IP và cả TCP/UDP port nếu có thể. Như vậy thì mỗi 1 dịch vụ hay mỗi lượt truy cập khác nhau sẽ được đẩy qua các liên kết khác nhau. Ví dụ cùng là truy cập web HTTPS port 443, nhưng khi các bạn truy cập đến dantri.com sẽ được đẩy qua 1 link, vnexpress sẽ được đẩy qua link khác do chúng có des IP khác nhau. Tuy nhiên thì không phải thiết bị nào cũng hỗ trợ toàn bộ, do vậy thì các bạn cũng phải tính toán cả 2 đầu switch, để cấu hình đồng nhất trên cả 2 đầu port channel.

Các bạn cũng cần lưu ý hàm hash là 1 hàm nhị phân, do vậy thì khi thiết kế port channel, các bạn nên sử dụng số link là lũy thừa của 2, khi đó số lượng link member sẽ là 2,4,8,16. Các bạn có thể xem trong ảnh bên dưới, với 2,4,8 link thì traffic sẽ được chia đều đều trên số member, còn các trường hợp khác thì sẽ có 1 số link sẽ có nhiều traffic hơn.

sự phân bổ traffic giữa các member trong etherchannel

Link Member Failure

Vấn đề cuối cùng liên quan đến việc các link member bị lỗi. Khi 1 link bị lỗi thì các giao thức etherchannel dynamic sẽ tự động phát hiện, loại nó ra khỏi port channel, tính toán lại hàm hash và phân bổ lại các traffic sang các link khác. Tuy nhiên chúng ta sẽ gặp vấn đề với các giao thức như spanning-tree hay các giao thức định tuyến động. Mặc dù các giao thức sẽ chỉ nhìn thấy 1 link logical duy nhất, tuy nhiên vấn đề vẫn có thể xảy ra do cost của link thay đổi. Ví dụ với spanning tree, chúng ta có 1 link LACP 20G được tổng hợp từ 2 link 10G, khi 1 link down thì chúng ta chỉ còn 1 link LACP 10G, bằng cost với 1 physical 10G, đây sẽ là nguyên nhân gây ra các trường hợp hội tụ lại để lựa chọn lại đường dẫn tốt nhất. Một cách để xử lý vấn đề này là các bạn cấu hình 1 giá trị cost cụ thể cho port-channel trong từng giao thức. Khi đó thì giá trị cost sẽ không thay đổi khi member link down, và kết quả là sẽ không có hội tụ lại của các giao thức khác, giảm downtime trong mạng.

Tuy nhiên với 1 số hệ thống thì có thể nó sẽ không tối ưu, ví dụ như bạn đang cấu hình nhiều link vào 1 port-channel, nhưng các link down nhiều và chỉ còn đúng 1 cổng UP, dẫn đến tốc độ của port-channel chậm hơn so với 1 link vật lý dự phòng. Trong trường hợp này các bạn có thể cấu hình minimum-links trong port-channel. Ví dụ các bạn cấu hình minimum-links là 2, thì port-channel phải có tối thiểu 2 link UP thì port channel mới UP, còn dưới 2 cổng thì port-channel sẽ down và lúc đó các switch sẽ tìm kiếm các tuyến được tốt hơn.

Chọn Link Member

Ngoài ra thì còn 1 số recommend khác về lựa chọn cổng. Ví dụ các dòng switch stack hoặc có nhiều line card như các dòng chassis, thì chúng ta nên sử dụng các cổng trên các switch khác nhau, hoặc các line card khác nhau. Trên server mà có 2 card network khác nhau thì các bạn cũng nên sử dụng 2 cổng trên 2 card đó để dự phòng cả phần cứng nữa.

Ok trên đây là 1 số recommend khi các bạn thiết kế port channel. Nó đều được đề cập trong các khóa đào tạo của các hãng rồi, tuy nhiên khi triển khai thực tế đôi khi chúng ta thường không chú ý đến. Nếu các bạn có bất kỳ góp ý hay thắc mắc nào, hãy để lại comment để mọi người cùng trao đổi nhé.

Cảm ơn các bạn!

Lê Văn Tuấn

Là chuyên gia trong lĩnh vực Network System, Security, Server.. Có kinh nghiệm nhiều năm tư vấn giải pháp mạng, triển khai các giải pháp CNTT và phân phối thiết bị mạng Switch, Wifi, Router, Máy chủ Server, Lưu trữ Storage, Tường lửa Firewall, Video Conferencing, Module quang, Load Balancing. Hiện tại tôi là Founder và Managing Director công ty TNHH Công Nghệ Việt Thái Dương (CNTTShop.vn).

Bình luận bài viết!

Có 0 bình luận:
Chuyên mục chính
Bài viết liên quan