VRRP虛IP漂移

fasionchan發表於2019-02-25

簡介

VRRP 是 Virtual Router Redundancy Protocol 的簡稱,即 虛擬路由冗餘協議 。

原文地址:linux-network-programming.readthedocs.io
QQ交流群:Linux網路程式設計,群號:183196643
歡迎關注我們的公眾號:小菜學程式設計 (coding-fan)

VRRP 最早被設計來解決閘道器的高可用問題:

我們知道,計算機進行網路通訊時,需要閘道器來傳輸網路報文。 每臺機器只能配置一個閘道器地址,這時閘道器的可靠性就非常重要了。 如果閘道器不幸故障了,那麼使用該閘道器的所有機器都將受影響——斷網了!

解決閘道器單點問題的思路非常直觀——部署一個備用閘道器,在主閘道器故障時切換過去。

然而,由於機器只能配置一個閘道器地址,因此每次切換閘道器都需要修改該配置。 這個解決方案沒能做到自動化,並不優雅。

這時, VRRP 應運而生!接下來,以一個簡單的例子介紹 VRRP 是如何工作的:

VRRP最早用於閘道器高可用

事情是這樣的。

這個網路部署了兩臺 路由 進行互備,本網路內其他機器以這兩臺路由為閘道器進行網路通訊。 兩臺路由的 IP 地址分別是: 192.168.1.1 以及 192.168.1.2 。 但路由並不直接通過這些地址提供轉發服務,而是使用一個 虛擬地址 192.168.1.253 。 其他計算機,如 192.168.1.3 將閘道器地址配置為 192.168.1.253 。

通過 VRRP ,兩臺路由互相進行 健康檢查 。 當兩臺路由都是健康的情況下,只有主路由對外提供虛擬地址的 ARP 響應。 這時,發往虛擬地址 192.168.1.253 的流量都由主路由處理。

當主路由故障時,備用路由將檢測到。 這時,備用路由開始通過 ARP 協議對外通告:虛擬地址 192.168.1.253 對應的 MAC 地址是我, 被我接管了!

接下來,發往虛擬地址 192.168.1.253 的流量就開始由備用路由處理了。 這時,虛擬地址 192.168.1.253 看上去就像是 漂移 到備用路由上一樣。 換句話講,閘道器成功進行切換,而且無需修改其他機器的閘道器配置!

主路由恢復後,將通過類似的手段,重新拿回流量的處理權。 這部分將不再贅述。

完整流程如下:

  1. 兩臺路由互相進行健康檢查;
  2. 主路由對外響應虛擬地址的 ARP 請求,通告其 MAC 地址;
  3. 虛擬地址網路流量被主路由處理;
  4. 備用路由發現主路由故障,開始響應虛擬地址的 ARP 請求,通告其 MAC 地址;
  5. 虛擬地址網路流量被備用路由處理;
  6. 主路由恢復,重新響應 ARP 請求,奪回流量;
  7. 備用路由發現主路由恢復,停止響應 ARP 請求,釋放流量處理權;

總結起來, VRRP 主要做兩件事情:

  1. 通過 ARP 響應 MAC 地址實現虛 IP 漂移;
  2. 通過健康檢查決定什麼時候進行虛 IP 漂移;

應用場景

本質上, VRRP 是用來實現高可用的,與閘道器無關。

我們可以將其應用於一些網路服務的高可用,如 Web 服務:

Web服務高可用

服務高可用方案有很多, VRRP 特別適用於以下場景:

  1. 服務對外只能呈現為單個 IP ;
  2. 同一時刻只允許一個例項對外服務;

此外, VRRP 也可用於實現負載均衡設施的高可用。 應用的高可用通過負載均衡設施解決,那麼負載均衡設施如何實現高可用呢? 答案是—— VRRP !

下面是一個非常典型的例子:

負載均衡設施高可用

侷限性

由於 VRRP 依賴 ARP 實現 IP 漂移,因此相關機器必須在同個網路內, 不能跨網段 。

訂閱更新,獲取更多學習資料,請關注我們的 微信公眾號 :

小菜學程式設計

相關文章