lvs DR模式
1.单机
director端
ifconfig eth0:1 $vip broadcast $vip netmask 255.255.255.255 up   ----broadcast广播(单机的时候加这条,双机的时候keepalived会产生vip的,所以不需要加)
route add -host $vip dev eth0:1
yum install ipvsadm
ipvsadm -A -t 192.168.10.100:80 -s wlc
ipvsadm -a -t 192.168.10.100:80 -g -r 192.168.10.11 -w 1
ipvsadm -a -t 192.168.10.100:80 -g -r 192.168.10.12 -w 2
ipvsadm -ln 查看,试试ipvsadm -ln -stats这个命令看
2.双机(keepalived)
director端
yum install kernel-devel gcc openssl-devel
yum install ipvsadm
tar xvf keepalived-1.1.19.tar.gz  可用比较新的版本
./configure  --prefix=/usr/local/keepalived  --with-kernel-dir=/usr/src/kernels/xxxx
make && make install
制作服务  cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
chkconfig --add keepalived
配置文件
!Configuration File for keepalived
global_defs{
   router_id LVS_MASTER  
}
vrrp_instance VI_1{
  state MASTER     #定义主备,SLAVE
  interface eth0  #HA检测端口
  virtual_router_id 51  #主备必须相同
  priority 100   #备机比这小,如80  
  advert_int 3    #vrrp多播间隔周期
  authentication{
    auth_type PASS  
    auth_pass 1111
  }
  virtual_ipaddress{   #定义vip,多个vip可换行添加
  192.168.10.100
  }
}
virtual_server 192.168.10.100 80{
  delay_loop 6     #每隔6秒查看realserver状态
  lb_algo wlc       #调度算法
  lb_kind DR         #lvs工作模式 
  nat_mask 255.255.255.0
  persistence_timeout 50  #同一IP的连接50s内被分配到同一台realserver
  protocol TCP
  real_server 192.168.10.11 80{
  weight 1
  TCP_CHECK {             #TCP_CHECK和{ 之间最好跟一空格
    connect_timeout 10   #10s无反应算超时
    nb_get_retry 3       
    connect_port 80
    }
  }
  
    real_server 192.168.10.12 80{
  weight 2
  TCP_CHECK {                  
    connect_timeout 10      
    nb_get_retry 3
    connect_port 80
    }
  }
}
ln -s /etc/init.d/keepalived /etc/rc.d/rc3.d/s99keepalived
ln -s /etc/init.d/keepalived /etc/rc.d/rc5.d/s99keepalived
单机、双机realserver的配置都一样,都是如下的脚本
realserver.sh
#!/bin/bash 
# network Bring up/down networking 
# description: Activates/Deactivates all network interfaces configured to \ 
# start at boot time.
#/etc/rc.d/init.d/functions
LVS_VIP2=192.168.200.50
case "$1" in 
start) 
/sbin/ifconfig lo:1 $LVS_VIP2 netmask 255.255.255.255 broadcast $LVS_VIP2 
/sbin/route add -host $LVS_VIP2 dev lo:1 
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 
sysctl -p >/dev/null 2>&1 
echo "RealServer Start OK" 
;; 
stop) 
/sbin/ifconfig lo:1 down 
/sbin/route del $LVS_VIP2 >/dev/null 2>&1 
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 "RealServer Stoped" 
;; 
*) 
echo "Usage: $0 {start|stop}" 
exit 1 
esac 
exit 0
dr模式问答:
1.配置dr模式,需要修改交换机参数吗?
答:不需要,在realserver上修改网络参数就可以了,见问题2、3
2.在dr模式下,director、realserver都绑定了vip,为什么前端的arp广播只有director响应?
答:因为在realserver上要设置echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore, echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 这样的话realserver对vrp广播就不理会了
3.在dr模式下,realserver不经过director(网关不设置为director),而且不用改原地址的情况下,直接回复客户端并且不会被丢包(realserver将接收包的目的地址作为发送包的源地址)?
答:原因有2
a.realserver在lo绑定了vip
b.realserver设置了后面3项  , echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce , echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce , route add -host $VIP dev lo:0
4.dr模式下,realserver需要有公网地址吗?
答:不需要,只要realserver能访问外网就行
5.dr模式下,director上的vip绑定在哪个接口
答:绑在实际通讯的那个网络接口,如eth0下,绑成为:eth0:0,单机和双机的用法不一样
    单机情况下,ifconfig eth0:1 $vip broadcast $vip netmask 255.255.255.255 up
	双机情况下,在keepalived的配置文件里   virtual_ipaddress { 192.168.200.100}
6.dr模式下,在realserver上为什么设置route add -host 192.168.200.50 dev lo:0?
答:问题3的答案可以回答
lvs DR模式的更多相关文章
- LVS DR模式 负载均衡服务搭建
		LVS 负载均衡 最近在研究服务器负载均衡,阅读了网上的一些资料,发现主要的软件负载均衡方案有nginx(针对HTTP服务的负载均衡),LVS(针对IP层,MAC层的负载均衡).LVS模式工作在网络层 ... 
- 一个公网地址部署LVS/DR模式
		http://blog.chinaunix.net/uid-7411781-id-3436142.html 一个公网地址部署LVS/DR模式 网上看了很多关于LVS的文章,在选取2种模式LVS/D ... 
- LVS DR模式搭建、keepalived+lvs
		1.LVS DR模式搭建 条件: 即三台机器,在同一内网. 编辑脚本文件:/usr/local/sbin/lvs_dr.sh #! /bin/bashecho 1 > /proc/sys/net ... 
- LVS DR模式搭建  keepalived lvs
		LVS DR模式搭建• 三台机器 • 分发器,也叫调度器(简写为dir)172.16.161.130 • rs1 172.16.161.131 • rs2 172.16.161.132 • vip 1 ... 
- lvs之  lvs+nginx+tomcat_1、tomcat_2+redis(lvs dr 模式)
		前提:已经安装好 lvs+nginx+tomcat_1.tomcat_2+redis环境 ,可参考 (略有改动,比如tomcat_1.tomcat_2安装在两台机器上,而不是单机多实例 ,自行稍稍变动 ... 
- CentOS下LVS DR模式负载均衡配置详解
		一安装LVS准备: 1.准备4台Centos 6.2 x86_64 注:本实验关闭 SELinux和IPtables防火墙. 管理IP地址 角色 备注 192.168.1.101 LVS主调度器(Ma ... 
- Keepalived+LVS DR模式高可用架构实践
		Keepalived最初是为LVS设计,专门监控各服务器节点的状态(LVS不带健康检查功能,所以使用keepalived进行健康检查),后来加入了VRRP(虚拟路由热备协议(Virtual Route ... 
- Linux centosVMware Linux集群架构LVS DR模式搭建、keepalived + LVS
		一.LVS DR模式搭建 三台机器 分发器,也叫调度器(简写为dir) davery :1.101 rs1 davery01:1.106 rs2 davery02:11.107 vip 133.200 ... 
- LVS DR模式实验
		LVS DR模式实验 三台虚拟机,两个台节点机(Apache),一台DR实验调度机 一:关闭相关安全机制 systemctl stop firewalld iptables -F setenforce ... 
- lvs dr 模式请求过程
		一. lvs dr 模式请求过程 1.整个请求过程如下: client在发起请求之前,会发一个arp广播的包,在网络中找"谁是vip",由于所有的服务器,lvs和rs都有vip,为 ... 
随机推荐
- C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)
			一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应 ... 
- TFS 2010 如何删除Collection
			在cmd 中 cd 到 目录 c:\Program Files\Microsoft Team Foundation Sever 2010\Tools 执行下面的命令: TfsConfig colle ... 
- [转]遍历windows服务
			原文:http://www.codeproject.com/Articles/1573/About-Windows-Services #include <windows.h> #inclu ... 
- 如何利用tomcat和cas实现单点登录(1):配置tomcat的ssl和部署cas
			如何利用tomcat和cas实现单点登录,借鉴了网上的很多教程,主要分为以下几个步骤: 一:下载好cas,tomcat之后,首先配置tomcat: 用鼠标右键点击"计算机"→选择& ... 
- xpath表达式,提取标签下的全部内容(将其他标签过滤)
			例如要提取span下的内容 //div[@class="content"]/span 正确的其中一种写法如下data = response.xpath('//div[@class= ... 
- jquery表格增加删除后改变序号
			有个小bug,懒得修了. 目的:增加一行的时候,td第一列排序. 删除一行的时候,td第一列排序 <!DOCTYPE HTML> <html> <head> < ... 
- 关于Nios II的启动分析(转载)
			原文地址:http://hi.baidu.com/goatdai/item/cc33671545d89243e75e06ad 常用到的存储器包括SDRMA.SRAM.FLASH.Onchip_memo ... 
- 判断Ie浏览器
			ie8以下 if(!+[1,]) if(window.attachEvent){ alert("ie")}else if(window.addEventListener){aler ... 
- JAVA中implements的用法
			implements使用 interface Sport { void run(); void jump(); } class Athlete implements Sport { public vo ... 
- nodejs--偏函数
			偏函数的例子,解释--假设有一个参数或变量已经预置的函数A,我们通过调用A来产生一个新的函数B,函数B就是我们说的偏函数 偏函数解决这样的问题:如果我们有函数是多个参数的,我们希望能固定其中某几个参数 ... 
