<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Gestión De Redes on KnightLi Blog</title>
        <link>https://www.knightli.com/es/tags/gesti%C3%B3n-de-redes/</link>
        <description>Recent content in Gestión De Redes on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Sat, 18 Apr 2026 10:31:12 +0800</lastBuildDate><atom:link href="https://www.knightli.com/es/tags/gesti%C3%B3n-de-redes/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Comprensión del marco de trabajo de nftables: tablas, cadenas, reglas y conjuntos</title>
        <link>https://www.knightli.com/es/2026/04/18/nftables-framework-concepts/</link>
        <pubDate>Sat, 18 Apr 2026 10:31:12 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/04/18/nftables-framework-concepts/</guid>
        <description>&lt;p&gt;Al aprender &lt;code&gt;nftables&lt;/code&gt;, es fácil comenzar con los detalles del comando: cómo agregar una regla, cómo eliminar un identificador o cómo escribir una coincidencia de puerto. Los comandos son importantes, pero si primero comprende el marco, leer reglas, solucionar problemas y diseñar conjuntos de reglas será mucho más fácil.&lt;/p&gt;
&lt;p&gt;Puedes pensar en nftables como una estructura en capas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;table&lt;/code&gt; aísla los espacios de nombres de reglas.&lt;/li&gt;
&lt;li&gt;La &amp;ldquo;familia&amp;rdquo; decide a qué protocolos de red se aplican las reglas.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;cadena&amp;rdquo; decide en qué etapa se ejecutan las reglas.&lt;/li&gt;
&lt;li&gt;La &lt;code&gt;regla&lt;/code&gt; define el partido y la acción reales.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set&lt;/code&gt;, &lt;code&gt;map&lt;/code&gt; y &lt;code&gt;verdict map&lt;/code&gt; reducen las reglas repetidas y facilitan el mantenimiento de los conjuntos de reglas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las siguientes secciones explican estos conceptos capa por capa.&lt;/p&gt;
&lt;h2 id=&#34;tabla-espacio-de-nombres-de-reglas&#34;&gt;tabla: espacio de nombres de reglas
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;table&lt;/code&gt; es el contenedor de reglas más externo en nftables. Las diferentes tablas están aisladas entre sí, por lo que una práctica común es colocar reglas relacionadas en la misma tabla.&lt;/p&gt;
&lt;p&gt;Por ejemplo, puede separar reglas de filtrado, reglas NAT o reglas de prueba personalizadas. Esto mantiene los límites claros: al depurar, sabes qué grupo de reglas estás cambiando; Al limpiar, es menos probable que elimines por error contenido no relacionado.&lt;/p&gt;
&lt;p&gt;Una tabla en sí misma no procesa paquetes directamente. Los objetos de cadena y regla dentro de la tabla son los que realmente participan en el procesamiento de paquetes.&lt;/p&gt;
&lt;h2 id=&#34;familia-a-qué-protocolos-se-aplican-las-reglas&#34;&gt;familia: a qué protocolos se aplican las reglas
&lt;/h2&gt;&lt;p&gt;Al crear una tabla, debe elegir una &amp;ldquo;familia&amp;rdquo;. Determina a qué tipo de paquetes se aplican las reglas de la tabla.&lt;/p&gt;
&lt;p&gt;Las familias comunes se pueden entender de esta manera:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ip&lt;/code&gt;: solo maneja IPv4.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ip6&lt;/code&gt;: solo maneja IPv6.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;inet&lt;/code&gt;: maneja tanto IPv4 como IPv6.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;arp&lt;/code&gt;: maneja ARP.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bridge&lt;/code&gt;: maneja el tráfico de la capa de puente.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;netdev&lt;/code&gt;: más cercano a la ruta de ingreso del dispositivo de red, adecuado para manejar el tráfico en una etapa anterior.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para las reglas de firewall ordinarias, se utiliza comúnmente &amp;ldquo;inet&amp;rdquo;. Le permite mantener las reglas de IPv4 e IPv6 en la misma tabla y evita mantener dos estructuras de reglas similares.&lt;/p&gt;
&lt;h2 id=&#34;cadena-dónde-se-ejecutan-las-reglas&#34;&gt;cadena: Dónde se ejecutan las reglas
&lt;/h2&gt;&lt;p&gt;&amp;ldquo;cadena&amp;rdquo; es una lista de reglas. Después de que un paquete ingresa a un gancho, pasa por las reglas de la cadena en orden.&lt;/p&gt;
&lt;p&gt;Las cadenas se pueden dividir a grandes rasgos en dos tipos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Cadena base: adjunta a un gancho en la ruta de la red del kernel y llamada activamente por el flujo de paquetes.&lt;/li&gt;
&lt;li&gt;Cadena normal: no unida directamente a un gancho; debe ser llamado mediante saltos de otras reglas.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Una cadena base suele especificar varias propiedades clave:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tipo&lt;/code&gt;: el propósito de la cadena, como &lt;code&gt;filtro&lt;/code&gt;, &lt;code&gt;nat&lt;/code&gt; o &lt;code&gt;ruta&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hook&lt;/code&gt;: la etapa de procesamiento, como &lt;code&gt;prerouting&lt;/code&gt;, &lt;code&gt;input&lt;/code&gt;, &lt;code&gt;forward&lt;/code&gt;, &lt;code&gt;output&lt;/code&gt; o &lt;code&gt;postrouting&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prioridad&lt;/code&gt;: cuando existen varias cadenas en el mismo gancho, esto decide cuál se ejecuta primero.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;política&lt;/code&gt;: la acción predeterminada cuando no coincide ninguna regla, comúnmente &lt;code&gt;aceptar&lt;/code&gt; o &lt;code&gt;eliminar&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El punto clave es que las reglas no entran en vigor en cualquier lugar. La misma regla tiene un significado completamente diferente cuando se coloca en &amp;ldquo;entrada&amp;rdquo;, &amp;ldquo;adelante&amp;rdquo; o &amp;ldquo;salida&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;regla-coincidir-condiciones-más-acciones&#34;&gt;regla: Coincidir condiciones más acciones
&lt;/h2&gt;&lt;p&gt;La &amp;ldquo;regla&amp;rdquo; es donde nftables realmente toma decisiones. Suele constar de dos partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Condiciones de coincidencia: IP de origen, IP de destino, protocolo, puerto, interfaz, estado de conexión, etc.&lt;/li&gt;
&lt;li&gt;Acciones: &lt;code&gt;aceptar&lt;/code&gt;, &lt;code&gt;soltar&lt;/code&gt;, &lt;code&gt;rechazar&lt;/code&gt;, &lt;code&gt;contrarrestar&lt;/code&gt;, &lt;code&gt;saltar&lt;/code&gt;, &lt;code&gt;regresar&lt;/code&gt;, etc.
Las reglas se evalúan en orden. Después de que un paquete coincide con una acción que finaliza el procesamiento, las reglas posteriores ya no se evalúan. Si nada coincide, la evaluación continúa hasta que finaliza la cadena o se activa la política predeterminada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta es la razón por la que el orden de las reglas es importante: las reglas más específicas generalmente deben aparecer antes que las reglas más amplias; de lo contrario, es posible que nunca tengan la oportunidad de ejecutarse.&lt;/p&gt;
&lt;h2 id=&#34;set-agrupar-valores&#34;&gt;set: Agrupar valores
&lt;/h2&gt;&lt;p&gt;Si necesita hacer coincidir muchas direcciones IP, puertos o interfaces, escribir muchas reglas separadas resulta difícil de mantener. &lt;code&gt;set&lt;/code&gt; te permite administrar un grupo de valores del mismo tipo en un solo lugar.&lt;/p&gt;
&lt;p&gt;Por ejemplo, un grupo de IP confiables, un grupo de puertos bloqueados o un grupo de direcciones que necesitan limitación de velocidad se pueden almacenar en un conjunto. La regla sólo necesita comprobar si un valor pertenece a ese conjunto.&lt;/p&gt;
&lt;p&gt;Los beneficios del conjunto son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Menos reglas.&lt;/li&gt;
&lt;li&gt;Mejor legibilidad.&lt;/li&gt;
&lt;li&gt;Adiciones y eliminaciones de elementos más sencillas posteriormente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando un conjunto de reglas contiene muchas condiciones repetidas, generalmente es el momento de considerar el conjunto.&lt;/p&gt;
&lt;h2 id=&#34;map-asignar-un-valor-coincidente-a-un-resultado&#34;&gt;map: asignar un valor coincidente a un resultado
&lt;/h2&gt;&lt;p&gt;&amp;ldquo;mapa&amp;rdquo; puede entenderse como una tabla de búsqueda. Devuelve un resultado basado en un valor de entrada.&lt;/p&gt;
&lt;p&gt;Por ejemplo, diferentes puertos pueden asignarse a diferentes marcas, o diferentes direcciones pueden asignarse a diferentes parámetros de procesamiento. En comparación con escribir muchas reglas de estilo if/else, el mapa está más centralizado y es más fácil de mantener.&lt;/p&gt;
&lt;p&gt;establecer respuestas &amp;ldquo;¿está este valor en la colección?&amp;rdquo;; el mapa responde &amp;ldquo;qué resultado corresponde a este valor&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;mapa-de-veredicto-asignar-un-valor-coincidente-a-una-acción&#34;&gt;mapa de veredicto: asignar un valor coincidente a una acción
&lt;/h2&gt;&lt;p&gt;El &amp;ldquo;mapa de veredicto&amp;rdquo; es un uso importante del mapa: asigna un valor coincidente a un veredicto, lo que significa una acción de regla.&lt;/p&gt;
&lt;p&gt;Por ejemplo, diferentes rangos de IP pueden corresponder a &amp;ldquo;aceptar&amp;rdquo;, &amp;ldquo;eliminar&amp;rdquo; o saltos a diferentes cadenas. Esto puede comprimir muchas ramas en una sola estructura.&lt;/p&gt;
&lt;p&gt;Cuando un conjunto de reglas se vuelve más complejo, el mapa de veredictos es muy útil. Reduce las reglas repetidas y expresa la política más como una tabla que como una larga lista de declaraciones condicionales.&lt;/p&gt;
&lt;h2 id=&#34;diseñar-reglas-a-partir-de-los-conceptos&#34;&gt;Diseñar reglas a partir de los conceptos
&lt;/h2&gt;&lt;p&gt;Al diseñar reglas de nftables, puedes pensar en este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Primero decida a qué &amp;ldquo;familia&amp;rdquo; pertenecen las reglas.&lt;/li&gt;
&lt;li&gt;Luego decida en qué &amp;ldquo;tabla&amp;rdquo; deberían entrar.&lt;/li&gt;
&lt;li&gt;Elija el &amp;ldquo;gancho&amp;rdquo; y la &amp;ldquo;cadena&amp;rdquo; adecuados.&lt;/li&gt;
&lt;li&gt;Escribe la &amp;ldquo;regla&amp;rdquo; concreta.&lt;/li&gt;
&lt;li&gt;Si hay muchas condiciones repetidas, introduzca &amp;ldquo;conjunto&amp;rdquo;, &amp;ldquo;mapa&amp;rdquo; o &amp;ldquo;mapa de veredicto&amp;rdquo;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Las reglas escritas de esta manera son más fáciles de mantener y de solucionar problemas.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Los conceptos de nftables no son complicados, pero la jerarquía importa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la tabla define los límites de las reglas.&lt;/li&gt;
&lt;li&gt;la familia define el alcance del protocolo.&lt;/li&gt;
&lt;li&gt;la cadena define la posición de ejecución.&lt;/li&gt;
&lt;li&gt;la regla define la coincidencia y la acción.&lt;/li&gt;
&lt;li&gt;establecer, mapear y veredicto gestionar la complejidad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Primero comprenda estos conceptos y luego observe los comandos concretos. Esto es más confiable que memorizar comandos directamente. Especialmente después de que un conjunto de reglas crece, los conceptos claros lo ayudan a determinar si un problema está en el alcance del protocolo, la etapa de ejecución, el orden de las reglas o la condición de coincidencia en sí.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/10/html/configuring_firewalls_and_packet_filters/concepts-in-the-nftables-framework&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/10/html/configuring_firewalls_and_packet_filters/concepts-in-the-nftables-framework&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Inicio rápido de nftables: tablas, cadenas, reglas y operaciones comunes</title>
        <link>https://www.knightli.com/es/2026/04/18/nftables-quick-start/</link>
        <pubDate>Sat, 18 Apr 2026 10:22:07 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/04/18/nftables-quick-start/</guid>
        <description>&lt;p&gt;&lt;code&gt;nftables&lt;/code&gt; es una herramienta común de administración de reglas de firewall y filtrado de paquetes en Linux. Si solo necesita control de acceso al dispositivo, contadores de tráfico, coincidencia de puertos o limitación de velocidad básica, no necesita aprender todo el sistema de reglas de una vez. Comience con tres conceptos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;table&lt;/code&gt;: un contenedor de reglas.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cadena&lt;/code&gt;: donde se evalúan las reglas, generalmente unidas a un gancho.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;regla&lt;/code&gt;: la condición y acción coincidentes reales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este artículo describe un flujo de trabajo mínimo que es adecuado para realizar pruebas primero en un entorno seguro.&lt;/p&gt;
&lt;h2 id=&#34;estructura-básica&#34;&gt;Estructura básica
&lt;/h2&gt;&lt;p&gt;Prepare algunas variables primero. Los siguientes comandos los reutilizan:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;table&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;customtable
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;chain&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;custom_control
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;target&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;drop
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ip&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;192.168.18.251
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;mac&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;00:00:01:02:03:04
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cree una tabla &lt;code&gt;inet&lt;/code&gt; que admita IPv4 e IPv6:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add table inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego cree una cadena adjunta a la etapa &amp;ldquo;adelante&amp;rdquo;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add chain inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt; filter hook forward priority 0&lt;span class=&#34;se&#34;&gt;\;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Aquí, &amp;ldquo;tipo filtro&amp;rdquo; significa que se trata de una cadena de reglas de filtrado y &amp;ldquo;enganche hacia adelante&amp;rdquo; significa que procesa paquetes reenviados.&lt;/p&gt;
&lt;h2 id=&#34;métodos-de-coincidencia-comunes&#34;&gt;Métodos de coincidencia comunes
&lt;/h2&gt;&lt;p&gt;Coincidencia por IP de origen. Esto suele ser útil para la dirección de carga:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; ip saddr &lt;span class=&#34;nv&#34;&gt;$ip&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Coincidencia por IP de destino. Esto suele ser útil para la dirección de descarga:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; ip daddr &lt;span class=&#34;nv&#34;&gt;$ip&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cuando se hace coincidir por dirección MAC, se puede usar &lt;code&gt;ether saddr&lt;/code&gt; para controlar el tráfico ascendente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; ether saddr &lt;span class=&#34;nv&#34;&gt;$mac&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Tenga en cuenta que en redes que implican puenteo, reenvío o traducción de direcciones, es posible que los paquetes descendentes no siempre se filtren de manera confiable por MAC de destino. Para el control de acceso al dispositivo, comience validando primero &lt;code&gt;ether saddr&lt;/code&gt; o las reglas basadas en IP.&lt;/p&gt;
&lt;p&gt;Para hacer coincidir los puertos, puede cubrir tanto TCP como UDP:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt; tcp, udp &lt;span class=&#34;o&#34;&gt;}&lt;/span&gt; dport &lt;span class=&#34;m&#34;&gt;22&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para hacer coincidir un rango de puertos, utilice una expresión de comparación:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; tcp dport &lt;span class=&#34;se&#34;&gt;\&amp;gt;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1024&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;contar-el-tráfico-para-un-dispositivo&#34;&gt;Contar el tráfico para un dispositivo
&lt;/h2&gt;&lt;p&gt;Si solo desea contar el tráfico de carga y descarga para una dirección IP, utilice &amp;ldquo;contrarretorno&amp;rdquo;. Después de una coincidencia, registra el contador y regresa, lo que puede reducir aún más los gastos generales de coincidencia cuando existan más reglas estadísticas más adelante.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; ip saddr &lt;span class=&#34;nv&#34;&gt;$ip&lt;/span&gt; counter &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; ip daddr &lt;span class=&#34;nv&#34;&gt;$ip&lt;/span&gt; counter &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ver las estadísticas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft list chain inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si necesita ver el &amp;ldquo;identificador&amp;rdquo; de cada regla, agregue &amp;ldquo;-a&amp;rdquo;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft -a list chain inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;handle&lt;/code&gt; es importante porque nftables generalmente depende de él para eliminar una sola regla.&lt;/p&gt;
&lt;h2 id=&#34;limitación-de-tasa-básica&#34;&gt;Limitación de tasa básica
&lt;/h2&gt;&lt;p&gt;La limitación de la tasa se puede realizar con &amp;ldquo;tasa límite superior&amp;rdquo;. Por ejemplo, limite el tráfico a una velocidad específica por dirección MAC:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;rate&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;unit&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;mbytes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; ether saddr &lt;span class=&#34;nv&#34;&gt;$mac&lt;/span&gt; limit rate over &lt;span class=&#34;nv&#34;&gt;$rate&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$unit&lt;/span&gt;/second drop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Aquí, &amp;ldquo;mbytes&amp;rdquo; y &amp;ldquo;kbytes&amp;rdquo; pueden entenderse como las unidades habituales M y K. No es necesario multiplicar manualmente por 8. En la práctica, comience con un valor más relajado, confirme la dirección y el efecto correspondientes y luego apriételo si es necesario.&lt;/p&gt;
&lt;h2 id=&#34;eliminar-y-limpiar-reglas&#34;&gt;Eliminar y limpiar reglas
&lt;/h2&gt;&lt;p&gt;Primera lista de reglas con valores de &lt;code&gt;control&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft -a list chain inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego elimine una regla por identificador:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft delete rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; handle &amp;lt;handle&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Lavar una cadena:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft flush chain inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Eliminar una cadena:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft delete chain inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Eliminar toda la tabla:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft delete table inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Durante la depuración diaria, limpie únicamente la tabla que creó usted mismo. Evite cambiar directamente las tablas generadas automáticamente por el sistema u otros servicios. Esto facilita la reversión incluso si una regla está escrita incorrectamente.&lt;/p&gt;
&lt;h2 id=&#34;notas-de-uso&#34;&gt;Notas de uso
&lt;/h2&gt;&lt;p&gt;Cuando se utilizan nftables, suele ser más seguro crear primero su propia tabla y cadena independientes. Esto tiene dos beneficios:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Es menos probable que sus reglas se mezclen con las reglas del sistema existente.&lt;/li&gt;
&lt;li&gt;La depuración, el vaciado y la eliminación son más seguros.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Después de escribir reglas, utilice siempre &lt;code&gt;nft list chain&lt;/code&gt; para verificar el comportamiento de coincidencia real. Las reglas de MAC, interfaz, puerto y límite de velocidad pueden comportarse de manera diferente entre dispositivos, configuraciones de puente y versiones del sistema. Las pruebas de pequeño alcance son más seguras que escribir reglas complejas todas a la vez.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.right.com.cn/forum/thread-8369750-1-1.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.right.com.cn/forum/thread-8369750-1-1.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
