Configuración manual de una conexión de red en Debian (con iproute2)

networking

Cómo configurar «a mano» (sin DHCP) los parámetros más importantes de una tarjeta de red en GNU/Linux, utilizando el comando ip del paquete iproute2.

Ingredientes

  • iproute

Preinstalación

Antes de comenzar debemos pedirle al administrador de la red que nos proporciones los siguientes datos:

  • Dirección IP que le asignaremos a nuestro equipo (en los ejemplos será 161.67.28.216).
  • Máscara de subred asignada.
  • Dirección de broadcast.
  • Dirección IP del router de la subred (en los ejemplos, 161.67.28.1).
  • Dirección IP de el/los DNS (en nuestro ejemplo:161.67.28.4 y 161.67.26.34).

Configuración

Veamos la configuración de la tarjeta:

~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 100
    link/ether 00:37:56:34:21:c7 brd ff:ff:ff:ff:ff:ff

Si la configuración que nos muestra para el dispositivo en cuestión es correcta, pasamos al enrutado. En caso contrario, lo primero que debes hacer el desactivar la interfaz:

~# ip link set dev eth0 down

Para levantar el interfaz de red con los nuevos parámetros:

~# ip addr add 161.67.28.216/24 dev eth0

Para comprobar que se ha añadido bien:

~# ip addr show dev eth0

Enrutado

Por defecto, el sistema añade la entrada de enrutamiento correspondiente a la red local. Debería ser algo así:

~# ip route
161.67.28.28.0/24 dev eth0  proto kernel  scope link  src 161.67.28.216

En este momento, debes poder hacer ping a cualquier máquina de la red local.

~$ ping 161.67.28.150
PING 161.67.28.150 (161.67.28.150): 56 data bytes
64 bytes from 161.67.28.150: icmp_seq=0 ttl=255 time=2.0 ms
64 bytes from 161.67.28.150: icmp_seq=1 ttl=255 time=0.3 ms
64 bytes from 161.67.28.150: icmp_seq=2 ttl=255 time=0.3 ms
 
  —- 161.67.28.150 ping statistics —-
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.6/2.0 ms

Por tanto, queda indicar quién es el router que te permita comunicarte con la red exterior, es lo que se llama el enrutador «por defecto» o «pasarela de enlace»:

~# ip route add default via 161.67.28.1

Siendo la dirección IP indicada la del router para nuestra red local. Si miramos ahora la tabla de enrutamiento, aparecerá una nueva entrada:

~# ip route
161.67.28.28.0/24 dev eth0  proto kernel  scope link  src 161.67.28.216
default via  161.67.28.28.1 dev eth0  proto static 

Ya puedes hacer un ping a un host conectado fuera de la red local (indicando su IP, ya que aún no puedes resolver nombres)

El fichero /etc/network/interfaces

Todo lo anterior se puede dejar escrito en el fichero de configuración /etc/network/interfaces, para que al reiniciar se mantengan esos valores. El contenido de dicho fichero para la configuración equivalente a la anterior sería:

auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet static
             address 161.67.28.216
             netmask 255.255.255.0
             gateway 161.67.28.1

Configuración del DNS

Modifica el archivo /etc/resolv.conf o lo crearemos, si no existe, con la siguiente información:

### Comentarios varios
domain inf-cr.uclm.es  
nameserver 161.67.26.34
nameserver 161.67.27.4 

Si queremos acceder a una máquina por medio de un nombre que no está en el DNS, podemos editar el archivo /etc/hosts e incluir en él una línea del tipo:

161.67.27.132 arco.esi.uclm.es arco

Ya se puede hacer acceder a cualquier máquina indicando su nombre, por ejemplo:

~# ping www.thelordoftherings.com

Enlaces