本文介绍: 1)系统版本:centos7.82)虚拟机:3个centos虚拟机,(其中一个做Director Server,另外两个做Real Server)3) LVS大致有NAT ,DR ,Tun这三种模式,这里搭建一个典型的DR模式的LVS。
1 实验背景
1)系统版本:centos7.8
2)虚拟机:3个centos虚拟机,(其中一个做Director Server,另外两个做Real Server)
3) LVS大致有NAT ,DR ,Tun这三种模式,这里搭建一个典型的DR模式的LVS
Direct Server 的ip是 192.168.121.100
两台Real Server的ip分别是 192.168.121.101 、192.168.121.102
vip是 192.168.121.250
这三个虚拟机的子网掩码是 255.255.255.0
2 Director Server 负载均衡调度配置
1) 关闭selinux、firewalld、NetworkManager
#关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
#关闭firewalld
systemctl stop firewalld && systemctl disable firewalld
#关闭NetworkManager
systemctl stop NetworkManager && systemctl disable NetworkManager
2)配置Director Server的虚拟IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
DEVICE=ens33:0 #将网卡修改为子接口
ONBOOT=yes
IPADDR=192.168.121.250
NETMASK=255.255.255.0
systemctl restart network
ifconfig | grep ens33:0
3)修改系统内核文件,关闭广播功能
vim /etc/sysctl.conf
在内核配置文件中添加参数关闭所有网卡广播功能
0 表示禁用发送重定向,禁用发送重定向可以防止网络攻击,如 ARP 欺骗和 IP 欺骗
net.ipv4.conf.all.send_redirects = 0 #所有网卡的
net.ipv4.conf.default.send_redirects = 0 #默然网卡的
net.ipv4.conf.ens33.send_redirects = 0 #ens33网卡的(根据需要修改为真实网卡即可)
sysctl -p #刷新内核参数
4)安装ipvsadm
yum install ipvsadm -y
modprobe ip_vs #将ipvsadm加载到内核中来
3 安装Web服务器
#我们在Centos下使用yum安装时往往找不到rpm的情况,官方的rpm repository提供的rpm包也不够丰富,
#很多时候需要自己编译很痛苦,而EPEL恰恰可以解决这两方面的问题
yum -y install epel-release
#更新yum源
yum -y update
#安装nginx
yum install -y nginx
# 将两台虚拟机中的nginx主页中的"Welcome to CentOS"
#分别改为"Welcome to CentOS (worker1)" 、 "Welcome to CentOS (worker2)"
vim /usr/share/nginx/html/index.html
# 重启nginx
systemctl start nginx
4 配置Real Server的虚拟网络
在两台Real Server上分别创建一个虚拟的环回网络端口配置文件
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.121.250
NETMASK=255.255.255.255
BROADCAST=192.168.121.250
ONBOOT=yes
重启网络
systemctl restart network
ifconfig | grep lo:0
#所有发送到 192.168.121.250 的数据包将通过本地回环接口发送
route add -host 192.168.121.250 dev lo:0
#为了防止重启失效,将此路由添加至开机自启
echo "route add -host 192.168.121.250 dev lo:0" >> /etc/rc.local
ifconfig | grep lo:0
ping 192.168.121.250
5 配置内核文件 控制Real Server的arp通讯行为
#arp-ignore
# 0 只要本机配置有相应IP地址就响应;
# 1 仅在请求的目标地址配置在请求到达网络接口上时,才给予响应;
#arp-announce
# 0 将本机任何网络接口上的任何地址都向外通告;
# 1 尽可能避免向目标网络通告与其网络不匹配的地址信息表;
# 2 仅向目标网络通告与其网络相匹配的地址信息。
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
6 Director Server添加ipvsadm规则
1)使用ipvsadm命令配置负责均衡
-A表示添加一个集群,-a表示添加集群中的子节点,
-t表示tcp协议,-s指定算法,rr表示轮巡(默认60秒切换一次),-r指定后端真实web服务器,
-g启用IPVS的网关模式(DR模式)
# ipvsadm -A -t 集群IP:80 -s rr
# ipvsadm -a -t 集群IP:80 -r web1:80 -g
# ipvsadm -a -t 集群IP:80 -r web2:80 -g
ipvsadm -A -t 192.168.121.250:80 -s rr
ipvsadm -a -t 192.168.121.250:80 -r 192.168.121.101:80 -g
ipvsadm -a -t 192.168.121.250:80 -r 192.168.121.102:80 -g
2)修改配置文件,保证重启后ipvsadm 规则不丢失
vim /etc/sysconfig/ipvsadm-config
# IPVSADM_SAVE_ON_STOP 表示ipvsadm停止时,是否自动保存ipvsadm规则
# IPVSADM_SAVE_ON_STOP 表示ipvsadm重启时,是否自动保存ipvsadm规则
# 这两个参数,默认值都是'no',这里需要改成'yes'
IPVSADM_SAVE_ON_STOP="yes"
IPVSADM_SAVE_ON_RESTART="yes"
7、功能测试
ipvsadm -L --stats
在宿主机浏览器打开 http://192.168.121.250/ ,反复刷新可以看到 ‘Welcome to CentOS (worker2)’ ’Welcome to CentOS (worker1)‘ 字样交替出现
原文地址:https://blog.csdn.net/Xiaowu_First/article/details/134744732
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_45526.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。