La interfaz de bucle local
La primera interfaz en ser activada es la interfaz de bucle local o loopback:# ifconfig lo 127.0.0.1 |
# Registro de ejemplo para localhost en /etc/hosts localhost 127.0.0.1 |
$ ifconfig lo lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 Collisions:0 |
Ahora, ya casi puede empezar a jugar con su "mini-red". Sólo queda añadir una entrada en la tabla de encaminamiento que comunique al IP que puede usar esa interfaz como ruta hacia 127.0.0.1. Para llevar esto a cabo, basta escribir:
# route add 127.0.0.1 |
Lo siguiente es comprobar que todo funciona como es debido, por ejemplo usando ping. ping es el equivalente a un sonar en una red. Esta orden se usa para verificar que una dirección dada es accesible y para medir el retraso entre el envío de un datagrama y su recepción de vuelta. Este tiempo es conocido como tiempo de ida y vuelta.
# ping localhost PING localhost (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.4 ms 64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.4 ms ^C --- localhost ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.4/0.4 ms # |
Este ejemplo muestra que los paquetes dirigidos a la máquina 127.0.0.1 están siendo entregados correctamente y la respuesta a ping es recibida de forma casi instantánea. Esto significa que ha establecido con éxito su primera interfaz de red.
Si la salida de ping no se parece a la de más arriba, usted tiene problemas. Compruebe la posibilidad de que algún fichero no haya sido instalado correctamente. Compruebe que los ejecutables ifconfig y route son compatibles con la versión del núcleo que usa y sobre todo que éste ha sido compilado con la opción de red activada (esto se puede ver comprobando que existe el directorio /proc/net). Si el mensaje de error es “network unreachable”(red inaccesible), seguramente ejecutó la orden route incorrectamente. Asegúrese de que es la misma dirección que la que usó con ifconfig.
Los pasos descritos arriba son suficientes para poder ejecutar aplicaciones de red en una máquina aislada. Una vez esas líneas son añadidas al script de inicialización de red y después de asegurarse de que es ejecutado en tiempo de arranque, puede proceder a rearrancar su máquina y probar las diferentes aplicaciones de red. Por ejemplo telnet localhost debería establecer una conexión telnet con su máquina, pidiéndole el nombre de usuario y la contraseña.
Sin embargo, la interfaz de bucle local es útil, no sólo como ejemplo en libros de redes, o como método de pruebas durante el desarrollo: también la utilizan algunas aplicaciones como modo normal de operacion. Por ello, debe usted configurarla siempre, independientemente de que su máquina esté conectada a una red o no.
5.7.2. Interfaces Ethernet
La configuración de una interfaz Ethernet es más o menos igual que la de la interfaz de bucle local. Sólo requiere algunos parámetros más cuando está usando varias subredes.En la Cervecera Virtual, hemos dividido la red IP, originalmente de clase B, en subredes de clase C. Para que la interfaz reconozca esto, usamos la orden ifconfig
# ifconfig eth0 vstout netmask 255.255.255.0 |
# ifconfig eth0 eth0 Link encap 10Mps Ethernet HWaddr 00:00:C0:90:B3:42 inet addr 172.16.1.2 Bcast 172.16.1.255 Mask 255.255.255.0 UP BROADCAST RUNNING MTU 1500 Metric 1 RX packets 0 errors 0 dropped 0 overrun 0 TX packets 0 errors 0 dropped 0 overrun 0 |
De forma semejante al caso de la interfaz de bucle local, debe también establecer ahora una entrada en la tabla de encaminamiento que informe al núcleo de que la red es accesible mediante eth0. Para la Cervecera Virtual, ejecutaría:
# route add -net 172.16.1.0 |
Veamos, ¿qué significa la opción –net? Esta opción es necesaria porque el programa route es capaz de trabajar con rutas a redes o a máquinas concretas (como vimos arriba en el caso de localhost). Cuando la dirección es dada en notación de cuaterna, intenta adivinar si se trata de una red o una máquina fijándose en los bits de máquina de la dirección. Si esa parte es nula, route asume que se trata de una red, y de otro modo lo toma como dirección de una máquina. Por tanto, route supondría que 191.72.1.0 es la dirección de una máquina en vez de una red, debido a que no sabe que hemos dividido el espacio de direcciones en subredes. Por tanto hemos de decírselo de forma explícita utilizando el indicador –net.
Por supuesto, escribir el comando route es tedioso y susceptible de muchos errores de escritura. Un método más conveniente es usar los nombres definidos en /etc/networks como vimos más arriba. Esto hace el comando más inteligible; de este modo incluso podemos evitar escribir el indicador –net, porque route sabe que 191.72.1.0 representa una red:
# route add brew-net |
# ping vlager PING vlager: 64 byte packets 64 bytes from 172.16.1.1: icmp_seq=0. time=11. ms 64 bytes from 172.16.1.1: icmp_seq=1. time=7. ms 64 bytes from 172.16.1.1: icmp_seq=2. time=12. ms 64 bytes from 172.16.1.1: icmp_seq=3. time=3. ms ^C ----vstout.vbrew.com PING Statistics---- 4 packets transmitted, 4 packets received, 0 round-trip (ms) min/avg/max = 3/8/12 |
# route -n Kernel routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.1 * 255.255.255.255 UH 1 0 112 lo 172.16.1.0 * 255.255.255.0 U 1 0 10 eth0 |
5.7.3. Encaminamiento a través de una pasarela
En la sección anterior, cubrimos sólo el caso en el que la máquina sólo tiene una única Ethernet. Frecuentemente, es posible encontrar redes conectadas unas a otras a través de pasarelas o máquinas de enlace. Estas pasarelas pueden simplemente unir dos o más Ethernets, pero pueden también servir de enlace con el exterior, con Internet. Para usar una pasarela, es necesario añadir información adicional a la capa de red.Por ejemplo, las Ethernets de la Cervecera Virtual y de la Vinatera Virtual están unidas a través de una pasarela, vlager. Suponiendo que la máquina vlager ha sido configurada ya, sólo tenemos que añadir otro registro a la tabla de encaminamiento de la máquina vstout que le comunique al núcleo que puede acceder a todas los nodos de la red de la Vinatera a través de vlager. La orden apropiada usando route se muestra a continuación; la palabra clave gw indica que el argumento siguiente es una pasarela:
# route add wine-net gw vlager |
Este ejemplo describe únicamente una pasarela que conmuta paquetes entre dos redes Ethernet aisladas. Supongamos ahora que vlager también tiene una conexión a la Internet (digamos que a través de un enlace SLIP). Nos gustaría que los datagramas destinados a cualquier dirección fuera de la red de la Cervecera fueran entregados a vlager. Esto se puede conseguir convirtiéndolo en la pasarela por omisión para vstout:
# route add default gw vlager |
Una tasa alta de pérdida de paquetes usando ping hacia una máquina situada detrás de una o más pasarelas, puede deberse a que la red está muy congestionada. La pérdida de paquetes no se debe tanto a deficiencias técnicas como a exceso temporal de carga en las máquinas que actúan de enlace, provocando retrasos o incluso el descarte de datagramas entrantes.
5.7.4. Configuración de una Pasarela
Configurar una máquina para conmutar paquetes entre dos Ethernets es bastante sencillo. Suponga que nos encontramos en vlager, que contiene dos tarjetas Ethernet, respectivamente conectadas a cada una de las dos redes. Todo lo que necesitará hacer es configurar ambas interfaces de forma separada, dándole a cada una su dirección IP correspondiente, y eso es todo.Es bastante útil incluir la información de ambas interfaces en el fichero hosts del modo indicado a continuación, de forma que tengamos nombres para referirnos a ellas también:
172.16.1.1 vlager.vbrew.com vlager vlager-if1 172.16.2.1 vlager-if2 |
# ifconfig eth0 vlager-if1 # route add brew-net # ifconfig eth1 vlager-if2 # route add wine-net |
5.7.5. La interfaz PLIP
Si usa un enlace PLIP para conectar dos máquinas, las cosas son un poco diferentes de lo visto para una Ethernet. En caso de PLIP se trata de un enlace conocido como punto-a-punto, lo que significa que sólo hay una máquina a cada extremo del enlace. A las redes como Ethernet se les llama redes de difusión. La configuración de enlaces punto a punto es diferente porque a diferencia de las redes de difusión, los enlaces punto a punto no son una red por sí mismos.PLIP ofrece conexión muy barata y portable entre ordenadores. A modo de ejemplo, consideremos un ordenador portátil de un empleado en la Cervecera Virtual que se conecta a vlager mediante PLIP. El portátil se llama vlite, y tiene un único puerto paralelo. Durante el arranque, este puerto será registrado como plip1. Para activar el enlace, ha de configurar la interfaz plip1 mediante las órdenes siguientes:
# ifconfig plip1 vlite pointopoint vlager # route add default gw vlager |
# ifconfig plip1 vlager pointopoint vlite |
Una vez hemos configurado el encaminamiento desde el portátil a la red de la Cervecera, sólo resta arbitrar un modo para que cualquier máquina en esa red pueda acceder a vlite. Un modo particularmente enrevesado seríia añadir una ruta a las tablas de encaminamiento de cada una de las máquinas de la red para usar vlager como pasarela hacia vlite:
# route add vlite gw vlager |
Las actuales versiones de net-tools contienen una herramienta llamada plipconfig, que permite configurar algunos parámetros que permiten ajustar ciertos parámetros del la temporización de PLIP. La IRQ que va a usarse por el puerto de la impresora puese especificarse usando la orden ifconfig.
5.7.6. Las interfaces SLIP y PPP
A pesar de que los enlaces SLIP y PPP son simples enlaces punto-a-punto igual que las conexiones PLIP, hay mucho más que decir de ellas. Generalmente, el establecimiento de un enlace SLIP incluye una llamada a un lugar de conexión remoto a través de un módem y el establecimiento del modo SLIP en la línea de comunicaciones serie. El uso de PPP es similar. Las herramientas necesarias para establecer un enlace SLIP o PPP5.7.7. La Interfaz Comodín
La interfaz comodín (dummy) parece un tanto exótica y sin embargo es bastante útil. Resulta especialmente ventajosa para máquinas aisladas y para las que se conectan a una red IP mediante un enlace telefónico. Se trata en realidad de máquinas que trabajan de forma aislada la mayor parte del tiempo.El dilema con las máquinas aisladas es que el único dispositivo activo es el de bucle local, al que generalmente se le asigna la dirección 127.0.0.1. En ocasiones, sin embargo, le resultará necesario enviar datos a la dirección IP “oficial“ de la máquina. Supongamos, por ejemplo, el caso del portátil vlite cuando no esta conectado a ninguna red. Una aplicación en vlite puede querer enviar datos a otra aplicación en la misma máquina. Buscar vlite en /etc/hosts dará como resultado 172.16.1.65, y por tanto intentará enviar los datos a esa dirección. Como la única interfaz activa en ese momento es la de bucle local, el núcleo no sabe que la dirección se refiere a la misma máquina. En consecuencia el núcleo descarta el datagrama y genera un error en la aplicación.
En esta situación es cuando la interfaz comodín es útil, resolviendo el dilema actuando como alter ego de la interfaz de bucle local. En el caso de vlite, simplemente debe asignarle la dirección 172.16.1.65 y añadir una ruta que apunte a ella. Cada datagrama para 172.16.1.65 es enviado entonces localmente. La forma correcta es pues:
# ifconfig dummy vlite # route add vlite |
5.7.8. Alias de IP
Los nuevos núcleos llevan una funcionalidad que puede sustituir por completo a la interfaz comodín, y que tiene otras útiles funciones. IP Alias permite configurar múltiples direcciones IP en un sólo dispositivo físico. En el caso más simple, usted puede reproducir la función de la interfaz comodín configurando la dirección del nodo como un alias de la interfaz de bucle local, y evitar por completo usar la intefaz comodín. Para usos más complejos, usted puede configurar su máquina para simular ser varias máquinas, cada una con su propia dirección IP. Esta configuración es llamaba a veces “Hosting Virtual,” aunque técnicamente se usa también para otras muchas técnicas.[6]Para configurar un alias para una interfaz, primero debe asegurarse de que su núcleo ha sido compilado con soporte para Alias de IP (compruebe que tiene un fichero /proc/net/ip_alias ; si no es así, debe recompilar el núcleo). La configuración de un alias de IP es virtualmente idéntica a la configuración de un dispositivo de red real; se usa un nombre especial para indicar que lo que usted quiere es un alias. Por ejemplo:
# ifconfig lo:0 172.16.1.1 |