Cómo usar el espacio de nombres de la red Linux

Cómo usar el espacio de nombres de la red Linux

Los espacios de nombres de la red de Linux son una función de kernel de Linux que nos permite aislar entornos de red a través de la virtualización. Por ejemplo, utilizando espacios de nombres de red, puede crear interfaces de red separadas y tablas de enrutamiento que se aislen del resto del sistema y funcionen de forma independiente.

Para comprender los espacios de nombres fácilmente, vale la pena decir que los espacios de nombres de Linux son la base de tecnologías de contenedores como Docker o Kubernetes.

Por ahora, Linux incluye 6 tipos de espacios de nombres: PID, NET, UTS, MNT, IPC y usuario. Este tutorial se centra en los espacios de nombres de la red de Linux.

Si ordene LSNS, mostrará todos los espacios de nombres existentes en su sistema, como se muestra en la imagen a continuación.

LSNS

Nota: El espacio de nombres utilizado para este tutorial se llama LinuxHint; Reemplácelo con el nombre de su espacio de nombres.

Agregar un espacio de nombres de red de Linux:

Administrar espacios de nombres de red se realiza utilizando el comando IP NetNS seguido de las opciones adecuadas.

Para crear un espacio de nombres de red en Linux, debe ejecutar el comando IP seguido de la opción NetNS (espacio de nombres de red), la opción Agregar y el nuevo nombre del espacio de nombres, como se muestra en la siguiente captura de pantalla. Luego, el comando IP NetNS se puede ejecutar para mostrar solo los espacios de nombres de red existentes. Recuerde reemplazar a Linuxhint con el nombre de su espacio de nombres.

ip netns agregar linuxhint
Netns IP

Como puede ver, se creó un nuevo espacio de nombres llamado Linuxhint.

Los espacios de nombres de la red tienen sus propias interfaces, tablas de enrutamiento, interfaz de bucle de bucle, reglas de iptables, etc. Necesita crear estos recursos para su espacio de nombres.

Creación de interfaz de loopback para el espacio de nombres:

Para ejecutar comandos dentro de un espacio de nombres de red, la sintaxis es la siguiente.

IP NetNS Exec

Por defecto, la interfaz de bucle de bucle está inactiva. Debe ejecutar el siguiente comando; Como se explicó anteriormente, el siguiente comando ejecuta el enlace IP establecer el desarrollo en el espacio de nombres elegido.

IP Netns EXEC LinuxHint Enlace IP Establecer dev LO

Puede verificar si su interfaz de bucleback se agregó correctamente ejecutando el siguiente comando:

Dirección IP de IP Netns Exec Linuxhint

También puede hacer ping a su interfaz de bucle de bucle de espacio de nombres para probarla, como se muestra a continuación.

IP Netns Exec Linuxhint Ping 127.0.0.1

Agregar interfaces de red a su espacio de nombres:

Puede asociar una tarjeta de red de hardware a su espacio de nombres, o puede agregar dispositivos de red virtuales. Al agregar interfaces de red virtuales, puede permitir la conectividad entre diferentes espacios de nombres. Los dispositivos de red virtuales se denominan Veth (dispositivo Ethernet virtual).

Para crear un dispositivo Ethernet de red virtual, ejecute el siguiente comando, donde ENP2S0 es el nuevo dispositivo y V-peer1 su nombre arbitrario, reemplácelo con el suyo.

Enlace IP Agregar V-ENP2S0 Tipo Veth Name V-Eth0

Ahora asigne el dispositivo virtual a su espacio de nombres ejecutando el comando a continuación.

enlace IP Establecer V-ETH0 Netns Linuxhint

Asigne una dirección IP al nuevo dispositivo de red como se muestra a continuación.

ip -n linuxhint add agrega 10.0.1.4/24 dev v-eth0

Por defecto, el dispositivo de red está inactivo; Necesitas configurarlo. Para configurar su dispositivo de red virtual, ejecute el siguiente comando.

IP -N Linuxhint Link Set V -Eth0 Up

Como puede ver en la captura de pantalla a continuación, el dispositivo virtual se agregó correctamente.

ip netns exec linuxhint sudo ifconfig

El siguiente ejemplo muestra cómo asignar una tarjeta de red física a su espacio de nombres de red. En este caso, la tarjeta de red física es la ENP2S0.

enlace IP set dev enp2s0 netns linuxhint

Como puede ver ejecutando el ejemplo a continuación, la tarjeta de red se agregó correctamente. Puede asignar una dirección IP utilizando los mismos comandos explicados anteriormente.

ip netns exec linuxhint sudo ifconfig

Como se explicó anteriormente, cada espacio de nombres tiene su propia tabla de ruta, IP y más, incluidas sus propias reglas de firewall. Agregar reglas de firewall a su espacio de nombres es simple; Simplemente ejecute los comandos después de IP NetNS Exec Linuxhint, como se muestra a continuación. El ejemplo a continuación enumerará las políticas de iptables si existen.

ip netns exec linuxhint sudo iptables -l

El siguiente ejemplo muestra lo mismo pero usando UFW (firewall sin complicaciones) en lugar de iptables. En este caso, el firewall se informa como discapacitado.

ip netns exec linuxhint sudo ufw status

Eliminar un espacio de nombres de red de Linux:

Eliminar espacios de nombres de red es bastante simple, como al agregarlos.

Para eliminar un espacio de nombres, ejecute el comando a continuación, reemplace a Linuxhint con su espacio de nombres.

ip netns del linuxhint

Como puede ver, después de ejecutar NetNS IP, no se mostró ningún espacio de nombres de red; fue eliminado con éxito.

Conclusión:

Los espacios de nombres de Linux son un método formidable para aislar procesos, sistemas de archivos, redes y más. Esta funcionalidad nos permite ejecutar instancias de forma independiente. Esto es extremadamente útil para fines de seguridad. Los espacios de nombres son contenedores cuyo contenido están completamente aislados del resto del sistema, incluso de otros espacios de nombres. De esta manera, podemos ejecutar diferentes servicios en diferentes contenedores. Si un espacio de nombres se compromete bajo un ataque, el resto del sistema sigue seguro. Usando espacios de nombres de Linux, puede ofrecer a varios clientes su entorno; Esta característica también es excelente para fines de prueba o para ejecutar software cuyo origen es sospechoso; En caso de ejecutar un código malicioso, solo su espacio de nombres se verá afectado, dejando a su dispositivo seguro.

Espero que este tutorial sobre los espacios de nombres de Linux haya sido útil. Siga siguiendo la pista de Linux para obtener más consejos y tutoriales de Linux.