天天看點

虛拟IP和IP漂移1.虛拟IP2.虛拟IP原理3.IP漂移

學習一下虛拟IP和IP漂移的概念。

在 TCP/IP 的架構下,所有想上網的電腦,不論是用何種方式連上網路,都必須要有一個唯一的 IP-address。事實上IP位址是主機硬體位址的一種抽象,簡單的說,MAC位址是實體位址,IP位址是邏輯位址。

虛拟IP,就是一個未配置設定給真實主機的IP,也就是說對外提供伺服器的主機除了有一個真實IP外還有一個虛IP,使用這兩個IP中的任意一個都可以連接配接到這台主機。

虛拟IP一般用作達到HA(High Availability)的目的,比如讓所有項目中資料庫連結一項配置的都是這個虛IP,當主伺服器發生故障無法對外提供服務時,動态将這個虛IP切換到備用伺服器。

ARP是位址解析協定,它的作用很簡單,将一個IP位址轉換為MAC位址,然後給傳輸層使用。

每台主機中都有一個ARP高速緩存,存儲同一個網絡内的IP位址與MAC位址的對應關 系,以太網中的主機發送資料時會先從這個緩存中查詢目标IP對應的MAC位址,會向這個MAC位址發送資料。作業系統會自動維護這個緩存。

在Linux下可以使用arp指令操作ARP高速緩存。

比如存在實體機A(IP是192.168.192.54 )和實體機器B(IP是192.168.192.40),A作為對外服務的主伺服器(比如資料庫主庫),B作為備份機器,兩台伺服器之間的通信是通過Heartbeat,即主伺服器會定時的給備份伺服器發送資料包,告知主伺服器服務正常,當備份伺服器在規定時間内沒有收到主伺服器的Heartbeat,就會認為主伺服器當機,則備份伺服器就會更新為主伺服器。假設實體機A的ARP緩存如下:

另外實體機器B(IP是192.168.192.40)的ARP緩存如下:

當機器B通過BeatHeart得知機器A對外服務品質低于預期的時候(比如發生故障,服務無響應),會将自己的ARP緩存發送出去,讓路由器修改路由表,告知虛拟位址應該指向我(實體機器B,192.168.192.40),這時候,外界再次通路虛拟IP的時候,機器B會變成主伺服器,而A降級為備份伺服器。這就完成了主從機器的自動切換,這一切對外界是透明的。

上面的VIP自動切換的過程就稱之為IP漂移。

我們可以通過Keepalived來實作這個過程。 Keepalived是一個基于VRRP協定(Virtual Router Redundancy Protocol,即虛拟路由備援協定)來實作的LVS(負載均衡器)服務高可用方案,可以利用其來避免單點故障。一個LVS服務會有2台伺服器運作Keepalived,一台為主伺服器(MASTER),一台為備份伺服器(BACKUP),但是對外表現為一個虛拟IP,主伺服器會發送特定的消息給備份伺服器,當備份伺服器收不到這個消息的時候,即主伺服器當機的時候, 備份伺服器就會接管虛拟IP,繼續提供服務,進而保證了高可用性。