Hot Standby Redundancy Protocol
Một network được cung cấp tính năng High Availability nghĩa là các cơ sở hạ tầng mạng hay các server quan trọng trong network đó luôn luôn ở trong trạng thái có thể được truy cập đến vào bất kỳ thời điểm nào. Hot Standby Routing Prototocol (HSRP) là một trong những số tính năng cung cấp khả năng Redundancy ở layer 3 cho các host trong network. HSRP sẽ tối ưu hóa việc cung cấp các đường kết nối khi phát hiện một đường link bị fail và những cơ chế phục hồi sau khi ta gặp sự cố trong mạng. Virtual Router Redundancy Protocol (VRRP) và Gateway Load Balancing Protocol (GLBP)cũng là những giao thức cung cấp khả năng Redundancy ở layer 3. VRRP là một giao thức standard. GLBP là giao thức của Cisco. Nó được cải tiến từ VRRP và cung cấp thêm tính năng cân bằng tải.
Trước tiên ta cần phải hiểu một số khái niệm có liên quan đến quá trình routing như sau
1.Sử dụng Default Gateway
- Một máy tính trong mạng để có thể đi đến các đường mạng khác nhau thì ta phải cấu hình default gateway. Giả sử PC trên sơ đồ cấu hình default gateway hướng đến Router A để chuyển tiếp gói tin đi đến file server A. Và Router B cũng đã được cấu hình định tuyến.
- Trong mô hình bên dưới Router A có chức năng routing các packet nó nhận được đến subnet A. Còn router B có chức năng routing đến subnet B. Nếu như Router A bị hỏng hóc không có còn sử dụng được nữa thì các cơ chế định tuyến động sẽ tính toán lại và quyết định Router B sẽ là thiết bị chuyển tiếp gói tin thay thế cho router A.
- Nhưng PC A thì không thể nào nhận biết được thông tin định tuyến này được. Ở các PC ta thường chỉ cấu hình duy nhất một default gateway IP và địa chỉ IP này sẽ không thay đổi khi mô hình mạng của ta thay đổi. Như vậy dẫn đến trường hợp là PC A không thể gửi traffic đi đến các host thuộc các đường mạng khác trong mô hình mạng.
- Nếu như một router nào đó dự phòng và hoạt động giống như default gateway cho segment đó thì ta không cần phải cấu hình lại địa chỉ IP default gatway cho các PC.
2. Proxy ARP
- Cisco IOS sử dụng proxy Arp để cho phép các host mà nó không có tính năng định tuyến có thể lấy được địa chỉ Mac address của gateway để có thể forward packet ra khỏi local subnet. Ví dụ như trong mô hình trên proxy ARP router nhận được một gói tin ARP request từ một host cho một địa chỉ IP. Địa chỉ IP này không có cùng nằm chung một segment so với host gửi gói tin request. Router sẽ gửi về một gói tin ARP với Mac address là của router và IP là địa chỉ mà máy cần đi đến. Như vậy host sẽ gửi toàn bộ tất cả các packet đến địa chỉ IP đã được phân giải thành Mac address của router. Sau đó router lại làm tiếp công việc đẩy gói tin này đi đến địa chỉ IP cần đến.
- Như vậy với tính năng proxy ARP các end-user station sẽ coi như là các destination device đã được kết nối đến chính phân đoạn mạng của nó. Nếu như router là chức năng proxy ARP bị fail thì các end station vẫn tiếp tục gửi packet đến IP đã được phân giải thành Mac address của fail router. Và các packet sẽ bị discard.
- Thực tế thì Proxy Mac address có thời gian sống nhất định trong bảng ARP cache của máy tính. Sau khoảng thời gian này thì workstation sẽ yêu cầu địa chỉ của một router khác. Nhưng nó không thể gửi traffic trong suốt khoảng thời gian này.
3. Router Redundancy
- Trong HSRP một thiết lập cho các router hoạt động phối hợp với nhau để đưa ra một router ảo cho các host trong mạng LAN. Bằng cách dùng chung một địa chỉ IP và địa chỉ Mac ở layer 2, hai hay nhiều router có thể hoạt động như là một router ảo. IP address ảo được cấu hình như là default gateway cho các máy trạm trong một segment. Khi những frame được gửi từ một máy trạm đến đến default gateway, các máy trạm dùng cơ chế ARP để phân giải MAC address với địa chỉ IP default gateway. Cơ chế ARP sẽ được trả về bằng Mac address của virtual router. Các frame gửi đến Mac address ảo và sau đó frame này được xử lý tiếp tục bởi active hoặc là standby router trực thuộc group router ảo mà ta đang cấu hình.
- Một hay nhiều router sử dụng giao thức này để quyết định router vật lý nào sẽ có trách nhiệm xử lý frame được gửi đến địa chỉ IP ảo và địa chỉ Mac ảo. Các máy trạm sẽ gửi traffic đến router ảo. Một router thật sẽ có trách nhiệm forward traffic này đi tiếp tuy nhiên router thật nay trong trạng thái transparent so với các máy trạm ở đầu cuối.Giao thức redundacy này cung cấp cho ta một cơ chế để quyết định router nào sẽ ở vai trò active trong việc forward traffic và router nào sẽ ở vai trò standby.
- Khi một forwarding router bị fail thì quá trình chuyển đổi sẽ diễn ra như sau
o Khi standby router không còn nhận được gói tin hello từ một forwarding router
o Sau đó standby router sẽ giả định vai trò của nó lúc này là forwarding router
o Lúc này quá trình truyền frame của PC sẽ không bị ảnh hưởng gì bởi vì router đang ở trạng thái forwarding sẽ dùng IP address ảo vào Mac address như lúc ban đầu.
4. Cấu hình Layer 3 Redundancy với giao thức HSRP
Ta có sơ đồ luận lý như sau
- Hot Standby Router Protocol HSRP định nghĩa ra một standby group. Mỗi router được gán một vai trò xác định bên trong standby group này. HSRP cung cấp một cách dự phòng gateway cho end station bằng cách chia sẻ chung một IP và Mac address giữa các redundant gateway. Giao thức này sẽ truyền thôn g tin về IP ảo và Mac ảo giữa hai router nằm trong cùng một HSRP group
- Một group HSRP bao gồm các thông tin sau
o Active router
o Standby router
o Virtual router
o Other router
- HSRP active router và standby router gửi gói tin hello đến địa chỉ multicast 224.0.0.2, dùng giao thức UDP port 1985 để duy trì thông tin.
5. Quá trình hoạt động của HSRP
Tất cả router trong một HSRP group có một vai trò cụ thể và tương tác với nhau theo một phương pháp xác định
- Virtual Router: thực tế chỉ là một cặp IP address và Mac address mà tất cả các thiết bị đầu cuối dùng nó làm IP default gateway. Active router xử lý tất cả packet và tất cả các frame được gửi tới virtual router address.
- Active Router: trong HSRP group một router sẽ được chọn làm active router. Active router thực tế là thiết bị vật lý forward packet và nó cũng là thiết bị gửi Mac address ảo đến các thiết bị đầu cuối
- Trong mô hình trên router A được giả định ở vai trò active và forward tất cả các frame đến địa chỉ Mac là 0000.0c07.acXX với XX là số group của HSRP. XX là hệ số hexa
- Địa chỉ IP và địa chỉ Mac tương ứng của virtual router được duy trì trong bảng ARP của mỗi router thuộc HSRP group. Để kiểm tra bảng ARP trong bảng ARP ta dùng lệnh show ip arp
Hình trên hiển thị bảng ARP của một router đang làm thành viên của HSRP group 1 trong Vlan 10. Trong bảng ARP trên ta thấy rằng virtual router có địa chỉ là 172.16.10.110 và có một Well-known Mac là 0000.0c07.ac01 với 01 là số group. Số HSRP group 1 hiện thị dưới dạng cơ số 10 và 01 là dưới hệ cơ số 16
- HSRP standby router luôn theo dõi trạng thái hoạt động của HSRP group và sẽ nhanh chóng chuyển trạng thái forwarding packet nếu active router không có hoạt động. Cả hai active router và standby router sẽ truyền hello message để thông báo cho tất cả router khác trong group HSRP biết rằng vai trò của nó lúc này là gì ? Các router dùng địa chỉ destination multicast 224.0.0.2, kiểu truyền UDP port 1985. Và địa chỉ IP source là địa chỉ IP của sending router.
- Ngoài ra bên trong HSRP group có thể chứa một số router khác nhưng vai trò của nó không phải active hay standby. Những router dạng này sẽ monitor hello message được gửi bởi active và standby router để chắc chắn rằng active và standby router đang tồn tại trong HSRP group. Router này chỉ forward những packet đến chính địa chỉ IP của nó nhưng không forward packet được đặt địa chỉ đến virtual router. Những router dạng này sẽ đọc message tại mỗi thời gian giữa hai gói tin hello
- Một số thuật ngữ trong HSRP
o Hello Interval Time: Khoảng thời gian giữa hai gói tin Hello HSRP thành công từ một router. Thời gian này là 3 giây
o Hold Interval Time: khoảng thời gian giữa hai gói tin hello được nhận và giả định rằng sender router bị fail. Mặc định là 10 giây
- Khi active router bị fail, thì những router khác thuộc cùng HSRP group sẽ không còn nhận được message từ active router. Và standby router sau đó sẽ được giả định là Active router. Và nếu như có router khác bên trong HSRP group thì nó sẽ được đưa lên làm standby router. Nếu như cả hai active và standby router bị fail thì tất cả router trong group làm active và standby router.
- Trong quá trình này new activer router gánh lấy IP ảo và Mac ảo của virtual router như vậy dẫn đến các thiết bị đầu cuối sẽ nhận thấy tình trạng hư hỏng của các dịch vụ. Các thiết bị đầu cuối tiếp tục gửi traffic đến Mac addres của virtual router. New activer router sẽ gánh vác chấp nhận phân phối gói tin.
6. Các trạng thái trong giao thức HSRP
- Một router trong HSRP group có một số trạng thái hoạt động như sau: initial, learn, listen, speak, standby hoặc là active
- Khi một router đang ở trong một số những trạng thái trên thì nó sẽ thực hiện một số hành động nhất định. Không phải tất cả HSRP router trong group sẽ chuyển đổi sang tất cả các trạng thái. Ví dụ như ta có 3 router trong group, một trong ba con router thuộc group không đóng vai trò là standby hay active thì con router này vẫn duy trì ở trạng thái Listen.
- Tất cả các router đều bắt đầu ở trạng thái Initial, điều này hiển thị rằng HSRP đang không hoạt động. Sau đó nó sẽ chuyển sang trạng thái learn, ở trạng thái này router sẽ mong chờ thấy được HSRP packet và từ những packet này nó quyết định xem virtual IP là gì ? và xác định active router trong HSRP group.
- Khi một interface thấy HSRP packet và quyết định xem virtual IP là gì thì nó tiếp tục chuyển sang trạng thái listen. Mục đích của trạng thái listen là để xác định xem có Active hay Standby router cho HSRP group. Nếu như đã có active hay standby router rồi thì nó vẫn giữ nguyên trạng thái. Tuy nhiên nếu gói tin hello không được thấy từ bất kỳ router nào, interface chuyển sang trạng thái Speak.
- Trạng trạng thái Speak, các router chủ động tham dự vào quá trình chọn lựa ra active router, standby router bằng cách nhìn vào gói tin hello để xác định vai trò
- Có 3 dạng timer được sử dụng trong giao thức HSRP đó là active, standby, hello. Nếu như không có một gói tin hello nào được nhận từ Active HSRP router trong khoảng thời gian active, thì router chuyển sang trạng thái HSRP mới.
o Active timer: dùng để monitor Active Router. Timer sẽ reset lại vào bất kỳ thời điểm nào khi một router trong group HSRP nhận được gói tin hello được gửi ra từ Active Router. Giá trị Timer expire phù hợp với giá trị hold time đang được set tương ứng với field trong HSRP hello message.
o Standby timer: dùng để monitor standby router. Timer sẽ reset lại vào bất kỳ thời điểm nào khi một router trong group HSRP nhận được gói tin hello được gửi ra từ Standby Router. Giá trị Timer expire phù hợp với giá trị hold time đang được set tương ứng với field trong HSRP hello message.
o Hello timer: thời gian của hello packet. Tất cả HSRP router trong bất kỳ trạng thái nào của HSRP đều tạo ra hello packetkhi mà hello timer expire
- Ở trong trạng thái Standby, bởi vì router lúc này như là một ứng viên để trở thành Active Router kế tiếp. Nó định kỳ gửi ra các gói tin hello. Nó cũng listen các hello message từ active router. Trong một mạng HSRP thì chỉ có duy nhất một standby router
- Trong Active State, router có nhiệm vụ forward packet. Nó gửi địa chỉ Mac ảo của group. Nó cũng có nhiệm vụ hồi đáp các gói tin ARP request hướng đến IP ảo. Active Router cũng định kỳ gửi ra các hello message. Trong một HSRP group chỉ có duy nhất một Active Router.