Network Namespaces (netns)
red virtual
“…basada en una máquina virtual en espacio de kernel”… lo que en teoría, significa que es posible de alguna manera, duplicar/clonar/instanciar, la propia estructura de red?
La respuesta corta es sí, es absolutamente posible, pero con un matiz importante sobre qué hace la “máquina virtual” de nftables y qué componentes del kernel se encargan de duplicar la red.
1. La “Máquina Virtual” de nftables (Nivel de Reglas)
Cuando se dice que nftables funciona con una máquina virtual de bytecode en el espacio del kernel, no significa que cree una VM tipo QEMU/KVM que ejecute un sistema operativo. Significa que:
Tu herramienta en espacio de usuario (nft) traduce las reglas que escribes a un bytecode de bajo nivel (instrucciones muy simples como load, cmp, set).
El módulo nft_tables del kernel contiene un mando de ejecución (intérprete) súper rápido que procesa ese bytecode para evaluar los paquetes.
¿Se puede clonar/instanciar este motor?
Sí. Gracias a esta arquitectura, la lógica de filtrado es totalmente declarativa y está aislada de la pila de red global. Puedes:
Exportar e importar el estado completo: Con un simple
nft list ruleset > ruleset.nftpuedes volcar el estado bytecode completo y replicarlo/clonarlo instantáneamente en otra máquina o espacio aislado.Múltiples tablas/cadenas aisladas: Puedes instanciar múltiples tablas independientes dentro del mismo kernel sin que interfieran entre sí.
2. Instanciar la Pila de Red Completa: Network Namespaces (netns)
Si lo que buscas es duplicar o clonar la propia estructura física y lógica de la red (tablas de rutas, interfaces, sockets, reglas de firewall, vecinos ARP), la tecnología del kernel de Linux encargada de esto son los Network Namespaces (netns).
Aquí es donde nftables y la virtualización de red se unen a la perfección:
Pila de red independiente: Un Network Namespace crea una copia/instancia completamente aislada de la pila de red. Un proceso asignado a ese namespace tiene sus propias interfaces (ej.
eth0,lo), su propia tabla de rutas y su propia instancia del motor nftables.Infraestructura de contenedores: Esta es la base sobre la que funcionan Docker, Podman o Kubernetes. Cuando lanzas un contenedor, el kernel le asigna un netns propio.
En Resumen: ¿Cómo se combina esto en el laboratorio?
Capa |
Tecnología |
¿Qué permite instanciar/duplicar? |
|---|---|---|
Aislamiento de Red |
Network Namespaces ( |
Clona/duplica la pila de red completa (interfaces, sockets, routing, loopback) en el mismo kernel sin overhead de hardware. |
Aislamiento de Firewall |
``nftables`` Bytecode VM |
Instancia un mecanismo de filtrado de paquetes programable por cada namespace de red de forma ligera y de alta velocidad. |
En tu entorno de laboratorio en buildlab, podrías crear en cuestión de milisegundos 50 estructuras de red idénticas mediante ip netns add test1, y cargar en cada una de ellas una instancia independiente de nftables con sus propias reglas para ejecutar pruebas de carga o simulación de topologías de red complejas sin salir de la misma VM.