lvs负载均衡NAT模式,DR模式

一、LVS(NAT模式)搭建过程

一、实验准备

准备四台虚拟机,一台测试机,一台路由器+调度器,两台apache服务器,配置两个不同的网段。

测试机:192.168.152.14

路由+调度器:192.168.152.11

192.168.11.11

应用服务器:192.168.11.12

应用服务器:192.168.11.13

关闭防火墙及SELinux

阶段测试,用ping命令测试网络是否可达。

二、LVS(DR模式)搭建过程

  1. 配置网络环境

1、根据网络环境配置每台虚拟机的IP地址,网关,并连接xshell

 #配置路由的IP并开启路由转发功能 

$ vim /etc/sysctl.conf

net.ipv4.ip_forward = 0   #0改为1

$ sysctl -p

  1. 两台真实服务器上安装apache

1.1 RS1:

1.1.1安装配置apache

$ yum -y install httpd

$ cd /var/www/html

$ echo "apache111" > index.html

$ systemctl restart httpd

$ systemctl enable httpd

1.1.2配置lo子网卡,目的是为了客户机提供目标IP以及回复客户机信息的源IP

$ cd /etc/sysconfig/network-scripts/

$ cp -a ifcfg-lo ifcfg-lo:0

$ vim ifcfg-lo:0

DEVICE=lo:0

IPADDR=192.168.11.200   #VIP集群的ip

NETMASK=255.255.255.255

$ systmctl restart network

1.1.3优化配置调整内核参数(ARP防止两个真实服务器lo:0IP冲突)

$ vim /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1          #忽略MAC地址与IP地址在arp解析里面不是绑定关系

net.ipv4.conf.all.arp_announce = 2     #响应级别

#新增前面这两行即可

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

$ sysctl -p

1.1.4添加路由策略,以便lo:0网卡回复客户端的信息可以通过服务器网卡

$ route add -host 192.168.11.200 dev lo:0

1.1.5由于是临时添加,所以需要将此命令添加至/etc/rc.local文件中,以便开机启动

$ vim /etc/rc.local

route add -host 192.168.20.100 dev lo:0

1.2 RS2:

1.2.1安装配置apache

$ yum -y install httpd

$ cd /var/www/html

$ echo "apache222" > index.html

$ systemctl restart httpd

$ systemctl enable httpd

$ curl localhost

        1.2.2配置lo子网卡

$ cd /etc/sysconfig/network-scripts/

$ cp -a ifcfg-lo ifcfg-lo:0

$ vim ifcfg-lo:0

DEVICE=lo:0

IPADDR=192.168.20.100   #VIP

NETMASK=255.255.255.255

$ systmctl restart network

1.2.3优化配置调整内核参数(ARP防止两个真实服务器lo:0IP冲突)

$ vim /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2    #新增这两行即可

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

$ sysctl -p

1.2.4#添加路由策略,以便lo:0网卡回复客户端的信息可以通过服务器网卡

$ route add -host 192.168.11.200 dev lo:0

1.2.5由于是临时添加,所以需要将此命令添加至/etc/rc.local文件中,以便开机启动

$ vim /etc/rc.local

route add -host 192.168.11.200 dev lo:0

1.3 阶段测试,用客户机测试

$ curl 192.168.11.130

$ curl 192.168.11.140

2、配置负载调度器

2.1 安装用户管理工具,ipvsadm,进行创建、管理集群

$ yum -y install ipvsadm

 2.2 关闭路由重定向(避c免做目标IP地址转换,使用LVS自带的进行MAC地址重定向) 

$ vim /etc/sysctl.conf

net.ipv4.conf.all.send_redirects = 0    #关闭所有路由重定向,选择all这一条即可,

net.ipv4.conf.default.send_redirects = 0      #关闭默认的路由重定向

net.ipv4.conf.eth0.send_redirects = 0       #关闭eth0网卡路由重定向

$ sysctl –p

 

2.3创建集群并管理成员

$ ipvsadm -A -t 192.168.11.200:80 -s rr

$ ipvsadm -a -t 192.168.11.200:80 -r  192.168.11.130:80 -g     

#-g表示DR模式                                                                                                

$ ipvsadm -a -t 192.168.11.200:80 -r  192.168.11.140:80 -g

$ipvsadm  -ln                  #查看集群

$ipvsadm-save  -n  >> /root/cluster.txt          #形成集群文件

$ipvsadm  -D -t 192.168.11.200:80              #删除集群

$ipvsadm-restore  <  /root/cluster.txt         #读取集群文件,重新加载会=回来

 

2.4 登录测试机进行阶段测试,测试集群VIP

3、配置路由器

#路由器上设置的防火墙规则:

$ iptables -t nat -A PREROUTING -i ens33 -d 192.168.10.110 -p tcp --dport 80 -j DNAT --to-destination 192.168.11.200:80

#规则的位置

-t nat                        #指定规则写在哪张表里

-A PREROUTING        #-A 追加一条规则;链名:路由前,作为判断时机

#判断条件

-i ena33        #判断数据包的入站网卡{-i=input | -o=output}

-d IP地址        #判断数据包的源地址或目标地址{d=目标地址|s=源地址}

-p 协议        #判断此数据包是什么类型协议进行的传输

--dport 端口        #判断数据的目标端口或源端口{--sport | --dport}

注意事项:协议可以独立作为一个判断条件,但是端口不可以,端口一般伴随着协议一起写

#判断后对数据的处理方案

-j DNAT         #数据包的一种处理方案{ACCEPT | REJECT | DROP | DNAT(目标地址转化) | SNAT |... }

SNAT|DNAT 还会有特殊的后续选项,指明转换后的地址

$ iptables -t nat -n -L   #查看是否添加成功,查看nat表的防火墙规则

4、登录测试机测试,测试ip地址为路由器写入防火墙规则的IP地址

常见故障排除

故障表现:做完实验测试,报错没有到达主机的路由

解决方案:可能是由于网卡和子网卡在LVS中优先级造成的,可以将两个网卡配置文件中的IP调换一下,重启网卡就可以解决

1、集群命令

ipvsadm  命令

查看集群:

ipvsadm -ln

-l        #list列出

-n        #数字化显示

创建集群:

ipvsadm -A -t VIP:port -s 算法

-A        #创建集群

-t        #条件判断:判断数据包的传输协议是否是tcp

#ip和port也是数据包的过滤条件

-s        #指定集群的调度算法

添加应用服务器:

ipvsadm -a -t VIP:port -r RIP:port -m|-g -w num

-a        #向已存在集群内添加应用服务器

-r        #指定真实服务器的地址(ip和端口)

-m        #lvs工作模式为NAT

-g        #lvs工作模式为DR

-w        #当调度算法为wrr时,需要使用-w指定权重

删除集群:

ipvsadm -D -t VIP:port

-D        #删除集群,以及集群内的应用服务器

删除集群内的指定应用服务器:

ipvsadm -d -t VIP:port -r RIP:port

-d        #删除集群内应用服务器

修改集群参数:

ipvsadm -E -t VIP:port -s wrr

-E        #修改集群的算法

修改集群中应用服务器的参数:

ipvsadm -e  -t VIP:port -r RIP:port -g|-m -w num

-e        #修改指定真实服务器的工作模式或权重

2、防火墙命令

iptables 命令

匹配位置:

两表

nat

filter

五链

PREROUTING

INPUT

FORWARD

OUTPUT

POSTROUTING

匹配条件:

按网络地址匹配:

-s        #匹配数据包的来源地址

-d        #匹配数据包的目标地址

按照端口匹配:

--sport        #匹配数据包的来源端口

--dport        #匹配数据包的目标端口

按照协议类型匹配:

-p icmp|tcp|udp        #匹配数据包传输时使用的协议类型

注意事项:编写规则时,协议可以单独出现,端口必须和协议配合生效,并且协议在端口条件之前。

按照网络接口匹配:

-i        #匹配数据包的入站接口

-o        #匹配数据包的出站接口

执行策略:

ACCEPT        #放行

REJECT        #拒绝

DROP        #丢弃

DNAT        #目标地址转换策略

--to-destination

SNAT        #源地址转换策略

--to-source

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值