Trong các bài viết trước, chúng ta đã cùng trao đổi về các giao thức dự phòng gateway cho end – user trong mạng LAN gồm HSRP và VRRP. Các giao thức này cung cấp một cơ chế dự phòng gateway rất hiệu quả và được sử dụng rộng rãi trong các mạng doanh nghiệp ngày nay.
Tuy nhiên, một nhược điểm thấy rõ của hai giao thức HSRP và VRRP là chúng không hỗ trợ hoạt động cân bằng tải giữa các gateway. Để thực hiện cân bằng tải, ta phải sử dụng giải pháp khai báo nhiều nhóm HSRP/VRRP khác nhau và cấu hình để mỗi router gateway đảm nhận nhiệm vụ active/master cho một nhóm. Điều này dẫn đến cấu hình IP cho các host đầu cuối trở nên phức tạp vì lúc này trên mạng LAN xuất hiện nhiều gateway ảo khác nhau của nhiều group khác nhau.
Giao thức GLBP của Cisco khắc phục được vấn đề này, cho phép chỉ cần tạo ra một group duy nhất với một router ảo duy nhất nhưng vẫn thực hiện được cân bằng tải giữa các router cùng tham gia chạy GLBP. Trong bài viết tuần này, chúng ta sẽ cùng trao đổi về giao thức GLBP. Ta sử dụng lại sơ đồ lab quen thuộc đã dùng để khảo sát HSRP và VRRP trong các bài viết trước để khảo sát hoạt động của GLBP. Để bạn đọc tiện theo dõi, phần mô tả và phần cấu hình ban đầu được nhắc lại trong bài viết này.
Sơ đồ
Mô tả
– Sơ đồ lab gồm 4 router được đấu nối với nhau và quy hoạch IP như hình 1.
– Các router R1, R2 và R3 thực hiện chạy định tuyến đảm bảo mọi địa chỉ thấy nhau.
– Router Host đóng vai trò một host trên mạng LAN 192.168.12.0/24.
– Bạn đọc có thể sử dụng thiết bị thật hoặc giả lập trên GNS – 3 để thực hiện bài lab
này.
Thực hiện
Bước 1: Cấu hình ban đầu
– Thực hiện đặt IP trên các cổng router theo quy hoạch IP như được chỉ ra trên hình 1.
– Chạy định tuyến RIPv2 trên các router R1, R2 và R3 đảm bảo các subnet trên sơ đồ đi đến được nhau.
Cấu hình
Trên R1:
R1(config)#interface f0/0
R1(config-if)#no shutdown
R1(config-if)#ip address 192.168.12.1 255.255.255.0
R1(config-if)#exit
R1(config)#interface s0/0/0
R1(config-if)#no shutdown
R1(config-if)#ip address 192.168.13.1 255.255.255.0
R1(config-if)#exit
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#no auto-summary
R1(config-router)#network 192.168.12.0
R1(config-router)#network 192.168.13.0
R1(config-router)#exit
Trên R2:
R2(config)#interface f0/0
R2(config-if)#no shutdown
R2(config-if)#ip address 192.168.12.2 255.255.255.0
R2(config-if)#exit
R2(config)#interface s0/0/0
R2(config-if)#no shutdown
R2(config-if)#ip address 192.168.23.2 255.255.255.0
R2(config-if)#exit
R2(config)#router rip
R2(config-router)#version 2
R2(config-router)#no auto-summary
R2(config-router)#network 192.168.12.0
R2(config-router)#network 192.168.23.0
Trên R3:
R3(config)#interface loopback 0
R3(config-if)#ip address 192.168.3.1 255.255.255.0
R3(config-if)#exit
R3(config)#interface s0/0/0
R3(config-if)#no shutdown
R3(config-if)#ip address 192.168.13.3 255.255.255.0
R3(config-if)#exit
R3(config)#interface s0/1/0
R3(config-if)#no shutdown
R3(config-if)#ip address 192.168.23.3 255.255.255.0
R3(config-if)#exit
R3(config)#router rip
R3(config-router)#version 2
R3(config-router)#no auto-summary
R3(config-router)#network 192.168.13.0
R3(config-router)#network 192.168.23.0
R3(config-router)#exit
Kiểm tra
Ta kiểm tra rằng định tuyến đã hội tụ trên các router:
R1#show ip route rip
R 192.168.23.0/24 [120/1] via 192.168.13.3, 00:00:12, Serial0/0/0
[120/1] via 192.168.12.2, 00:00:18, FastEthernet0/0
R 192.168.3.0/24 [120/1] via 192.168.13.3, 00:00:12, Serial0/0/0
R2#show ip route rip
R 192.168.13.0/24 [120/1] via 192.168.23.3, 00:00:17, Serial0/0/0
[120/1] via 192.168.12.1, 00:00:12, FastEthernet0/0
R 192.168.3.0/24 [120/1] via 192.168.23.3, 00:00:17, Serial0/0/0
R3#show ip route rip
R 192.168.12.0/24 [120/1] via 192.168.23.2, 00:00:23, Serial0/1/0
[120/1] via 192.168.13.1, 00:00:04, Serial0/0/0
Bước 2: Cấu hình GLBP
– Cấu hình GLBP trên các router R1 và R2 để các router này thực hiện dự phòng gateway cho các host trên mạng LAN 192.168.12.0/24 đồng thời cân bằng tải dữ liệu đi từ trong LAN ra bên ngoài giữa hai router.
– Cấu hình để R1 đảm nhận vai trò của AVG router trong hoạt động GLBP và R2 dự phòng cho AVG router này.
Cấu hình
Trên R1:
R1(config)#interface f0/0
R1(config-if)#glbp 1 ip 192.168.12.254
R1(config-if)#glbp 1 priority 150
R1(config-if)#glbp 1 preemp
R1(config-if)#exit
Trên R2:
R2(config)#interface f0/0
R2(config-if)#glbp 1 ip 192.168.12.254
R2(config-if)#glbp 1 preempt
R2(config-if)#exit
Ghi chú
GLBP – Gateway Load Balancing Protocol là một giao thức dự phòng gateway của Cisco. Tương tự như HSRP và VRRP, giao thức này cho phép nhiều router cùng tham gia vào một group, xây dựng nên một router ảo để làm default – gateway cho các host trong LAN. Tuy nhiên, điểm khác biệt là GLBP không chỉ thực hiện dự phòng mà còn cho phép các router cân bằng tải lưu lượng đi từ trong LAN ra ngoài.
Ý tưởng của GLBP về cân bằng tải khá đơn giản: thay vì chỉ dùng một địa chỉ MAC cho một router ảo như với HSRP và VRRP, GLBP sử dụng 4 địa chỉ MAC cho một router ảo.
4 địa chỉ MAC này được phân bố đều cho 4 router tham gia nhóm GLBP xây dựng router ảo, mỗi router sẽ là Active cho một MAC và dự phòng cho các MAC còn lại. Một group GLBP cho phép cân bằng tải tối đa trên 4 router gateway (vì chỉ có 4 MAC trên một group); nếu có nhiều hơn 4 router tham gia nhóm, router thứ 5 trở đi sẽ dự phòng cho 4 router đang tải dữ liệu. Thông thường, ta chỉ sử dụng 2 router cho hoạt động dự phòng nên số lượng 4 đường cân bằng tải là đủ cho mọi trường hợp sử dụng.
Trong các router tham gia group, một router sẽ được bầu ra để làm nhiệm vụ điều phối, router này được gọi là AVG – Active Virtual Gateway. Router AVG này sẽ làm nhiệm vụ phân phối các địa chỉ MAC cho các router thành viên và trả lời ARP cho các host trong LAN. Cách thức AVG trả lời ARP cho các host trong LAN sẽ quyết định cách thức cân bằng tải được sử dụng. Ta cùng quan sát một ví dụ để nắm được cách thức hoạt động của GLBP (hình 2):
Trên sơ đồ hình 2 là một mạng LAN sử dụng subnet 192.168.1.0/24. Ta giả sử có 4 router cùng tham gia dự phòng gateway cho mạng LAN này và chạy GLBP với nhau để xây dựng router ảo. Router ảo sẽ được cấu hình địa chỉ IP 192.168.1.254/24 và các host trong LAN sẽ được thiết lập thống nhất trỏ default – gateway về địa chỉ IP của router ảo này.
Như đã trình bày ở trên, router ảo được cung cấp 4 địa chỉ MAC để sử dụng cho hoạt động vận chuyển layer 2 từ các host lên gateway (ta gọi là các virtual – MAC, viết tắt là VMAC). Ta giả sử router R1 được bầu chọn làm AVG, AVG R1 sẽ thực hiện phân phối 4 địa chỉ MAC này cho 4 router tham gia nhóm: R1 nhận VMAC1, R2 nhận VMAC2, R3 nhận VMAC3 và R4 nhận VMAC4. Khi một router đảm nhận một VMAC để forward dữ liệu gửi đến VMAC ấy ra ngoài, router được gọi là AVF – Active Virtual Forwarder của VMAC ấy. Trong trường hợp này, ta có R1 là AVF của VMAC1, R2 là AVF của VMAC2, R3 là AVF của VMAC3 và R4 là AVF của VMAC4.
Ta giả sử 4 PC 1, 2, 3, 4 của mạng LAN (hình 2) bắt đầu gửi dữ liệu ra khỏi LAN. Khi PC1 muốn gửi dữ liệu ra ngoài, PC1 sẽ truy vấn ARP để tìm ra MAC tương ứng với IP của default – gateway (192.168.1.254), AVG sẽ thực hiện trả lời ARP Reply với địa chỉ MAC là VMAC1 để PC1 cập nhật vào ARP cache của nó là “192.168.1.254 tương ứng với VMAC1”. Từ đó mỗi khi PC1 muốn gửi dữ liệu ra ngoài, dữ liệu này sẽ được đóng frame với source MAC là của PC và destination MAC là VMAC1. Như đã đề cập ở trên, R1 đang nắm giữ VMAC1 nên frame sẽ được đẩy lên R1 để R1 chuyển tiếp ra ngoài.
Điều tương tự cũng sẽ xảy ra với PC2. Khi PC2 muốn đi ra ngoài, nó sẽ truy vấn ARP để tìm MAC tương ứng với địa chỉ 192.168.1.254 của gateway mà nó trỏ về. AVG sẽ trả lời ARP lần này cho VMAC2 và PC2 sẽ cập nhật bảng ARP của nó là “192.168.1.254 tương ứng với VMAC2”. Kể từ đó, mọi lưu lượng mà PC2 muốn gửi ra ngoài mạng LAN đều được đẩy đến R2 để đi tiếp.
Với phương thức trả lời ARP tuần tự như vậy (ta gọi là round – robin), AVG sẽ quyết định việc cân bằng tải đi ra ngoài trải đều trên cả 4 router R1, R2, R3 và R4. Ta thấy, vấn đề cân bằng tải cho hoạt động dự phòng gateway đã được giải quyết.
AVG có thể thông qua hoạt động trả lời ARP để thay đổi phương thức cân bằng tải, ví dụ, muốn R1 phải forward dữ liệu nhiều hơn thì trả lời ARP cho VMAC của R1 nhiều hơn.
Ta có thể cấu hình phương thức cân bằng tải cho một group GLBP thông qua một số lệnh cấu hình trên router AVG của group.
Tiếp theo, ta điểm qua các bước cấu hình GLBP:
Khai báo group và IP của router ảo:
R(config-if)#glbp group-id ip IP_trên_router_ảo
Trong đó:
+ group-id: Số hiệu của group GLBP, có thể nhận giá trị từ 0 đến 1023.
+ IP_trên_router_ảo: Địa chỉ IP gán cho router ảo.
– Khai báo priority cho hoạt động bầu chọn AVG:
R(config-if)#glbp group-id priority Priority
AVG được bầu chọn dựa trên giá trị priority gán cho các router tham gia nhóm GLBP: router có priority cao nhất sẽ được bầu chọn làm AVG, các router còn lại thực hiện nhiệm vụ dự phòng cho vị trí này. Tie – breaker cho priority là địa chỉ IP của các router: nếu xảy ra trường hợp hai router có priotity tối ưu như nhau, router nào có IP cao hơn, router ấy sẽ được bầu chọn làm AVG.
Priority có thể lấy giá trị từ 1 đến 255, mặc định là 100.
Hoạt động bầu chọn AVG có tính chất non – preempt. Để thay đổi tính chất mặc
định này, ta sử dụng lệnh:
R(config-if)#glbp group-id preempt
Kiểm tra
Ta kiểm tra kết quả GLBP vừa cấu hình:
R1#show glbp brief
Interface Grp Fwd Pri State Address Active router Standby router
Fa0/0 1 - 150 Active 192.168.12.254 local 192.168.12.2
Fa0/0 1 1 - Active 0007.b400.0101 local -
Fa0/0 1 2 - Listen 0007.b400.0102 192.168.12.2 -
R2#show glbp brief
Interface Grp Fwd Pri State Address Active router Standby router
Fa0/0 1 - 100 Standby 192.168.12.254 192.168.12.1 local
Fa0/0 1 1 - Listen 0007.b400.0101 192.168.12.1 -
Fa0/0 1 2 - Active 0007.b400.0102 local -
Từ kết quả show, ta thấy mỗi router có 3 dòng thông tin: một dòng về trạng thái Active hay Standby cho vai trò AVG, hai dòng tiếp theo là hai dòng thông tin về các địa chỉ VMAC mà các router đóng vai trò AVF.
Ta thấy, hiện nay, router R1 đang đóng vai trò Active cho AVG và R2 là Standby cho vai trò AVG. Địa chỉ IP của router ảo cũng được chỉ rõ là 192.168.12.254.
R1 đang là Active cho VMAC1 – 0007.b400.0101 (AVF cho VMAC 1), đồng thời cũng là Listen cho VMAC2 – 0007.b400.0102 (dự phòng cho VMAC2). Ta có thể thấy vai trò ngược lại với VMAC2 và VMAC 1 trong kết quả show của R2.
Ta kiểm tra rằng router Host có thể đi ra ngoài mạng LAN:
Host#ping 192.168.3.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 60/75/112 ms
Kết quả phân giải ARP trên Host:
Host#show ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.12.4 - 0017.e0bf.e440 ARPA FastEthernet0/0
Internet 192.168.12.254 0 0007.b400.0101 ARPA FastEthernet0/0
Kết quả ARP cache cho thấy router Host đang đi ra khỏi mạng LAN thông qua router R1: địa chỉ của gateway 192.168.12.254 đang được ánh xạ vào địa chỉ VMAC1 do R1 nắm giữ.
Ta thực hiện reset lại cổng F0/0 của Host để xóa ARP cache ở trên:
Host(config)#interface f0/0
Host(config-if)#shutdown
Host(config-if)#
*Mar 1 00:20:04.783: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down
*Mar 1 00:20:05.783: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down
Host(config-if)#no shutdown
Host(config-if)#
*Mar 1 00:20:12.183: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar 1 00:20:13.183: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Host(config-if)#
Thực hiện ping lại từ Host ra bên ngoài:
Host#ping 192.168.3.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 44/73/96 ms
Ta quan sát lại ARP cache trên Host trong lần ping này:
Host#show ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.12.4 - 0017.e0bf.e440 ARPA FastEthernet0/0
Internet 192.168.12.254 0 0007.b400.0102 ARPA FastEthernet0/0
Ta thấy lần này, địa chỉ 192.168.12.254 đã được phân giải thành VMAC2 của R2, nghĩa là lần này Host gửi dữ liệu ra khỏi LAN thông qua R2.
Ta thấy, cân bằng tải đã được thực hiện.
Đến đây, chúng ta đã hoàn thành cấu hình và kiểm tra hoạt động của GLBP.
Cảm ơn các bạn!
Hẹn gặp lại các bạn trong các bài viết tiếp theo!