linux配置虛擬IP--VIP


 

1,手動添加vip

1,ifconfig查看當前活動網卡。如:eth0

2,執行

ifconfig eth0:0 166.111.69.100 netmask 255.255.255.0 up

進行vip添加

3,執行ifconfig查看是否生效

4,測試 ping 166.111.69.100

5,寫在/etc/rc.local里進行開機自動設置

2,第三方工具keepalived增加vip

1,下載與安裝

安裝:
tar xf keepalived-1.2.12.tar.gz           
cd keepalived-1.2.12
./configure --prefix=/usr/local/keepalived
make &&  make install
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

2,配置:

vim 

/etc/keepalived/keepalived.conf 如下:
! Configuration File for keepalived

global_defs {
     notification_email {
     saltstack@163.com
   }
   notification_email_from dba@dbserver.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id MySQL-HA
}


vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 51
    priority 150
    advert_int 1
    nopreempt

    authentication {
    auth_type PASS
    auth_pass 1111
    }

    virtual_ipaddress {
        192.168.0.88
    }
}


紅色區域為需要修改的地方:

notification_email :變更后通知的email
notification_email_from :發送email

router_id MySQL-HA :路由器組id,局域網中需要共享該vip的服務器,該配置要一致。

state BACKUP:在keepalived中2種模式,

分別是master->backup模式和backup->backup模式。


這兩種模式有很大區別。

在master->backup模式下,一旦主庫宕機,虛擬ip會自動漂移到從庫,當主庫修復后,keepalived啟動后,還會把虛擬ip搶占過來,即使設置了非搶占模式(nopreempt)搶占ip的動作也會發生。


在backup->backup模式下,當主庫宕機后虛擬ip會自動漂移到從庫上,當原主庫恢復和keepalived服務啟動后,並不會搶占新主的虛擬ip,即使是優先級高於從庫的優先級別,也不會發生搶占。


interface eth1:具體網卡,通過ifconfig確認具體網卡。
priority 150:表示設置的優先級為150

nopreempt:非搶占模式

啟動:
/etc/init.d/keepalived start ; tail -f /var/log/messages

顯示如下表示成功:

Starting keepalived:                                       [  OK  ]
Apr 20 20:26:18 192 Keepalived_vrrp[9472]: Registering gratuitous ARP shared channel
Apr 20 20:26:18 192 Keepalived_vrrp[9472]: Opening file '/etc/keepalived/keepalived.conf'.
Apr 20 20:26:18 192 Keepalived_vrrp[9472]: Configuration is using : 62976 Bytes
Apr 20 20:26:18 192 Keepalived_vrrp[9472]: Using LinkWatch kernel netlink reflector...
Apr 20 20:26:18 192 Keepalived_vrrp[9472]: VRRP_Instance(VI_1) Entering BACKUP STATE
Apr 20 20:26:18 192 Keepalived_vrrp[9472]: VRRP sockpool: [ifindex(3), proto(112), unicast(0), fd(10,11)]
Apr 20 20:26:18 192 Keepalived_healthcheckers[9471]: Netlink reflector reports IP 192.168.80.138 added
Apr 20 20:26:18 192 Keepalived_healthcheckers[9471]: Netlink reflector reports IP 192.168.0.60 added
Apr 20 20:26:18 192 Keepalived_healthcheckers[9471]: Netlink reflector reports IP fe80::20c:29ff:fe9d:6a9e added
Apr 20 20:26:18 192 Keepalived_healthcheckers[9471]: Netlink reflector reports IP fe80::20c:29ff:fe9d:6aa8 added
Apr 20 20:26:18 192 Keepalived_healthcheckers[9471]: Registering Kernel netlink reflector
Apr 20 20:26:18 192 Keepalived_healthcheckers[9471]: Registering Kernel netlink command channel
Apr 20 20:26:18 192 Keepalived_healthcheckers[9471]: Opening file '/etc/keepalived/keepalived.conf'.
Apr 20 20:26:18 192 Keepalived_healthcheckers[9471]: Configuration is using : 7231 Bytes
Apr 20 20:26:18 192 kernel: IPVS: Registered protocols (TCP, UDP, AH, ESP)
Apr 20 20:26:18 192 kernel: IPVS: Connection hash table configured (size=4096, memory=64Kbytes)
Apr 20 20:26:18 192 kernel: IPVS: ipvs loaded.
Apr 20 20:26:18 192 Keepalived_healthcheckers[9471]: Using LinkWatch kernel netlink reflector...


測試:
1,ping命令測試。
2,一台服務器停止keepalived服務進行ip漂移測試。





​一、虛擬IP介紹


虛擬IP即VIP,這只是一個概念而已,可能會誤導你,實際上就是heartbeat臨時綁定在物理網卡上的別名(heartbeat3以上頁采用了輔助IP),如eth0:x ,x為0-255的任意數字,你可以在一塊網卡上綁定多個別名。這個VIP可以看作是你上網的QQ網名、昵稱、外號等。
​在實際生產環境中,需要在DNS配置中把網站域名地址解析到這個VIP地址,由這個VIP對用戶提供服務。如:把www.zhangcong.top解析到VIP 1.1.1.1 上。

這樣做的好處就是當提供服務的服務器宕機以后,在接管的服務器上會直接自動配置上同樣的VIP提供服務。如果是使用管理IP的話,來回遷移就難以做到,而且,管理IP遷移走了,我們就只能去機房連接服務器了,
​VIP 的實質就是確保兩台服務器有一個管理IP不動,就是隨時可以連上服務器,然后增加綁定其他的VIP,這樣就算VIP轉移走了,也不至於服務器本身連不上,因為還有管理IP可以使用。

Linux系統給網卡配置VIP的方法常見的有兩種,即別名IP(alias ip)以及輔助IP(secondary ip address)。

二、別名IP(alias ip)

ip alias 是由 Linux 系統的 ifconfig 命令來創建和維護的,別名IP就是在網卡設備上綁定的第二個及以上的IP,例如:

1)手工配置別名VIP的方法

# 使用下面兩種方法都可以

[root@crazy-acong ~]# ifconfig eth0:1 192.168.40.20 netmask 255.255.255.0 up

[root@crazy-acong ~]# ifconfig eth0:1 192.168.40.20/24 up    # heartbeat軟件默認是使用這個命令來添加的

2)手動查看VIP別名的方法

# 使用別名的方法配置的VIP可以通過ifconfig查看,也可以通過ip addr 查看

[root@crazy-acong ~]# ifconfig eth0:1

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:2C:5C:43  

          inet addr:192.168.40.20  Bcast:192.168.40.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
# 提示:這個ip就是啟動heartbeat服務時,由heartbeat調用相關腳本配置的


3)手工刪除別名VIP的方法

# 使用下面兩種方法都可以

[root@crazy-acong ~]# ifconfig eth0:1 192.168.40.20 netmask 255.255.255.0 down

[root@crazy-acong ~]# ifconfig eth0:1 down

4)讓別名IP永久生效

# 寫入到網卡配置文件可以讓別名IP永久生效,名字可以為ifcfg-eth0:x,x為0-255的任意數字,IP等內容格式和ifcfg-eth0一致,或者將命令寫入/etc/rc.local

注意:別名IP將被遺棄,用輔助IP替代

三、輔助IP(secondary ip address)

輔助IP則是由Linux系統的ip命令創建和維護的,

​ip addr add 創建的輔助IP,不能通過ifconfig查看。

​但是通過ifconfig創建的別名IP卻可以在ip addr show 命令查看。


1)手工配置輔助VIP的方法:

[root@crazy-acong ~]# ip addr add 192.168.40.20/24 dev eth0

# keepalived 軟件默認使用這個命令來添加VIP,也是heartbeat3軟件采用的方案# ip add 可以查看別名和輔助IP,用ifconfig無法查到輔助IP配置情況



2)手工查看VIP別名的方法
不同的命令配置的VIP查看方法也是由區別的,
​使用輔助IP的方法配置的VIP,不能通過ifconfig查看,只能通過 ip addr 來查看

使用輔助IP的方法配置的VIP,可以通過ip addr 查看


[root@crazy-acong ~]# ip addr


2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:2c:5c:43 brd ff:ff:ff:ff:ff:ff

    inet 192.168.40.10/24 brd 192.168.40.255 scope global eth0

    inet 192.168.40.20/24 scope global secondary eth0

# ip addr show 、 ip addr 、 ip add 這三個命令的結果都是一樣的

3)手工刪除輔助IP的方法

[root@crazy-acong ~]# ip addr del 192.168.40.20/24 dev eth0

提示: heartbeat 和 keepalived 在啟動時就是分別利用上面命令來配置VIP的。在停止時利用下面的命令來刪除VIP。以上兩種方式配置VIP,在高可用環境中的作用是一樣的,沒什么區別,只是由於當時的系統環境等歷史原因,選擇的配置命令方式不同。

​heartbeat3 版本起,不在使用別名,而是使用輔助IP提供服務,

​而 keepalived 軟件一直都是使用的輔助IP技術。

總結:

1、從heartbeat3.0開始,創建VIP的方式為手工配置別名的方式。

2、Keepalived軟件創建VIP使用的是輔助IP技術。

3、(heartbeat3.0-)手工配置別名的方式:ifconfig eth0:1 192.168.40.20 netmask 255.255.255.0 up

4、(keepalived)輔助IP的方式:ip addr add 192.168.40.20/24 dev eth0

5、VIP(虛擬IP)根物理網卡是綁定的。

6、以上總結是heartbeat和keepalived高可用軟件創建VIP的區別,在配置vip的時候,避免錯誤。

 


​① 首先查看一下現有網卡的IP地址,用root特權運行下面的命令:

ip addr

示例輸出:

這里寫圖片描述


從上面的詳細信息中,可以看到服務器的網卡名是eno16777736,ip地址是192.168.22.227。

網卡的配置文件存儲在 /etc/sysconfig/network-scripts/ 目錄下。每個網卡的詳細內容將會以不同的名字存儲,比如ifcfg-eno16777736。

② 打開此配置文件,並且再添加一個IP地址

編輯文件 /etc/sysconfig/network-scripts/ifcfg-eno16777736:

vi /etc/sysconfig/network-scripts/ifcfg-eno16777736

像下面那樣加入額外的IP地址。

這里寫圖片描述

這樣就添加了一個IP地址:IPADDR1=”192.168.22.231″當然,也可以添加更多的ip地址。?

IPADDR2=”192.168.22.232″…

最后,保存並退出文件。快捷鍵:shift+z+z

重啟網絡服務來使更改生效。

systemctl restart network

③ 檢查一下是否已經加入了ip地址。

輸入命令:

ip addr

示例輸出:
這里寫圖片描述

​這里我們創建兩個虛擬機環境,IP地址分別為192.168.209.121和192.168.209.122,如下圖所示:


在192.168.209.122上添加一個VIP地址為:192.168.209.22,執行如下命令:

 

ifconfig eth0:1 192.168.209.22 broadcast 192.168.209.255 netmask 255.255.255.0 up

eth0:1表示這個VIP綁定的目標網卡設備,192.168.209.22就是VIP的值,廣播地址為192.168.209.255,子網掩碼為:255.255.255.0,up表示立即啟用這個VIP。


​接着我們通過route命令,在路由表上添加對這個VIP的路由信息

 route add -host 192.168.209.22 dev eth0:1

此時,我們在192.168.209.121這台虛擬機上執行ifconfig命令如下:


​​


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM