Configuración de las interfaces de red bajo Debian

1. Introducción
2. Interfaz Loopback
3. Configuración Estática
4. Configuración Dinámica
5. Interfaces Virtuales
6. Seguridad Wifi
7. Fuentes y otra información


1. Introducción

Una de las configuraciones más importantes a la hora de instalar desde cero nuestra distribución Debian, es el archivo de configuración de las interfaces de red. El archivo en cuestión es /etc/network/interfaces y vamos a intentar averiguar como configurarlo a la medida de nuestras necesidades.

2. Interfaz Loopback

En el archivo de configuración, la primera interfaz que aparece es la de loopback. Ésta, aunque no es necesaria para conectarnos a la red, sí se utiliza para hacer pruebas de conectividad y para identificar al host/equipo (definición de la Wikipedia). Dicha interfaz viene configurada por defecto en el proceso de instalación y para que se levante automáticamente cuando enciende la máquina.

# The loopback network interface
auto lo
iface lo inet loopback

Analizamos un poco estas líneas, no está de más avisar que las líneas que empiezan con # son comentarios, no son líneas de la configuración de las interfaces:

  1. auto lo: esta línea se encarga de levantar la interfaz que se especifica (en este caso “lo” de loopback)
  2. iface: diminutivo de interfaz
  3. lo: nombre de la interfaz
  4. inet: configura dicha interfaz para valores de Ipv4 (inet6, para las direcciones Ipv6)
  5. loopback: Especifica que se debe cargar la configuración de loopback

3. Configuración Estática

Inicialmente comentar que está configurado para que no se levanten las interfaces, sino para hacerlo manualmente. En el caso de querer tener una interfaz que se levante por defecto cuando se arranca el pc deberemos añadir auto interfaz. Esto lo podemos hacer con:

1- Poner solamente un auto que englobe todas las interfaces que queramos:

auto lo eth0 wlan0
iface lo inet loopback
iface eth0 inet static
...

2- Poner auto en cada interfaz:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
...

Las siguientes líneas del archivo de configuración, dependerán de las tarjetas que tengamos instaladas en el pc. En mi caso, tengo una Ethernet y otra Wifi, las cuales están identificadas con eth0 y wlan0 respectivamente. RECORDAD averiguar primero el nombre de las tarjetas, por ejemplo con ifconfig -a para ver todas las interfaces instaladas en el equipo aunque no están levantadas si, por el contrario, utilizamos iwconfig además sabremos si alguna de las tarjetas instaladas es Wifi.

# Interfaz FastEthernet
iface eth0 inet static
    address IP_Interfaz
    netmask IP_mascara
    network IP_Red
    broadcast IP_Difusión
    gateway IP_Router

# Interfaz Wifi
iface wlan0 inet static
    address IP_Interfaz
    netmask IP_mascara
    network IP_Red
    broadcast IP_Difusión
    gateway IP_Router
    wireless_essid essid

Para aclarar un poco este lío de líneas, diremos que:

  1. address: corresponde a la dirección IP de la tarjeta de red.
  2. netmask: dirección IP con la que junto a address se identifica la dirección IP de la Red.
  3. network: dirección que identifica a toda la red.
  4. broadcast: dirección que se utiliza para comunicarse con todos los equipos instalados en la red.
  5. gateway: ó puerta de enlace que identifica la interfaz del router/modem/server... uffs depende de lo que tengas instalado.
  6. wireless-essid (solo para WIFI): nombre de la red inalámbrica que tengamos instalados.

Estas son las líneas de configuración básicas para poder conectarnos por red, pero si echamos un vistazo a las páginas del manual y a la ayuda de los comandos ifconfig y iwconfig nos encontraremos con un montón más de opciones y parámetros para configurar las interfaces.

Es importante saber que, salvo wireless-essid, hay una relación dura entre los parámetros de red.
Pasando las direcciones a su equivalente en binario, siempre deben cumplirse las siguientes relaciones lógicas (notación C):

Network = address & netmask
Broadcast = network | !netmask
Gateway & netmask = address & netmask

4. Configuración dinámica

No solamente nos podemos conectar estáticamente, es decir, con IP fija, si tenemos activado el servicio DHCP en nuestro router o si tenemos corriendo dicho servicio con un servidor, podemos simplificar la configuración de las interfaces con una configuración parecida a:

auto eth0
iface eth0 inet dhcp

Si no conseguimos obtener ninguna dirección IP, comprobamos que está instalado el paquete dhcp3-client. Si falta lo instalamos y comprobamos el archivo /etc/resolv.conf; reiniciamos la red (/etc/init.d/networking restart) o el pc (reboot) y comprobamos de nuevo si tenemos dirección. Para forzar la conexión con el servidor DHCP utilizamos el comando:

$ dhclient eth0

Internet Systems Consortium DHCP Client V3.0.4
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/<br>

Listening on LPF/eth0/XX:XX:XX:XX:XX:XX
Sending on   LPF/eth0/XX:XX:XX:XX:XX:XX
Sending on   Socket/fallback
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 8
DHCPOFFER from 192.168.0.1
DHCPREQUEST on eth1 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.118 -- renewal in 42300 seconds.

La línea DHCPACK from 192.168.0.1 nos indica que hemos recibido un paquete desde la dirección 192.168.0.1 que corresponderá con nuestro servidor DHCP donde se especifica la configuración de la interfaz. Por otro lado, renewal in 42300 seconds. especifica el tiempo que está configurado para renovar la dirección IP.

5. Interfaces virtuales

Se nos puede presentar el caso de que tengamos un ordenador portátil que lo conectemos a varias redes, con distintas configuraciones, ya sea en casa, en el trabajo, en la "zona wifi" del bar o de un "amigo".... Para este caso podemos cambiar a mano la configuración del interfaz (un poco cansino), o configurar interfaces virtuales en nuestro pc.

Necesitamos hacer una pequeña diferenciación entre interfaz física y lógica. La física está clara, pero podemos tener varias interfaces lógicas (que configuraremos) en una misma interfaz física. A la cual pertenecen; si se activa una interfaz lógica también se activará la física, no pudiéndose dar dos interfaces lógicas por el mismo interfaz físico.

Una manera de definir interfaces lógicas es identificando, en nuestro archivo de interfaces, la interfaz física con la lógica seguida de dos puntos (:), quedando algo tal que eth0:0; donde 0 es el identificador de dicha interfaz. Quedando nuestro archivo interfaces, algo tal que:

iface eth0 inet static
             address 192.168.0.1
             netmask 255.255.255.0
             network 192.168.0.0
             broadcast 192.168.0.255
    
     iface eth0:0 inet dhcp

Donde eth0:0 está configurado para recibir la información de la red. Para levantar dicha interfaz, debemos de introducir el comando ifup eth0:0

También podemos introducir directamente, en el archivo interfaces, el identificador de la interfaz lógica y su configuración; quedando algo como:

iface hogar inet static
             address 192.168.0.123
             netmask 255.255.255.0
             gateway 192.168.0.1
    
     iface trabajo inet static
             address X.X.X.X
             netmask 255.255.0.0
             gateway X.X.X.X

Para conectarnos en este caso, debemos introducir el comando ifup eth0=hogar. Identificando tras el "igual" (=) la interfaz lógica que queremos activar.

6. Seguridad Wifi

- Si utilizamos como medida de seguridad el cifrado WEP (aunque se quede un poco escasa... silbo ), debemos añadir en las líneas correspondientes a la interfaz wifi:

wireless_key Clave_WEP

-Si por el contrario utilizamos encriptación WPA-PSK, deberemos configurar algún que otro apartado más. Échale un vistazo al apartado Lan/Wireless de este mismo wiki...

Para echar a correr a wpa_supplicant y poder conectarnos al AP, lo debemos tener configurado en nuestro /etc/network/interfaces, o bien lanzarlo con:

wpa_suppplicant -B -w -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -i wlan0

El archivo wpa_supplicant.conf puede estar en varios directorios, entre los que pueden ser: /etc y en /etc/wpa_supplicant, por motivos de seguridad se recomienda sacarlo de su ruta original. Hay que tenerlo en cuenta a la hora de hacer las configuraciones.

7. Fuentes y otra información

Indicar que hay mucha información en Internet de como configurar las tarjetas de red. Entre las muchas páginas visitadas, gran parte de información ha sido sacada de ésta misma web y de las demás, cabe destacar:

- http://www.estrellateyarde.es/so/configurar-interfaces-red-en-linux
- http://ftp.cl.debian.org/man-es/ethernet.html
- http://ftp.cl.debian.org/man-es/wlan.html
- http://linuxsilo.net/articles/mapping-eth0.html
- http://bulma.net/body.phtml?nIdNoticia=1309&nIdPage=2
- http://qref.sourceforge.net/Debian/reference/ch-gateway.es.html