歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

在Linux下(VRRP)虛擬路由冗余協議介紹

這篇文章描述的是如何在Linux下實現VRRP (Virtual Router Redundancy Protocol 虛擬路由器冗余協議)。是我本人在學習VRRP過程的一個小總結,並結合了一些其他資料,對VRRP的一些基本概念、原理及Linux如何實現VRRP的一個介紹。

1、VRRP介紹

我們在建立一個網絡時,為了保證網絡穩定不間斷的運行,經常采用一些動態的路由協議,如OSPF、RIP等,這些路由協議可以自動的繞開很多的網絡故障,如:路由器DOWN機等。但很多時候我們可能無法使用這些高端的路由協議:

(1),因為有時候是用戶端,要配置OSPF、RIP等協議必須有上游ISP供應商的支持,但很多ISP供應商是不提供這種服務的,他們只提供靜態路由。(有時候使用OSPF、RIP等協議的目的是為了進行鏈路和路由的備份,VRRP可以完全替代他們這部分工作)

(2),我們有兩條以上的Internet線路,需要對他們進行負載均衡和路由線路、路由器的備份(VRRP也主要是為這種需求設計的)

為了能夠保證網絡的不間斷、穩定的運行,VRRP是一個最好的選擇,VRRP是Virtual Router Redundancy Protocol 虛擬路由器冗余協議的縮寫,在RFC2338中有比較詳細的描述。

2、VRRP概念

VRRP中有很多的概念,我們結合下圖對他們進行一一的介紹:

(1),圖中路由器RA是虛擬路由器VRID 1的主路由器,負責掌管“內部網1”的網關;並且是虛擬路由器VRID 2的備份路由器,當VRID 2的主路由器RB不可用時,接管RB的工作。

(2),路由器RB是虛擬路由器VRID 2的主路由器,負責掌管“內部網2”的網關;並且是虛擬路由器VRID 1的備份路由器,當VRID 1的主路由器RA不可用時,接管RA的工作。

3、VRRP術語

(1),Virtual Router:虛擬路由器。在我們這個圖中,是由實際路由器RA和RB使用VRRP協議組成的一個路由器鏡相。

(2),Vitual Router ID:簡稱為VRID,是網絡中Virtual Router的唯一的身份標示,是一個數字。

(3),VRRP Instance:VRRP實體。VRRP Instance可以理解為是一個程序,運行在一台實際的路由器上,他負責掌管一些VRRP協議需要的一些信息。如:說明這台實際的路由器是主路由器還是備份路由器、這台路由器所屬的VRID等。

(4),Virtual Router IP:一個Virtual Router具有一個IP地址,在正常情況下,有這個Vritual Router中的主路由器掌管,當主路由器出現故障時由這個Virtual Router中的備份路由器掌管。

(5),Master:也就是主路由器。一個實際路由器是否是主路由器,一般在自己的VRRP Instance中作出描述。

(6),Backup:備份路由器。一個實際路由器是否是備份路由器,一般在自己的VRRP Instance中作出描述。

(7),Priority:優先權。在VRRP Instance中將對每個實際的路由器定義一個優先權,他是一個數字從1到254(0和254在RFC定義中被保留),當主路由器不可用時,備份路由器將根據自己的優先權來決定由誰接管主路由器的工作。數字越大,權值越大。

(8),Owner:Virtual Router IP的掌管者。

(9),Authentication:驗證。處在同一個VRID中的實際路由器是需要通信的,他們之間的通信需要相互驗證。一般使用密碼驗證。另外需要說明的是:同一個VRID中的實際路由器通信時使用組播地址:224.0.0.18。

4、VRRP的數據包結構

關於更詳細的說明請參考RFC2338 VRRP文檔。

5,Linux下的VRRP組件

在Linux下可以實現非常漂亮穩定的VRRP功能。實現這個功能的軟件是keepalived(http://www.keepalived.org),keepalived起初是為LVS(LinuxVirtualServer www.linuxvirtualserver.org Linux下的服務器負載均衡系統)設計的,是專門監控服務器狀態的。後來加入了VRRP的功能。Keepalived的VRRP功能是從Linux中VRRPD發展而來:http://www.off.net/~jme/vrrpd/index.html 。

6,Keepalived的安裝

Keepalived的安裝需要先安裝下面兩個組件:

openssl(www.openssl.org)

popt(http://www.gnu.org/directory/libs/popt.html)

(1),openssl的安裝,如果你的系統已經有了openssl系統,而且在/usr/include目錄下有openssl的目錄,那麼openssl就不需要安裝了,如果不是這樣你需要安裝。

tar zxvf openssl-0.9.7d.tar.gz
cd openssl-0.9.7d
configure
make
make test
make install

然後將openssl的include目錄復制到/usr/include

cp –r /usr/local/ssl/include/openssl /usr/include(T115)

(2) tar zxvf popt-1.7.tar.gz

cd popt-1.7
./configure
make
make install

(3),在安裝keepalived之前,你可能需要重新編譯Linux的內核,將Netlink、Linux Virtual Server和組播功能的選項編譯進新內核:如下面的圖:

(4),keepalived的安裝

tar zxvf keepalived-1.1.7.tar.gz
cd keepalived-1.1.7
./configure –prefix=/usr/local/keepalived
make
make install

Copyright © Linux教程網 All Rights Reserved