- Introducción
- Configurar el entorno de red desde la interfaz de línea de comandos (CLI)
- Comprobar la configuración del entorno de red
- Introducción (Volver al índice General)
En este artículo, para configurar el entorno de red en Debian, utilizaremos el método de configuración desde la interfaz de línea de comandos (CLI). Este método no solo es válido para Debian, sino también para cualquier distribución Linux basada en Debian.Si te interesan los métodos para la configuración del entorno de red con interfaz gráfica, pincha aquí para ver el artículo publicado en </ZeppelinuX> llamado: Cómo configurar el entorno de red en Debian con interfaz gráfica.
Además, en </ZeppelinuX> se publicó el artículo ¿Dónde guarda la configuración NetworkManager?, que explica brevemente qué es NetworkManager.
- Configurar el entorno de red desde la interfaz de línea de comandos (CLI) (Volver al índice General)
- Cómo conocer el nombre de nuestra interfaz de red (Volver al índice General)
Antes de pasar a configurar el entorno de red, hemos de conocer el nombre de nuestra interfaz de red.
Dependiendo de la antigüedad de nuestro sistema operativo y de si son tarjetas de red cableadas o inalámbricas, los nombres de estas varían:- En sistemas antiguos:
- Las interfaces de red cableada tendrán nombres del tipo eth0, eth1, etc.
- Las interfaces de red inalámbrica tendrán nombres del tipo wlan0, wlan1, etc.
- En sistemas actuales:
- Las interfaces de red cableada tendrán nombres del tipo enp3s0, ens33, eno1, etc.
- Las interfaces de red inalámbrica tendrán nombres del tipo wlp1s0, wlxe894f60bcef6, etc.
Para conocer el nombre de las interfaces de red, podemos utilizar varios comandos:- Utilizando el comando ip
1 2 3 4 5 6 7 8 9 10 11 12 13
$ ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 7c:05:07:10:1f:45 brd ff:ff:ff:ff:ff:ff inet 192.168.1.4/24 brd 192.168.1.255 scope global dynamic eno1 valid_lft 81236sec preferred_lft 81236sec inet6 fe80::ee44:7f49:ca5b:b85d/64 scope link valid_lft forever preferred_lft forever
La línea 8 indica que el nombre de la interfaz de red cableada del ejemplo es eno1.
- Utilizando el comando ifconfig
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
$ sudo ifconfig [sudo] password for usuario: eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.4 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::ee44:7f49:ca5b:b85d prefixlen 64 scopeid 0x20<link> ether 7c:05:07:10:1f:45 txqueuelen 1000 (Ethernet) RX packets 266871 bytes 323755934 (308.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 87242 bytes 15092450 (14.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 20 memory 0xf7100000-f7120000 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 41660 bytes 16320629 (15.5 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 41660 bytes 16320629 (15.5 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
La línea 3 indica que el nombre de la interfaz de red cableada del ejemplo es eno1.
- Utilizando el comando nmcli
Con el comando nmcli connection show se obtiene una descripción general de los perfiles de conexión activos.1 2 3
$ nmcli connection show NOMBRE UUID TIPO DISPOSITIVO Wired connection 1 0bc1e9cb-14c4-4839-99dc-c14c7a1ba654 802-3-ethernet eno1
La línea 3 indica que el nombre de la interfaz de red cableada del ejemplo es eno1.
- En sistemas antiguos:
- Entendiendo el fichero /etc/network/interfaces (Volver al índice General)
Mientras que en el fichero /etc/udev/rules.d/70-persistent-net.rules están los nombres de las interfaces de red físicas, en el fichero /etc/network/interfaces se definen los nombres lógicos de las interfaces de red, a los que se les asociará una configuración determinada. El comando ifup se encarga de asociar una interfaz física con una interfaz lógica.Las líneas que contiene este fichero pueden ser de diferentes tipos. Vamos a ver las más utilizadas:
- Línea auto: Indica la interfaz de red física que se activará con el comando ifup -a, que se ejecuta cada vez que arranca el sistema. Por lo tanto indica que interfaces de red se activarán en el inicio del sistema de forma automática. Se pueden poner tantas líneas de este tipo como sean necesarias y en una sola línea pueden ir más de una interfaz física, separadas con un espacio.
auto eth0 eth1 auto eth2
En las líneas anteriores la interfaz física eth0 se asocia con la configuración que posea la interfaz lógica eth0, la eth1 con la eth1, etc.
- Línea allow-auto: Equivalente a la línea auto. Las interfaces de red de esta línea se activarán con el comando ifup –allow=auto.
- Línea allow-hotplug: Similar a la línea auto, con la diferencia que las interfaces físicas que aparecen en estás líneas se activan con eventos hotplug, como pueden ser la conexión del cable de red o la detección de la tarjeta por el Kernel del sistema operativo. Las interfaces de red de esta línea se activarán con el comando ifup –allow=hotplug.
allow-hotplug eth0 eth1 allow-hotplug eth2
En las líneas anteriores la interfaz física eth0 se asocia con la configuración que posea la interfaz lógica eth0, la eth1 con la eth1, etc.
- Línea iface: Definen nombres lógicos de interfaces de red y su configuración. Las líneas iface tienen la siguiente sintaxis:
iface <config_name> <address_family> <method_name> <option1> <value1> <option2> <value2> ...
donde:
- <config_name>: Será un nombre lógico de interfaz de red.
- <address_family>: Normalmente contiene el valor inet para especificar una configuración IPv4, pero también puede ser inet6 para especificar una configuración IPv6 o ipx para especificar una configuración IPX.
- <method_name>: Indica el método de configuración de la interfaz y depende del valor de <address_family>, para el caso de la familia inet los métodos son:
- loopback: Solo se usa para la interfaz lo (loopback).
- dhcp: Se usa para asignar direcciones IP dinámicas. El método dhcp tiene las siguientes opciones con el mismo significado que aparece en la siguiente tabla:
- hwaddress.
- pre-up, up, post-up.
- pre-down, down, post-down.
- static: Se usa para asignar direcciones IP fijas o estáticas.
El método static tiene las siguientes opciones:
Opción Ejemplo Descripción address dirección_IP address 192.168.1.20 Establece la dirección IP. (obligatorio) netmask máscara netmask 255.255.255.0 Establece la máscara de la dirección IP. (obligatorio) gateway dirección_IP gateway 192.168.1.1 Establece la puerta de enlace. En un equipo sólo puede haber una puerta de enlace, o lo que es lo mismo, sólo puede haber una regla por defecto de enrutamiento. Esta opción se asociará a la línea iface cuya ip se corresponde con la ip de salida de la regla por defecto en la tabla de enrutamiento. network dirección_IP_red network 192.168.1.0 Establece la dirección de la red a la que pertenece la dirección IP. broadcast dirección_IP_de_broadcast broadcast 192.168.1.255 Establece la dirección de broadcast (difusión) de la red. hwaddress tipo_interfaz dirección_MAC hwaddress ether 00:50:56:c0:a0:f8 Establece la dirección MAC de la tarjeta. Para las tarjetas ethernet se debe poner la palabra ether como tipo de la interfaz. pre-up comando pre-up echo "Hola mundo" Ejecuta comando antes de que la tarjeta se configure con el comando ifup. Si el comando falla, ifup aborta, imprime un mensaje de error y la tarjeta no se marca como configurada. up comando up sleep 2 ; route add -net 169.255.0.0/16 gw 192.168.1.1 dev eth0 Ejecuta comando durante la configuración de la tarjeta con el comando ifup. post-up comando post-up route add... Ejecuta comando después de que la tarjeta se configure con el comando ifup. Si el comando falla, ifup aborta, imprime un mensaje de error y la tarjeta no se marca como configurada aunque haya sido configurada. pre-down comando pre-down route del -net 169.255.0.0/16 eth0 Ejecuta comando antes de que la tarjeta se desconfigure con el comando ifdown. Si el comando falla, ifdown aborta, imprime un mensaje de error y la tarjeta se marca como desconfigurada aunque no haya sido desconfigurada. down comando down sleep 2 ; route del... Ejecuta comando durante la desconfiguración de la tarjeta con el comando ifdown. post-down comando post-down echo... Ejecuta comando después de que la tarjeta se desconfigure con el comando ifdown. Si el comando falla, ifdown aborta, imprime un mensaje de error y la tarjeta no se marca como desconfigurada. - Son opcionales.
- Son opciones válidas para cualquier familia (<address_family>) y método (<method_name>).
- Pueden repetirse cuantas veces queramos.
- Se ejecutan cada una en su momento, y dentro del mismo tipo, en el orden que aparecen en el fichero.
- Se puede asegurar que siempre se ejecute correctamente el comando, ya que a este le podemos añadir el sufijo «|| true» creando una lista condicional OR (el comando true no hace nada y tiene como código de salida el valor 0, false es el comando contrario, además de no hacer nada, tiene como código de salida el valor 1).
- Línea mapping: Define cómo se asociará automáticamente una interfaz física a una lógica de entre un grupo de estas.
- Las líneas que comienzan con # son comentarios.
- Las líneas que acaban con \ extienden la configuración a la línea siguiente.
Las dos primeras líneas del fichero /etc/network/interfaces deben ser:auto lo iface lo inet loopback
Estas líneas activan la interfaz lo (loopback), normalmente usada para tareas de diagnóstico de conectividad y validez de los protocolos de comunicación.
Si quieres más información sobre la configuración del archivo /etc/network/interfaces, puedes ver la página del manual con el siguiente comando:$ man interfaces
- Línea auto: Indica la interfaz de red física que se activará con el comando ifup -a, que se ejecuta cada vez que arranca el sistema. Por lo tanto indica que interfaces de red se activarán en el inicio del sistema de forma automática. Se pueden poner tantas líneas de este tipo como sean necesarias y en una sola línea pueden ir más de una interfaz física, separadas con un espacio.
- Cómo asignar una IP dinámica (Volver al índice General)
La asignación dinámica la realizaremos por DHCP. El servidor DHCP asigna una IP fija o dinámica a todos los ordenadores y dispositivos que se conecten a él sin que el usuario tenga que hacer nada. El servidor DHCP se encargará de configurar la dirección IP, la máscara de subred (mask), la puerta de enlace (gateway), los servidores DNS, etc.Para asignar una IP dinámica a nuestro equipo, en primer lugar, editaremos el archivo /etc/network/interfaces. En este ejemplo utilizaremos el editor de texto plano nano, ejecutando el siguiente comando:
$ sudo nano /etc/network/interfaces
A continuación presentamos el contenido de /etc/network/interfaces para una configuración dinámica (DHCP):
1 2 3 4 5 6 7 8 9 10 11 12 13
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # Interfaz de red (eth0) auto eth0 allow-hotplug eth0 iface eth0 inet dhcp
- La línea 13 define el nombre lógico de la interfaz de red eth0, la address_family que es inet y el método de configuración de la interfaz que es dhcp.
Para IPv6, agregue también la siguiente línea iface:
iface eth0 inet6 dhcp
Una vez finalizada la edición del archivo, tendremos que reiniciar la red. Para ello, ejecutaremos el siguiente comando:
$ sudo systemctl restart NetworkManager
Si nuestro sistema no utiliza systemd como sistema de inicio de Linux, puedes mirar el artículo Cómo reiniciar la red desde la línea de comandos en Linux, publicado en ZeppelinuX.
- Cómo asignar una IP estática (Volver al índice General)
Una IP estática asignada a un dispositivo nunca cambia. Si no disponemos de un servidor DHCP o si por otra razón necesitamos asignar una IP fija o estática, tendremos que realizar los siguientes pasos. En este ejemplo utilizaremos el editor de texto plano nano, ejecutando el siguiente comando:$ sudo nano /etc/network/interfaces
A continuación presentamos el contenido de /etc/network/interfaces para una configuración estática o manual:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # Interfaz de red eth0 auto eht0 allow-hotplug eth0 iface eth0 inet static address 192.168.1.20 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1
- La línea 13 define el nombre lógico de la interfaz de red eth0, la address_family que es inet y el método de configuración de la interfaz que es static.
- La línea 14 define la IP que tendrá nuestro equipo.
- La línea 15 define la máscara de subred.
- La línea 16 define la IP del nombre de red.
- La línea 17 define la IP de difusión (broadcast).
- La línea 18 define la IP de la puerta de enlace (gateway).
Una vez finalizada la edición del archivo, tendremos que reiniciar la red. Para ello, ejecutaremos el siguiente comando:$ sudo systemctl restart NetworkManager
Si nuestro sistema no utiliza systemd como sistema de inicio de Linux, puedes mirar el artículo Cómo reiniciar la red desde la línea de comandos en Linux, publicado en ZeppelinuX.
- Configurar los servidores DNS (Volver al índice General)
Si necesitamos configurar los servidores DNS y dominios de búsqueda, tendremos que editar el archivo /etc/resolv.conf. Para ello, ejecutaremos el siguiente comando:$ sudo nano /etc/resolv.conf
A continuación presentamos el contenido de /etc/resolv.conf con dos servidores DNS y dominios de búsqueda:
1 2 3 4 5
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 1.1.1.1 nameserver 8.8.8.8search zeppelinux.es zeppelinux.net
- En las líneas 3 y 4 definimos los servidores DNS.
- En la línea 5 definimos los dominios de búsqueda.
Puedes mirar el artículo Configuración del archivo /etc/resolv.conf, publicado en ZeppelinuX para saber más.
- Cómo conocer el nombre de nuestra interfaz de red (Volver al índice General)
- Comprobar la configuración del entorno de red (Volver al índice General)
Tras las modificaciones en los archivos anteriores, o por cualquier otro motivo, podremos comprobar la configuración del entorno de red con los siguientes comandos:- Obtener la IP, máscara y dirección de broadcast
Estos datos los podemos obtener con el comando ip:1 2 3 4 5 6 7 8 9 10
$ ip addr ... ... 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 7c:05:07:10:1f:45 brd ff:ff:ff:ff:ff:ff inet 192.168.1.20/24 brd 192.168.1.255 scope global dynamic eno1 valid_lft 77755sec preferred_lft 77755sec inet6 fe80::ee44:7f49:ca5b:b85d/64 scope link valid_lft forever preferred_lft forever ...
- En la línea 6 podemos ver la IP, máscara de subred (en modo prefijo de red CIDR) y la dirección de broadcast.
También podemos obtener la información anterior con el comando ifconfig:1 2 3 4 5 6 7 8 9 10 11 12 13
$ sudo ifconfig [sudo] password for karfer: eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.20 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::ee44:7f49:ca5b:b85d prefixlen 64 scopeid 0x20<link> ether 7c:05:07:10:1f:45 txqueuelen 1000 (Ethernet) RX packets 347458 bytes 276769374 (263.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 172457 bytes 87011483 (82.9 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 20 memory 0xf7100000-f7120000 ... ...
- En la línea 4 podemos ver la IP, máscara de subred y la y la dirección de broadcast.
Nota: En las nuevas distribuciones de Linux, para ejecutar el comando ifconfig tendremos que instalar paquete net-tools y ejecutar con su –
- Obtener la puerta de enlace (gateway)
Aquí utilizaremos el comando ip route:1 2
$ ip route |grep default default via 192.168.1.1 dev eno1 proto static metric 100
- En la línea 2 podemos ver la IP de nuestra puerta de enlace (gateway).
- Obtener información más detallada
El paquete NetworkManager contiene el comando nmcli para ejecutar desde la línea de comandos:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
$ nmcli device show GENERAL.DISPOSITIVO: eno1 GENERAL.TIPO: ethernet GENERAL.HWADDR: 7C:05:07:10:1F:45GENERAL.MTU: 1500 GENERAL.ESTADO: 100 (conectado) GENERAL.CONEXIÓN: Wired connection 1 GENERAL.CON-RUTA: /org/freedesktop/NetworkManager/ActiveConnection/1 WIRED-PROPERTIES.PORTADOR: encendido IP4.DIRECCIÓN[1]: 192.168.1.20/24 IP4.PUERTA DE ENLACE: 192.168.1.1 IP4.DNS[1]: 1.1.1.1 IP4.DNS[2]: 8.8.8.8 IP6.DIRECCIÓN[1]: fe80::ee44:7f49:ca5b:b85d/64 IP6.PUERTA DE ENLACE: -- ... ...
- Obtener la IP, máscara y dirección de broadcast
Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
Deja una respuesta