Leyendo el estupendo texto de Roberto Suárez en el número de noviembre de la revista «Todo Linux» he pensado en escribir este post. De todas formas no es más que un burdo resumen en comparación con el excelente artículo que recomiendo efusivamente.
Si usamos un sistema operativo que utilice Linux deberemos ya estar acostumbrados a la terminal donde introducimos comandos que nos permiten hacer muchas cosas en nuestro ordenador. En los tiempos actuales la mayoría de los usuarios utilizan los programas con una presentación gráfica visualmente atractiva (solo un friki disfruta de una lectura de comandos a toda velocidad), y prefieren no usar la terminal. Es una opción más cómoda, pero también más costosa para el rendimiento del ordenador. Al final todo se resume en una serie de comandos que nos permiten hacer todo en nuestro ordenador. Este post lo que pretende es explicar algunos de estos comandos, que nos permitirán configurar nuestra red. Concretamente nos centraremos en las conexiones para el protocolo TCP/IP y también sobre los dispositivos de red, aunque en los ejemplos usaremos la clásica conexión vía cable ethernet.
Vamos a jugar con la «Terminal» o «Shell» para configurar redes mediante ip.
Para la explicación usaremos el comando «ip» que viene a ser un unificador de una serie de comandos clásicos, como son «ifconfig«, «route«). En la explicación se introduce la posibilidad de hacer las cosas con el programa ip o con los clásicos antes mencionados.
También comentar que usaremos el rango /24 (ver direcciones IP). Sobre los rangos simplemente comentar que está asociado al concepto de máscara de red. No comprendo el funcionamiento real del tema, pero en definitiva existen 3 tipos de rangos. La clase A (/8 equivale a 16 millones de direcciones IP), la clase B (/16 equivale a 65.536 direcciones IP) y clase C (/24 equivale a 255 direcciones IP). En nuestro caso hablaremos siempre de la clase C, puesto que es la que usamos en redes pequeñas (caseras).
COMANDOS ÚTILES:
– Para ver todas las rutas definidas en nuestro equipo:
$ route
$ netstat -nr
$ ip route show
Esta última es la recomendada por el autor porque aporta más información.
– Para añadir una ruta (ejemplo: Para la red 192.168.2.0/24 a través de la dirección IP 192.168.1.10):
$ route add -net 192.168.2.0/24 gw 192.168.1.10
$ ip route add 192.168.2.0/24 via 192.168.1.10
y para eliminarla:
$ route del -net 192.168.2.0/24
$ ip route del 192.168.2.0/24
– Para cambiar la «puerta de enlace por defecto» (primero se elimina la existente y luego se crea la nueva.
Para eliminar la existente:
$ route del default
$ ip route del default
Para crear la nueva (por ejemplo 192.168.1.50)
$ route add -net default gw 192.168.1.50
$ ip route add default via 192.168.1.50
– Para ver la lista de interfaces:
$ ifconfig -a
$ ip link show
– Para activar y desactivar dispositivos de red (usamos de ejemplo el eth0):
$ ifconfig eth0 down
$ ifconfig eth0 up
$ ip link set dev eth0 donw
$ ip link set dev eth0 up
– Para configurar una dirección IP con un dispositivo con su máscara de red clase C y dirección broadcast (ejemplo: 192.168.1.50 con broadcast 192.168.1.255):
$ ifconfig 192.168.1.50 netmask 255.255.255.0 broadcast 192.168.1.255
Una opción curiosa es la de asignar dos direcciones IP a un solo ordenador usando el mismo dispositivo (en nuestro caso ethernet). Esto puede ser útil, por ejemplo, si conectamos un mismo ordenador a dos redes distintas (con un mismo dispositivo).
$ ifconfig eth0:1 192.168.1.51 netmask 255.255.255.0 up
$ ip address add 192.168.1.52/24 dev eth0 label eth0:1
Si queremos eliminar estas nuevas IP asignadas a un mismo dispositivo
$ ifconfig eth0:1 down
$ ip link set dev eth0:1 down