Gateway load-balancing protocol (GLBP) – Ứng dụng cân bằng tải nhiều line Internet

I. GLBP – Gateway Loand Balacing Protocol

1) Khái niệm

– GLBP là một giao thức độc quyền của Cisco được thiết kế để khắc phục những hạn chế của giao thức dự phòng cho router hiện tại. Một số trong những khái niệm là tương tự như với HSRP / VRRP, nhưng các thuật ngữ khác nhau và tính năng và mạnh mẽ và năng động.
– GLBP cung cấp các router backup tự động cho các host cấu hình với một gateway mặc định duy nhất trên mạng LAN theo chuẩn IEEE 802,3.
– GLBP thực hiện một chức năng tương tự nhưng không giống với HSRP và VRRP.

VRRP HSRP và các giao thức cho phép nhiều router để tham gia vào một nhóm Virtual Router cấu hình với một địa chỉ Virtual IP. Một Router được bầu là Active Router để chuyển tiếp địa chỉ IP ảo đến cho nhóm. Các Router khác trong nhóm làm dự phòng khi Active Router bị chết.

GLBP cung cấp cân bằng tải trên nhiều thiết bị định tuyến (gateway) bằng cách sử dụng một địa chỉ Virtual IP và nhiều địa chỉ Virtual MAC. Mỗi client được cấu hình với cùng địa chỉ Virtual IP, và tất cả các Router trong Virtual Router group tham gia vào quá trình chuyển tiếp packet. Khi một client gửi lên ARP Request yêu cầu địa chỉ MAC của Virtual IP,GLBP gửi trả lại ARP Reply với địa chỉ Virtual MAC đã được gán cho một Router trong nhóm. Kết quả là các client sử dụng cùng một địa chỉ gateway, nhưng khác địa chỉ MAC cho nó.

– GLBP giao tiếp với nhau thông qua địa chỉ multicast 224.0.0.102, User Datagram Protocol (UDP) cổng 3222 (source và destination ). Hello message được gửi đi 3s/lần, Hold time là 10s.

Các lợi ích của GLBP :

– Load sharing : bạn có thể cấu hình trên GLBP để cho traffic của các client trong LAN được chia tải trên các router trong GLBP group,qua đó cân bằng tải ( load balancing) trên các router trong group. Vấn đề load – balancing được đề cập ở phần sau.

– Multiple Virtual Routers : GLBP hỗ trợ lên tới 1024 virtual routers (GLBP group), và mỗi group có 4 virtual router.

– Preemption : GLBP cho phép bạn có khả năng chiếm quyền một con active router với một con backup router có priority cao hơn.

– Authentication : GLBP dùng password dạng simple text để xác thực giữa các thành viên trong GLBP group để phát hiện lỗi trong khi cấu hình. Các router trong GLBP group mà có chuỗi string xác thực khác với các router thành viên khác thì sẽ không được chấp nhận.

2) Active Virtual Gateway – AVG

– Tất cả các Router trong group bầu chọn ra một con Router tốt nhất làm Active Virtual Gateway – AVG, các Router còn lại làm backup cho AVG. Router AVG là route có giá trị ưu tiên (priority) cao nhất, hoặc có địa chỉ IP lớn nhất trong group nếu các router có cùng priority. AVG sẽ reply tất cả các gói tin ARP request với các địa chỉ Virtual MAC khác nhau. Đây là thuật toán load – balacing của GLBP

Đồng thời AVG cũng phân phát các địa chỉ Virtual MAC cho các router trong GLBP group. Tối đa có 4 địa chỉ virtual MAC được sử dụng trong group. Mỗi virtual MAC gán cho một router được gọi là AVF – Active Virtual Forwarder. AVF chuyển tiếp các traffic có địa chỉ virtual MAC là của nó. Các Router còn lại sẽ làm backup hay secondary virtual forwarder trong trường hợp AVF chết


 

– Router A là con AVG cho GLBP group, và router A giữ địa chỉ virtual IP là 10.21.8.10; đồng thời router A cũng là con AVF với địa chỉ virtual MAC là 0007.b400.0101

Router B là một thành viên trong GLBP group,và nó có địa chỉ virtual MAC là 0007.b400.0102.

– Client 1 có địa chỉ IP default gateway là 10.21.8.10 và địa chỉ MAC của gateway là 0007.b400.0101

Client 2 có cùng địa chỉ IP default gateway nhưng có địa chỉ MAC gateway là 0007.b400.0102 bởi vì router B chia sẻ traffic với router A.

3) Active Gateway Forwarder – AVF

– Mặc định GLBP sử dụng các gói tin hello message được gửi chu kỳ 3s/lần để phát hiện ra AVF bị chết. Trong thời gian Hold time là 10s, mà AVG không nhận được hello message từ AVF, nó xem như AVF đó đã chết. Và AVG gán vai trò của con AVF đã chết cho một router khác. Router này vốn đã là một AVF với một virtual MAC khác.

Như vậy là Router này có tới 2 địa chỉ virtual MAC. Mặc dù router có thể giả trang 2 địa chỉ virtual MAC để có thể hỗ trợ 2 chức năng AVF, nhưng điều này không thể kéo dài trong một thời gian dài. AVG sử dụng 2 bộ Timer để giải quyế tình huống này

+ Redirect Timer : quyết định khi nào AVG sẽ ngừng sử dụng virtual MAC cũ trong các ARP reply. AVF có địa chỉ virtual MAC cũ này tiếp tục đóng vai trò là gateway cho các client truy cập tới nó

Redirect timer mặc định là 10 phút (600 giây) và có thể nằm trong khoảng 0 – 3600 giây (1 giờ).

+ Timeout : khi hết thời gian timeout,địa chỉ MAC cũ và AVF sử dụng nó sẽ được flush ra tất cả các GLBP. Tại thời điểm này, các client vẫn còn sử dụng địa chỉ virtual MAC cũ phải cập nhật lại địa chỉ mới.

Timeout mặc định là 14 400 giây (4 giờ) ,và có thể nằm trong khoảng 700 – 64800 giây (18 giờ).

Cấu hình :

Switch(config – if )# glbp group timers redirect redirect timeout

4) GLBP Virtual MAC Address Assignment

– Một GLBP group cho phép tối đa có 4 địa chỉ virtual MAC cho mỗi group. Router AVG có nhiệm vụ cấp phát địa chỉ virtual MAC theo thứ tự cho các router khác trong nhóm.
– AVG cũng gán cho chính nó một virtual MAC,và nó được xem như là primary virtual forwarder
– Các router khác trong GLBP group học địa chỉ virtual MAC thông qua gói tin hello.
– Định dạng của địa chỉ MAC : 0007.b400 xxyy

                    xx – group
                    yy – số thứ tự.

5) GLBP Priority

– Độ ưu tiên Priority được dùng để bầu chọn ra router AVG. Router có độ ưu tiên priority cao nhất sẽ được làm AVG.
– Priority có giá trị từ 1 – 255 ,sử dụng command

Router(config – if)#glbp group priority level

– Mặc định GLBP tắt tính năng preemptive. Bạn có thể bật tính năng preemptive với command :

Router(config – if)# glbp group preempt

Preemptive cho phép một router backup AVG có thể lên làm router AVG nếu như backup router có giá trị ưu tiên cao hơn AVG router.

6) GLBP Weighting and Tracking

– GLBP sử dụng giá trị Weighting để quyết định khả năng forward của mỗi router trong GLBP group. Hay nói cách khác,GLBP sử dụng Weighting để quyết định một router có trở thành AVF cho một địa chỉ virtual MAC trong một group.

Mỗi router bắt đầu với một giá trị Weighting maximum ( 1 – 254 ). Khi một cổng Interface down,giá trị Weighting sẽ giảm đi một khoảng theo cấu hình. Mặc định router có giá trị weight cao nhất là 100.

– GLBP dùng giá trị ngưỡng ( threshold ) để quyết định một route có thể hay không thể làm AVF :
+ Nếu giá trị Weighting nhỏ hơn giá trị lower threshold ,route đó sẽ không làm AVF
+ Nếu giá trị Weighting lớn hơn giá trị upper threshold ,router trở lại làm AVF

Command :

Router(config-if)# glbp group weighting maximum [lower lower] [upper upper]

– Tracking : GLBP hỗ trợ 2 kiểu track : interface và Object
+ Track Interface : gồm 2 kiểu trach là track line – protocol (interface ở trạng thái up/up) và track ip routing.

Track line – protocol: GLBP sẽ kiểm tra tình trạng up/down của Interface,nếu interface ở trạng thái up/down thì giảm giá trị weight.

Track ip routing :GLBP sẽ kiểm tra tình trạng ip routing trên cổng interface để track tình huống cổng interface bị mất địa chỉ IP thì giảm giá trị weight.

Command :

Router(config)# track object-number interface type number [line – protocol | ip routing]

Object number là một giá trị bất kỳ nằm trong khoảng 1 – 500

+ Track Object : là track IP routing. GLBP sẽ kiểm tra khả năng đi đến được (reachability),giá trị metri và ngưỡng metric (metric threshold).

GLBP dùng kiểu track này để kiểm tra khả năng đi đến được một network đầu xa. Nếu một route có trong bảng định tuyến thì route đó ở trạng thái up,khi không có trong bảng định tuyến thì GLBP xem nó bị down,và giảm giá trị weight.

Command :

Router(config)# track ip route reachability

Sau cùng là cấu hình track trên interface để GLBP biết được object nào đang được track :

Router(config – if )#glbp group weighting track object – number [decrement value]

Giá trị value này nằm trong khoảng 1 – 254

Mặc định,khi không cấu hình giá trị value, thì value có giá trị là 10.

7) GLBP Load Balancing

Có 3 kiểu load – balancing trong GLBP :

– Round robin : mỗi gói tin ARP request mới được khởi tạo để truy vấn địa chỉ MAC của virtual router (virtual gateway), AVG sẽ gửi về gói tin ARP reply trong đó có mang theo địa chỉ virtual MAC. Traffic của client gửi lên sẽ được phân phối đều nhau đến tất cả các router AVF trong GLBP group. Đây là kiểu load – balancing mặc định của GLBP.



 

Mô hình lab ở trên :
+ SW1,SW2,SW3 cấu hình GLBP, giả sử SW1 làm AVG đồng thời cũng là AVF, còn SW2 & SW3 là AVF

+ SW1 sẽ giữ địa chỉ Virtual IP là 192.168.1.1,và SW1 tạo ra 3 Virtual MAC và gán cho các SW2 & SW3 một cách ngẫu nhiên

0007.b400.0101 gán cho SW1
0007.b400.0102 gán cho SW3
0007.b400.0103 gán cho SW2

+ Khi các PC gửi lên gói tin ARP reply với mong muốn nhận được địa chỉ MAC của gateway – 192.168.1.1 Chỉ có SW1 là AVG mới được trả lời lại gói tin ARP request,các SW2& SW3 chỉ nhận gói tin ARP request nhưng sau đó chúng drop.

+ SW1 gửi trả lại ARP reply mang theo thông tin địa chỉ MAC của virtual IP,và việc gán MAC cho từng PC theo xoay vòng : PC1 thì gán cho mac 01,PC2 gán cho mac 03,PC3 thì gán cho mac 02

+ Các PC đã nhận được các gói ARP reply,và biết được địa chỉ MAC của gateway mà SW1 cấp xuống.

Như vậy, mỗi khi PC1 gửi dữ liệu thì gói tin sẽ đi qua SW1

PC2 gửi dữ liệu thì gói tin sẽ đi qua SW3
PC3 gửi dữ liệu thì gói tin sẽ đi qua SW2

Đây chính là cơ chế load – balancing theo kiểu Round – robin của GLBP

– Weighted : đây là kiểu load – balancing dựa vào tỷ lệ giá trị weighting của các router.
– Host – dependent : là kiểu load-balancing mà địa chỉ virtual MAC được gán tĩnh cho client.

Command :

Switch(config-if)#glbp group load-balancing [round-robin | weighted | host-dependent]

II. GLBP Configuration

1) Enable & Verifying GLBP

– Để enable tính năng GLBP,cần phải gán cho GLBP group một địa chỉ virtual IP bằng câu lệnh sau:

Switch(config-if)# glbp group ip [ ip address ] [secondary]

Nếu ip – address không được cấu hình, thì router sẽ được học từ một router khác trong GLBP group. Nếu router đó là AVG thì nên cấu hình virtual IP rõ ràng, nếu không thì sẽ không có router nào biết được địa chỉ virtual mac này.

– Cấu hình giá trị weighting, priority

Switch(config-if)# glbp group priority value

Router(config-if)#glbp group weighting maximum [lower lower] [upper upper]

– Cấu hình chiếm quyền và thời gian lên chiếm quyền

Switch(config-if)# glbp group preempt
Switch(config-if)# glbp group preempt delay minimum msec 500

– Cấu hình xác thực

Switch(config-if)# glbp group authentication md5 keystring

2) Show & debug command

Switch (config-if)# show glbp brief
Switch (config-if)# show glbp Fastethernet 0/0

Switch (config-if)# debug condition glbp
Switch (config-if)# debug glbp errors
Switch (config-if)# debug glbp events
Switch (config-if)# debug glbp packets
Switch (config-if)# debug glbp terse

(Tổng hợp)  

ĐÁNH GIÁ post
Bài viết liên quan

Tư vấn miễn phí (24/7) 094 179 2255