LVS-DR模式部署

问题

路由器根据ARP表项,会将新来的请求报文转发给RealServer,导致Director的VIP失效

解决:

对节点服务器进行处理,设置内核参数arp_announce=2:系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址

DR模式的特点 1)Director Server和Real Server必须在同一个物理网络中;

2)Real Server可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对RIP进行直接访问;

3)Director Server作为群集的访问入口,但不作为网关使用;

4)所有的请求报文经由Real Server,但回复响应报文不能经过Director Server;

5)Real Server的网关不允许指向Director Server IP,即Real Server发送的数据包不允许经过Director Server;

6)Real Server上的lo接口配置VIP的IP地址。

实验环境

  1. 为了提高网站负载能力,需要构建web群集平台;
  2. 网页文档存放在内网,各web节点公用;

二 . 实验架构图

三. 实验操作内容

DR服务器:192.168.47.100

Web服务器1:192.168.42.102 Web服务器2:192.168.47.103

VIP服务器:192.168.47.200

nfs服务器:192.168.47.104

1.nfs共享服务器配置 192.168.47.

先共享服务初始化操作

bash 复制代码
 vim /etc/selinux/confing

查看nfs文件共享需要查看是否安装了 rpcbind,nfs-utile

css 复制代码
  rpm -q rpcbind nfs-utils
  如果没安装使用yum install安装

开始创建共享目录

csharp 复制代码
cd  opt
[root@localhost opt]# mkdir yhy1 yhy2
[root@localhost opt]# echo "yhy1" > yhy1/test.html
[root@localhost opt]# echo "yhy2" > yhy2/test.html
#创建两个目录并输入内容进去
[root@localhost opt]# ls yhy1
test.html
[root@localhost opt]# ls yhy2
test.html

添加共享策略

bash 复制代码
vim  /etc/exports

/opt/yhy1 192.168.47.0/24(rw,sync,no_root_squash)
/opt/yhy2 192.168.47.0/24(rw,sync,no_root_squash)


systemctl enable --now rpcbind nfs
#从左往右一次启动

showmount -e
#查看是否共享完成

去节点服务器刷新共享nfs 7-2 7-3

2. 配置节点服务器7-2,7-3

7-2 7-3安装nginx前面有安装过程

ini 复制代码
cd /etc/yum.repos.d/
vim nginx.repo
[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=1 
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key 
module_hotfixes=true 

yum -y install nginx

去7-2设置vip网卡

ini 复制代码
 cd /etc/sysconfig/network-scripts/
 vim ifcfg-lo:0
 
  DEVICE=lo:0
  ONBOOT=yes
 IPADDR=192.168.47.200
 NETMASK=255.255.255.255
 
 ifup lo:0
 #重启网卡

 
 ifconfig查看  
7-3做以上同样的操作

7-2添加路由信息

csharp 复制代码
  route add -host 192.168.47.200 dev lo:0 
  #添加路由信息
  route -n
  #查看

7-3同样操作添加路由信息

7-2开机自动添加添加路由信息

bash 复制代码
    cd /etc/rc.d
    vim rc.local
    [root@localhost rc.d]# which route
   /usr/sbin/route
  
  /usr/sbin/route add -host 192.168.47.200 dev lo:0
   #添加信息   
7-3作上述同样操作

7-2 7-3 需要给rc.d文件权限

7-2,7-3添加内核参数

ini 复制代码
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
bash 复制代码
sysctl -p
#加载

7-1,7-2做永久挂载操作

bash 复制代码
 vim  /etc/fstab

如果不确定挂载位置可以查看:cat      /etc/nginx/conf.d/default.conf 

192.168.47.104:/opt/yhy2 /usr/share/nginx/html  nfs     defaults,_netdev 0 0  
bash 复制代码
 mount -a 
#刷新挂载
去挂载目录下查看

web节点服务器准备好了 上面

3 . 配置负载调度器

bash 复制代码
#关闭防火墙和selinux
systemctl stop firewalld
setenforce 0 
#安装ipvsadm 
yum install -y ipvsadm
bash 复制代码
 #先保存一下路径
ipvsadm-save > /etc/sysconfig/ipvsadm
#开启ipvsadm
systemctl start ipvsadm.service 
systemctl enable ipvsadm.service 

加载模块
modprobe ip_vs
cat /proc/net/ip_vs
ifconfig

配置虚拟IP地址

ini 复制代码
cd /etc/sysconfig/network-scripts

 cp ifcfg-ens33 ifcfg-ens33:0
#若是隧道模式,复制为ifcfg-tun10

vim ifcfg-ens33:0

DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.122.188
NETMASK=255.255.255.255

ifup ens33:0
#开启网卡

 [root@director network-scripts]# ifconfig ens33:0
 ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.47.188  netmask 255.255.255.255  broadcast 192.168.47.188
    ether 00:0c:29:59:be:be  txqueuelen 1000  (Ethernet)

🍔

调整proc响应参数

ini 复制代码
vim /etc/sysctl.conf

net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p

配置负载均衡分配策略

bash 复制代码
先开启两个nginx ,web服务
systemctl  enable  --now nginx

ipvsadm -ln  
ipvsadm -C
ipvsadm -A -t 192.168.47.200:80 -s rr
ipvsadm -a -t 192.168.47.200:80 -r 192.168.47.102:80 -g
ipvsadm -a -t 192.168.47.200:80 -r 192.168.47.103:80 -g
ipvsadm
ipvsadm -ln

编写nginx配置文件

bash 复制代码
 cd /etc/nginx/  
 vim nginx.conf 
 systemctl restart nginx

4.去网页测试

192.168.47.200/test.

🍟

四.总结 LVS-DR 模式配置步骤:

  • 1)配置NFS共享存储

  • 2)节点服务器安装Web服务,在 lo:0按口配置VIP,修改内核参数 arp ignore=1 arp announce=2,添加路由 route add -host dev lo:0

  • 3)调度服务器在ensXX:0接口配置vI,修改内核参数关闭IP路由转发功能和重定向功能―ip forward=0 send redirects=0

  • 4)调度服务器安装 ipvsadm 工具,配置虚拟服务器和真实节点服务器相关配置(-g选择DR模式)

  • 5)客户端测试

  • 注意项:如果客户端与调度服务器、节点服务器不在同一个网段,调度服务器、节点服务器的默认网关要指向网关路由器的IP地址

相关推荐
Mero技术博客几秒前
第二十节:学习Redis缓存数据库实现增删改查(自学Spring boot 3.x的第五天)
数据库·学习·缓存
为暗香来42 分钟前
MySQL学习(视图总结)
数据库·学习·mysql
尘浮生1 小时前
Java项目实战II基于Java+Spring Boot+MySQL的作业管理系统设计与实现(源码+数据库+文档)
java·开发语言·数据库·spring boot·后端·mysql·spring
xiaobai12 31 小时前
集群聊天服务器项目【C++】(六)MySql数据库
服务器·数据库·c++
知识分享小能手1 小时前
mysql学习教程,从入门到精通,SQL ORDER BY 子句(14)
大数据·开发语言·数据库·sql·学习·mysql·大数据开发
木鬼与槐2 小时前
MySQL高阶1873-计算特殊奖金
数据库·mysql
Mr.Demo.2 小时前
[Redis] Redis中的set和zset类型
数据库·redis·缓存
bxnms.2 小时前
Redis存储原理
数据库·redis·缓存
gergul2 小时前
lettuce引起的Redis command timeout异常
数据库·redis·缓存·jedis·lettuce·redis timeout
争不过朝夕,又念着往昔2 小时前
Redis中Hash(哈希)类型的基本操作
数据库·redis·缓存·哈希算法