Clúster de equilibrio de carga LVS --- Explicación detallada de la implementación real en modo DR

Explicación detallada del clúster de equilibrio de carga LVS de la implementación real en modo DR

1. Análisis de flujo de paquetes de datos LVS-DR

Para facilitar el análisis del principio, coloque el Cliente y la máquina del clúster en la misma red, y la ruta del flujo de paquetes de datos es 1-2-3-4

Inserte la descripción de la imagen aquí

1. El Cliente envía una solicitud al VIP de destino y el Director (balanceador de carga) la recibe. En este momento, la dirección MAC de origen es la dirección MAC del cliente y la dirección MAC de destino es la dirección MAC del director del planificador.

2. El Director selecciona RealServer_1 de acuerdo con el algoritmo de equilibrio de carga, no modifica ni encapsula el mensaje IP, pero cambia la dirección MAC de la trama de datos a la dirección MAC de RealServer_1 y luego la envía a la LAN. En este momento, la dirección MAC de origen es la dirección MAC de Director y la dirección MAC de destino es la dirección MAC de RealServer_1.

3. RealServer_1 recibe este marco y encuentra que la IP de destino coincide con la máquina local después de la desencapsulación (RealServer está vinculado a VIP por adelantado), por lo que procesa este mensaje. Luego, vuelva a encapsular el mensaje y envíe el mensaje de respuesta a la tarjeta de red física a través de la interfaz lo y luego envíelo. En este momento, la dirección MAC de origen es la dirección MAC de RealServer_1 y la dirección MAC de destino es la dirección MAC del cliente.

4. El cliente recibirá el mensaje de respuesta. El Cliente cree que recibe el servicio normal, pero no sabe qué servidor lo maneja.
Nota: Si cruza el segmento de red, el mensaje se devolverá al usuario a través de Internet a través del enrutador.

En segundo lugar, el problema de ARP en LVS-DR

1. En el clúster de equilibrio de carga LVS-DR, tanto el equilibrio de carga como el servidor de nodo deben configurarse con la misma dirección VIP.

2. Tener la misma dirección IP en la red de área local causará inevitablemente un desorden de la comunicación ARP entre servidores.

  • Cuando la transmisión ARP se envía al clúster LVS-DR, debido a que el equilibrador de carga y el servidor de nodo están conectados a la misma red, ambos recibirán la transmisión ARP.
  • Solo responde el equilibrador de carga de front-end y otros servidores de nodo no deberían responder a las difusiones ARP.

3. Procese el servidor de nodos para que no responda a las solicitudes de ARP para VIP.

  • Utilice la interfaz virtual lo: 0 para transportar direcciones VIP
  • Establezca el parámetro del kernel arp_ignore = 1: el sistema solo responde a las solicitudes ARP cuya IP de destino es la IP local

4. RealServer devuelve el mensaje (la IP de origen es VIP) y el enrutador lo reenvía. Al volver a encapsular el mensaje, primero se debe obtener la dirección MAC del enrutador.

5. Al enviar una solicitud ARP, Linux utiliza la dirección IP de origen del paquete IP (es decir, VIP) como la dirección IP de origen en el paquete de solicitud ARP de forma predeterminada, en lugar de utilizar la dirección IP de la interfaz de envío.

  • Tales como: ens33

6. Una vez que el enrutador recibe la solicitud ARP, actualizará la entrada de la tabla ARP

7. La dirección MAC del Director correspondiente al VIP original se actualizará a la dirección MAC del RealServer correspondiente al VIP

8. El enrutador reenvía el nuevo mensaje de solicitud a RealServer de acuerdo con la entrada de la tabla ARP, lo que provoca que el VIP del Director falle.
Solución:

  • Procese el servidor de nodo y establezca el parámetro del kernel arp_announce = 2: el sistema no usa la dirección de origen del paquete IP para establecer la dirección de origen de la solicitud ARP, sino que selecciona la dirección IP de la interfaz de envío.

9. Configure métodos para resolver los dos problemas de ARP
Modifique el archivo /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

Tres, modo DR, clúster de equilibrio de carga LVS

(1) Análisis de flujo de paquetes de datos

(1) El cliente envía una solicitud al Director Server (equilibrador de carga) y el mensaje de datos solicitado (la IP de origen es CIP, la IP de destino es VIP) llega al espacio del kernel.
(2) Director Server y Real Server están en la misma red y los datos se transmiten a través de la capa de enlace de datos de la segunda capa.
(3) El espacio del kernel juzga que la IP de destino del paquete de datos es el VIP local. En este momento, IPVS (servidor virtual IP) compara si el servicio solicitado por el paquete de datos es un servicio de clúster y vuelve a empaquetar el paquete de datos si es un servicio de clúster. Modifique la dirección MAC de origen a la dirección MAC del Director Server y modifique la dirección MAC de destino a la dirección MAC del Real Server. La dirección IP de origen y la dirección IP de destino no han cambiado, y luego envíe el paquete de datos al Real Server.
(4) La dirección MAC del mensaje de solicitud que llega al servidor real es su propia dirección MAC y se recibe el mensaje. El paquete de datos vuelve a encapsular el mensaje (la dirección IP de origen es VIP y la IP de destino es CIP), y el mensaje de respuesta se transmite a la tarjeta de red física a través de la interfaz lo y luego se envía.
(5) Real Server transmite directamente el mensaje de respuesta al cliente.

(2) Características del modo DR

(1) Director Server y Real Server deben estar en la misma red física.
(2) Real Server puede utilizar una dirección privada o una dirección de red pública. Si usa una dirección de red pública, puede acceder directamente a RIP a través de Internet.
(3) Director Server sirve como portal de acceso al clúster, pero no como puerta de enlace.
(4) Todos los mensajes de solicitud pasan por Director Server, pero los mensajes de respuesta de respuesta no pueden pasar por Director Server.
(5) La puerta de enlace del Real Server no puede apuntar a la IP del Director Server, es decir, los paquetes de datos enviados por el Real Server no pueden pasar a través del Director Server.
(6) Configure la dirección IP VIP en la interfaz lo en el servidor real.

4. Operación real del proyecto

(1) Requisitos del entorno experimental

Cinco máquinas virtuales Linux

DR 服务器:192.168.126.10
Web 服务器1192.168.126.20
Web 服务器2192.168.126.30
共享服务器:192.168.126.40
客户端:192.168.126.50
vip(虚拟IP):192.168.126.88

(Dos), pasos experimentales

1. Configure el programador de carga (192.168.126.10)

systemctl stop firewalld.service
setenforce 0
modprobe ip_vs
cat /proc/net/ip_vs
yum -y install ipvsadm

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

(1), configure la dirección IP virtual (VIP: 192.168.126.88)

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0				#若隧道模式,复制为ifcfg-tunl0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.126.88
NETMASK=255.255.255.255

ifup ens33:0        #开启

ifconfig ens33:0   # 查看虚拟ip

Inserte la descripción de la imagen aquí

(2) Ajustar los parámetros de respuesta del proceso

由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭Linux 内核的重定向参数响应。
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p

Inserte la descripción de la imagen aquí

(3), configure la estrategia de distribución de carga

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm

ipvsadm -C
ipvsadm -A -t 192.168.126.88:80 -s rr
ipvsadm -a -t 192.168.126.88:80 -r 192.168.126.10:80 -g			#若隧道模式,-g替换为-i
ipvsadm -a -t 192.168.80.188:80 -r 192.168.126.20:80 -g
ipvsadm 

ipvsadm -ln					#查看节点状态,Route代表 DR模式

Inserte la descripción de la imagen aquí

2. Implementar almacenamiento compartido (servidor NFS: 192.168.126.40)

systemctl stop firewalld.service
setenforce 0
yum -y install nfs-utils rpcbind
mkdir /opt/chenwei /opt/mm
chmod 777 /opt/mm/opt/chenwei

vim /opt/chenwei/index.html   #写内容在文档里,挂载给网站首页 /var/www/html

vim /opt/mm/index.html 
vim /etc/exports
/usr/share *(ro,sync)
/opt/kgc 192.168.80.0/24(rw,sync)
/opt/benet 192.168.80.0/24(rw,sync)
systemctl start rpcbind.service
systemctl start nfs.service

3. Configure el servidor de nodo (192.168.126.10, 192.168.126.20)

systemctl stop firewalld.service
setenforce 0

(1), configure la dirección IP virtual (VIP: 192.168.126.88)

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-lo:0		
vim ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.80.188
NETMASK=255.255.255.255						#注意:子网掩码必须全为 1

ifup lo:0
ifconfig lo:0
route add -host 192.168.80.188 dev lo:0		#添加VIP本地访问路由,将访问VIP的数据限制在本地,以避免通信紊乱

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

(2) Ajustar los parámetros de respuesta del proceso

vim /etc/sysctl.conf
......
net.ipv4.conf.lo.arp_ignore = 1			#系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2		#系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p
或者
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

sysctl -p

Inserte la descripción de la imagen aquí

yum -y install nfs-utils rpcbind httpd
systemctl start rpcbind
systemctl start nfs
systemctl start httpd
--192.168.126.10---
mount.nfs 192.168.126.40:/opt/chenwei /var/www/html
--192.168.126.20---
mount.nfs 192.168.126.40:/opt/mm /var/www/html

Inserte la descripción de la imagen aquí

4. Pruebe el clúster LVS

Utilice un navegador en el cliente para visitar http://192.168.126.88/, la puerta de enlace predeterminada apunta a 192.168.126.88

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_51573771/article/details/112883345
Recomendado
Clasificación