Lograr LVS modo -alias

Lograr LVS modo -alias

marca

Las características de diseño:

(1) RIP y DIP en la misma red IP, RIP puerta de entrada a punto de DIP
(2) soportar la asignación de puertos
de reenvío de núcleo abierto (3) Directora Para

Operación en el puerto RS

instalación de Apache
root@rs1:~# apt install apache2
root@rs2:~# apt install apache2
root@rs1:~# echo RS1 >/var/www/html/index.html 
root@rs2:~# echo RS2 >/var/www/html/index.html 
servidor Apache Gateway en DIP
root@rs1:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.102   0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.248.0   U     0      0        0 eth0

root@rs2:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.102   0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.248.0   U     0      0        0 eth0

On-director

Director de Núcleo expedición Server para abrir
net.ipv4.ip_forward = 1
Agregar regla
root@director:~# ipvsadm -A -t 10.20.1.102:80 -s rr 
root@director:~# ipvsadm -a -t 10.20.1.102:80 -r 192.168.1.103 -m 
root@director:~# ipvsadm -a -t 10.20.1.102:80 -r 192.168.1.104 -m 
root@director:~# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.20.1.102:80 rr
  -> 192.168.1.103:80             Masq    1      0          0         
  -> 192.168.1.104:80             Masq    1      0          0  
Operativo en el cliente

Verificación:

root@client:~# while true ;do curl 10.20.1.102;sleep 0.5;done
RS1
RS2

Use ipvsadm reglas

root@director:~# ipvsadm  -Ln --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS
  -> RemoteAddress:Port
TCP  10.20.1.102:80                      0        0        0        0        0
  -> 192.168.1.103:80                    0        0        0        0        0
  -> 192.168.1.104:80                    0        0        0        0        0

root@director:~# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP  0A140166:0050 rr  
  -> C0A80168:0050      Masq    1      0          0         
  -> C0A80167:0050      Masq    1      0          0   
rs-ponderadas
root@director:~# ipvsadm -E -t 10.20.1.102:80 -s wrr
root@director:~# ipvs -e -t 10.20.1.102:80 -r 192.168.1.103 -m -w 6
root@director:~# ipvsadm -e -t 10.20.1.102:80 -r 192.168.1.104 -m -w 2
root@director:~# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.20.1.102:80 wrr
  -> 192.168.1.103:80             Masq    6      0          0         
  -> 192.168.1.104:80             Masq    2      0          0         
root@director:~# 
root@client:~# while true ;do curl 10.20.1.102;sleep 0.5;done
RS2
RS1
RS1
RS1
RS2
RS1
RS1
RS1
RS2

la asignación de puertos NAT
root@rs2:~# vim  /etc/apache2/ports.conf 
Listen 8080

Encontramos que sea imposible modificar las reglas de reenvío

root@director:~# ipvsadm -e -t 10.20.1.102:80 -r 192.168.1.104:8080 -m -w 2
Memory allocation problem

Después de quitar la primera puede establecer

root@director:~# ipvsadm -d -t 10.20.1.102:80 -r 192.168.1.103:80
root@director:~# ipvsadm -d -t 10.20.1.102:80 -r 192.168.1.104:80
root@director:~# ipvsadm -a -t 10.20.1.102:80 -r 192.168.1.104:8080 -m -w 2
root@director:~# ipvsadm -a -t 10.20.1.102:80 -r 192.168.1.103:8080 -m -w 6
root@director:~# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.20.1.102:80 wrr
  -> 192.168.1.103:8080           Masq    6      0          3         
  -> 192.168.1.104:8080           Masq    2      0          1     
ipvsadm -e -t 10.20.1.102:80 -r 192.168.1.104:8080 -m -w 2
ipvsadm -e -t 10.20.1.102:80 -r 192.168.1.103:8080 -m -w 6
Usando el hash dirección de origen
root@director:~# ipvsadm -E -t 10.20.1.102:80 -s sh
root@client:~# while true ;do curl 10.20.1.102;sleep 0.5;done
RS1
RS1
RS1
Publicado 62 artículos originales · ganado elogios 7 · vistas 1252

Supongo que te gusta

Origin blog.csdn.net/qq_36801585/article/details/105031007
Recomendado
Clasificación