zoukankan      html  css  js  c++  java
  • 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命令如下:


    ​​

  • 相关阅读:
    PTA 1007 Maximum Subsequence Sum (25 分)
    c++ primer 6th 函数
    redis源码笔记(持续更新)
    c文件函数总结
    PAT基础知识点
    vector模糊查询
    c++ primer 15th 面向对象程序设计
    c++ primer 18th 用于大型程序的工具
    c++ primer 19th 特殊工具与技术
    MFC TreeCtrl
  • 原文地址:https://www.cnblogs.com/kelelipeng/p/13131040.html
Copyright © 2011-2022 走看看