VRRP虛IP漂移

簡介

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

原文地址:linux-network-programming.readthedocs.io
QQ交流羣:Linux網絡編程,羣號:183196643
歡迎關注咱們的公衆號:小菜學編程 (coding-fan)linux

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 。code

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

當主路由故障時,備用路由將檢測到。 這時,備用路由開始經過 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 漂移,所以相關機器必須在同個網絡內, 不能跨網段 。

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

小菜學編程
相關文章
相關標籤/搜索