Khái niệm và khả năng phân phối lưu lượng bên trong EtherChannel
+ Công nghệ EtherChannel của Cisco cho phép kết hợp các kết nối Ethernet thành một bó (bundle) để tăng băng thông. Mỗi bundle có thể bao gồm từ hai đến tám kết nối Fast Ethernet hay GigabitEthernet, tạo thành một kết nối luận lý gọi là FastEtherChannel hay Gigabit Ethernet. Kết nối này cung cấp một băng thông lên đến 1600Mbps hoặc 16 Gbps. Công nghệ này được xem là một cách đơn giản để nâng cấp kết nối giữa các switch mà không cần phải mua phần cứng mới.
+ Ví dụ, một kết nối Fast Ethernet (có throughput là 200Mbps) có thể mở rộng lên đến 8 kết nối FE (1600Mbps) để trở thành một kết nối FastEtherChannel. Nếu lưu lượng nâng cấp kết nối tăng quá mức này, quá trình nâng cấp có thể lại bắt đầu với một kết nối GigabitEthernet. Sau đó, ta có thể lại tiếp tục mở rộng kết nối này lên thành GigabitEtherChannel. Quá trình này có thể được lập lại với việc tiếp tục chuyển sang kết nối 10Gbps.
+ Bình thường, việc có nhiếu kết nối giữa các switch tạo ra khả năng bị bridging loops. EtherChannel sẽ tránh tình huống này bằng cách xem cả một bundle như là một kết nối đơn duy nhất, hoặc là access, hoặc là trunk. Mặc dù EtherChannel link được xem như một kết nối đơn duy nhất, kết nối này không nhất thiết phải có băng thông bằng với tổng của các kết nối thành phần. Ví dụ, giả sử một FEC được tạo ra từ 4 kết nối full-duplex, 100-Mbps.
+ Mặc dù kết nối FEC này có thể có thể mang một throughput lên đến 800Mbps (nếu mỗi kết nối là 100% load), FEC sẽ không hoạt động ở mức độ này. Thay vào đó, lưu lượng sẽ được phân phối trên các kết nối riêng rẽ bên trong EtherChannel. Các kết nối này hoạt động ở tốc độ của nó (200Mbps) nhưng chỉ truyền những frame được gán bởi thuật toán FEC. Nếu một link bên trong một bundle là ưu tiên hơn do kết quả của thuật toán phân phối tải, kết nối thành viên này sẽ không mang lưu lượng theo một tỉ lệ tương ứng.
+ Nói cách khác, tải không phải luôn luôn phân phối đều giữa các kết nối thành phần. FEC còn cung cấp đặc tính dự phòng với vài kết nối vật lý. Nếu một trong những kết nối vật lý bị hỏng, lưu lượng trên link đó sẽ được tự động chuyển sang kết nối kế cận. Quá trình chuyển đổi xảy ra trong vài mili giây. Khi có nhiều kết nối tiếp tục hỏng, các lưu lượng sẽ tiếp tục chuyển sang các kết nối láng giềng khác. Khi có một kết nối thành viên được khôi phục lại, tải sẽ tự động phân phối trên các kết nối đang active. Ta có thể quan sát tiến trình này bằng cách quan sát đèn LED trên switch hoặc dùng các phần mềm như PRTG, MRTG.
1. Kết hợp cổng bên trong EtherChannel
EtherChannel có thể bao gồm tối đa tám kết nối vật lý của cùng kiểu phần cứng và cùng tốc độ. Một vài ràng buộc phải được đáp ứng sao cho chỉ có những kết nối tương tự là được kết hợp. Thông thường, tất cả các cổng phải thuộc về cùng một vlan. Nếu được dùng như một kết nối trunk, tất cả các cổng phải ở trong trunking, có cùng native vlan và truyền cùng một tập hợp của vlan. Mỗi cổng phải có cùng tốc độ, duplex và có cùng cấu hình spanning tree.
2. Phân phối lưu lượng bên trong EtherChannel
Các lưu lượng bên trong EtherChannel có thể được phân phối trên các kết nối riêng lẻ theo một cách thức xác định. Tuy nhiên, tải không nhất thiết phải được cân bằng trên tất cả các kết nối. Thay vào đó, các frame sẽ được đưa vào trên một kết nối cụ thể như là kết quả của một thuật toán hash.
Việc phân phối tải qua các đường của một bundle (EtherChannel) được thực hiện theo thuật toán hashing. Thuật toán này có thể sử dụng: Địa chỉ IP nguồn, đích; hoặc địa chỉ MAC nguồn, đích; hoặc có thể sử dụng cổng TCP/UDP. Nếu chỉ sử dụng một địa chỉ hay một cổng thì việc truyền tải qua cổng này hay cổng khác được thực hiện dựa vào các bit cuối cùng, và phụ thuộc vào số cổng của EtherChannel. Nếu sử dụng cả đích và nguồn thì thuật toán này được thực hiện nhờ phép toán XOR các bit cuối của địa chỉ, thuật toán hash có thể dùng địa chỉ IP nguồn, địa chỉ IP đích hoặc là kết hợp của địa chỉ nguồn, đích, MAC nguồn, MAC đích hoặc cổng TCP/UDP.
Thuật toán hash sẽ tính toán ra giá trị nhị phân, giá trị này sẽ chọn ra một kết nối trong bundle để chọn ra kết nối thành viên nào sẽ mang frame đó. Nếu chỉ một địa chỉ hay một cổng được hash, switch sẽ đẩy frame bằng cách dùng một hoặc nhiều bit thấp để đưa vào kết nối. Nếu hai địa chỉ hay cổng được hash, switch sẽ thực hiện thuật toán XOR trên một hoặc nhiều bit thấp của địa chỉ IP hoặc cổng TCP/UDP. Ví dụ, nếu kết quả phép toán hash bằng 0, link 0 được dùng, nếu kết quả bằng 1, link 1 được dùng. Nếu một bundle dùng 4 kết nối, thuật toán hash sẽ dùng 2 bit cuối. Tương tự, một bundle có 8 kết nối sẽ dùng một thuật toán has trên 3 bit cuối.
Các phương pháp Load-Balancing trong EtherChannel
+ Cấu hình mặc định là dùng XOR của địa chỉ IP đích hoặc dùng phương thức src-dst-ip. Mặc định cho switch 2970 và 3560 lòa dùng src-mac. Nếu L3 switch được dùng trên kết nối EtherChannel, phương thức src-dst-ip luôn luôn được dùng, mặc dù nó không cấu hình được. Bình thường, trạng thái mặc định là việc phân phối tĩnh các frame.
+ Tuy nhiên, ta phải xác định khi nào thì EtherChannel là không cân bằng tùy theo mẫu lưu lượng. Lấy ví dụ, nếu một server nhận phần lớn các lưu lượng của FEC, địa chỉ của server (địa chỉ đích) sẽ luôn giống nhau trong nhiều phiên địa chỉ IP đích. Để kiểm tra xem thuật toán load-balancing nào đang được thực hiện, ta có thể dùng lệnh show etherchannel port-channel. Mỗi kết nối trong channel được hiển thị cùng với giá trị load dạng hex. Khi các cổng được nhóm lại trong EtherChannel, sẽ không có broadcast vì multicast nào được gửi ra những cổng còn lại trong channel. Các broadcast và multicast sẽ được load balance giống như những loại lưu lượng khác. Các địa chỉ multicast và broadcast trở thành một phần của thuật toán hash.
Lê Đức Thịnh – VnPro