设为首页 收藏本站
查看: 686|回复: 0

[经验分享] Lvs+Keepalived构建双机高可用

[复制链接]

尚未签到

发表于 2018-12-30 13:30:00 | 显示全部楼层 |阅读模式
  应用
IP地址
网关
Vip
  公网地址
  Virtual IP


  10.0.1.100
  119.188.13x.x(网通nat)
  218.98.3x.20x(电信nat)
  Lvs(master)
  10.0.1.101 eth0
  10.0.1.254


  Lvslave
  10.0.1.102 eth0
  10.0.1.254


  Real-server
  10.0.1.103 eth0
  10.0.1.254
  10.0.1.100  lo:0

  Real-server
  10.0.1.104 eth0
  10.0.1.254
  10.0.1.100  lo:0






  Virtual IP


  10.0.1.200
  119.188.13x.4(网通nat)
  218.98.3x.201(电信nat)
  Real-server
  10.0.1.105 eth0
  10.0.1.254
  10.0.1.200  lo:0

  Real-server
  10.0.1.106 eth0
  10.0.1.254
  10.0.1.200  lo:0

  1、安装LVS
  rpm -ivh ipvsadm-1.24-13.el5.x86_64
  2、ipvsadm检查安装

  3、lsmod |grep ip_vs检查是否加装ip_vs模块
  
  4、realserver真实节点服务器配置(103、104配置相同)
  vi/etc/init.d/lvsrsdr
  #!/bin/bash
  #description : start realserver DR
  VIP=10.0.1.100
  . /etc/rc.d/init.d/functions
  case "$1" in
  start)
  echo "start LVS of RealServer DR"
  /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  /sbin/route add -host $VIP dev lo:0
  echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
  ;;
  Stop)
  /sbin/ifconfig lo:0 down
  echo "close LVS of RealServer DR"
  echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
  ;;
  *)
  echo "Usage:$0 {start|stop}"
  exit 1
  esac
  脚本可执行模式
  chmod +x /etc/init.d/lvsrsdr
  
  启动脚本(以服务方式启动)
  service lvsrsdr start
  
  5、realserver真实节点服务器配置(105、106配置相同不同于103、104vip地址不同)
  vi/etc/init.d/lvsrsdr
  #!/bin/bash
  #description : start realserver DR
  VIP=10.0.1.200
  . /etc/rc.d/init.d/functions
  case "$1" in
  start)
  echo "start LVS of RealServer DR"
  /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  /sbin/route add -host $VIP dev lo:0
  echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
  ;;
  Stop)
  /sbin/ifconfig lo:0 down
  echo "close LVS of RealServer DR"
  echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
  ;;
  *)
  echo "Usage:$0 {start|stop}"
  exit 1
  esac
  LVS高可用配置
  
1、下载安装(Master和Backup都必须安装Keepalive)
  wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
tar zxvf keepalived-1.2.7.tar.gz
cd keepalived-1.2.7
./configure
make

  make install
  2、将Keepalived以服务启动(Master和Backup同时配置)
  cp /usr/local/etc/rc.d/init.d/keepalived/etc/rc.d/init.d/
  cp /usr/local/etc/sysconfig/keepalived/etc/sysconfig/
  mkdir /etc/keepalived
  cp /usr/local/etc/keepalived/keepalived.conf/etc/keepalived/
  cp /usr/local/sbin/keepalived /usr/sbin/
  chkconfig --add keepalived
  service keepalived start|stop
  3、配置MASTER
  cp /etc/keepalived/keepalived.conf/etc/keepalived/keepalived.conf.bak
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived


global_defs {

notification_email {

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 192.168.200.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}


vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.0.1.100

10.0.1.200

}

}


virtual_server 10.0.1.100 80 {

delay_loop 6

lb_algo wlc

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP


real_server10.0.1.103 80 {

weight 1

TCP_CHECK {


connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}


real_server10.0.1.104 80 {

weight 1

TCP_CHECK {


connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}


}

virtual_server 10.0.1.200 80 {

delay_loop 6

lb_algo wlc

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP


real_server10.0.1.105 80 {

weight 1

TCP_CHECK {


connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}


real_server10.0.1.106 80 {

weight 1

TCP_CHECK {


connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}


}



  3、配置BACKUP         
  vrrp_instance VI_1 {
state BACKUP  
    interfaceeth0           
      virtual_router_id 51
priority 99
  总结:
  一个公网IP映射给内部vip(既vip和web集群为一个网段),VS/DR 通过改写请求报文的MAC地址(改为选出服务器的MAC地址),再将修改后的数据帧发送给选出的web服务器。因为数据帧的MAC地址是选出的服务器,所以服务器肯定可以收到这个数据帧,从中可以获得该IP报文。当服务器发现报文的目标地址VIP是在本地的网络设备上(lo:0口),服务器处理这个报文,然后根据路由表将响应报文直接返回给客户,既应用服务器执行相应操作后,通过lo:0口(也就是vip的地址已经通过nat可出访外网),将结果返回给客户,这也就是为什么整个的架构中,仅需vip有公网IP,然后通过防火墙将公网IP做映射到私网vip即可.
  客户端抓包:
客户端IP在通信过程一直是vip(实际是vip中的一台realserver!),所以这台realserver依旧通过vip的地址将请求转给客户端!如果vip是公网IP,那realserver也会通过这个公网IP将请求发给客户!
  

  tcpdump -i eth0 tcp port 80
  tcpdump |grep http
  
web服务器抓包:

  客户端IP一直与vip通信,realserver也是将自己当成vip来处理数据。
  DR模式,注意DR模式不支持端口重定向,VIP监听的port必须与rs服务监听的port一致




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-657618-1-1.html 上篇帖子: centos 6.2 keepalived/haproxy 安装测试 下篇帖子: 配置Keepalived实现HTTPD高可用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表