Partage de technologie

Cluster LVS-DR

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Cluster LVS-DR

Le mode de travail LVS-DR (Linux Virtual Server DIrector Server) est le mode de travail le plus couramment utilisé dans les environnements de production.

Principe de fonctionnement du LVS-DR

En mode LVS-DR, Director Server sert d'entrée d'accès au cluster et n'est pas utilisé comme passerelle. Le nœud DirectorServer et Real Server doivent être dans le même réseau, et les données renvoyées au client n'ont pas besoin d'y aller. via le serveur Director. Afin de répondre à l'accès à l'ensemble du cluster, Director Server et Real Server doivent être configurés avec des adresses VIP.

Analyse du flux de paquets LVS-DR

Comment fonctionne le mode DR

  1. Le client envoie une requête à Director Server et le paquet de données demandé (l'adresse IP source est CIP, l'adresse IP cible est VIP) atteint l'espace du noyau
  2. Director Server et Real Server se trouvent sur le même réseau et les données sont transmises via la couche de liaison de données de deuxième couche.
  3. L'espace noyau détermine que l'adresse IP cible du paquet de données est le VIP local. À ce stade, IPVS compare si le service demandé par le paquet de données est un service de cluster, s'il s'agit d'un service de cluster, il ré-encapsule le paquet de données. . Modifiez l'adresse MAC source en adresse MAC du serveur directeur, modifiez l'adresse MAC de destination en adresse MAC du serveur réel, l'adresse IP source et l'adresse IP de destination restent inchangées, puis envoyez le paquet de données au serveur réel.
  4. Si l'adresse MAC du message de demande arrivant au serveur réel est sa propre adresse MAC, le message sera reçu. Le paquet de données est réencapsulé (l'adresse IP source est VIP et l'adresse IP de destination est CIP), et le message de réponse est envoyé à la carte réseau physique via l'interface lo, puis envoyé.
  5. Real Server transmet directement le message de réponse au client

Caractéristiques du mode LVS-DR

  • Director Server et Real Server doivent être sur le même réseau physique
  • Real Server peut utiliser des adresses privées ou des adresses publiques.Si vous utilisez une adresse de réseau public, vous pouvez accéder directement à RIP via Internet.
  • Tous les messages de demande transitent par Director Server, mais les messages de réponse ne peuvent pas transiter par Director Server.
  • La passerelle de Real Server n'est pas autorisée à pointer vers l'adresse IP du serveur Director, c'est-à-dire que les paquets de données ne sont pas autorisés à passer par le serveur Director.
  • L'interface lo sur le Real Server configure l'adresse IP du VIP

Exemple de mode de routage direct LVS

#配置负载调度器
#配置虚拟IP地址VIP
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0
[root@localhost network-scripts]# vi ifcfg-ens33:0
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.10.172
NETMASK=255.255.255.0
[root@localhost network-scripts]# systemctl restart network
#调整内核参数,禁止转发重定向报文由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭Linux 内核的重定向
[root@localhost ~]# vi /etc/sysctl.conf
#调整内核参数
net.ipv4.conf.all.send_redirects = 0 #重定向禁止
net.ipv4.conf.default.send_redirects = 0 #默认禁止网卡重定向
net.ipv4.conf.ens33.send_redirects = 0    #指定网卡禁止重定向
[root@localhost ~]# sysctl -p
#配置负载分配策略
[root@localhost ~]#yum -y install ipvsadm
[root@localhost ~]#ipvsadm -v           \查看版本
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]#ipvsadm -C
[root@localhost ~]# ipvsadm -A -t 192.168.10.172:80 -s wrr
[root@localhost ~]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.102 -g -w 1
[root@localhost ~]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.103 -g -w 1
[root@localhost ~]# ipvsadm-save
-A -t localhost.localdomain:http -s rr
-a -t localhost.localdomain:http -r 192.168.10.102:http -g -w 1
-a -t localhost.localdomain:http -r 192.168.10.103:http -g -w 2
[root@localhost ~]# systemctl enable ipvsadm
-g:直接路由模式
#配置web节点服务器
#配置虚拟ip地址VIP
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]#cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vi ifcfg-lo:0
#修改
DEVICE=lo:0
NETMASK=255.255.255.255           子网掩码必须为255.255.255.255
IPADDR=192.168.10.172
ONBOOT=yes
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ifconfig
[root@localhost network-scripts]# cd 
[root@localhost ~]# vi /etc/rc.local
#添加
/sbin/route add -host 192.168.10.172 dev lo:0
[root@localhost ~]# route add -host 192.168.10.172 dev lo:0
#调整内核参数
[root@localhost ~]# vi /etc/sysctl.conf
#添加
net.ipv4.conf.all.arp_ignore = 1 #忽略arp请求
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
[root@localhost ~]# sysctl -p
#安装httpd创建测试网页
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# yum install nfs-utils
[root@localhost ~]# mount 192.168.10.104:/opt/wwwroot /var/www/html
[root@localhost ~]#vi /var/www/html/index.html