LVS实现负载均衡(nat,dr,tun)

案例1:基于NAT的负载均衡

网卡配置这里就不在具体描述,在网络环境调通的情况下操作,具体的拓扑如图:

Director:10.10.10.133

|                                |
 RS1: 10.10.10.131           RS2: 10.10.10.132

我在做实验的时候是采用yum的方式进行安装的LVS管理工具ipvsadm,yum安装非常简单这里也不在赘述,这里写一下源码的方式安装

#解压源码包,在下载源码包时注意内核版本,下载对应的配置工具。

[[email protected]]# tar xvf ipvsadm-1.26.tar.gz

#可直接编译

[[email protected]]# make

#安装

[[email protected]]# make install

#确认ipvsadm安装成功

[[email protected]]#  /sbin/ipvsadm -v

ipvsadm v1.262008/5/15 (compiled with popt and IPVS v1.2.1)

调度器配置

#启用路由转发功能

[[email protected] Director ~]# vim /etc/sysctl.conf

将net.ipv4.ip_forward 数值由0改成1,开启路由转发功能

退出文件执行[[email protected] ~]# sysctl –p 使内核参数生效

#清除ipvsadm 表

[[email protected] Director ~]# ipvsadm  -C

#使用ipvsadm 安装LVS 服务

[[email protected] Director ~]# /sbin/ipvsadm   -A   –t 10.10.10.133:80

#增加第1台realserver

[[email protected] Director ~]# /sbin/ipvsadm -a -t 10.10.10.133:80-r 10.10.10.131:80 -m -w 1

#增加第2台realserver

[[email protected] Director ~]# /sbin/ipvsadm -a –t 10.10.10.133:80-r 10.10.10.132:80 -m -w 1

[[email protected] Director ~]# service ipvsadm save

[[email protected] Director ~]# service ipvsadm start

真实服务器的设置 (两台服务器配置相同)

设置IP转发  echo "0">/proc/sys/net/ipv4/ip_forward

避免arp广播问题

echo 1 >/proc/sys/net/ipv4/conf/tunl0/arp_ignore

echo 2 >/proc/sys/net/ipv4/conf/tunl0/arp_announce

echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce

在两台服务器上都安装上http服务,分别在他们的index.html文件中写入各自的IP地址

最后在Director主机上进行测试

curlhttp:// 10.10.10.131

curlhttp:// 10.10.10.132

附:(一个Director端的配置脚本,可以直接使用)

#! /bin/bash
# director 服务器上开启路由转发功能: 
echo 1 > /proc/sys/net/ipv4/ip_forward 
# 关闭icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects

# director 设置nat防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 10.10.10.0/24  -j MASQUERADE
# director设置ipvsadm
IPVSADM=‘/sbin/ipvsadm‘
$IPVSADM -C
$IPVSADM -A -t 10.10.10.133:80 -s lc -p 300 (-p 代表的是超时时间)
$IPVSADM -a -t 10.10.10.133:80 -r 10.10.10.131:80 -m -w 1
$IPVSADM -a -t 10.10.10.133:80 -r 10.10.10.132:80 -m -w 1

案例2:基于DR的负载均衡

三台机器:
director(eth0 10.10.10.133, vip eth0:0: 10.10.10.100)
real server1(eth0 rip: 10.10.10.131, vip lo:0: 10.10.10.100)
real server2(eth0 rip: 10.10.10.135, vip lo:0: 10.10.10.100)
Director 上 vim/usr/local/sbin/lvs_dr.sh //增加

#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
vip=10.10.10.100
rs1=10.10.10.131
rs2=10.10.10.135
ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev eth0:0
$ipv -C
$ipv -A -t $vip:80 -s rr 
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1

两台rs上:vim /usr/local/sbin/lvs_dr_rs.sh
#! /bin/bash
vip=10.10.10.100
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

关于arp_ignore和 arp_announce 参考:http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html

然后director上执行: bash /usr/local/sbin/lvs_dr.sh
两台rs上执行: bash /usr/local/sbin/lvs_dr_rs.sh
Windows下浏览器测试访问

案例3:基于tun的负载均衡

VIP=10.10.10.100

Director配置

[[email protected] ~]#  ipvsadm -C

[[email protected] ~]#  ipvsadm -A -t 10.10.10.100:80 -s rr

[[email protected] ~]#  ipvsadm -a -t 10.10.10.100:80 -r10.10.10.131:80 -i -w 1

[[email protected] ~]#  ipvsadm -a -t 10.10.10.100:80 -r10.10.10.135:80 -i -w 1

[[email protected] ~]#  service ipvsadm save

[[email protected] ~]#  service ipvsadm start

[[email protected] ~]#  echo "1" >/proc/sys/net/ipv4/ip_forward

[[email protected] ~]#  ifconfig eth1:0 10.10.10.100 netmask255.255.255.0 up

RealServer配置

Vim   /usr/local/sbin/tun.sh

#!/bin/bash

if [ $# -ne1  ];

then

echo "usage: $0 virtualIP"

exit 0

fi

VIP=$1

echo"0" >/proc/sys/net/ipv4/ip_forward

/sbin/ifconfigeth0 mtu 1440

/sbin/ifconfigtunl0 up

/sbin/ifconfigtunl0 ${VIP} broadcast ${VIP} netmask 0xffffffff up

/sbin/route add-host ${VIP} dev tunl0

echo 1 >/proc/sys/net/ipv4/conf/tunl0/arp_ignore

echo 2 >/proc/sys/net/ipv4/conf/tunl0/arp_announce

echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce

echo 0 >/proc/sys/net/ipv4/conf/tunl0/rp_filter

echo 0 >/proc/sys/net/ipv4/conf/all/rp_filter

[[email protected] ~]#   bash /usr/local/sbin/tun.sh 10.10.10.100

[[email protected] ~]#   bash /usr/local/sbin/tun.sh 10.10.10.100

配置完成后通过IE浏览器访问http://10.10.10.100 刷新页面查看轮询效果

时间: 2024-10-13 16:20:59

LVS实现负载均衡(nat,dr,tun)的相关文章

LVS负载均衡之DR模式

LVS负载均衡之DR 一.实验环境 二.实验步骤 配置VIP目的:为了客户机来请求时lvs直接调度节点服务器,节点服务器用VIP回应客户机请求.如果不配置VIP,用自己的ip回应,则客户机丢弃web本机地址,因为不是客户机所要找的IP地址. LVS配置 ip:vmnet2:192.168.1.2 VIP:eth0:0:192.168.1.254  NETMASK:255.255.255.0 1.加载ip_vs模块并安装ipvsadm #modprobe  ip_vs #yum  -y  inst

LVS负载均衡—NAT模式

LVS负载均衡-NAT模式 如下图所示,NAT模式中的一大缺点就是无论是请求的数据包,还是返回的数据包,都必须要经过负载的这个点,请求的数据包一般内容较少,问题不是很大,而返回的数据包,一般都是图片,视频等等,这会给中间的调度器带来巨大的负担 一.环境准备准备三台虚拟机LVS主机有两块网卡:VIP=192.168.1.2 (一般为公网IP)DIP=10.168.1.1RIP1=10.168.1.100RIP2=10.168.1.200二.LVS主机准备工作首先安装ipvsadm[root@loc

LVS搭建负载均衡(二)DR模型

应用场景:LVS配置负载均衡方式之一:dr 测试环境:

基于LVS的负载均衡实现之NAT

一 什么是负载均衡 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器.FTP服务器.企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务. 二 什么是LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.LVS是负载均衡最著名的实现之一. 三 LVS基本工作原理 LVS集群采用IP负载均衡技术

使用LVS实现负载均衡原理及安装配置详解

转:http://www.cnblogs.com/liwei0526vip/p/6370103.html 使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录. 一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director

使用 LVS 实现负载均衡原理及安装配置详解

使用 LVS 实现负载均衡原理及安装配置详解 来源:肖邦linux 发布时间:2017-02-19 阅读次数:106 0 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录. 一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用

LVS+Keepalived负载均衡主备

LVS+Keepalived 介绍LVSLVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR):十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq). KeepalviedKeepalived在这里主要用作RealServer的健康状态检查以及LoadBal

LVS+Keepalived负载均衡双主架构全攻略

二.LVS+Keepalived负载均衡双主互备架构 IP信息清单:名称 IP LVS-DR-Master 192.168.2.98 LVS-DR-Backup 192.168.2.99 LVS-DR-VIP1 192.168.2.100 LVS-DR-VIP2 192.168.2.105 Realserver01 192.168.2.101 Realserver02 192.168.2.102 Realserver03 192.168.2.103 Realserver04 192.168.2.

linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS+keepalived负载均衡

最近希望能够配置一下负载均衡,在虚拟机上面,但是网上找了很多资料很零散,对于不了解的人,很多不够详细,最近终于做好了,把具体的步骤写下来,方便各位网友查阅学习 这个实验需要安装nginx如果没有安装过,请参考: linux安装nginx:http://www.cnblogs.com/aspirant/p/6714548.html (1) 我们的系统是CentOS7 目前需要四台机器,分别为 Director机器 两台:master,slave 真实机器realserver1,realserver

MySQL 高可用:mysql+Lvs+Keepalived 负载均衡及故障转移

转自 MySQL 高可用:mysql+Lvs+Keepalived 负载均衡及故障转移 - KK ——专注数据 - 博客频道 - CSDN.NEThttp://blog.csdn.net/kk185800961/article/details/51115264# 系统信息: mysql主库 192.168.1.152 CentOS 5.6 mysql 5.6.22 mysql从库 192.168.1.153 CentOS 5.6 mysql 5.6.22 VIP 192.168.1.150 my