{"id":48156,"date":"2025-03-28T23:03:37","date_gmt":"2025-03-28T23:03:37","guid":{"rendered":"https:\/\/www.edgenexus.io\/sin-categoria\/como-migrar-f5-irules-a-edgenexus-flightpath\/"},"modified":"2025-03-28T23:03:37","modified_gmt":"2025-03-28T23:03:37","slug":"como-migrar-f5-irules-a-edgenexus-flightpath","status":"publish","type":"post","link":"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/","title":{"rendered":"C\u00f3mo migrar F5 iRules a Edgenexus flightPATH"},"content":{"rendered":"<h5><strong>Es una creencia muy extendida entre mis colegas de Edgenexus que, aunque los equilibradores de carga LTM de F5 son extremadamente potentes y flexibles, la dependencia del uso de scripts iRules para realizar algunas funciones b\u00e1sicas conduce a una complejidad innecesaria.<\/strong><\/h5>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">S\u00f3lo tienes que hacer una b\u00fasqueda en Internet sobre iRules de F5 para descubrir el dolor y la angustia que supone para muchos profesionales de TI el proceso de creaci\u00f3n de iRules funcionales. Aunque es cierto que la ampliaci\u00f3n de la funcionalidad \u00abPol\u00edticas de tr\u00e1fico local\u00bb en las \u00faltimas versiones del software de F5 ha eliminado parte de la necesidad de crear iRules para funciones comunes de manipulaci\u00f3n de cabeceras HTTP, hay muchos usuarios que siguen atascados con iRules heredadas en la configuraci\u00f3n de su sistema.   <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Las Pol\u00edticas de Tr\u00e1fico Local no parecen permitir la manipulaci\u00f3n de datos HTML, aunque las pol\u00edticas de Flujo s\u00ed lo hacen, son bastante toscas y dif\u00edciles de controlar. Por defecto, afectan al tr\u00e1fico en ambas direcciones de la misma manera, aunque esto no suele ser deseable. Esto significa volver a iRules para realizar funciones como la sustituci\u00f3n de un enlace de texto del cuerpo de la URL de http:\/\/ a https:\/\/, que puede ser necesaria junto con una redirecci\u00f3n de http:\/\/ a https, que puede realizarse utilizando las Pol\u00edticas de Tr\u00e1fico Local.  <\/span><\/p>\n<h4>Entra en Edgenexus flightPATH &#8211; La gesti\u00f3n del tr\u00e1fico m\u00e1s f\u00e1cil<\/h4>\n<p><span style=\"font-weight: 400;\">En Edgenexus, estamos justificadamente orgullosos de la potencia y sencillez de configuraci\u00f3n de nuestra funci\u00f3n de manipulaci\u00f3n HTTP flightPATH Capa 7.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Si ya eres usuario de F5 y utilizas iRules para manipular HTTP o HTML, nos encantar\u00eda tener la oportunidad de hacerte una demostraci\u00f3n del equilibrador de carga ALB-X de Edgenexus y mostrarte lo sencillo que es configurar flightPATH para conseguir algunas funciones relativamente complejas. Nos gustar\u00eda que nos pusieras a prueba para ayudarte a traducir tus funciones iRules existentes a reglas flightPATH. <\/span><\/p>\n<p>&nbsp;<\/p>\n<p><strong>A modo de ejemplo, reproducimos a continuaci\u00f3n una selecci\u00f3n de iRules de F5 con las capturas de pantalla equivalentes de configuraci\u00f3n de reglas flightPATH de Edgenexus.<\/strong><\/p>\n<h4><strong>IP de origen Direcci\u00f3n del servidor de contenidos<\/strong><\/h4>\n<p><span style=\"font-weight: 400;\">He aqu\u00ed un ejemplo de c\u00f3mo se puede utilizar F5 iRules para dirigir a los usuarios de un determinado rango de direcciones IP a un Grupo de Servidores y a los de otro rango a otro Grupo de Servidores.<\/span><\/p>\n<p><strong>F5:<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><span style=\"font-weight: 400;\">Nombre:<\/span><\/td>\n<td><span style=\"font-weight: 400;\"> Elecci\u00f3n_IP<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Definici\u00f3n:<\/span><\/td>\n<td><span style=\"font-weight: 400;\"> when HTTP_REQUEST { if { ( [IP::addr [IP::client_addr] igual a 24.24.15.100] ) or ( [IP::addr [IP::client_addr] igual a 10.1.1.2] ) } { pool pool2 } } <\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong><br \/>\nEdgenexus:<\/strong><\/p>\n<p><a href=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/edgenexus-How-to-Migrate-F5-iRulesAsset-1.png\"><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-26654\" src=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/edgenexus-How-to-Migrate-F5-iRulesAsset-1.png\" alt=\"C\u00f3mo migrar F5 iRules a edgeNEXUS flightPATH\" width=\"1043\" height=\"369\" srcset=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/edgenexus-How-to-Migrate-F5-iRulesAsset-1.png 1043w, https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/edgenexus-How-to-Migrate-F5-iRulesAsset-1-400x142.png 400w, https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/edgenexus-How-to-Migrate-F5-iRulesAsset-1-768x272.png 768w\" sizes=\"(max-width: 1043px) 100vw, 1043px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p style=\"margin-left: 268px;\"><a href=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/edgenexus-How-to-Migrate-F5-iRulesAsset-1.png\">haz clic aqu\u00ed para ampliar<\/a><\/p>\n<p>&nbsp;<\/p>\n<ol>\n<li><span style=\"font-weight: 400;\">Crea una nueva regla flightPATH con el nombre IP_Choice_Pool_1 a trav\u00e9s de la GUI Web. A\u00f1ade una descripci\u00f3n concisa para poder identificar cu\u00e1l es la funci\u00f3n que realiza la regla flightPATH. <\/span><\/li>\n<li>A\u00f1ade una nueva Condici\u00f3n, seleccionando IP de Origen en la extensa lista desplegable. Selecciona \u00abHace\u00bb en la lista desplegable Sentido. Una opci\u00f3n es seleccionar Inicio en la lista desplegable Comprobar (como alternativa puedes utilizar otras opciones, como RegEx, para dar m\u00e1s flexibilidad al \u00abValor\u00bb de la direcci\u00f3n IP). Introduce el rango de IP de inicio en la casilla Valor.   <\/li>\n<li><span style=\"font-weight: 400;\">A\u00f1ade una Nueva Acci\u00f3n. En el cuadro desplegable Acci\u00f3n, elige la opci\u00f3n Utilizar Servidor (tambi\u00e9n existe la opci\u00f3n Utilizar Servidor Seguro, si es necesario). En la casilla Destino introduce la direcci\u00f3n IP y el puerto del destino requerido, que suele ser otra interfaz de Servicio Virtual para permitir el equilibrio de carga en otro grupo de servidores reales.  <\/span><\/li>\n<\/ol>\n<h4><strong>Redireccionamiento HTTP a HTTPS<\/strong><\/h4>\n<p><span style=\"font-weight: 400;\">Aunque F5 dispone ahora de una alternativa al uso de iRules para realizar la redirecci\u00f3n de HTTP a HTTPs, hay muchos casos en los que la gente sigue utilizando iRules para esta funci\u00f3n. iRules tambi\u00e9n permite una mayor personalizaci\u00f3n de los par\u00e1metros de redirecci\u00f3n. <\/span><\/p>\n<p><strong>F5:<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><span style=\"font-weight: 400;\">Nombre:<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Redirecci\u00f3n HTTP_HTTPs<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Definici\u00f3n:<\/span><\/td>\n<td><span style=\"font-weight: 400;\">cuando HTTP_REQUEST { HTTP::redirect \u00abhttps:\/\/[HTTP::host][HTTP::uri]\u00bb }<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong><br \/>\nEdgenexus:<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_HTTP_HTTPS_Redirection-2.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"alignnone wp-image-8533 size-full\" style=\"border: 1px solid;\" src=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_HTTP_HTTPS_Redirection-2.png\" alt=\"\" width=\"1215\" height=\"383\" srcset=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_HTTP_HTTPS_Redirection-2.png 1215w, https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_HTTP_HTTPS_Redirection-2-400x126.png 400w, https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_HTTP_HTTPS_Redirection-2-768x242.png 768w\" sizes=\"(max-width: 1215px) 100vw, 1215px\" \/><\/a><\/p>\n<p style=\"margin-left: 268px;\"><a href=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_HTTP_HTTPS_Redirection-2.png\">haz clic aqu\u00ed para ampliar<\/a><\/p>\n<p>&nbsp;<\/p>\n<ol>\n<li><span style=\"font-weight: 400;\">Crea una nueva regla flightPATH con el nombre Redirigir HTTP a HTTPS a trav\u00e9s de la GUI Web. A\u00f1ade una descripci\u00f3n concisa para poder identificar cu\u00e1l es la funci\u00f3n que realiza la regla flightPATH. <\/span><\/li>\n<li><span style=\"font-weight: 400;\">Para la mayor\u00eda de las aplicaciones, el requisito de realizar la redirecci\u00f3n de HTTP a HTTPS debe realizarse en todo el tr\u00e1fico que llega al servicio HTTP. En este caso no es necesario crear ninguna regla de condici\u00f3n. Existe una gran flexibilidad para crear reglas de condici\u00f3n si la regla flightPATH s\u00f3lo debe afectar a cierto tr\u00e1fico.  <\/span><\/li>\n<li><span style=\"font-weight: 400;\">A\u00f1ade una nueva Acci\u00f3n eligiendo Redirigir 302 en el cuadro desplegable Acci\u00f3n (tambi\u00e9n est\u00e1 disponible Redirigir 301). El ALB-X de Edgenexus crea autom\u00e1ticamente variables para determinados par\u00e1metros clave del tr\u00e1fico procesado por el ALB-X, entre los que se incluyen el host, la ruta y la cadena de consulta. En la casilla Destino introduce los detalles de a d\u00f3nde debe redirigirse la petici\u00f3n. En este caso precede a la entrada https:\/\/ y utiliza las variables $host$$path$$querystring$ para insertar los datos de la petici\u00f3n http original. Como puedes ver, aqu\u00ed hay flexibilidad para definir un destino completamente distinto si es necesario.    <\/span><\/li>\n<\/ol>\n<h4><strong>Enmascarar n\u00fameros de tarjeta de cr\u00e9dito<\/strong><\/h4>\n<p><span style=\"font-weight: 400;\">He aqu\u00ed un ejemplo de las complejidades de iRules y de la forma en que F5 maneja la manipulaci\u00f3n del cuerpo HTML.<\/span><\/p>\n<p><strong>F5:<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><span style=\"font-weight: 400;\">Nombre:<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Enmascaramiento del n\u00famero de tarjeta de cr\u00e9dito<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Definici\u00f3n:<\/span><\/td>\n<td><span style=\"font-weight: 400;\">cuando HTTP_REQUEST {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Evitar que el servidor env\u00ede una respuesta comprimida<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # eliminar las ofertas de compresi\u00f3n del cliente<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  HTTP::header eliminar \u00abAccept-Encoding\u00bb<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # No permitir que los datos de respuesta sean fragmentados<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  si { [HTTP::version] eq \u00ab1.1\u00bb } {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Fuerza el downgrade a HTTP 1.0, pero sigue permitiendo conexiones keep-alive.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Puesto que HTTP 1.1 es keep-alive por defecto, y 1.0 no lo es,<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # tenemos que asegurarnos de que las cabeceras reflejan el estado keep-alive.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Comprueba si se trata de una conexi\u00f3n keep alive<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  si { [HTTP::header is_keepalive] } {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Sustituye el valor de la cabecera de conexi\u00f3n por \u00abKeep-Alive\u00bb<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  HTTP::header sustituir \u00abConexi\u00f3n\u00bb \u00abKeep-Alive\u00bb<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Establece la versi\u00f3n de la petici\u00f3n del lado del servidor en 1.0<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Esto obliga al servidor a responder sin trocear<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  HTTP::versi\u00f3n \u00ab1.0\u00bb<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">}<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">cuando HTTP_RESPONSE {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Comprueba s\u00f3lo las respuestas que tengan un tipo de contenido de texto (text\/html, text\/xml, text\/plain, etc.).<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  si { [HTTP::header \u00abContent-Type\u00bb] empieza_con \u00abtexto\/\u00bb } {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Obt\u00e9n la longitud del contenido para que podamos recoger los datos (que se procesar\u00e1n en el evento HTTP_RESPONSE_DATA)<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Limitar la recogida a 1Mb (1048576 menos un poco de sobra) &#8211; Ver SOL6578 para m\u00e1s detalles<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  si { [HTTP::header exists \u00abContent-Length\u00bb] } {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  si { [HTTP::header \u00abContent-Length\u00bb] &gt; 1048000 }{<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Content-Length over 1Mb so collect 1Mb<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  establecer longitud_contenido 1048000<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  } si no {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Content-Length under 1Mb so collect actual length<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  establecer longitud_contenido  [HTTP::header \u00abContent-Length\u00bb]<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  } si no {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # La respuesta no ten\u00eda cabecera Content-Length, as\u00ed que usa el valor por defecto de 1Mb<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  establecer longitud_contenido 1048000<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # No recopilar contenido si el valor de la cabecera Content-Length era 0<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  if { $longitud_del_contenido &gt; 0 } {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  HTTP::collect $longitud_del_contenido<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">}<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">cuando HTTP_RESPONSE_DATA {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Encuentra TODOS los posibles n\u00fameros de tarjeta de cr\u00e9dito de una sola vez  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  set card_indices [regexp -all -inline -indices<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  {(?:3[4|7]\\d{2})(?:[ ,-]?(?:\\d{5}(?:\\d{1})?)){2}|(?:4\\d{3})(?:[ ,-]?(?:\\d{4})){3}|(?:5[1-5]\\d{2})(?:[ ,-]?(?:\\d{4})){3}|(?:6011)(?:[ ,-]?(?:\\d{4})){3}}\\<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">    [HTTP::payload]]<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  foreach tarjeta_idx $tarjeta_indices {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  establecer inicio_tarjeta  [lindex $card_idx 0]<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  establecer fin_tarjeta  [lindex $card_idx 1]<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  set tarjeta_len [expr {$final_tarjeta &#8211; $inicio_tarjeta + 1}]<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  set n\u00famero_tarjeta [rango cadena [HTTP::payload] $inicio_tarjeta $fin_tarjeta]<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Elimina el gui\u00f3n o el espacio si existen y cuenta las apariciones en los recortes variables.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  establecer recortes [regsub -all {[-]} $n\u00famero_tarjeta \u00ab\u00bb n\u00famero_tarjeta]<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Ajusta la variable card_len pero gu\u00e1rdala para usarla m\u00e1s adelante.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  set nuevo_len_tarjeta [expr {$len_tarjeta &#8211; $recortes}]<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  set doble [expr {$nueva_len_tarjeta &amp; 1}]  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  establecer chksum 0  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  set isCard inv\u00e1lido<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Calcula MOD10<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  for { set i 0 } { $i &lt; $new_card_len } { incr i } {  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  set c  [string index $card_number $i]  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  if {($i &amp; 1) == $doble} {  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  si {[incr c $c] &gt;= 10} {incr c -9}  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  }  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  incr chksum $c  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  }  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Determina el tipo de tarjeta<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  interruptor [string index $card_number 0] {  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  3 { set type AmericanExpress }  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  4 { set type Visa }  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  5 { set type MasterCard }  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  6 { set type Descubre }  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  default { set type Desconocido }  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">    <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Si el n\u00famero de tarjeta es v\u00e1lido, entonces enmascara los n\u00fameros con X&#8217;s  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  if { ($chksum % 10) == 0 } {  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  set isCard v\u00e1lida  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  HTTP::payload replace $card_start $card_len  [string repeat \u00abX\u00bb $card_len]<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">    <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Resultados del registro<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  log local0. \u00abEncontrado $isCard $tipo CC# $n\u00famero_tarjeta\u00bb   <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">}<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><strong>Edgenexus:<\/strong><\/p>\n<p><a href=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_Mask_Credit-card-numbers-1.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"alignnone wp-image-8535 size-full\" style=\"border: 1px solid;\" src=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_Mask_Credit-card-numbers-1.png\" alt=\"\" width=\"1529\" height=\"431\" srcset=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_Mask_Credit-card-numbers-1.png 1529w, https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_Mask_Credit-card-numbers-1-400x113.png 400w, https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_Mask_Credit-card-numbers-1-768x216.png 768w\" sizes=\"(max-width: 1529px) 100vw, 1529px\" \/><\/a><\/p>\n<p style=\"margin-left: 268px;\"><a href=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_Mask_Credit-card-numbers-1.png\">haz clic aqu\u00ed para ampliar<\/a><\/p>\n<p>&nbsp;<\/p>\n<ol>\n<li>Crea una nueva regla flightPATH y proporciona una descripci\u00f3n significativa<\/li>\n<li><span style=\"font-weight: 400;\">\u00c9ste es otro ejemplo en el que la coincidencia de condiciones puede no ser necesaria, ya que normalmente querr\u00e1s proteger cualquier respuesta del servidor. Por supuesto, existe la opci\u00f3n si es necesario. <\/span><\/li>\n<li>A\u00f1ade una nueva &#8216;Acci\u00f3n&#8217; y elige &#8216;Cuerpo Reemplazar Todo&#8217; en la opci\u00f3n del men\u00fa desplegable. Se hace uso de Expresiones Regulares para poder hacer coincidir el texto Objetivo a sustituir por esta acci\u00f3n. Utiliza \\b(?:\\d[ \\t-]?){12}\\b como objetivo para detectar y sustituir los 12 primeros d\u00edgitos de los n\u00fameros de las tarjetas de cr\u00e9dito. En el campo Datos introduce xxxx-xxxx-xxxx como texto de sustituci\u00f3n. Esto dejar\u00e1 intactos los 4 \u00faltimos d\u00edgitos habituales como identificador.    <\/li>\n<li><span style=\"font-weight: 400;\">Repite el proceso anterior para otros tipos de datos sensibles, como los n\u00fameros de la Seguridad Social, utilizando \\b(?:\\d[ \\t-]?){7}\\b sustituido por xxx-xxxx y \\b(?:\\d[ \\t-]?){6}\\b sustituido por xxx.xxx<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Con un uso juicioso de las expresiones regulares, se pueden emparejar y enmascarar una gran variedad de secuencias de caracteres simplemente utilizando la acci\u00f3n Reemplazar cuerpo. Reemplazar cuerpo primero y Reemplazar cuerpo \u00faltimo son otras opciones de acci\u00f3n que pueden utilizarse cuando s\u00f3lo es necesario reemplazar la primera o la \u00faltima instancia de una secuencia de caracteres en una p\u00e1gina. <\/span><\/li>\n<\/ol>\n<h4><strong>Elimina las cabeceras X que puedan comprometer la seguridad<\/strong><\/h4>\n<p><span style=\"font-weight: 400;\">A menudo se cita como buena pr\u00e1ctica evitar proporcionar informaci\u00f3n innecesaria sobre la infraestructura del servidor utilizado para la entrega de una aplicaci\u00f3n, eliminando determinadas cabeceras HTTP que la aplicaci\u00f3n o la tecnolog\u00eda del servidor insertan por defecto. Cuanto m\u00e1s sepa un hacker sobre el sistema que pretende explotar, m\u00e1s f\u00e1cil le resultar\u00e1. A menudo hay un desfase entre la publicaci\u00f3n de las vulnerabilidades del sistema y la aplicaci\u00f3n de los parches. Es durante este periodo cuando los sistemas est\u00e1n m\u00e1s amenazados y cuando el proceso de ocultar los detalles de la plataforma de entrega de aplicaciones es m\u00e1s \u00fatil.   <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Mucha de la informaci\u00f3n innecesaria est\u00e1 contenida en los encabezados X. La siguiente iRule realiza una eliminaci\u00f3n general de X-Headers que puede no ser deseable. <\/span><\/p>\n<p><strong>F5:<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><span style=\"font-weight: 400;\">Nombre:<\/span><\/td>\n<td><span style=\"font-weight: 400;\">HTTP Eliminaci\u00f3n del encabezado del servidor X<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Definici\u00f3n:<\/span><\/td>\n<td><span style=\"font-weight: 400;\">cuando HTTP_RESPONSE {  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Elimina todas las instancias de la cabecera Servidor  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  HTTP::header eliminar Servidor  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  # Elimina todas las cabeceras que empiecen por x-  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  foreach nombre_cabecera [HTTP::header names] {  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  si {[string match -nocase x-* $header_name]}{  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  HTTP::header eliminar $nombre_cabecera  <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">  }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">}<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong><br \/>\nEdgenexus:<\/strong><\/p>\n<p><a href=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_Remove_HTTP_Headers-2.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8537 size-full\" style=\"border: 1px solid;\" src=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_Remove_HTTP_Headers-2.png\" alt=\"\" width=\"1298\" height=\"454\" srcset=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_Remove_HTTP_Headers-2.png 1298w, https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_Remove_HTTP_Headers-2-400x140.png 400w, https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_Remove_HTTP_Headers-2-768x269.png 768w\" sizes=\"(max-width: 1298px) 100vw, 1298px\" \/><\/a><\/p>\n<p style=\"margin-left: 268px;\"><a href=\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2017\/05\/flightPATH_Remove_HTTP_Headers-2.png\">haz clic aqu\u00ed para ampliar<\/a><\/p>\n<p>&nbsp;<\/p>\n<ol>\n<li><span style=\"font-weight: 400;\">Crea una nueva regla flightPATH con un nombre significativo, por ejemplo Eliminar cabeceras HTTP<\/span><\/li>\n<li>\u00c9ste es un ejemplo de regla flightPATH en la que probablemente no se requiera ninguna coincidencia de condiciones. Hay un amplio conjunto de criterios de selecci\u00f3n disponibles en caso necesario. <\/li>\n<li>A\u00f1ade una nueva acci\u00f3n para &#8216;Eliminar Encabezado de Respuesta&#8217;, en el campo Destino introduce el valor del encabezado a eliminar. A\u00f1ade una entrada de acci\u00f3n Eliminar encabezado de respuesta para definir cada uno de los campos de encabezado que quieras enmascarar de las respuestas del servidor. Una acci\u00f3n general de eliminaci\u00f3n de todas las cabeceras personalizadas con prefijo X podr\u00eda tener, de hecho, un efecto perjudicial, por lo que flightPATH requiere que definas las cabeceras espec\u00edficas que deben eliminarse.  <\/li>\n<li>Aplica el flightPATH creado a cada uno de los servicios donde se requiera la acci\u00f3n.<\/li>\n<\/ol>\n<h4><strong><br \/>\n<\/strong> <strong>Aplicar reglas flightPATH a servicios virtuales<\/strong><\/h4>\n<p><span style=\"font-weight: 400;\">flightPATH es una herramienta de manipulaci\u00f3n HTTP muy potente, pero f\u00e1cil de usar. Puedes crear una \u00abBiblioteca\u00bb de reglas flightPATH para realizar diversas acciones sobre el tr\u00e1fico HTTP a medida que atraviesa el dispositivo equilibrador de carga ALB-X. Se pueden aplicar varias reglas flightPATH a un servicio virtual. Las reglas flightPATH se procesan en el orden en que se aplican al servicio. Algunas reglas flightPATH terminan el procesamiento. Puedes utilizar la funci\u00f3n de arrastrar y soltar para reorganizar el orden y asegurarte de que todas las acciones se realizan seg\u00fan lo requerido. Se dispone de un completo registro y rastreo de flightPATH que permite depurar el funcionamiento de flightPATH. edgeNEXUS puede ofrecer servicios profesionales para ayudar con la traducci\u00f3n y creaci\u00f3n de reglas flightPATH m\u00e1s complejas.       <\/span><\/p>\n<h4><strong>\u00bfQuieres saber m\u00e1s?<\/strong><\/h4>\n<p><span style=\"font-weight: 400;\">Para m\u00e1s informaci\u00f3n sobre la manipulaci\u00f3n del tr\u00e1fico Edgenexus <a href=\"https:\/\/www.edgenexus.io\/products\/load-balancer\/features\/intelligent-traffic-management\/\">, haz clic aqu\u00ed<\/a>.<\/span><\/p>\n<p>Para descargar una prueba gratuita del ALB-X <a href=\"https:\/\/www.edgenexus.io\/products\/load-balancer\/free-trial\/\">, haz clic aqu\u00ed<\/a>.<\/p>\n<p><span style=\"font-weight: 400;\">Valorar\u00edamos la oportunidad de demostrar la funcionalidad de Edgenexus ALB-X y flightPATH.  <a href=\"https:\/\/calendly.com\/edgenexusio\">Solicita aqu\u00ed una demostraci\u00f3n t\u00e9cnica personal y r\u00e1pida.<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es una creencia muy extendida entre mis colegas de Edgenexus que, aunque los equilibradores de carga LTM de F5 son extremadamente potentes y flexibles, la dependencia del uso de scripts iRules para realizar algunas funciones b\u00e1sicas conduce a una complejidad innecesaria. &nbsp; S\u00f3lo tienes que hacer una b\u00fasqueda en Internet sobre iRules de F5 para [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":48160,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[500],"tags":[918,916,910,911,912,915,913,914],"class_list":["post-48156","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-es","tag-big-ip-es","tag-controlador-de-entrega-de-aplicaciones","tag-equilibrio-de-carga","tag-f5-es","tag-flightpath-es","tag-gestor-de-trafico-de-carga","tag-irules-es","tag-trafico"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.1 (Yoast SEO v27.1.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>C\u00f3mo migrar F5 iRules a Edgenexus flightPATH - Edgenexus load balancers and Application Security<\/title>\n<meta name=\"description\" content=\"Aprende a migrar f\u00e1cilmente F5 iRules a JetNexus FlightPath. Agiliza tu transici\u00f3n con una gu\u00eda paso a paso. \u00a1Lee ahora para un proceso de migraci\u00f3n sin problemas!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Donna Toomey\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/\"},\"author\":{\"name\":\"Donna Toomey\",\"@id\":\"https:\/\/www.edgenexus.io\/zh-hans\/#\/schema\/person\/dc553ff5b496630eb88bf2d9ee2b31ca\"},\"headline\":\"C\u00f3mo migrar F5 iRules a Edgenexus flightPATH\",\"datePublished\":\"2025-03-28T23:03:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/\"},\"wordCount\":2273,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.edgenexus.io\/zh-hans\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/How-to-Migrate-F5-iRules-to-Edgenexus-flightPATH-Blog.jpg\",\"keywords\":[\"big-ip\",\"controlador de entrega de aplicaciones\",\"equilibrio de carga\",\"F5\",\"flightPATH\",\"gestor de tr\u00e1fico de carga\",\"iRules\",\"Tr\u00e1fico\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/\",\"url\":\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/\",\"name\":\"C\u00f3mo migrar F5 iRules a Edgenexus flightPATH - Edgenexus load balancers and Application Security\",\"isPartOf\":{\"@id\":\"https:\/\/www.edgenexus.io\/zh-hans\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/How-to-Migrate-F5-iRules-to-Edgenexus-flightPATH-Blog.jpg\",\"datePublished\":\"2025-03-28T23:03:37+00:00\",\"description\":\"Aprende a migrar f\u00e1cilmente F5 iRules a JetNexus FlightPath. Agiliza tu transici\u00f3n con una gu\u00eda paso a paso. \u00a1Lee ahora para un proceso de migraci\u00f3n sin problemas!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#primaryimage\",\"url\":\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/How-to-Migrate-F5-iRules-to-Edgenexus-flightPATH-Blog.jpg\",\"contentUrl\":\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/How-to-Migrate-F5-iRules-to-Edgenexus-flightPATH-Blog.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.edgenexus.io\/es\/controlador-de-entrega-de-aplicaciones\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C\u00f3mo migrar F5 iRules a Edgenexus flightPATH\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.edgenexus.io\/zh-hans\/#website\",\"url\":\"https:\/\/www.edgenexus.io\/zh-hans\/\",\"name\":\"Edgenexus load balancers and Application Security\",\"description\":\"Edgenexus Load Balancers, ADC and Web application Firewalls (WAF)\",\"publisher\":{\"@id\":\"https:\/\/www.edgenexus.io\/zh-hans\/#organization\"},\"alternateName\":\"Load balancers and Web application firewall\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.edgenexus.io\/zh-hans\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.edgenexus.io\/zh-hans\/#organization\",\"name\":\"Edgenexus\",\"url\":\"https:\/\/www.edgenexus.io\/zh-hans\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.edgenexus.io\/zh-hans\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2023\/09\/edgenexus-adc-sq-transparentAsset-7.png\",\"contentUrl\":\"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2023\/09\/edgenexus-adc-sq-transparentAsset-7.png\",\"width\":903,\"height\":921,\"caption\":\"Edgenexus\"},\"image\":{\"@id\":\"https:\/\/www.edgenexus.io\/zh-hans\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/edgenexusio\",\"https:\/\/x.com\/edgenexusio\",\"https:\/\/www.linkedin.com\/company\/edgenexus\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.edgenexus.io\/zh-hans\/#\/schema\/person\/dc553ff5b496630eb88bf2d9ee2b31ca\",\"name\":\"Donna Toomey\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.edgenexus.io\/zh-hans\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3d4a009f6c17add48ad6905e40aac5308c04c77cdcff0616649d6c31251d1955?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3d4a009f6c17add48ad6905e40aac5308c04c77cdcff0616649d6c31251d1955?s=96&d=identicon&r=g\",\"caption\":\"Donna Toomey\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C\u00f3mo migrar F5 iRules a Edgenexus flightPATH - Edgenexus load balancers and Application Security","description":"Aprende a migrar f\u00e1cilmente F5 iRules a JetNexus FlightPath. Agiliza tu transici\u00f3n con una gu\u00eda paso a paso. \u00a1Lee ahora para un proceso de migraci\u00f3n sin problemas!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/","twitter_misc":{"Escrito por":"Donna Toomey","Tiempo de lectura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#article","isPartOf":{"@id":"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/"},"author":{"name":"Donna Toomey","@id":"https:\/\/www.edgenexus.io\/zh-hans\/#\/schema\/person\/dc553ff5b496630eb88bf2d9ee2b31ca"},"headline":"C\u00f3mo migrar F5 iRules a Edgenexus flightPATH","datePublished":"2025-03-28T23:03:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/"},"wordCount":2273,"commentCount":0,"publisher":{"@id":"https:\/\/www.edgenexus.io\/zh-hans\/#organization"},"image":{"@id":"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#primaryimage"},"thumbnailUrl":"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/How-to-Migrate-F5-iRules-to-Edgenexus-flightPATH-Blog.jpg","keywords":["big-ip","controlador de entrega de aplicaciones","equilibrio de carga","F5","flightPATH","gestor de tr\u00e1fico de carga","iRules","Tr\u00e1fico"],"articleSection":["Blog"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/","url":"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/","name":"C\u00f3mo migrar F5 iRules a Edgenexus flightPATH - Edgenexus load balancers and Application Security","isPartOf":{"@id":"https:\/\/www.edgenexus.io\/zh-hans\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#primaryimage"},"image":{"@id":"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#primaryimage"},"thumbnailUrl":"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/How-to-Migrate-F5-iRules-to-Edgenexus-flightPATH-Blog.jpg","datePublished":"2025-03-28T23:03:37+00:00","description":"Aprende a migrar f\u00e1cilmente F5 iRules a JetNexus FlightPath. Agiliza tu transici\u00f3n con una gu\u00eda paso a paso. \u00a1Lee ahora para un proceso de migraci\u00f3n sin problemas!","breadcrumb":{"@id":"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#primaryimage","url":"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/How-to-Migrate-F5-iRules-to-Edgenexus-flightPATH-Blog.jpg","contentUrl":"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2018\/08\/How-to-Migrate-F5-iRules-to-Edgenexus-flightPATH-Blog.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.edgenexus.io\/es\/blog-es\/como-migrar-f5-irules-a-edgenexus-flightpath\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.edgenexus.io\/es\/controlador-de-entrega-de-aplicaciones\/"},{"@type":"ListItem","position":2,"name":"C\u00f3mo migrar F5 iRules a Edgenexus flightPATH"}]},{"@type":"WebSite","@id":"https:\/\/www.edgenexus.io\/zh-hans\/#website","url":"https:\/\/www.edgenexus.io\/zh-hans\/","name":"Edgenexus load balancers and Application Security","description":"Edgenexus Load Balancers, ADC and Web application Firewalls (WAF)","publisher":{"@id":"https:\/\/www.edgenexus.io\/zh-hans\/#organization"},"alternateName":"Load balancers and Web application firewall","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.edgenexus.io\/zh-hans\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.edgenexus.io\/zh-hans\/#organization","name":"Edgenexus","url":"https:\/\/www.edgenexus.io\/zh-hans\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.edgenexus.io\/zh-hans\/#\/schema\/logo\/image\/","url":"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2023\/09\/edgenexus-adc-sq-transparentAsset-7.png","contentUrl":"https:\/\/www.edgenexus.io\/wp-content\/uploads\/2023\/09\/edgenexus-adc-sq-transparentAsset-7.png","width":903,"height":921,"caption":"Edgenexus"},"image":{"@id":"https:\/\/www.edgenexus.io\/zh-hans\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/edgenexusio","https:\/\/x.com\/edgenexusio","https:\/\/www.linkedin.com\/company\/edgenexus\/"]},{"@type":"Person","@id":"https:\/\/www.edgenexus.io\/zh-hans\/#\/schema\/person\/dc553ff5b496630eb88bf2d9ee2b31ca","name":"Donna Toomey","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.edgenexus.io\/zh-hans\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3d4a009f6c17add48ad6905e40aac5308c04c77cdcff0616649d6c31251d1955?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3d4a009f6c17add48ad6905e40aac5308c04c77cdcff0616649d6c31251d1955?s=96&d=identicon&r=g","caption":"Donna Toomey"}}]}},"_links":{"self":[{"href":"https:\/\/www.edgenexus.io\/es\/wp-json\/wp\/v2\/posts\/48156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.edgenexus.io\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.edgenexus.io\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.edgenexus.io\/es\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.edgenexus.io\/es\/wp-json\/wp\/v2\/comments?post=48156"}],"version-history":[{"count":0,"href":"https:\/\/www.edgenexus.io\/es\/wp-json\/wp\/v2\/posts\/48156\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.edgenexus.io\/es\/wp-json\/wp\/v2\/media\/48160"}],"wp:attachment":[{"href":"https:\/\/www.edgenexus.io\/es\/wp-json\/wp\/v2\/media?parent=48156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.edgenexus.io\/es\/wp-json\/wp\/v2\/categories?post=48156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.edgenexus.io\/es\/wp-json\/wp\/v2\/tags?post=48156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}