- Các khái niệm và hoạt động của Etherchannel
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ó thông lượng 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 lưu lượng 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 Gigabit Ethernet. 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ị lặp các frame. 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à trung kế.
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ể mang một thông lượng lên đến 800Mbps ( nếu mỗi kết nối có tải là 100% ), FEC sẽ không hoạt động ở tố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 lẽ 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 hoạt động. 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.
Kết hợp cổng bên trong EtherChannel
EtherChannel có thể gộp 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 trung kế, tất cả các cổng phải ở trong trung kế, 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 cây spanning tree.
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 băm. 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 băm: Thuật toán này có thể sử dụng : Địa chỉ IP nguồn, đích; Hoặc địa chỉ MAC nguồn, dích, hoặc có thể sử dụng TCP/UDP cổng. 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 băm có thể dùng địa chỉ IP nguồn, địa chỉ IP đích hoặc là kết hợp của địa chi nguồn, đích, MAC nguồn, MAC đích hoặc TCP/UDP cổng. Thuật toán băm 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 băm, switch sẽ đẩy frame bằng cách dùng một hoặc nhiều bit nhi phân 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 băm 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 băm 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 băm trên 3 bit cuối.
Hình 6
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à 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 thuờng, trạng thái mặc định là việc phân phối tĩnh các frame. Tuy nhiên, bạn phải xác định khi nào thì EtherChannel là không cân bằng tuỳ 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 làm việc. Điều này làm cho một kết nối sẽ được dùng nhiều lần nếu trong thuật toán hash ta dùng địa chỉ đích IP. Để kiểm tra xem thuật toán cân bằng tải nào đang được thực hiện, bạn 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ị tải dạng cơ số 16. Khi các cổngs đượ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 frame sẽ được cân bằng tải 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 băm.
Các giao thức bắt tay của EtherChannel
Có hai giao thức được dùng để hình thành nên EtherChannel PagP và LACP.
PagP
Các gói tin Pagp được trao đổi giữa các switch trên các cổng EtherChannel. Các thông số của switch láng giềng được xác định (như khả năng của cổng) và sẽ được so sánh với switch cục bộ. Các cổng có cùng số định danh láng giềng (neighbor ID) và khả năng hình thành nhóm sẽ được nhóm lại với nhau thành các kết nối FEC. PagP hình thành nên EtherChannel chỉ trên những cổng được cấu hình cùng VLAN tĩnh hoặc là cùng loại trunking. Pagp cũng thay đổi các thông số động của EtherChannel nếu một trong những cổng của bundle bị thay đổi. Ví dụ nếu thông số VLAN, speed, tốc độ duplex của một cổng trong một EtherChannel bị thay đổi, Pagp sẽ thay đôi các thông số đó trong tất cả các cổng còn lại. Pagp có thể được cấu hình ở chế độ chủ động (desirable) trong đó một switch chủ động yêu cầu switch đầu xa hình thành nên EtherChannel. Khi switch hoạt động trong chế độ bị động của PAGP, switch sẽ chỉ bắt tay nếu switch đầu xa yêu cầu nó.
LACP
LACP cũng gửi các gói trên các cổng EtherChannel của switch. Tuy nhiên LACP cũng gán vai trò cổng đến các đầu cuối của EtherChannel. Các switch có độ ưu tiên thấp nhất sẽ được phép ra quuyết định về các cổng nào sẽ được tham gia vào EtherChannel ở một thời điểm. Các cổng được chọn lựa và trở thành hoạt động theo giá trị độ ưu tiên (priority) của nó, trong đó giá trị ưu tiên thấp sẽ có mức ưu tiên cao.
Một tập hợp 16 kết nối tiềm năg có thể được chỉ ra cho một EtherChannel. Thông qua LACP, một switch sẽ chọn lựa ra 8 cổng có độ ưu tiên thấp nhất như là các thành viên hoạt động của EtherChannel. Các cổng còn lại sẽ nằm trong trạng thái chờ (standby) và sẽ được bật lên nếu một trong những kết nối đang hoạt động có sự cố. Cũng giống như PaGP, LACP có thể được cấu hình trong chế độ chủ động (mode active), trong đó một switch sẽ chủ động hỏi switch đằng xa bắt tay hình thành EtherChannel. Chế độ bị động (passive) thì switch chỉ chủ động hình thành EtherChannel chỉ nếu switch đầu xa khởi tạo nó.
Cấu hình EtherChannel
Các lệnh cơ bản để cấu hình Etherchannel. Cấu hình PAGP Ethechannel:
Switch(config-if)#channel-protocol pagp
Switch(config-if)#channel-group number mode {on | auto | desirable }
Các chế độ này có ý nghĩa như sau:
ON: ở chế độ này thì Switch tự động enale etherchannel tuy nhiên nó lại không gởi hay nhận bất kỳ gói PAGP nào, do đó mà phải cấu hình on mode ở hai dầu
Auto: Switch sẽ tự động tạo thành ethechannel nếu nó nhận được PAGP packet.
Desirable: Switch sẽ tự động cố gắng yêu cầu đầu kia chuyển kết nốI sang thành EtherChannel.
Cấu hình LACP:
Switch(config)#lacp system-priority priority
Switch(config-if)#channel-protocol lacp
Switch(config-if)#channel-group number mode {on | passive | active}
Switch(config-if)# lacp port-priority priority
Lệnh đầu tiên cấu hình độ ưu tiên của hệ thống để xác định Switch nào làm Switch điều khiển Ethechannel, hoặc nếu độ ưu tiên (priority) bằng nhau thì Switch nào có địa chỉ MAC nhỏ hơn sẽ được chọn. Ta còn xác định độ ưu tiên của cổng để xác định xem cổng nào là hoạt động (active) và cổng nào ở trạng thái chờ (standby). Cổng có độ ưu tiên nhỏ sẽ hoạt động và, lớn sẽ ở trạng thái chờ. Các chế độ trong lệnh channel-group number { On | Passive | active } lần lượt tương tự như { On | Auto | Desirable } trong PAGP
Khi các cổng được cấu hình như là thành viên của EtherChannel, switch sẽ tự động tạo ra các cổng EtherChanel. Interface này sẽ đại diện cho cả bundle
Switch(config)# interface type mod/num
Switch(config-if)# channel-protocol pagp
Switch(config-if)# channel-group number mode {on | {auto | desirable} [non-silent]}
Trên tất cả các switch Cisco, ta có thể cấu hình để chọn giao thức PAGp và LACP. Các đời cũ hơn như 2950 có thê chi hỗ trợ Pagp. Từng giao diện nằm trong EtherChannel phải được cấu hình và gán cùng một nhóm duy nhất (từ 1 đến 64).