En esta sección, se describe cómo usar el comando ilbadm para crear, suprimir y mostrar las reglas de equilibrio de carga.
Los algoritmos del ILB controlan la distribución de tráfico y proporcionan varias características de distribución de la carga y selección de servidores.
El ILB proporciona los siguientes algoritmos para los dos modos de funcionamiento:
Asignación en rueda (round-robin): en un algoritmo de asignación en rueda, el equilibrador de carga asigna las solicitudes a un grupo de servidores en orden rotativo. Una vez que se asigna una solicitud a un servidor, el servidor se mueve al final de la lista.
Hash src-IP: en la dirección IP de origen, con el método hash, el equilibrador de carga selecciona un servidor basado en el valor hash de la dirección IP de origen de la solicitud entrante.
Hash src-IP, port: en la dirección IP de origen, con el método hash de puerto, el equilibrador de carga selecciona un servidor basado en el valor hash de la dirección IP de origen y el puerto de origen de la solicitud entrante.
Hash src-IP, VIP: en la dirección IP de origen, con el método hash de VIP, el equilibrador de carga selecciona un servidor basado en el valor hash de la dirección IP de origen y la dirección IP de destino de la solicitud entrante.
En un ILB, un servicio virtual está representado por una regla de equilibrio de carga y está definido por los parámetros siguientes:
Dirección IP virtual
Protocolo de transporte: TCP o UDP
Número de puerto (o un intervalo de puertos)
Algoritmo de equilibrio de carga
Modo de equilibrio de carga (DSR, full-NAT o half-NAT)
Grupo de servidores que consta de un conjunto de servidores back-end
Comprobaciones de estado del servidor opcionales que se pueden ejecutar para cada servidor del grupo de servidores
Puerto opcional que se va a utilizar para las comprobaciones de estado
Nombre de regla para representar un servicio virtual
Antes de poder crear una regla, debe hacer lo siguiente:
Cree un grupo de servidores que incluya los servidores back-end apropiados. Para obtener más información, consulte Definición de grupos de servidores y servidores back-end en ILB.
Cree una comprobación de estado para asociar la comprobación de estado del servidor con la regla. Para obtener más información, consulte Creación de una comprobación de estado.
Identifique el VIP, el puerto y el protocolo opcional que se asociarán a la regla.
Identifique la operación que desea utilizar (DSR, half-NAT o full-NAT).
Identifique el algoritmo de equilibrio de carga que se va a utilizar. Para obtener más información, consulte Algoritmos del ILB.
Para crear una regla del ILB, utilice el comando ilbadm create-rule. Para obtener más información sobre el uso del comando ilbadm create-rule, consulte la página del comando man ilbadm(1M).
La sintaxis es la siguiente:
# ilbadm create-rule -e -i vip=IPaddr,port=port,protocol=protocol \ -m lbalg=lb-algorithm,type=topology-type,proxy-src=IPaddr1-IPaddr2,\ pmask=value -h hc-name=hc1-o servergroup=sg rule1
En este ejemplo, se crea una comprobación de estado denominada hc1 y un grupo de servidores sg1. El grupo de servidores está formado por dos servidores, cada uno de ellos con un intervalo de puertos. El último comando crea y activa una regla llamada rule1, y asocia la regla al grupo de servidores y la comprobación de estado. Esta regla implementa el modo de operación full-NAT. Tenga en cuenta que la creación del grupo de servidores y la comprobación de estado debe ser anterior a la creación de la regla.
# ilbadm create-healthcheck -h hc-test=tcp,hc-timeout=2,\ hc-count=3,hc-interval=10 hc1 # ilbadm create-servergroup -s server=192.168.0.10:6000-6009,192.168.0.11:7000-7009 sg1 # ilbadm create-rule -e -p -i vip=10.0.0.10,port=5000-5009,\ protocol=tcp -m lbalg=rr,type=NAT,proxy-src=192.168.0.101-192.168.0.104,pmask=24 \ -h hc-name=hc1 -o servergroup=sg1 rule1
Al crear una asignación persistente, las posteriores solicitudes de conexiones, de paquetes o de ambas cosas en un servicio virtual que tenga una dirección IP de origen del cliente que coincida se reenvían al mismo servidor back-end. La longitud del prefijo en la notación del enrutamiento entre dominios sin clase (CIDR, Classless Inter-Domain Routing) es un valor dentro del intervalo 0-32 para IPv4 y 0-128 para IPv6.
Al crear una regla half-NAT o full-NAT, especifique el valor para el tiempo de espera connection-drain. El valor predeterminado de tiempo de espera conn-drain es 0, lo que significa que la purga de conexión espera hasta que una conexión se cierre correctamente.
Para enumerar los detalles de configuración de una regla, emita el siguiente comando. Si no se especifica el nombre de la regla, la información se ofrece para todas las reglas.
# ilbadm show-rule RULENAME STATUS LBALG TYPE PROTOCOL VIP PORT rule-http E hash-ip-port NAT TCP 10.0.0.1 80 rule-dns D hash-ip NAT UDP 10.0.0.1 53 rule-abc D roundrobin NAT TCP 2001:db8::1 1024 rule-xyz E ip-vip NAT TCP 2001:db8::1 2048-2050
El comando ilbadm delete-rule se utiliza para suprimir una regla. Agregue la opción -a para suprimir todas las reglas. En el siguiente ejemplo, se suprime la regla llamada rule1.
# ilbadm delete-rule rule1