LVS负载均衡之DR模式

LVS负载均衡之DR模式

1.DR模式配置拓扑图

在这里插入图片描述

hostname ipaddress 说明
router 外网:12.0.0.1
内网:192.168.73.1
路由器
lvs 内网:192.168.73.100 lvs调度器
web1 内网:192.168.73.110
VIP:192.168.73.120
web1服务器
web2 内网:192.168.73.111
VIP:192.168.73.120
web2服务器
client 外网:12.0.0.2 测试机

2.服务器的配置

1.在所有的服务器上配置

systemctl stop firewalld    //关闭防火墙
setenforce 0                //关闭selinux,临时生效

2.配置router

vim /etc/sysctl.conf       //开启路由转发功能
net.ipv4.ip_forward=1
sysctl -p                  //加载路由转发配置
iptables -t nat -A PREROUTING -p tcp --dport 80 -i ens36 -j DNAT --to-destination 192.168.73.100
//表示从ens36网卡(12.0.0.1)来访问80端口的包,DNAT到192.168.73.100
iptables -t nat -A POSTROUTING -p tcp --dport 80 -o ens33 -j SNAT --to-source 192.168.73.1
//表示从(12.0.0.12访问12.0.0.1变成192.168.73.1访问192.168.73.100),从而实现LVS能够回到客户端

3.配置lvs调度器

//安装ipvsadm工具
yum -y install ipvsadm
//写一个脚本开启LVS的工作程序
modprobe ip_vs
cat /proc/net/ip_vs
ipvsadm --save > /etc/sysconfig/ipvsadm
service ipvsadm start
//开启ipvsadm工具管理
vim nat.sh
#!/bin/bash
ipvsadm -C
ipvsadm -A -t 192.168.73.120:80 -s rr
ipvsadm -a -t 192.168.73.120:80 -r 192.168.73.110:80 -g
//-g表示使用直接路由模式,LVS调度器就会把数据包调给192.168.73.110或192.168.73.111时,就只修改MAC地址,不修改目标IP直接路由过去
ipvsadm -a -t 192.168.73.120:80 -r 192.168.73.111:80 -g
ipvsadm
chmod +x nat.sh
./nat.sh
//执行脚本,开启LVS调度器的功能
ifconfig ens33:0 192.168.73.120 netmask 255.255.255.0
//开启虚拟网卡做浮动IP便于LVS的管理
//由于下面会在 web1、web2服务器上面添加一个子接口 lo:0 192.168.73.120网卡,这样就会到导致 lvs 调度器过去的包可以成果过去,但是不会回来,因为回来时它会直接查找自己的 lo:0的192.168.73.120。所以需要加一个子接口 掩码给到 255.255.255.0。

4.配置web1服务器

yum -y install httpd
//安装Apache服务
echo "this is web1" >> /var/www/html/index.html
//在站点目录上写一个默认网页标识这台服务器
ifconfig lo:0 192.168.73.120 netmask 255.255.255.255
//开启虚拟网卡,以便于LVS的调度和管理
route add default gw 192.168.73.1
//真实服务器把默认路由指向 router 同物理网段的 IP,可以临时加也可以直接写在配置文件里面,这里上面的环境准备已经写在了配置文件
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p
//抑制 web 服务器上 IP 冲突问题
systemctl start httpd
//开启Apache服务

5.配置web2服务器

yum -y install httpd
echo "this is web2" >> /var/www/html/index.html
ifconfig lo:0 192.168.73.120 netmask 255.255.255.255
route add default gw 192.168.73.1
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p
systemctl start httpd

3.在客户机上测试

[root@client ~]# curl 12.0.0.1
this is web1 
[root@client ~]# curl 12.0.0.1
this is web2 
[root@client ~]# curl 12.0.0.1
this is web1 
[root@client ~]# curl 12.0.0.1
this is web2  
发布了129 篇原创文章 · 获赞 47 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/double_happy111/article/details/103994860