Cluster NLB: ¿Qué son las reglas de puerto (port rules)? ¿Cómo configurar las reglas de puerto?
| En este capítulo se explican las Reglas de Puerto del Cluster NLB, sus conceptos y sus consideraciones cara a su configuración. ¿Cuántas reglas de puerto podemos configurar en un Cluster NLB? ¿Cuántas direcciones IP podemos utilizar en nuestras Reglas de Puerto? ¿Qué ocurre con las peticiones no cubiertas por ninguna Regla de Puerto? ¿Qué es el modo de filtrado (filtering mode) de una Regla de Puerto en un Cluster NLB? ¿Es posible configurar varias Reglas de Puerto con distinta Afinidad? ¿Es posible dar más peso a un Nodo que a otro en un Cluster NLB para repartir de forma no equitativa la carga de trabajo? |
Las reglas de puerto (port rules) en un Cluster NLB, definen qué puertos van a ser gestionados por el Cluster NLB y cómo van ser balanceados. La configuración por defecto de las reglas de puerto incluye todos los puertos (desde el 0 al 65535), lo cual se trata de una configuración demasiado amplia. La recomendación es crear múltiples reglas de puerto, con puertos o rangos de puertos excluyentes (es decir, un puerto sólo puede estar incluido en una regla de puerto, y no se pueden solapar entre distintas reglas de puertos). Además, cada regla de puerto puede tener una configuración de Afinidad distinta, si así se desea. En cualquier caso, se debe tener en cuenta que sólo pueden crearse hasta 32 reglas de puerto. Una vez que hemos creado 32 reglas de puerto, el botón Add queda deshabilitado, y ya no es posible crear más reglas de puerto. Es importante recordar que un Cluster NLB puede utilizar una o varias direcciones IP virtuales, de tal modo, que las reglas de puerto pueden afectar a una dirección IP virtual o a todas las direcciones IP virtuales del Cluster NLB. Del mismo modo, también es importante recordar que los puertos no definidos por las reglas de puerto, serán servidor por el Nodo por Defecto (Default Host). En ocasiones, se puede caer en el error de pensar que si no definimos un puerto en ninguna regla de puerto, estaremos consiguiendo que las conexiones a dicho puerto sean rechazas. Este es un error de concepto, ya que serán despachadas por el Nodo por Defecto (Default Host), de tal modo, que si en dicha máquina el puerto está a la escucha, será posible el acceso. Si se desea que las conexiones a algún puerto sean rechazadas, es necesario crear una regla de puertos con la opción de filtrado Disable this port range. Las propiedades a configurar en las reglas de puerto son: - Cluster IP Address. Dirección IP virtual (Virtual IP) utilizada para la regla de puertos. Es decir, en un Cluster NLB, podemos utilizar una dirección IP virtual (compartida por todos los Nodos del Cluster NLB – caso habitual), o bien utilizar varias direcciones IP. En caso de utilizar varias direcciones IP, podemos configurar cada regla de puertos para una dirección IP virtual en particular, o bien, para todas la direcciones IP del Cluster NLB.
- Port Range. Rango de puertos a los que se desea aplicar la regla de puertos. Si se desea especificar un único puerto, es suficiente con especificar el mismo puerto en los campos From y To. Si queremos cubrir varios puertos no consecutivos, deberemos crear varias reglas de puerto.
- Protocols. Permite especificar si se desea cubrir puertos TCP, UDP, o ambos.
- Filtering Mode. Determina la Afinidad, es decir, cómo las peticiones (el tráfico de red) son balanceadas hacia un Nodo (Host) u otro del Cluster NLB.
- Multiple Host. Esta es la opción por defecto. Las peticiones entrantes de los clientes, se distribuirán entre los distintos Nodos del Cluster NLB, pudiendo personalizarse el peso deseado para cada Nodo, para aquellos casos en que NO se desee un reparto equitativo entre todos los Nodos del Cluster (ej: 80% - 20%), por ejemplo, porque existan Nodos con capacidad hardware sensiblemente superior. En cualquier caso, la configuración más importante es la configuración de Afinidad (None, Single, Class C), a la cual está reservado un apartado completa del presente Artículo (ver más adelante).
- Single Host. Todas las peticiones entrantes son dirigidas a un único Nodo (Host) del Cluster NLB. El Nodo utilizado se eligirá en función del valor de la propiedad Handling Priority. Es interesante recordar que la propiedad Handling Priority, sólo se puede especificar editando la regla de puerto a nivel de cada Host, y no a nivel del Cluster. En consecuencia, esta configuración sólo ofrece tolerancia a fallos, y no permite distribuir la carga.
- Disable this port range. Permite denegar el acceso al rango de puertos especificado, por ejemplo, por motivos de seguridad, ya que los rangos de puertos que NO estén cubierto por ninguna regla de puerto, serán despachados por el Nodo por Defecto (Default Host).
Otra propiedad de gran importancia es la Prioridad en las Reglas de Puerto, ya sea la propiedad Load weight del filtrado Multiple host, o bien, la propiedad Handling priority del filtrado Single Host. Es decir, por un lado está la prioridad de cada Nodo (Host) del Cluster (Host Priority), que se trata de una propiedad de cada Host, y NO de una propiedad de las reglas de puerto, y cuyo fin es definir cuál es el Nodo por Defecto (Default Host) para servir las peticiones que no estén definidas por ninguna regla de puertos. Aclarado éste aspecto, es importante también recordar que la Prioridad en las Reglas de Puerto, NO se puede ver/configurar a través de las reglas de puertos del diálogo de propiedades del Cluster, pues al visualizar las Reglas de Puerto a través de las Propiedades de Cluster, esta información NO aparece (como se muestra en la anterior pantalla capturada). Por el contrario, es posible ver/configurar la Prioridad de las Reglas de Puerto, a través de las propiedades de cada Host, en cuyo caso, al editar las reglas de puerto SI se muestra ésta información y es posible su modificación, como se muestra en la siguiente pantalla capturada. De éste modo, en un Cluster NLB formado por varios Nodos (Hosts) podemos definir múltiples reglas de puerto, y en cada regla de puerto asignar mayor prioridad a un Nodo o a otro (ej: con dos Nodos en un Cluster NLB con modo de filtrado Multiple Host, asignar el 80% de carga a un Nodo y el 20% restante al otro Nodo). Por defecto en el modo de filtrado Multiple Host, todos los Nodos tienen la misma prioridad, con el fin de repartir por igual la carga. La configuración recomendada y habitual, suele ser esta, en conjunto con la utilización de máquinas gemelas (ej: montar un Cluster NLB de cuatro nodos formado por cuatro servidores HP Blade 35p con las mismas características hardware y software). Es importante recordar que al realizar cambios en las reglas de puerto, se produce la Convergencia del Cluster NLB. |
jeancc - 04/08/2011 (UTC) Hola guille,
después de leer este artículo, no me queda claro de dónde sale la ventana primera (la que no lleva 'load weigth' y 'handling priority'), y tampoco veo dónde se le da más peso a un nodo que a otro, ya que sólo tenemos una casilla para indicar un porcentaje en la segunda ventana.
Por cierto, ¿qué es el check 'Equal'?
Gracias. | GuilleSQL - 04/08/2011 (UTC) Hola Jeancc,
La primera ventana, se muestra al añadir o editar una regla de puerto (Port Rule) a nivel del Cluster NLB, por ejemplo, tras mostrar las propiedades de un Cluster NLB, en la pestaña Port Rules.
La segunda ventana, se muestra al añadir o editar una regla de puerto (Port Rule) a nivel de Host, por ejemplo, tras mostrar las propiedades de un Host, en la pestaña Port Rules.
Saludos, Guille | | | |