6.6. Uso de mapas de veredicto en los comandos de nftables


Los mapas de veredicto, también conocidos como diccionarios, permiten a nft realizar una acción basada en la información del paquete mediante la asignación de criterios de coincidencia a una acción.

6.6.1. Uso de mapas literales en nftables

Un mapa literal es una { match_criteria : action } que se utiliza directamente en una regla. La sentencia puede contener múltiples mapeos separados por comas.

El inconveniente de un mapa literal es que si se quiere cambiar el mapa, hay que sustituir la regla. Para una solución dinámica, utilice mapas de veredicto con nombre como se describe en Sección 6.6.2, “Uso de mapas de veredicto mutables en nftables”.

El ejemplo describe cómo utilizar un mapa literal para enrutar paquetes TCP y UDP del protocolo IPv4 e IPv6 a diferentes cadenas para contar los paquetes TCP y UDP entrantes por separado.

Procedimiento

  1. Cree la página web example_table:

    # nft add table inet example_table
    Copy to Clipboard Toggle word wrap
  2. Cree la cadena tcp_packets en example_table:

    # nft add chain inet example_table tcp_packets
    Copy to Clipboard Toggle word wrap
  3. Agregue una regla a tcp_packets que cuente el tráfico en esta cadena:

    # nft add rule inet example_table tcp_packets counter
    Copy to Clipboard Toggle word wrap
  4. Cree la cadena udp_packets en example_table

    # nft add chain inet example_table udp_packets
    Copy to Clipboard Toggle word wrap
  5. Agregue una regla a udp_packets que cuente el tráfico en esta cadena:

    # nft add rule inet example_table udp_packets counter
    Copy to Clipboard Toggle word wrap
  6. Cree una cadena para el tráfico entrante. Por ejemplo, para crear una cadena llamada incoming_traffic en example_table que filtre el tráfico entrante:

    # nft add chain inet example_table incoming_traffic { type filter hook input priority 0 \; }
    Copy to Clipboard Toggle word wrap
  7. Añade una regla con un mapa literal a incoming_traffic:

    # nft add rule inet example_table incoming_traffic ip protocol vmap { tcp : jump tcp_packets, udp : jump udp_packets }
    Copy to Clipboard Toggle word wrap

    El mapa literal distingue los paquetes y los envía a las diferentes cadenas de contadores en función de su protocolo.

  8. Para listar los contadores de tráfico, visualice example_table:

    # nft list table inet example_table
    table inet example_table {
      chain tcp_packets {
        counter packets 36379 bytes 2103816
      }
    
      chain udp_packets {
        counter packets 10 bytes 1559
      }
    
      chain incoming_traffic {
        type filter hook input priority filter; policy accept;
        ip protocol vmap { tcp : jump tcp_packets, udp : jump udp_packets }
      }
    }
    Copy to Clipboard Toggle word wrap

    Los contadores de la cadena tcp_packets y udp_packets muestran tanto el número de paquetes como de bytes recibidos.

Volver arriba
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar. Explore nuestras recientes actualizaciones.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Theme

© 2025 Red Hat