Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Khảo sát hoạt động CEF (phần cuối)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Khảo sát hoạt động CEF (phần cuối)

    Các cơ chế cân bằng tải Load-Sharing trên Router


    Tại R3, có thể tùy chỉnh để Router sử dụng một trong các cơ chế cân bằng tải sau:
    1. Per-Destination Load-Sharing sử dụng Fast Switching
    2. Per-Source-Destination Load-Sharing sử dụng CEF
    3. Per-Packet Load-Balancing sử dụng Process Switching
    4. Per-Packet Load-Balancing sử dụng CEF

    Nếu CEF được cấu hình trên “inbound interface”, các gói tin packets sẽ được chuyển mạch bằng cơ chế “CEF switched” bất chấp cấu hình trên “outbound interface” là gì. Nếu “inbound interface” không được cấu hình để sử dụng cơ chế CEF, cấu hình trên các “exit interface” sẽ quyết định cơ chế chuyển mạch “switching method” là gì.


    Per-Destination Load-Sharing sử dụng Fast Switching
    IOS thực hiện “Per-Destination Load-Sharing” nếu “exit interfaces” cấu hình “Fast Switching” và CEF không được kích hoạt trên “inbound interface”. Fast-switching được kích hoạt mặc định theo hướng outbound cho dù cơ chế CEF có được kích hoạt trên interface hay không. Với cơ chế Fast-Switching, tất cả các packets gửi tới một đích nhất định (specific destination) luôn luôn được gửi đi trên cùng một interface. Theo sơ đồ minh họa, tất cả lưu lượng traffic gửi tới 172.16.1.1 luôn luôn được gửi qua cùng một interface/link. Nếu 172.16.1.1 là một SQL database server thì cơ chế “Per-Destination Load-Sharing” không còn phù hợp nữa khiến cho lưu lượng trên “top link” chịu tải nhiều hơn so với lưu lượng traffic trên “bottom link”.

    Per-Source-Destination Load-Sharing sử dụng CEF
    Phương thức cân bằng tải phổ biến nhất là “Per-Destination Load-Balancing”, đây là cơ chế cân bằng tải mặc định nếu CEF được kích hoạt. Cơ chế cân bằng tải “CEF Per-Destination Load-Balancing” được thực hiện bằng cách “hashing” thông tin “source và destination IP address” tính ra được giá trị “unique hash ID” rồi sau đó dựa vào giá trị này mà các gói tin được phân phối một cách ngẫu nhiên (randomize) theo các hướng “end-to-end paths”. Các hướng đi “Active paths” được đánh dấu internally các định danh “hash buckets” dao động từ 1 cho tới 16. Lựa chọn đường đi path-to-bucket được phân phối khác nhau tùy vào loại “load balancing” sử dụng và số lượng các “active paths”. Tất cả các traffic có cùng “source address” gửi tới cùng một “destination address” sẽ luôn di chuyển trên cùng một interface. Đây là cơ chế cần bằng tải load-sharing có nhiều ưu điểm nhưng lưu lượng traffic vẫn có thể vẫn chưa thật sự được phân phối đều ra tất cả các hướng.

    16 buckets sẽ được phân phối đều cho tất cả các “active paths”. Nếu có “2 paths”, 16 buckets/2 paths = 8 hash sẽ được phân phối cho mỗi hướng đi path theo phương thức xen kẽ (interlace). Lưu lượng traffic theo đó cũng được gửi đi theo cách thức tương tự: Top, bottom, top, bottom, top, bottom, top, bottom, …

    Để kiểm tra tỉ lệ phân phối các bucket cho các “active path”, ta có thể thực hiện câu leẹnh “hidden command” sau:
    Router# show ip cef <prefix> internal

    Tại R3, kiểm tra tỉ lệ phân phối các bucket cho “2 active path”.


    Để kiểm tra kết quả chọn đường theo cơ chế cân bằng tải Per-Source-Destination, ta có thể sử dụng câu lệnh sau:
    Router# show ip cef exact-route

    Kiểm tra kết quả chọn hướng trên R3.


    Nếu có “3 paths” giữa R3 và R2 thì “16 hash buckets” không thể phân phối đều cho các “active paths” thì các buckets cuối cùng còn lại sẽ rơi vào trạng thái disabled. Nếu có “3 paths”, “16 hash buckets” sẽ được làm tròn thành số chia hết được cho 3 là “15 hask buckets”, từ đó 15/3 = 5 hash buckets sẽ được phân phối đều cho mỗi path theo phương thức xen kẽ (interlace). Lưu lượng traffic trong tình huống này sẽ được phân phối theo các hướng 1st interface, 2nd interface, 3rd interface, 1st interface, 2nd interface, 3rd interface, … Tỉ lệ phân phối hiển thị trong câu lệnh “show ip cef 172.16.1.1 internal” tương ứng Load-Distribution sẽ là 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2, giá trị “hash bucket 16” không được sử dụng và được gỡ bỏ (removed).

    Per-Packet Load-Balancing sử dụng Process Switching
    Đây là phương thức cân bằng tải “Load-Balancing” cổ điển nhất, mỗi packet sẽ được punt tới “processing level” để thực hiện tiến trình “destination look-up”, mỗi gói tin packet sẽ được phân phối đều ra tất các cả các interface lần lượt từng gói một.
    Cơ chế cân bằng tải “Per-Packet Load-Balancing” sử dụng Process-Switching có nhiều nhược điểm đối với hệ thống mạng network lớn, CPU có thể bị lạm dụng quá mức, thời gian gói tin đến, lưu trữ vào bộ nhớ memory rồi gửi đi (in-memory data transfer time to & from the I/O Memory) sẽ tăng lên đáng kể, và một nhược điểm khác nữa là các gói tin packet có thể đến đích không đúng thứ tự. Do đó, CEF vẫn là cơ chế cân bằng tải khả thi nhất.

    Per-Packet Load-Balancing sử dụng CEF
    Cơ chế cân bằng tải “Per-Packet Load-Balancing” là một hình thái khác của cơ chế chuyển mạch CEF. Để kích hoạt cơ chế cân bằng tải “Per-Packet Load-Balancing”, ta thực hiện câu lệnh sau trên các “outgoing interfaces”:
    Router(config-if)# ip load-sharing per-packet

    Với cơ chế cân bằng tải “Per-Packet Load-Balancing”, một packet được gửi trên liên kết link đầu tiên, packet tiếp theo sẽ được gửi trên liên kết link kế tiếp cho dù gói tin này có thông tin destination giống thông tin destination của gói đầu tiên, cơ chế này thường được áp dụng trên những đường có cost bằng nhau (equal-cost paths).

    Cơ chế cân bằng tải “Per-Packet Load-Balancing” sẽ phân phối tải (load) đều trên tất cả các đường và có nhiều ưu điểm hơn so với các cơ chế cân bằng tải (switching mechanism) khác nhưng chi phí cho các thiết bị hỗ trợ cho cơ chế này cũng khá đắt đỏ. Bởi vì các gói tin packets tới cùng một destination theo các hướng khác nhau (different paths) nên có thể các packets sẽ đến đích không đúng thứ tự (out of order), và không phù hợp với một số ứng dụng applications nhất định.

    Thực hiện câu lệnh sau để kiểm tra tỉ lệ cân bằng tải của cơ chế “Per-Packet Load-Balancing”. The output from the “show ip cef <prefix> internal“:
    Router# show ip cef <prefix> internal


    Để khảo sát quá trình cân bằng tải Per-Packet ta sử dụng câu lệnh “show ip cef exact-route“.


    Thầy Bùi Quốc Kỳ – VnPro
    Mời các bạn xem các phần trước: phần 1, phần 2, phần 3.
    Phạm Thanh Đông Khê
    Email: dongkhe@vnpro.org
    Hãy share hoặc like nếu thông tin hữu ích!
    ---------------------------------------------------------------------------------------------------------------------------------------------------
    Trung Tâm Tin Học VnPro
    149/1D Ung Văn Khiêm, P.25, Q.Bình Thạnh, Tp.HCM
    Tel: (08) 35124257 (5 lines)
    Fax: (08) 35124314

    Home Page: http://www.vnpro.vn
    Forum: http://www.vnpro.org
    Twitter: https://twitter.com/VnVnpro
    LinkedIn: https://www.linkedin.com/in/VnPro
    - Chuyên đào tạo quản trị mạng và hạ tầng Internet
    - Phát hành sách chuyên môn
    - Tư vấn và tuyển dụng nhân sự IT
    - Tư vấn thiết kế và hỗ trợ kỹ thuật hệ thống mạng

    Videos: http://www.dancisco.com
    Blog: http://www.vnpro.org/blog
    FB: http://facebook.com/VnPro
Working...
X