有兩個服務器172.16.42.1和172.16.42.121,通過VRRP協議使兩臺設備共用一個虛擬地址172.16.42.100,當 172.16.42.1 可用時,它會作為主路由器使用虛擬 IP 地址;當它不可用時,172.16.42.121 會接管虛擬 IP 地址,確保網絡的高可用性。這樣,無論主服務器是否可用,虛擬 IP 地址始終保持可訪問。
以下是配置 VRRP 的步驟:
假設和前提條件
- Server 1:
172.16.42.1
(主服務器) - Server 2:
172.16.42.121
(備用服務器) - 虛擬 IP 地址:
172.16.42.100
(虛擬地址,用于客戶端訪問)
配置步驟
1. 配置 Server 1(主服務器)
-
登錄到 Server 1。
-
編輯網絡接口配置文件,假設使用
eth0
作為接口。對于 Linux 系統(如 CentOS 或 Ubuntu)來說,可以使用以下命令:
sudo ip addr add 172.16.42.100/24 dev eth0
-
啟用 VRRP 協議并配置 VRRP 設置。假設你使用的是 Keepalived 來配置 VRRP。安裝 Keepalived(如果沒有安裝):
sudo apt-get install keepalived # Ubuntu/Debian sudo yum install keepalived # CentOS/RedHat
-
配置 Keepalived,編輯
/etc/keepalived/keepalived.conf
文件,進行以下配置:vrrp_instance VI_1 {state MASTERinterface eth0 # 使用的網絡接口virtual_router_id 51 # VRRP 虛擬路由器 ID,保持一致priority 101 # 優先級 101,主服務器的優先級較高advert_int 1 # 廣播間隔,單位:秒virtual_ipaddress {172.16.42.100 # 虛擬 IP 地址} }
配置說明:
- state MASTER:將此服務器設置為主路由器。
- priority 101:主服務器的優先級設置為 101,確保它是主路由器。
- virtual_ipaddress:指定共享的虛擬 IP 地址
172.16.42.100
。
-
啟動并啟用 Keepalived 服務:
sudo systemctl start keepalived sudo systemctl enable keepalived
2. 配置 Server 2(備用服務器)
-
登錄到 Server 2。
-
同樣添加虛擬 IP 地址
172.16.42.100
:sudo ip addr add 172.16.42.100/24 dev eth0
-
配置 Keepalived,編輯
/etc/keepalived/keepalived.conf
文件,進行以下配置:vrrp_instance VI_1 {state BACKUPinterface eth0 # 使用的網絡接口virtual_router_id 51 # VRRP 虛擬路由器 ID,必須與主服務器一致priority 100 # 優先級 100,備用服務器的優先級較低advert_int 1 # 廣播間隔,單位:秒virtual_ipaddress {172.16.42.100 # 虛擬 IP 地址} }
配置說明:
- state BACKUP:將此服務器設置為備用路由器。
- priority 100:備用服務器的優先級設置為 100,確保它在主服務器故障時接管虛擬 IP 地址。
-
啟動并啟用 Keepalived 服務:
sudo systemctl start keepalived sudo systemctl enable keepalived
3. 驗證配置
-
檢查 VRRP 狀態:在兩臺服務器上執行以下命令,檢查 VRRP 狀態,確保主服務器和備用服務器的角色正確:
sudo systemctl status keepalived
或者使用:
sudo vrrp -s
你應該能看到主服務器(
172.16.42.1
)的狀態是 MASTER,備用服務器(172.16.42.121
)的狀態是 BACKUP。 -
測試故障轉移:
- 如果主服務器 172.16.42.1 失效,備用服務器 172.16.42.121 會自動接管虛擬 IP 地址 172.16.42.100。
- 你可以通過斷開 172.16.42.1 服務器的網絡連接來模擬故障,看看 172.16.42.121 是否會接管虛擬 IP 地址。
測試步驟:
- 在 Server 1 上斷開網絡接口:
sudo ifconfig eth0 down
- 在 Server 2 上檢查虛擬 IP 地址是否已綁定:
ip addr show eth0
-
恢復主服務器:
- 當主服務器 172.16.42.1 恢復時,虛擬 IP 地址會自動返回到 172.16.42.1(由于
preempt
功能已啟用,主服務器會重新接管虛擬 IP)。
- 當主服務器 172.16.42.1 恢復時,虛擬 IP 地址會自動返回到 172.16.42.1(由于