virtual IP address(VIP)是怎麼工作的?

VIP也是使用DHCP獲得?一台伺服器有了VIP,為什麼還需要physical ip address?下圖是Novell 官網解釋VIP好處的一個例子

Novell Doc: BCC 1.1 SP2: Administration Guide for NetWare 6.5 SP8


舉個通俗的例子

老王開了一個會所,地址是虹X路1.1.1.1,經營範圍不太正規,經常被封,顧客以為店已經關門,其實裡面熱火朝天,所以老王急啊,於是開了一個後門,地址是2.2.2.1,於是顧客紛紛從後門進入,老王笑開了花…

過幾天大門解封了,但後門由於弄堂改造,臨時關閉了,熟門熟路的顧客從後門進不來了,有同學會問,大門都開著,顧客為何不從前門進店?因為這些顧客頭腦比較簡單,老王苦啊,痛定思痛,老王想出了一個好主意。

老王給顧客自己的電話號碼4.4.4.1,叮囑他們,以後來店消費之前,只要電話能打通(4.4.4.1路由可達),說明店還營業,前門進不來(1.1.1.1介面down)就走後門(2.2.2.1介面UP);同理,如果後門進不來,可以走前門。

如果電話打不通(4.4.4.1路由消失),說明老王被關進去了,顧客就別來了,因為前門被封(1.1.1.1介面down),後門也被封(2.2.2.1介面down),來了也是白來。

談點正經的

其實電腦上的127.0.0.1也是一個VIP,只是用於本機進程間的通信標識符。

如果沒有127.0.0.1,那麼一旦物理介面down,TCP/IP協議棧綁定在此介面上的IP就無法提供進程間的通信,所以非常不方便。

而有了127.0.0.1,不管物理介面狀態如何,都可以進程間通信。

題主問題里的VIP,也是不依賴於任何物理介面,只要有一個物理介面處於工作狀態(UP,可以和外部聯繫),就可以提供伺服器的訪問,當然需要通過路由發布將4.4.4.1發布出去,別的三層設備、主機需要知道如何到達4.4.4.1。


vip的目的是為了高可用性

為了避免單點故障,部署多個實例提供服務

這些實例之間使用統一的協議進行存活檢測(心跳)

並且定義了vip的使用優先順序

在一個時間點,可能有一個實例或者多個實例在使用vip

——————以上是早晨在公交車上隨手寫的,現在正在電腦上排一個新的———————

先說一下題主這個圖

我沒去找原文,看這個圖,應該是這樣一個場景:

我們在server部署了一個應用

然後需要在client去訪問這個服務

Server有兩個網路介面(multihomed,多歸宿)

從client訪問兩個介面上的地址都能訪問到這個應用

但是這樣除了一個問題

假設平時client使用1.1.1.1訪問這個應用

如果server的1.1.1.1介面出現了故障

Client怎麼切換成使用2.2.2.1這個介面呢?

解決的方法就是

Client即不訪問1.1.1.1,也不訪問2.2.2.1

我們又在sever上配置了一個4.4.4.1的地址(開啟一個loopback介面,把地址配置在這上面)

平時client訪問4.4.4.1這個地址使用應用

我們在網路中配置了路由協議或者vrrp等有主備切換功能的協議

網路正常時,client走router1,使用3.3.3.3 – 3.3.3.1 -1.1.1.1 -4.4.4.1的路徑訪問這個應用

網路故障時,client走router2,使用3.3.3.3 – 3.3.3.2 -2.2.2.1 -4.4.4.1的路徑訪問這個應用

這樣,我們就規避了由於server的單個網路介面故障導致的應用中斷

這個4.4.4.1,就是一個VIP

由於這個IP不與物理介面綁定,所以這個IP不會因為物理介面的故障而實效

但是也是因為這個IP不予物理介面綁定,這個IP地址也有許多局限性,比如,server無法使用這個IP地址與鄰接的router1或者router2通訊

1.1.1.1和2.2.2.1這兩個地址就是physical ip address

從這個場景中就能看出

VIP是為了實現高可用性而設置的一類IP地址,這類IP地址不與特定的實例(比如集群中的一台伺服器/路由器,或者一台伺服器多個網卡中的某一個網卡)綁定,具有較高的可靠性

physical ip address是為了彌補VIP的一些局限性而存在的IP地址

————————————這是個分割線——————————————

還有兩節的內容,晚些再寫

一節是使用VIP的另一個經典例子:VRRP。

通過這個例子我們討論一下VIP在集群中漂移

一節是帶負載均衡器的集群

我們詳細討論一下集群中VIP漂移的仲裁機制


我們一般叫他邏輯地址,相對於網卡上配的物理地址而言的。

好處呢,是隨便哪個鏈路活著這個邏輯地址就可以被訪問。當然,整個網路上還要把邏輯地址的路由配置能到達兩個物理地址的網口。也就是說,有一個默認的路由,例如右邊鏈路。當右邊鏈路不通以後,網關要把邏輯地址的路由轉換到左邊子網上,然後在網路上把路由擴散開(一般在企業內部做)。這樣,客戶端發往邏輯地址的包可以到達左邊的鏈路,左邊的網口。

另外,伺服器自己也要切換髮送的配置,在發生故障以後,把所有的包發到左邊鏈路上來。


謝邀。最近正打算做 LVS 集群的實驗,我就從集群的角度簡單說一下吧。VIP 一般是由多個負載均衡器共同維護的,負載均衡器一般為主備模式。發到 VIP 上的數據在正常情況下由主負載均衡器維護,當主負載均衡器宕掉時,備負載均衡器馬上接管。負載均衡器之間的通信要通過實體 IP,實體 IP 對於外部也是透明的,外部的客戶端只知道 VIP 就可以了。

下面是書上的截圖:


VIP雖然名字上叫虛擬IP,卻是實打實存在的一個IP,這個IP同時綁定在負載均衡設備上和提供服務的Realserver上,但只有負載均衡設備響應這個vip的arp請求,realserver接受處理該ip的報文,並不影響arp,這樣就不會完成ip衝突。當用戶的請求來到時,交換機會發起arp,負載均衡器響應arp,則交換機記錄該ip是屬於負載均衡器的,把該ip的報文都交給負載均衡器處理,負載均衡器根據轉發規則將報文轉給實際的業務realserver。

至於其他回答說的vrrp其實很vip沒有一點關係,那個是搞高可用時,動態漂移vip的一種做法。


物理IP是存在的基礎,VIP是在物理IP上浮動的,這樣一台物理主機宕機VIP會遷移到其他主機,服務不會中斷。

至於具體實現就多了,如vrrp協議在網路設備的冗餘配置。


保護網關用的,主機有用,路由器意義不大,路由器可以靠等價路由搞定


推薦閱讀:

如何在寫代碼時考慮到儘可能多的可能情況?
在渲染的過程中,CPU和顯卡各自起到了什麼角色?
在蘇聯時期蘇聯人用什麼計算機?
雙線性變換法的雙線性指的是什麼?
以現有計算機技術,如果造一台可有具有所有人腦思維功能的計算機,那麼這台計算機會佔地多大面積?

TAG:互聯網 | 計算機網路 | 計算機科學 |