Vamos a ver cómo configurar las interfaces/tarjetas de red en sistemas GNU/Linux Debian (como por ejemplo Ubuntu) a través del fichero interfaces. Normalmente si disponemos de entorno gráfico solemos hacerlo a través de GUI pero nunca viene mal, para el caso de que este fallo o que no lo tengamos saber hacerlo desde los ficheros de configuración.
Lo primero que tenemos que saber es que el fichero de configuración en el que se almacena toda esta información es /etc/network/interfaces. Este fichero se puede dividir en «bloques» a través de los cuales definimos parámetros de configuración a cada una de las interfaces. Un ejemplo básico de configuración en un equipo de escritorio sería el siguiente:
Interfaz de red configurada con DHCP
auto eth0 iface eth0 inet dhcp
Este ejemplo implica una configuración en la que la interfaz de red eth0 está configurada para que arranque automáticamente y a través de DHCP. Lo primero que definimos cuando configuramos una interfaz es si queremos que arranque automáticamente con el sistema, para ello indicamos auto seguido del nombre de la interfaz. Después mediante iface definimos los parámetros de configuración de la interfaz de red, la estructura es la siguiente:
iface <nombre de la interfaz de red> <protocolo> <tipo de asignamiento IP>
Con esto ya tendríamos configurada nuestra tarjeta de red mediante DHCP
Interfaz de red configurada con IP estática
En equipos de escritorio rara vez configuramos nuestra red mediante IP estática, pero en servidores y otros sistemas es el método a utilizar. Una estructura básica de configuración de interfaz de red con IP estática es la siguiente, pasamos a explicarla:
auto eth1 iface eth1 inet static address 192.168.0.120 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 dns-nameservers 8.8.8.8
Como podéis ver seguimos la misma estructura, en este caso utilizamos la interfaz eth1, la configuramos para que levante con el sistema (auto eth1) y pasamos a definir mediante iface todos los parámetros de red, que en este caso engloban la IP asignada a la interfaz (192.168.0.120), su máscara de red (255.255.255.0), la red en la que se encuentra (192.168.0.0), la IP asignada para Broadcast en la red (192.168.0.255), la puerta de enlace o router (192.168.0.1) y los servidores DNS (8.8.8.8).
Podríamos combinar ambos ejemplos si por ejemplo tuviéramos un equipo con dos tarjetas de red y quisiéramos asignar una mediante DHCP y otra con IP estática:
# Interfaz de red por DHCP auto eth0 iface eth0 inet dhcp # Interfaz de red con IP estática auto eth1 iface eth1 inet static address 192.168.0.120 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 dns-nameservers 8.8.8.8
Como podréis imaginar, esto es lo más básico, podemos hacer otras cosas como asignar IPs virtuales o alias, añadir rutas estáticas permanentes, etc.
Interfaz de red configurada con IP estática y alias
Para asignar un alias tenemos que definir primero la interfaz principal. Si tomamos como ejemplo la configuración anterior para IP estática, podemos añadir a la interfaz un alias y así poder tener dos IPs distintas a través de una única tarjeta de red:
# Interfaz principal auto eth1 iface eth1 inet static address 192.168.0.120 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 dns-nameservers 8.8.8.8 # Alias auto eth1:1 iface eth1:1 inet static address 192.168.0.121 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 dns-nameservers 8.8.8.8
Una vez que hayamos finalizado la configuración, podemos reiniciar la red por completo o levantar manualmente la interfaz que queramos con el comando ifup:
Reiniciar toda la red
# /etc/init.d/networking restart
Levantar por separado cada interfaz
# ifup eth0
Averiguar información sobre las tarjetas de red de nuestro sistema
Mediante dmesg podéis averiguar tanto el nombre de interfaz como cuantas tarjetas de red tiene el equipo, su modelo, etc. Aquí tenéis un ejemplo en el que encontramos dos tarjetas de red a las que se les ha asignado los nombres eth0 y eth1:
# dmesg | grep eth e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection e1000: eth0: e1000_watchdog_task: NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX e1000: eth1: e1000_watchdog_task: NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX eth0: no IPv6 routers present eth1: no IPv6 routers present