实现主备路由自动切换 – keepalived【二】
来源:互联网 发布:key软件怎么打开 编辑:程序博客网 时间:2024/06/05 17:51
实现主备路由自动切换 – keepalived【二】
将最近调试的keepalived做个简单的总结,部分配置可能
由于个人理解的关系,有些不同。希望大家能够指正!
Ubuntu 测试时,编译如下:
官网: http://www.keepalived.org/download.html
cd /usr/local/srcwget http://www.keepalived.org/software/keepalived-1.2.6.tar.gztar zxf keepalived-1.2.6.tar.gz cd keepalived-1.2.6./configure --prefix=/usr/local/keepalived makemake installcp /usr/local/keepalived/sbin/keepalived /usr/sbin/cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/mkdir -p /etc/keepalived/emacs /etc/keepalived/keepalived.conf
1. 应用场景
网络拓扑图如下:
2. 配置文件
1)主路由:
由于我没有用到邮件通知,所以没有配置。
root@R1:/# cat /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {! notification_email {! user@example.com! }! notification_email_from mail@example.org! smtp_server 192.168.200.1! smtp_connect_timeout 30 router_id NodeA}# 本来网上说可以增加脚本配置,但是我测试了不起作用。#vrrp_script check_local {# script "/etc/keepalived/check_local.sh"# interval 5#}vrrp_instance VI_1 { state MASTER #指定A节点为主节点 备用节点上设置为BACKUP即可 interface br-lan #绑定虚拟IP的网络接口 virtual_router_id 231 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组 priority 105 #主节点的优先级(1-254之间),备用节点必须比主节点优先级低 advert_int 1 #组播信息发送间隔,两个节点设置必须一样# nopreempt authentication { #设置验证信息,两个节点必须一致 auth_type PASS #主从服务器验证方式 auth_pass 123456 } virtual_ipaddress { #指定虚拟IP, 两个节点设置必须一样 10.237.46.233 #虚拟IP }# 触发脚本配置,配置未生效,故自己增加了另外的脚本# track_script {# check_local# }}root@R1:/#
2) 备用路由
配置基本和主路由相同。
root@R1:/# cat /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {! notification_email {! user@example.com! }! notification_email_from mail@example.org! smtp_server 192.168.200.1! smtp_connect_timeout 30 router_id NodeA}# 本来网上说可以增加脚本配置,但是我测试了不起作用。#vrrp_script check_local {# script "/etc/keepalived/check_local.sh"# interval 5#}vrrp_instance VI_1 { state BACKUP #标示状态为BACKUP interface br-lan virtual_router_id 232 priority 51 #MASTER权重要高于BACKUP advert_int 1# nopreempt authentication { auth_type PASS #主从服务器验证方式 auth_pass 123456 } virtual_ipaddress { 10.237.46.233 #虚拟IP }# 触发脚本配置,配置未生效,故自己增加了另外的脚本# track_script {# check_local# }}root@R1:/#
3) 基本配置参数的说明
virtual_router_id
网上其他的资料要求2个主备路由器配置的id相同(“VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组”),但是配置后测试发现,有一台的keepalived启动失败(使用“ip a show |grep -w inet”命令即可查看)interface
原来配置此接口时不太理解,参考网上配置,都为成功,但是修改为br-lan后,成功了。个人理解为:按照我的应用场景,应该是向下的网关。
4) 其他参数:
global_defs: 全局配置标识,表面下面的区域{}是全局配置 - notification_email: 里面填邮箱地址,如果keepalived在发生诸如切换操作时会的发邮件到配置上的邮箱,邮件地址可以多个,每行一个 - notification_email_from:表示发送通知邮件时邮件源地址是谁 - smtp_server:表示发送email时使用的smtp服务器地址,可以填127.0.0.1 - smtp_connect_timeout:连接smtp超时时间 - vrrp_instance:各服务器上实例配置域,这里按本服务器的具体情况填值 - state:本实例启动状态,MASTER/SLAVE,不管填MASTER/SLAVE,最终还是要看本机器的权重。 - interface:实例绑定的网卡,因为在配置虚拟IP的时候必须是在已有的网卡上添加的,这里按本机情况而定 - virtual_router_id:这里设置VRID,如果两台机器是同一个备份组,设置一样 - priority:设置本节点的优先级,优先级高的为master,不能超过255 - advert_int:组播信息发送间隔,同一个备份组两个机器设置必须一样,默认是1S - authentication:验证域,同组的机器auth_type(验证类型)和auth_pass(验证密码)必须一样 - virtual_ipaddress:VIP,为master机器设置的虚拟地址,和实例绑定的网卡(interface)设置到一个网段
4) 自定义的配置脚本
刚开始配置完成后,如果主路由故障,可以自动切换到备用路由。但是,主路由恢复后,不能主动切换回主路由。如做了以下简单的脚本。
有些帖子中提到,nopreempt此参数可以起到自动切换的功能,但是我没有测试成功。
还有在配置文件中增加触发脚本,我也没有测试成功。
基于此,以下脚本使用watch -n 2来执行,即2s执行一次。
root@R1:/# cat keepalived_monitor.sh #!/bin/shIP=114.114.114.114FAIL_COUNT=0while [[ $FAIL_COUNT -le 2 ]]; do #statements ping -c 2 -W 1 $IP > /dev/null 2>&1 if [ "$?" == "0" ]; then echo "Network connect!" keepalived_status=`ps |grep keepalived |grep -v grep` if [[ $? == "0" ]]; then # echo "keepalived is running!" break else # echo "keepalived is not running, it will be started." /etc/init.d/keepalived start break fi else echo "Network disconnect!" let FAIL_COUNT++ echo $FAIL_COUNT if [[ $FAIL_COUNT == "3" ]]; then # stop the keepalived services. /etc/init.d/keepalived stop break fi fidoneroot@R1:/#
此次调试总结,到此为止。希望朋友们指正……有好多参数的具体含义也没有完全理解,应该有更加晚上的配置和脚本,希望后期有时间继续研究。
1 0
- 实现主备路由自动切换 – keepalived【二】
- Openwrt 下实现主备路由自动切换 -- keepalived
- keepalived实现主备切换
- keepAlived应用于HaProxy的主备自动切换实现高可用,避免单点故障
- keepAlived应用于HaProxy的主备自动切换实现高可用,避免单点故障
- Keepalived+mysql实现mysql自动切换
- keepalived 实现mysql主从自动切换
- Keepalived实现Redis Failover自动故障切换
- Keepalived+mysql实现mysql自动切换
- 测试redis+keepalived实现简单的主备切换
- ubuntu快速安装实现keepalived的主备切换
- Nginx之Keepalived实现高可用(双机热备+自动切换)-yellowcong
- 通过Keepalived实现Redis Failover自动故障切换功能
- 通过Keepalived实现Redis Failover自动故障切换功能
- 通过Keepalived实现Redis Failover自动故障切换功能
- 通过Keepalived实现Redis Failover自动故障切换功能
- redis主从配置及通过keepalived实现redis自动切换
- 通过Keepalived实现Redis Failover自动故障切换功能
- 固定总金额,红包数量,单红包金额上限,单红包金额下限拆分随机红包
- 解决DataTable初始化后表头出错
- Dropping Balls UVA
- linux问题处理收集
- Mac安装tensorflow
- 实现主备路由自动切换 – keepalived【二】
- 烧入时遇到的相关问题集合
- qq,微信,微博,简单的分享只分享存文本
- 重建二叉树
- 设置全屏dialog
- matlab 的循环
- linux 中 ll 命令 查询结果按时间升序或降序排序
- XAMPP总是启动本地mysql的解决办法
- HTTP原理和http1.1 http1.0的区别