VRRP 是 Virtual Router Redundancy Protocol 的簡稱,即 虛擬路由冗餘協議 。html
原文地址:linux-network-programming.readthedocs.io
QQ交流羣:Linux網絡編程,羣號:183196643
歡迎關注咱們的公衆號:小菜學編程 (coding-fan)linux
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 看上去就像是 漂移 到備用路由上同樣。 換句話講,網關成功進行切換,並且無需修改其餘機器的網關配置!
主路由恢復後,將經過相似的手段,從新拿回流量的處理權。 這部分將再也不贅述。
完整流程以下:
總結起來, VRRP 主要作兩件事情:
本質上, VRRP 是用來實現高可用的,與網關無關。
咱們能夠將其應用於一些網絡服務的高可用,如 Web 服務:
服務高可用方案有不少, VRRP 特別適用於如下場景:
此外, VRRP 也可用於實現負載均衡設施的高可用。 應用的高可用經過負載均衡設施解決,那麼負載均衡設施如何實現高可用呢? 答案是—— VRRP !
下面是一個很是典型的例子:
因爲 VRRP 依賴 ARP 實現 IP 漂移,所以相關機器必須在同個網絡內, 不能跨網段 。
訂閱更新,獲取更多學習資料,請關注咱們的 微信公衆號 :