# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Enrutar en Linux (route add/del)


Ayer expliqué cómo visualizar las tablas de rutas en Linux, pero no vimos cómo agregar nuevas rutas, modificarlas o borrarlas. Vamos a ver en una entrada rápida unos ejemplos básicos del comando route que nos enseñarán a modificar la tabla de rutas. Partimos de esta base:

$ route -n
Tabla de rutas IP del núcleo
Destino         Pasarela        Genmask         Indic Métric Ref    Uso Interfaz
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

Vamos a añadir una nueva ruta cuyo destino tenga la red 169.255.0.0/16. Todo tráfico contra esa red será redirigido a la interfaz eth0 y usará la puerta de enlace (gateway) 192.168.1.1:

$ sudo route add -net 169.255.0.0/16 gw 192.168.1.1 dev eth0
$ route -n
Tabla de rutas IP del núcleo
Destino         Pasarela        Genmask         Indic Métric Ref    Uso Interfaz
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.255.0.0     192.168.1.1     255.255.0.0     UG    0      0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

Para eliminar esta ruta en lugar de route add usamos route del:

$ sudo route del -net 169.255.0.0/16 eth0

También podríamos enrutar tráfico de una LAN sin necesidad de pasar por una gateway:

$ sudo route add -net 169.255.0.0/16 dev eth0

O establecer la gateway (puerta de enlace) por defecto. Será utilizada en caso de no haber otra regla efectiva por delante:

$ sudo route add default gw 192.168.2.1

Como siempre, para más información:

$ man route

Recordad que estos cambios no son persistentes a reinicios, tendréis que añadir los comandos a /etc/rc.local.

Routing Tables: ‘netstat -rn’ y ‘route -n’


Algo importante en los sistemas Linux (o Unix) y todo lo relacionado con networking es conocer el estado y configuración de las tablas de rutas IP (routing tables), que nos indican cómo y a través de donde se envía un paquete en las distintas redes.

Para visualizar la tabla de rutas tenemos dos posibilidades, utilizar el comando netstat -rn o route -n, ambos nos ofrecen la misma salida:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0

Las tres primeras columnas nos indican, por un lado las redes de destino (Destination), la puerta de enlace que utilizan (Gateway) y la máscara de red (Genmask). En las Flags vemos “U”, que significa que la interfaz de red está levantada y G que indica que esa ruta utiliza la puerta de enlace. 0.0.0.0 es tratado como un wildcard (también se suele representar con un *) y especifica el destino a cualquier red no especificada.

Explicando la salida del comando route anterior, vemos en primer lugar que todo paquete dirigido a las redes 192.168.1.0/255.255.255.0 y 169.254.0.0/255.255.0.0 serán enviados a través de redes LAN (vemos que no hay flag de gateway) por lo que no harán uso de puerta de enlace. En cambio todo paquete con destino 0.0.0.0, es decir, el resto de redes sí que pasará por nuestra puerta de enlace 192.168.1.1. Todas estas rutas trabajan bajo la interfaz de red eth0, si tuviéramos más interfaces levantadas aparecerían marcadas como ethX en la columna Iface.

Cómo configurar tarjetas de red en Red hat Enterprise, CentOS y Fedora Core


Existen tres modos para configurar tarjetas de red en sistemas operativos Red Hat 5 y CentOS 5. Nos vamos a centrar en dos, las cuales son modificando manualmente los ficheros de configuración de las tarjetas de red, y la otra mediante una interfaz GUI basada en texto. Para la tercera sería necesario disponer de X.

Configurar tarjetas de red mediante GUI interfaz basada en texto:

Introducimos el siguiente comando en nuestra shell:

system-config-network-tui

Accederemos a la interfaz basada en texto, donde tendremos la opción de configurar las tarjetas de red de nuestro equipo, en este caso vemos dos, la eth0 y la eth1:

Configurar tarjetas de red Red Hat CentOS Fedora

Elegimos la tarjeda de red que queremos configurar, en este caso la eth0, a la cual le vamos a asignar IP estática , máscara y puerta de enlace, aquí ya entra la configuración que deseemos establecer a cada tarjeta de red:

Configurar tarjetas de red Red Hat CentOS Fedora

Salimos de la interfaz, y reiniciamos la red:

/etc/init.d/network restart

Configurar tarjetas de red manualmente, modificando ficheros de configuración:

Los ficheros de configuración de las tarjeras de red se encuentran en

cd /etc/sysconfig/network-scripts/, accedemos a dicha ruta:
cd /etc/sysconfig/network-scripts/

Veréis que los ficheros de configuración son del tipo ifcfg-eth0, ifcfg-eth1. abrimos el fichero de la tarjeta a configurar en este caso la eth0:

 vi ifcfg-eth0

Configuramos en función de nuestras necesidades, en los comentarios véis lo que es cada línea (he usado valores ficticios):

# Intel Corporation 82541GI Gigabit Ethernet Controller
DEVICE=eth0
BOOTPROTO=none
BROADCAST=22.23.112.255
HWADDR=01:09:4B:7F:6C:E3  # Dirección MAC
IPADDR= 64.34.55.50  # Ip de la interfaz de red
NETMASK= 255.255.255.0  # Máscara de red
NETWORK= 64.34.55.0 # Red en la que se encuentra
ONBOOT=yes  # Arranque automático al inicio del sistema
GATEWAY= 64.34.55.1 # Puerta de enlace
TYPE=Ethernet

Reiniciamos la red:

/etc/init.d/network restart

Para ambos casos, especificaremos nuestro HostName y Puerta de enlace en el siguiente fichero:

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=www.rm-rf.es
GATEWAY=64.34.55.1

Y finalmente, recordad configurar unos servidores DNS válidos para el equipo (valores ficticios):

vi /etc/resolv.conf
nameserver 80.58.0.33
nameserver 95.112.45.43

Vuestro equipo ya debería responder a ping con los servidores de la misma red, y si habéis configurado la tarjeta para salir a Internet, deberíais tener ping a webs, y una resolución DNS correcta (resolver otros Hostnames)-