# Classificador iRules vs LTM policy

> Por bloco when, um veredito honesto: exprimível em uma LTM policy (com um esboço de migração na gramática dos próprios exemplos do fabricante), verifique na sua versão, ou iRule obrigatória com os bloqueadores nomeados. Policies são a camada sem programação; esta ferramenta diz quais blocos pertencem a ela.

- Tool: https://ronutz.com/pt-BR/tools/f5-irules-vs-ltm-policy
- Family: Redes

---

# Classificador iRules vs LTM Policy

O fabricante entrega seus exemplos de Local Traffic Policies nas duas formas, policy e iRule equivalente, porque as duas genuinamente se sobrepõem. A pergunta que vale automatizar é quais dos seus blocos when vivem na sobreposição.

Cole uma iRule e cada bloco recebe um de três vereditos, e apenas três, porque honestidade precisa de um balde do meio. Exprimível em policy significa que cada construção mapeia para a gramática que os próprios exemplos 12.1 do fabricante demonstram: condições http-uri, http-header e http-cookie com equals, contains, starts-with e ends-with; encaminhar para um pool ou resetar; log write, incluindo substituição tcl:; replace e insert de cabeçalho; habilitar compressão. Esses blocos vêm com um esboço de migração exatamente nessa gramática, marcado para validação com tmsh. Verifique na sua versão significa que as construções são plausivelmente cobertas em releases atuais mas as fontes que esta ferramenta verificou não as demonstraram; HTTP::redirect é o residente canônico, e a ferramenta manda checar as listas de condições e ações da sua versão em vez de adivinhar. iRule obrigatória nomeia os bloqueadores: eventos além do par de request e response HTTP, loops e procedures Tcl, lógica de regex (a gramática verificada casa com listas de operandos, não padrões), variáveis (policies não têm nenhuma; a substituição tcl: dentro de uma ação é a exceção estreita documentada), estado de table e session, conexões sideband, coleta de payload, timers.

A palavra strategies renderiza as três estratégias de correspondência com a semântica da própria referência ltm policy-strategy: first-match encerra o motor na primeira condição que casa; all-match executa as ações de tudo que casa; best-match deixa a correspondência mais específica vencer, com empates caindo para a tabela de precedência embutida cujo topo a ferramenta reproduz.

Por que migrar o que pode migrar: LTM Policy, nativa do BIG-IP LTM - Local Traffic Manager, é a camada que as fontes descrevem como altamente performática e que, ao contrário de iRules, não exige programação, e nenhum dos riscos de rebaixamento de CMP das iRules existe dentro de uma policy. A mecânica de migração pelo manual de Getting Started: rascunho, publicar, anexar ao virtual.

Tudo roda localmente; nada do que você cola sai da página.

## Standards and references

- [F5 TMSH Reference: ltm policy-strategy (first-match / all-match / best-match semantics verbatim; the built-in precedence table; user-defined strategies)](https://clouddocs.f5.com/cli/tmsh-reference/v14/modules/ltm/ltm_policy-strategy.html) - the strategies mode's semantics and precedence head
- [BIG-IP Local Traffic Management: Getting Started with Policies 12.1 - the examples chapter (the policy grammar this tool's verified sets and sketches reproduce; the vendor's own iRule-equivalent examples; draft/publish/attach lifecycle)](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/local-traffic-policies-getting-started-12-1-0/2.html) - the policy-expressible grammar sets, the tcl: substitution exception, the sketch shape
- [F5 DevCentral: LTM Policy - Matching Strategies (policy anatomy: rules as condition/action if-thens; the no-programming, highly performant framing; best-match tie-breaking)](https://community.f5.com/t5/technical-articles/ltm-policy-matching-strategies/ta-p/276312) - the summary's performance framing and tie-break narrative
- [F5 iRules API Reference: CMP Compatibility (the demotion hazards a policy migration retires)](https://clouddocs.f5.com/api/irules/CMPCompatibility.html) - the global-variable blocker's CMP note

## Related reading

- [CMP: Os Núcleos Que Você Pagou, e as Linhas de iRule Que os Devolvem](https://ronutz.com/pt-BR/learn/bigip-cmp-clustered-multiprocessing.md): O clustered multiprocessing roda um TMM por núcleo e espalha os fluxos entre eles. Um virtual server rebaixado roda tudo no TMM0. A lista de rebaixamento é curta e documentada: variáveis globais acima de tudo, com static:: como cura, mais duas armadilhas por TMM (chaves em RULE_INIT, perfis de estatísticas) que não rebaixam mas quebram premissas em silêncio.
