Directorio artículo
Lograr LVS modo -alias
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