Configuración del sistema Oracle® Solaris 11.2 como enrutador o equilibrador de carga

Salir de la Vista de impresión

Actualización: Septiembre de 2014
 
 

Configuración de las reglas del ILB

En esta sección, se describe cómo usar el comando ilbadm para crear, suprimir y mostrar las reglas de equilibrio de carga.

Algoritmos del ILB

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.

Creación de una regla del ILB

    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


    Notas -  Puede especificar comprobaciones de estado en un puerto determinado o en cualquier puerto que el daemon ilbd seleccione aleatoriamente del rango de puertos para el servidor.
  • 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

Notas -  La opción -e activa la regla que se está creando, de lo contrario se puede desactivar de forma predeterminada.
Ejemplo 6-4  Creación de una regla full-NAT con persistencia de sesión de comprobación de estado

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.

Enumeración de reglas del ILB

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

Supresión de una regla ILB

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