Cree el modo de enrutamiento directo de clúster de equilibrio de carga LVS (LVS-DR)


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

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

  1. El cliente envía una solicitud al VIP de destino, el Director (equilibrador de carga) recibe
    • En este momento, la dirección MAC de origen es la dirección MAC del cliente.
    • La dirección MAC de destino es la dirección MAC del planificador Director
  1. Director selecciona RealServer según el algoritmo de equilibrio de carga
    • No modifique ni encapsule el mensaje IP, cambie la dirección MAC de la trama de datos a la dirección MAC de RealServer y luego envíelo 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. RealServer recibió este marco
    • Después de la desencapsulación, se encuentra que la IP de destino coincide con la máquina local (RealServer está vinculado con VIP de antemano), por lo que el mensaje se procesa
    • Luego, vuelva a encapsular el mensaje, 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 y la dirección MAC de destino es la dirección MAC del cliente.
  1. El cliente recibirá el mensaje de respuesta.
    • El cliente piensa que obtiene 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.

2. Problemas de ARP en LVS-DR

En el clúster de equilibrio de carga LVS-DR, el equilibrio de carga y los servidores de nodo deben configurarse con la misma dirección VIP
marca

  • Sin embargo, tener la misma dirección IP en la red de área local causará inevitablemente el desorden de la comunicación ARP entre los 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, otros servidores de nodo no deberían responder a las difusiones ARP
  • En este momento, podemos procesar el servidor de nodo para que no responda a las solicitudes ARP de VIP:
    • Utilice la interfaz virtual lo: 0 para llevar la dirección VIP
    • Configure el parámetro del kernel arp_ignore = 1 (el sistema solo responde a las solicitudes ARP cuya IP de destino es la IP local)
  • RealServer devuelve el paquete (la IP de origen es VIP) y el enrutador lo reenvía. Al volver a encapsular el paquete, primero debe obtener la dirección MAC del enrutador
  • Y al enviar una solicitud ARP, Linux utiliza de forma predeterminada 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 en lugar de la dirección IP de la interfaz de envío.
  • Una vez que el enrutador recibe la solicitud ARP, actualizará la entrada de la tabla ARP
  • El VIP original correspondiente a la dirección MAC del Director se actualizará al VIP correspondiente a la dirección MAC del RealServer.
    De acuerdo con la entrada de la tabla ARP, el enrutador reenviará el nuevo mensaje de solicitud al RealServer, haciendo que el VIP del Director deje de ser válido

La solución al problema anterior: 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, pero elige la dirección IP de la interfaz de envío)

  • Soluciones a los dos problemas de ARP
#修改 /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 de clúster-DR de equilibrio de carga LVS

1. Análisis del flujo de paquetes de datos

  1. El cliente envía una solicitud al servidor Director (equilibrador de carga) y el paquete 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 segunda capa de enlace de datos
  3. El espacio del kernel juzga que la IP de destino del paquete de datos es el VIP local. En este momento, IPVS (IP Virtual Server) compara si el servicio solicitado por el paquete de datos es un servicio de clúster y vuelve a encapsular 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. Las direcciones IP de origen y 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 el mensaje se recibe; el paquete de datos vuelve a encapsular el mensaje (la dirección IP de origen es VIP, la IP de destino es CIP) y el mensaje de respuesta se envía a la interfaz lo La tarjeta de red física luego envía
  5. Real Server transmite directamente el mensaje de respuesta al cliente

2. Características del modo DR

  • Director Server y Real Server deben estar en la misma red física
  • Real Server puede usar una dirección privada o una dirección de red pública; si se usa una dirección de red pública, se puede acceder a RIP directamente a través de Internet
  • Director Server sirve como portal de acceso al clúster, pero no como puerta de enlace.
  • Todos los mensajes de solicitud pasan por Director Server, pero los mensajes de respuesta de respuesta no pueden pasar por Director Server
  • 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.
  • Configure la dirección IP VIP en la interfaz lo en el servidor real

Cuarto, implemente el clúster de equilibrio de carga LVS-DR

1. Información general

  • En un clúster en modo DR, el programador de carga LVS sirve como portal de acceso para el clúster, pero no como puerta de enlace.
  • Todos los nodos del grupo de servidores están conectados a Internet y los paquetes de datos de respuesta web enviados al cliente no necesitan pasar por el programador de carga LVS.
    marca
  • De esta manera, los datos de acceso de entrada y salida se procesan por separado, por lo que el programador de carga LVS y todos los servidores de nodos deben configurarse con direcciones VIP para responder al acceso de todo el clúster.
  • Teniendo en cuenta la seguridad del almacenamiento de datos, los dispositivos de almacenamiento compartido se colocarán en la red privada interna.

2. Medio ambiente

  • Anfitrión: versión de estación de trabajo profesional Win10
  • VMware: 16 Pro (16.1.0)
  • CentOS 7
  • Adaptador de red: todo en modo NAT
  • Configuración de la tarjeta de red: obtener IP estáticamente
  • Fuente de YUM: local
  • Cliente Win: 192.168.126.10
  • Servidor DR (programador de carga) (CentOS 7-1): 192.168.126.11
  • Servidor web 1 (CentOS 7-2): 192.168.126.12
  • Servidor web 2 (CentOS 7-3): 192.168.126.13
  • Servidor NFS (CentOS 7-4): 192.168.126.14
  • VIP: 192.168.126.166

3. Configure el programador de carga

CentOS 7-1(192.168.126.11)

  1. Listo
systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

modprobe ip_vs
#加载ip_vs模块
cat /proc/net/ip_vs
#查看ip_vs版本信息

yum install -y ipvsadm
#安装软件包

marca

  1. Configurar la dirección IP virtual) (VIP)

Utilice la interfaz virtual para vincular la dirección VIP a la tarjeta de red para responder al acceso al clúster

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0

vim ifcfg-ens33:0
#清空原有配置,添加以下内容
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.126.88
NETMASK=255.255.255.255


ifup ens33:0
#开启虚拟 ip

ifconfig ens33:0
#查看虚拟 ip

marca

  1. Ajustar los parámetros de respuesta de proc

Para el clúster de DR, dado que el programador de carga LVS y cada nodo necesitan compartir la dirección VIP, la respuesta del parámetro de redirección del kernel de Linux debe desactivarse

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

marca

  1. Configurar la estrategia de distribución de carga
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm

ipvsadm -C
#清除原有策略

ipvsadm -A -t 192.168.126.166:80 -s rr
ipvsadm -a -t 192.168.126.166:80 -r 192.168.126.12:80 -g
ipvsadm -a -t 192.168.126.166:80 -r 192.168.126.13:80 -g
#若使用隧道模式,则结尾处 -g 替换为 -i

ipvsadm

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

marca

4. Implementar el montaje compartido de NFS

CentOS 7-4(192.168.126.14)

systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

yum install -y nfs-utils rpcbind

systemctl start nfs.service 
systemctl start rpcbind.service
systemctl enable nfs.service 
systemctl enable rpcbind.service

mkdir /opt/xcf /opt/zxc
chmod 777 /opt/xcf/ /opt/zxc/

vim /etc/exports
/usr/share *(ro,sync)
/opt/xcf 192.168.126.0/24(rw,sync)
/opt/zxc 192.168.126.0/24(rw,sync)

exportfs -rv
showmount -e

5. Configure el servidor de nodo

CentOS 7-2 (192.168.126.12) 与 CentOS 7-3 (192.168.126.13)

  • Cuando se usa el modo DR, el servidor de nodos también necesita configurar la dirección VIP y ajustar los parámetros de respuesta ARP del kernel para organizar la actualización de la dirección MAC VIP para evitar conflictos.
  • Además, la configuración del servicio web es similar a la de NAT
  1. Listo
systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

#将两个节点服务器的网关和DNS注释掉后重启网卡
#如果有网关服务器则指向网关服务器
  1. Configurar la dirección IP virtual
#此地址仅用做发送 Web 响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)
#因此使用虚接口 lo:0 来承载 VIP 地址,并为本机添加一条路有记录,将访问 VIP 的数据限制在本地,以避免通信紊乱

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0

vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.126.166
NETMASK=255.255.255.255
#注意,此处子网掩码必须全为1
#NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
#BROADCAST=127.255.255.255
ONBOOT=yes
#NAME=loopback


ifup lo:0
ifconfig lo:0

route add -host 192.168.126.166 dev lo:0
#禁锢路由
route -n
#查看路由

vim /etc/rc.local
#添加VIP本地访问路由
/sbin/route add -host 192.168.126.166 dev lo:0

chmod +x /etc/rc.d/rc.local

marca
marca
marca
marca

  1. Ajuste los parámetros de respuesta ARP del kernel para evitar actualizar la dirección MAC de la VIP y evitar conflictos

Ajustar / procesar parámetros de respuesta

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

marca
marca

  1. Monte el directorio compartido
yum install -y nfs-utils rpcbind httpd
systemctl start rpcbind
systemctl start httpd

mount.nfs 192.168.126.14:/opt/xcf /var/www/html/
echo 'Hello xcf~' > /var/www/html/index.html

#设为自动挂载
vim /etc/fstab

192.168.126.14:/opt/xcf /var/www/html nfs defaults,_netdev 0 0

mount -a

marca
marca
marca

  1. Lo mismo es cierto para otro servidor de nodo Web2, simplemente cambie los parámetros del directorio compartido

6. Pruebe el clúster LVS

  • Utilice Win10 como cliente de prueba (la puerta de enlace predeterminada apunta a 192.168.126.166) y acceda directamente a http://192.168.126.166 desde Internet

  • Puede ver el contenido de la página web proporcionada por el servidor real: si las páginas web de cada nodo son diferentes, las páginas web vistas por diferentes clientes son diferentes (actualice varias veces, espere un momento)
    marca
    marca

  • En el programador de carga LVS, la distribución de carga actual se puede observar viendo el estado del nodo. Para el algoritmo de sondeo, la carga de conexión obtenida por cada nodo debe ser aproximadamente equivalente
    marca

Supongo que te gusta

Origin blog.csdn.net/weixin_51486343/article/details/112914769
Recomendado
Clasificación