VRRP虛IP漂移

簡介

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

原文地址:https://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 漂移,因此相關機器必須在同個網絡內, 不能跨網段 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章