LVS DR模式搭建

三台服务器A、B、C:
1、A:load balancer
(调度器dir,分发器)
内网网卡:192.168.31.128,网关保持不变(192.168.31.2)
外网网卡:192.168.229.128,先不用理会,这里用不到

setenforce 0  #关闭selinux
systemctl stop firewalld  #停止firewalld
systemctl disable firewalld  #关闭firewalld
yum install -y iptables-services  #安装iptables
systemctl enable iptables  #添加iptables服务
systemctl start iptables.service  #启动iptables服务
iptables -F  #清空iptables规则
service iptables save  #保存空规则
yum -y install ipvsadm net-tools
1、创建LVS的DR规则脚本
写入以下内容:
  vim /usr/local/sbin/lvs_dr.sh 
echo 1 > /proc/sys/net/ipv4/ip_forward  #打开路由转发(临时生效,永久生效,vi /etc/sysctl.conf添加net.ipv4.ip_forward=1,再执行sysctl -p使其生效)
ipv=/usr/sbin/ipvsadm  #设置ipvsadm变量
vip=192.168.31.200  #设置公用ip变量(virtual ip)
rs1=192.168.31.129  #设置real serverlip的变量
rs2=192.168.31.130  #设置real server2ip的变量
net="ens33"
ifdown $net  #关闭网卡
ifup $net  #启动网卡,目的时清空临时设定的ip,避免重复设定
ifconfig ${net}:2 $vip broadcast $vip netmask 255.255.255.255 up  #绑定vip到虚拟网卡上
route add -host $vip dev ${net}:2  #为ens33:2添加网卡
$ipv -C  #清空
$ipv -A -t $vip:80 -s wrr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 2
2、给脚本设权
chmod 755 /usr/local/sbin/lvs_dr.sh
route -n  #查看路由
ip a
3、执行脚本
sh /usr/local/sbin/lvs_dr.sh
4、查看路由上的ip
route -n  #对比上面的路由
5、查看网卡ens33上的vip
ip addr
LVS ipvsadm命令的使用
1、LVS-server 安装lvs 管理软件
yum -y install ipvsadm
程序包:ipvsadm(LVS管理工具)
Unit File:ipvsadm.service
主程序:/usr/sbin/ipvsadm
规则保存工具:/usr/sbin/ipvsadm-save
规则重载工具:/usr/sbin/ipvsadm-restore
配置文件:/etc/sysconfig/ipvsadm-config
2、命令选项
-A --add-service  #在服务器列表中新添加一条新的虚拟服务器记录
-t  #表示为tcp服务
-u  #表示为udp服务
-s --scheduler  #使用的调度算法,rr | wrr | 1c | wlc |1b1b|1blcr |dh | sh | sed|ng 默认调度算法是w1c
例:ipvsadm -A -t 192.168.1.2:80 -s wrr

-a --add-server  #在服务器表中添加一条新的真实主机记录
-t --tcp-service  #说明虚拟服务器提供tcp服务
-u --udp-service  #说明虚拟服务器提供udp服务
-r --real-server  #真实服务器地址
-m --masquerading  #指定LVS工作模式为NAT模式
-w --weight  #真实服务器的权值
-g --gatewaying  #指定LVS工作模式为直接路由器模式(也是LVS默认的模式)
-i --ip  #指定LVS的工作模式为隧道模式
-p  #会话保持时间,定义流量被转到同一个realserver的会话存留时间
例:ipvsadm -a -t 192.168.1.2:80 -r 192.168.2.10:80 -m -w 1

-E -edit-service  #编辑内核虚拟服务器表中的一条虚拟服务器记录。
-D -delete-service  #删除内核虚拟服务器表中的一条虚拟服务器记录。
-C -clear  #清除内核虚拟服务器表中的所有记录。
-R -restore  #恢复虚拟服务器规则
-S -save  #保存虚拟服务器规则,输出为-R选项可读的格式
-e -edit-server  #编辑一条虚拟服务器记录中的某条真实服务器记录
-d -delete-server  #删除一条虚拟服务器记录中的某条真实服务器记录
-L|-l -list  #显示内核虚拟服务器表

--numeric,-n:  #以数字形式输出地址和端口号
--numeric,-n:  #以数字形式输出地址和端口号
--exact:  #扩展信息,精确值
--connection,-c:  #当前IPVS连接输出
--stats:  #统计信息
--rate:  #输出速率信息

参数也可以从/proc/net/ip_vs*映射文件中查看
-z -zero  #虚拟服务表计数器清零(清空当前的连接数量等)
2、B:real server
(web服务器)内网网卡:192.168.31.130
安装nginx,并启动,在默认主页里写入,real server 1关闭selinux,清空防火墙规则
yum-y install net-tools 
  vim /usr/local/sbin/lvs_rs.sh
#/bin/bash 
vip=192.168.31.200
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifdown lo
ifup lo
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up  #绑定vip到虚拟网卡lo:0上
route add -host $vip lo:0为lo:0网卡添加网关
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
echd "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

2、给脚本设权
chmod 755 /usr/1ocal/sbin/lvs_rs.sh
3、执行脚本
sh /usr/local/sbin/lvs_rs.sh
4、查看路由上的vip
route -n
5、查看网卡lo上的vip
ip addr
3、C:real server
(web服务器)内网网卡:192.168.31.130
安装nginx,并启动,在默认主页里写入,real server2关闭selinux,清空防火墙规则
1、创建转发脚本(也可以从B,scp拷贝过来)
yum -y install net-tools
vim /usr/local/sbin/lvs_rs.sh
#/bin/bash 
vip=192.168.31.200
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifdown lo
ifup lo
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up  #绑定vip到虚拟网卡lo:0上
route add -host $vip lo:0为lo:0网卡添加网关
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
echd "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

3台机器执行yum install -y nginx
修改默认配置页面
B:echo “rs1” >/usr/share/nginx/html
C:echo “rs2” >/usr/share/nginx/html
浏览器测试192.168.31.200
vi /etc/nginx/nginx.conf
keepalive默认保持会话时间是65s
要修改为0才会马上生效
刷新rs1 1次
rs2 2次

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值