¿Qué es un iRule?
Un iRule es un script que escribe si desea hacer uso de algunas de las capacidades extendidas de BIG-IP que no están disponibles a través de la CLI o GUI. iRules le permite interactuar más directamente con el tráfico que pasa a través del dispositivo. Usando iRules, puede enviar tráfico no sólo a las agrupaciones, sino también a los miembros individuales de la agrupación, puertos, o URI.
Y dirigir el tráfico a una agrupación deseada es sólo el principio. Puede analizar toda la cabecera y la carga útil de los datos a medida que se pasa a través del BIG-IP y, a velocidad de cable, ejecutar un guión completo de comandos en ese tráfico. Los comandos en su rango de eliminación de la tala a redirigir el tráfico, a partir de la modificación de la URI o puerto para realmente volver a escribir la carga útil en sí.
Los iRules que cree pueden ser simples o sofisticados, dependiendo de sus necesidades de contenido de conmutación. A continuación se muestra un ejemplo de un simple iRule:
Este iRule se activa cuando una conexión del lado del cliente ha sido aceptada, haciendo que el sistema LTM envíe el paquete a la agrupación "my_pool", si se corresponden con las direcciones de los clientes 10.10.10.10.
El uso de una característica llamada la inspección del motor universal (IUE), se puede escribir un iRule que busca ya sea una cabecera de un paquete, o el contenido real del paquete y, a continuación, dirige el paquete basándose en el resultado de esa búsqueda. iRules también puede dirigir los paquetes basados en el resultado de intentos de autenticación de cliente.
iRules pueden dirigir el tráfico no sólo para agrupación específicas, sino también a miembros individuales, incluyendo números de puertos y caminos URI, ya sea para implementar persistencia o para satisfacer las necesidades específicas de balanceo de carga.
La sintaxis que se utiliza para escribir iRules se basa en el estándar de la herramienta de programación de lenguaje de comandos (Tcl). Por lo tanto, puede utilizar muchos de los comandos estándar TCL, además de un sólido conjunto de extensiones que el sistema LTM proporciona para ayudarle a aumentar aún más la eficiencia de balanceo de carga.
La ventaja de iRules es que es necesario extender las capacidades de la BIG-IP que no están disponible a través de la CLI o la GUI.
2.02 - Explicar las ventajas de iRules iRules DevCentral
¿Cómo funciona un iRule?
Para empezar por el principio, por así decirlo, un iRule es ante todo un objeto de configuración, en términos de F5. Esto significa que es una parte de su bigip.conf general, junto con sus agrupaciones, servidores virtuales, monitores, etc. Se introducen en el sistema, ya sea a través de la GUI o CLI, hablando en términos generales. También hay un editor iRules disponible para su descarga en DevCentral que es una herramienta de Windows para la edición y el despliegue / iRules de prueba, que puede ser extremadamente útil. A diferencia de la mayoría de los objetos de configuración, sin embargo, un iRule está completamente generado por el usuario y personalizable. Un iRule es un script, en su núcleo, después de todo. Independientemente de cómo un iRule llega allí, ya sea la interfaz de usuario, CLI o Editor, una vez que un iRule es parte de su configuración, se compila tan pronto como esa configuración se guarda.
Uno de los errores brutos sobre iRules es que, como con la mayoría de los lenguajes de script interpretado como TCL, y el intérprete debe crear instancias cada vez que un iRule se ejecuta para analizar el código y procesarla. Esto no es cierto en absoluto, porque cada vez que guarde la configuración de todas sus iRules son pre-compiladas en lo que se conoce como “código de bytes”. El código de bytes es en su mayoría compilado y tiene la gran mayoría de las tareas de interpretación ya realizadas, de manera que TMM puede interpretar directamente los objetos restantes. Esto hace que ofrezca un rendimiento mucho más alto y, como tal, aumenta la escalabilidad.
Ahora que el iRule se guarda y se pre-compila, debe entonces aplicarse a un servidor virtual antes de que pueda afectar a cualquier tráfico. Un iRule que no se aplica a un servidor virtual se desactivará efectivamente, para todos los efectos. Una vez que haya aplicado un iRule a un servidor virtual dado, sin embargo, será ahora técnicamente cuando se aplica contra todo el tráfico que pasa por ese servidor virtual. Tenga en cuenta, sin embargo, que esto no significa necesariamente que todo el tráfico que pasa a través del servidor virtual en cuestión se verá afectado. Las IRules son más a menudo muy selectivas en el que el tráfico que afectan, ya sea para modificar, reenrutar u otra acción. Esto se realiza a través de ambas construcciones lógicas dentro de los iRules, pero también a través del uso de eventos dentro de la propia iRule.
Los eventos son una de las formas en las cuales iRules sea consciente de la red, como un lenguaje. Un evento, que vamos a ver mucho más detalle en la próxima entrega de esta serie, es una manera de ejecutar código iRules en un punto dado en el tiempo dentro del flujo de una sesión de trabajo en red. Si sólo desea ejecutar una sección de código una vez para cada nueva conexión con el servidor virtual al que se aplica mi iRule, que fácilmente podría hacerlo escribiendo un código simple en el evento apropiado.
Los eventos también son importantes porque indican en qué punto de la cadena de proxy (a veces referido como una cadena HUD) un iRule se ejecuta. Teniendo en cuenta que BIG-IP es un proxy bidireccional, es importante que los iRules se ejecuten no sólo en el lado derecho de la representación, sino en el momento justo en el flujo de la red.
Así que ahora tiene un iRule añadido a su configuración, se ha automáticamente pre-compilado a código de bytes cuando la configuración se ha guardado, usted tiene que aplicar al servidor virtual adecuado, y el código dentro de la iRule llama al evento deseado en el cual usted quiere ejecutar su código; ahora es cuando sucede la magia, por así decirlo. Aquí es donde la gran colección de comandos iRules entra en juego. A partir de la modificación de cabecera a la sustitución completa de la carga útil para la creación de una conexión de socket a un sistema externo y hacer una solicitud antes de procesar el tráfico de su virtual, hay muy pocas limitaciones a lo que puede lograrse cuando la combinación de la serie apropiada de comandos iRules. Estos comandos son luego procesados por TMM, lo que afectará a cualquier cambio (s) que necesita para el tráfico que está procesando para la sesión dada, dependiendo de lo que ha diseñado hacer en su iRule. El verdadero poder de iRules viene en gran parte en la enorme diversidad de comandos personalizados que hemos construido en la lengua, lo que le permite aprovechar su BIG-IP al máximo.
2.02 - Dada una lista de situaciones, determinar cuál sería apropiado para el uso de iRules
Cuándo se debe utilizar un iRule?
El momento ideal para utilizar un iRule es cuando usted está mirando para agregar algún tipo de funcionalidad a su despliegue de la aplicación o aplicación, a nivel de red, y que la funcionalidad no está ya disponible a través de la incorporada en las opciones de configuración en su BIG-IP . Ya sea que estaé buscando para llevar a cabo algún tipo de redireccionamiento personalizado o registrar información específica acerca de las sesiones de los usuarios o una amplia gama de otras posibilidades, iRules puede añadir lógica empresarial valiosa o incluso la funcionalidad de aplicaciones para su implementación. iRules tienen un único punto de gestión, su BIG-IP, en lugar de ser distribuida a cada servidor de alojamiento y que sea la aplicación la que está tratando de modificar o afectar. Esto puede ahorrar valioso tiempo de administracion, y también puede ser una gran ventaja en el tiempo de implementación. A menudo es mucho más fácil desplegar una iRule o un cambio iRule que modificar la aplicación para una solución rápida.
Como ejemplo, uno de los usos más comunes de iRules cuando se introdujo por primera vez era para redirigir todo el tráfico de HTTP (puerto 80) para HTTPS (puerto 443) sin afectar ya sea al host o al URI solicitado para la conexión. (Consulte el siguiente ejemplo) Este era y todavía es un iRule muy simple, pero no fue en ese momento una característica disponible en las opciones de configuración estándar para BIG-IP.
when HTTP_REQUEST {
HTTP::redirect “https://[HTTP::host][HTTP::uri]”
}
¿Cuando no utilizar un iRule?
El ejemplo anterior de redigir una solicitud HTTP a HTTPS en realidad representa perfectamente cuándo no utilizar un iRule, debido a que la funcionalidad era tan popular que ya ha sido añadido como una opción de perfil directamente en la configuración BIG-IP. Como tal, es más apropiado y técnicamente de más alto rendimiento, para utilizar esta característica en el perfil en lugar de escribir un iRule para llevar a cabo la misma tarea. Una regla general es la siguiente: Cada vez que usted puede hacer algo desde dentro del estándar de opciones de configuración, perfiles, GUI o CLI - hacerlo allí en primer lugar. Si usted está buscando para llevar a cabo una tarea que no se puede lograr a través de los medios “built-in” de configuración, entonces es el momento perfecto para darle la vuelta a iRules para ampliar las posibilidades.
La razón principal de esto es el rendimiento. Las iRules son de extremadamente alto rendimiento, por regla general, si están escritas correctamente. Pero siempre hay un ligero beneficio en el rendimiento cuando se puede ejecutar directamente desde la funcionalidad incorporada, características básicas en lugar de un script personalizado creado, incluso un iRule. También, sin embargo, es más fácil de mantener una característica integrada en el producto a través de actualizaciones, en lugar de volver a probar y administrar una iRule que podrían ser fácilmente reemplazado con algunas opciones de configuración.
No hay comentarios:
Publicar un comentario