最近发现公司云平台服务器的vip有丢失的现象,查看keepalived日志

Jun   :: lb1 dhclient: DHCPREQUEST of 10.0.0.2 on eth0 to 10.0.0.3 port  (xid=0x6deab016)
Jun :: lb1 dhclient: DHCPNAK from 10.0.0.3 (xid=0x6deab016)
Jun :: lb1 dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port interval (xid=0x37e1db6a)
Jun :: lb1 dhclient: DHCPREQUEST of 10.0.0.2 on eth0 to 255.255.255.255 port (xid=0x37e1db6a)
Jun :: lb1 dhclient: DHCPOFFER of 10.0.0.2 from 10.0.0.3
Jun :: lb1 dhclient: DHCPACK of 10.0.0.2 from 10.0.0.3
Jun :: lb1 dhclient: bound to 10.0.0.2 -- renewal in seconds.
Jun :: lb1 ntpd[]: Deleting interface # eth0, 10.0.255.254#, interface stats: received=, sent=, dropped=, active_time= secs
Jun :: lb1 ntpd[]: peers refreshed

发现是云平台DHCP刷新直接把vip删掉,但是由于俩台机器的keepalived vrrp_script监控应用服务都是正常的,所以主备关系没有改变,如果没有特意加ping vip的策略,会导致keepalived没有发现此问题。

解决方法:

1、如果应平台的服务器可以改成固定IP,可以将网卡改为固定IP,这样就不会使用DHCP了

cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=10.0.0.2
NETMASK=255.255.255.0
GATEWAY=10.0.0.1

2、如果不可以更改网卡IP,就在keepalived配置文件中增加dont_track_primary参数

vrrp_instance VI_1 {
state BACKUP
interface eth0
dont_track_primary
virtual_router_id
priority
advert_int
nopreempt
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
10.0.0.17
}
}

dont track primary:忽略VRRP的interface错误

如果有两块网卡,可以搭配track interface使用

track interface:跟踪接口,设置额外的监控,里面任意一块网卡出现问题,都会进入故障(FAULT)状态,例如,用nginx做均衡器的时候,内网必须正常工作,如果内网出问题了,这个均衡器也就无法运作了,所以必须对内外网同时做健康检查

vrrp_instance http {
state MASTER
interface eth0
dont_track_primary
track_interface {
eth0
eth1
}

官方原文

# Ignore VRRP interface faults (default unset)
dont_track_primary # optional, monitor these as well.
# go to FAULT state if any of these go down if unweighted.
# When a weight is specified in track_interface, instead of setting the vrrp
# instance to the FAULT state in case of failure, its priority will be
# increased by the weight when the interface is up (for positive weights),
# or decreased by the weight's absolute value when the interface is down
# (for negative weights). The weight must be comprised between - and +
# inclusive. is the default behaviour which means that a failure implies a
# FAULT state. The common practice is to use positive weights to count a
# limited number of good services so that the server with the highest count
# becomes master. Negative weights are better to count unexpected failures
# among a high number of interfaces, as it will not saturate even with high
# number of interfaces.
track_interface {
eth0
eth1
eth2 weight <-..>
...
} # add a tracking script to the interface
# (<SCRIPT_NAME> is the name of the vrrp_track_script entry)
# The same principle as track_interface can be applied to track_script entries,
# except that an unspecified weight means that the default weight declared in
# the script will be used (which itself defaults to ).

参考

https://serverfault.com/questions/601670/keepalived-vip-removed-with-dhcp-renewal

https://www.keepalived.org/manpage.html

keepalived vip removed with dhcp renewal【原创】的更多相关文章

  1. keepalived的vip无法ping通【原创】

    今天收到redis的keepalived vip无法ping通的告警,查看服务器和服务时发现vip在服务器上,服务也正常.只能在本机ping通,跨网段无法ping通.切换keepalived vip至 ...

  2. keepalived vip 没有生成或者生成了ping不通?

    1 问题现象:keepalived已启动但vip 没有生成./var/log/messages日志不断刷屏 tail /var/log/messages Nov :: cache-redis- Kee ...

  3. OpenStack neutron 环境云主机使用keepalived vip + 给vip绑定浮动IP 步骤及注意事项

    在openstack环境创建的多台云主机配置keepalived作主备,默认情况下无法生效,直接对云主机一张网卡配置两个IP进行测试也是同样结果,因为: 可以看到,port所在的宿主机上iptable ...

  4. keepalived vip漂移基本原理及选举算法

    keepalived可以将多个无状态的单点通过虚拟IP(以下称为VIP)漂移的方式搭建成一个高可用服务,常用组合比如 keepalived+nginx,lvs,haproxy和memcached等.它 ...

  5. (转)小谈keepalived vip漂移原理与VRRP协议

    背景:之前搭建过keepalived双机热备的集群,但对其中的原理不甚理解,看完就忘了,所有有必要深入的学习下. 简介 什么是keepalived呢?keepalived是实现高可用的一种轻量级的技术 ...

  6. 浅析keepalived vip漂移原理与VRRP协议

    2017-01-18 Martin 开源技术社区 简介 什么是keepalived呢?keepalived是实现高可用的一种轻量级的技术手段,主要用来防止单点故障(单点故障是指一旦某一点出现故障就会导 ...

  7. Nginx+Keepalived+VIP漂移实现HA高可用技术之详细教程

    https://www.cnblogs.com/zcc666/p/13141626.html  这个是nginx安装教程地址 https://www.cnblogs.com/zcc666/p/1313 ...

  8. 三主机配置 keepalived VIP高可用

    三台主机: 192.168.33.134 192.168.33.136 192.168.33.137   实验前: 关闭selinux 和iptables     1). 192.168.33.134 ...

  9. Redis主从复制+Keepalived+VIP漂移实现HA高可用技术之详细教程

    1.大家可以先看我的单台Redis安装教程,链接在此点击Redis在CentOS for LInux上安装详细教程 2.第一台redis配置,是正常配置.作为MASTER主服务器,第二台redis的配 ...

随机推荐

  1. SSH框架笔记01_SSH整合的两种方式

    目录 1. 框架回顾 2. 创建项目,引入jar包 2.1 Struts2的jar包 2.2 Hibernate的jar包 2.3 Spring的jar包 3. 引入配置文件 3.1 Struts2配 ...

  2. 微信小程序 时间戳 转化为 日期格式

    util.js  : function transTime(unixtime) { var dateTime = new Date(parseInt(unixtime) * 1000) var yea ...

  3. @JsonIgnore注解

    注解名称:@JsonIgnore 作用:在实体类向前台返回数据时用来忽略不想传递给前台的属性或接口. Eg:User实体中会有字段password字段,当返回用户信息给前台的时候,当然是不希望将pas ...

  4. Oracle数据库 常用SQL

    -- 查询所有数据 SELECT * FROM [TABLE_NAME]; -- 查询数据总量 SELECT COUNT(*) AS COUNT FROM [TABLE_NAME]; -- 清空表内所 ...

  5. c# 比较字符串

  6. java容器tomat,jboss支持内部读取软链接

    tomcat,jboss允许软链接 作用:当war包解压过后,需要将内部进行链接到外部的可移动存储上时,就需要使用此功能. tomcat默认是不开启tomcat链接的,需要手动添加配置项. 在tomc ...

  7. 模块之 time datetime random json pickle os sys hashlib collections

    目录 1. time模块 1.1表示时间的几种方式: 1.2格式化字符串的时间格式 1.3不同格式时间的转换 2.datetim模块 3.random模块 4. json模块 4.1dumps.loa ...

  8. Anaconda 查看、创建、管理和使用python环境

    1. 查看Python环境 conda info --env可以看到所有python环境,前面有个‘*’的代表当前环境: 2.创建Python环境 conda create --name python ...

  9. SVM: 实际中使用SVM的一些问题

    使用SVM包来求θ,选择C与核函数 我们使用已经编写好的软件包(这些软件包效率高,用得多,是经无数人证明已经很好的可以使用的软件包)来求θ,而不是自己去编写软件来求它们(就像我们现在很少编写软件来求x ...

  10. GITHUB添加SSH内容

    首先,你需要注册一个 github账号,最好取一个有意义的名字,比如姓名全拼,昵称全拼,如果被占用,可以加上有意义的数字. 本文中假设用户名为 chuaaqiCSDN(我的博客名的全拼) 一.gihu ...