lvs注意点

参考:
http://www.cnblogs.com/liwei0526vip/p/6370103.html

https://www.cnblogs.com/lipengxiang2009/p/7451050.html

TCP四层转发协议,其中内核是通过 PREROUTING INPUT FORWARD OUTPUT POSTROUTING 这个几个数据转发控制来完成的。

模式一、
NAT(DNAT)

注意:
1、目的地址修改,内核的prerouting和postrouting链
2、RS的网关地址一定要指向DIP(LVS的内网IP,因为第一点,IP报文的转发过程都是只更改DIP)
3、因为第二点的原因,RS的出外网是受限制的,所以很少使用。
4、回包一定要经过DR去修改IP头部的SIP(源ip地址)地址(因为TCP回话一定要保证出去的包和收回的包 IP地址不变)

需要内核支持
modprobe ip_vs

网上看到的经常说的DNAT的一个缺点:
上面说了NAT模型的实现方式,那么NAT模型有个缺陷,因为进出的每个数据包都要经过Director Server,当集群系统负载过大的时候Director Server将会成为整个集群系统的瓶颈(但我觉得这个不是瓶颈,不用NAT是因为网络结构不适合多数公司)

那么DR模型就避免了这样的情况发生,DR模型在只有请求的时候才会经过Director Server, 回应的数据包由Real Server 直接响应用户不需要经过Director Server,其实三种模型中最常用的也就是DR模型了。

模式二、DR模式

注意:
1、源末地址都未修改,lvs更改的是源和目标mac地址。CIP VIP -> DIP RIP的mac地址。
2、RS上添加lo:0地址为 VIP的地址,因为从客户端发起的请求到结束,源末地址都未修改,RS要接收包,必须目标地址是本机地址。
3、RS上要修改mac的接收和响应方式(详解参考:https://www.cnblogs.com/lipengxiang2009/p/7451050.html
4、RS和VIP的端口一定要一样都是80(不支持地址转换,也不支持端口映射)
因为上原理,所以要配置DR模式 VIP DIP RIP 都必须在同一个网段(因为需要是通过二层来传输)(多数是公网如果是提供web服务)

实验采用私有IP地址的脚本配置如:

LVS机器上配置
cat lvs_dr.sh

#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
vip="21.32.19.200"
rs1="21.32.19.21:80"
rs2="21.32.19.22:80"
ifconfig eth0:0 down
ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.
route add -host $vip dev eth0:0
$ipv -C
$ipv -A -t $vip:80 -s wrr 
$ipv -a -t $vip:80 -r ${rs1} -g -w 3
$ipv -a -t $vip:80 -r ${rs2} -g -w 1

RS上的配置
cat lvs_dr_rs.s

#! /bin/bash
vip=21.32.19.200
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip 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

测试:
curl http://21.32.19.200
注意测试的时候,不要在DR(lvs机器上)和RS机器上,因为这几个机器都有这个VIP地址。

企业常用
DR + keepalived
keepalived的出现就是为了LVS(keepalived中很多参数是直接影响lvs的,和你用命令 ipvsadm 管理lvs是一样的效果)

其中keepavlied难理解的参数:
1、lvs_sync_daemon_inteface eth0 #负载均衡器之间的监控接口(DR模式中同interface)

2、vrrp_sync_group (多个入口的时候,CTC CNC CMCC的时候这个三个VS组可以做同步切换)

3、delay_loop 探测的时间

转载于:https://blog.51cto.com/cuidehua/2348386

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值