Thursday, February 17, 2011

Unequal Cost Path Load Balancing in IGRP & EIGRP

->>>
Về cơ bản, cân bằng tải tên router là khả năng phân phối các gói tin trên các port có tuyến kết nối đến một địa chỉ đích nào đó. Điều này tối ưu việc sử dụng băng thông trên các tuyến kết nối khác nhau để tránh trường hợp lưu lượng thông tin ( traffic) làm quá tải ( overload) một tuyến truyền dẫn trong khi tuyến khác lại ở trạng thái rỗi. Tùy theo loại thiết bị và giao thức mà Router có thể thực hiện các cân bằng tải theo những giải thuật khác nhau nhưng nhìn chung chỉ có 2 loại : cân bằng tải trên các tuyến cùng khoảng cách , còn gọi là metric, ( equal cost load balancing) và cân bằng tải trên các tuyến khác metric. ( unequal load balancing).

Trong phạm vi giới hạn, bài viết chỉ đề cập đến cách thức Router chạy EGIRP thực hiện cân bằng tải trên các tuyến kết nối không cùng metric ( unequal load balancing).

Cân bằng tải trong EIGRP.

Hầu như tất cả các giao thức định tuyến ( Routing Protocol) đều hỗ trợ cân khả năng cân bằng tải trên các tuyến có khoảng cách bằng nhau. Thêm vào đó, bằng cách nhân thêm hệ số ( gọi là biến variance) vào các metric, IGRP và EIGRP còn có thể thực hiện cân bằng tải trên các tuyến kết nối khác nhau.

Lệnh variance đưa ra một tham số n ( user defined, ranging from 1 to 128) mà theo đó router sẽ cân bằng tải trên tất cả các tuyến có metric nhở hơn tích của tuyến có metric nhỏ nhất và n.

Giả sử có x1, x2, x3… tuyến từ A đến B, mỗi tuyến có metric là m1, m2, m3… thì các tuyến mà router sẽ thực hiện cân bằng tải phải có metric nhỏ hơn hoặc bằng

Metric of Eligible Load Balancing Links < Min (m1, m2, m3…) * n

Một điểm cấn lưu ý là khi đó việc phân phối dữ liệu qua các tuyến kết nối sẽ được thực hiện theo tỉ lệ tương xứng với metric của nó.

Một ví dụ minh họa như sau:



Trong sơ đồ trên, có 3 tuyến đến mạng X với metric như sau:
(hop-hop-hop/metric)

- E-B-A/30
- E-C-A/20
- E-D-A/45

Theo thường lệ, Router E sẽ chọn đường thứ 2, E-C-A/20, để chuyển các các gói tin đến mạng X, tuy vậy, bằng cách dùng lệnh variance, Rouer E cũng có thể thực hiện cân bằng tải qua tuyến E-B-A.

Cấu hình như sau:

router eigrp 1
network x.x.x.x
variance 2


Trong trường hợp này n bằng 2, metric nhỏ nhất của các tuyến Min (m1, m2, m3…) = 20 nên theo công thức trên Min (m1, m2, m3…) * n = 40, vậy 2 tuyến có thể cân bằng tải là E-C-A/20 và E-B-A/30.

Vậy nếu chọn n bằng 3, liệu Router có phân phối tải trên cả 3 tuyến hay không?

Câu trả lời là không với EIGRP do E-D-A/45 không phải là tuyến kế thích hợp (feasible successor ) sau tuyến chính E-C-A (successor). Phần này sẽ được giải thích chi tiết hơn trong các bài viết khác về EIGRP.

Sau khi đã chọn được các tuyến thích hợp Router sẽ phân phối tải dựa theo lệnh traffic-share.

Xét cấu hình sau:

router eigrp 1
network x.x.x.x
variance 2
traffic-share balanced

!... cân bằng tải trên các tuyến dựa theo tỉ lệ metric của chúng

Với đường E-C-A: 30/20 =3/2 =1
Với đường E-B-A: 30/30 =1

Do các tỉ số này được làm tròn về số nguyên ( integer) nên lúc này tải được cân bằng theo tỉ lệ 1-1 trên cả 2 tuyến.

Bây giờ giả sử, E-B=25 và B-A=15 thì metric tuyến E-B-A sẽ là 40 bằng với Min (m1, m2, m3…) * n = 40 nên sẽ bị loại ra khỏi danh sách các tuyến được phân phối tải. Tăng n lên 3 thì Router sẽ tiếp tục chia tải theo tỉ số 2/1 như sau:

- E-C-A : 40/20=2
- E-B-A: 40/40=1

Vậy cứ 2 gói tin được chuyển qua E-C-A thì lại có 1 gói qua E-B-A.

Trong cấu hình sau, Router chỉ gửi các gói tin qua tuyến nào co metric nhỏ nhất (E-C-A), ngay cả khi có nhiều tuyến khác nằm trong bảng Routing của nó.

router eigrp 1
network x.x.x.x
variance 3
traffic-share min across-interfaces

!... chỉ gửi gói tin qua tuyến có metric nhỏ nhất

Khi EIGRP là bản “Enhanced” của IGRP nên cơ chế và cách cấu hình cân bằng tải là như nhau.
<<<-
để mình giải thích nốt ý của bạn themask
theo mô hình trên thì router E sẽ có 3 RD ( report distance - khoảng cách từ thằng neighbor tới đích mà router E nhận được)
+ RD (E-B-A) : 10
+ RD (E-C-A) : 10
+ RD (E-D-A) : 25
và FD ( feasible distance - khoảng cách ngắn nhất tới đích ) ở đây sẽ là 20 (E-C-A)
vì RD luôn phải nhỏ hơn FD mà RD ( E-D-A ) > FD ----> tuyến này sẽ không được lựa chọn 

Load balancing với EIGRP

hi anh Minh!

Nhưng ở trạng thái bình thường default, đối với giao thức EIGRP trong routing table chỉ chứa maximum là 4 routes cho the same destination. EIGRP hỗ trợ tối đa 6 routes cho the same destination (cho cả unequal load balancing or equal load balancing). Nhân đây em cũng có một thắc mắc là khi ta set giá trị variance do vậy tạo được nhiều hơn 6 routes thì sẽ bỏ routes nào. Giả sử có 8 routes thoả mãn variance x best metric, nhưng trong đó có 4 routes cùng metric thì lúc này Router sẽ dựa vào paramaters nào để loại bỏ đi 2 routes.
Mong được anh chỉ giáo thêm. :lol:

thân chào! 

CP/IP:

Nếu có nhiều routes nằm trong range hợp lệ, những routes đó sẽ được cập nhật vào bảng routing table. Tuy nhiên, có một điều cần chú ý là chỉ những feasible distance successor mới được load-balacing.

Vậy, trong câu hỏi của bạn, những route nào không phải là feasible successor thì sẽ không được load-balancing.

Chúc thành công, 

chào anh Minh!

Ở đây 8 routes của này đều là feasible successor hết nên được xét để load-balancing. Vấn đề ở đây là EIGRP chỉ support tối đa là 6 routes thôi. Có nghĩa là EIGRP chỉ cập nhật tối đa 6 routes đến cùng destination vào trong một Routing table. Điều này em chỉ đọc lý thuyết, phải chăng trên Lab thực EIGRP cập nhật tất cả các routes trong range hợp lệ? Nếu trên Lab thực sự như vậy thì mong anh confirm giúp em nhé.

chân thành cảm ơn anh nhiều. 

:P Ah!Cho e hỏi vài điều nhe
1.Như thế nào là 1 feasible successor route
2.Nếu là load-balancing,thì chỉ có 2 route nên dễ phân chia,1 packet theo route này,1 theo route còn lại.Nhưng trong trường hợp load-sharing nhiều route như các sưhuynh vừa nêu,số packet sẽ được phân chia cho mỗi route như thế nào.
3.Có phải là ta khôngthể áp dụng load-sharing đốivới các TCP traffic không?
Đây là những thắc mắc từ lâu của e đấy,mong nhận được chỉdẫn
Mến
"Người đi trước rước ngườiđi sau"
 1.Như thế nào là 1 feasible successor route

- EIGRP hoạt động dựa trên ba bảng database:
• bảng routing-table
• bảng topology
• bảng neighbor

Bảng routing-table là nơi chứa các đường đi tốt nhất. Bảng topology là nơi chứa các đường đi có thể đến một network nào đó. Bảng neighbor lưu thông tin về các routers lận cận.

Feasible successor route là các route được lưu trong bảng topology. Theo một nghĩa bình dân, đây là nơi chứa các route dự bị cho route tốt nhất. Khi đường đi tốt nhất bị down, router sẽ tìm kiếm đường đi dự bị từ bảng topology này.


2.Nếu là load-balancing,thì chỉ có 2 route nên dễ phân chia,1 packet theo route này,1 theo route còn lại.Nhưng trong trường hợp load-sharing nhiều route như các sưhuynh vừa nêu,số packet sẽ được phân chia cho mỗi route như thế nào:

Để có thể qui định cách thức load-sharing cho nhiều routes, ta có thể dùng lệnh trong router-mod :

#traffic-share

Ở chế độ mặc định, traffic sẽ được phân phối tỉ lệ với metric:
ví dụ: nếu variance được đặt bằng 3, routes tốt nhất sẽ phải chịu traffic nhiều gấp 3 lần routes xấu nhất.

Để một routes được tham gia vào quá trình unequal-load sharing, cần thêm điều kiện sau đây phải thõa mãn:

+ Nếu thêm routes này vào thì không được vượt quá số routes tối đa đã đợc định nghĩa bằng maximum-path

Do đó, trong câu hỏi của bạn TCP/IP, các routes nào vượt qua maximum-paths 6 sẽ không được tham gia vào quá trình load-sharing. Câu hỏi kế tiếp là nếu vậy thì những routes nào sẽ bị loại bỏ, mình sẽ nghiên cứu chi tiết và trả lời cho bạnTCP/IP.

3.Có phải là ta khôngthể áp dụng load-sharing đốivới các TCP traffic không?

PAT or NAT?