por Guido Socher Sobre el Author: Guido es desde hace tiempo fan de Linux. Todos los ordenadores de su casa est'an integrados en una red. Contenidos: |
Resumen:
Las redes se hacen más y más populares. Su viejo 486 puede perfectamente trabajar como servidor de archivos o correr mascareo de IP para dar acceso a Internet a toda la familia desde diferentes ordenadores al mismo tiempo. Este Artículo le proveerá de los conceptos básicos para comenzar una red casera. Explicará el vocabulario que usted necesita para comprender la literatura y otros artículos sobre redes. El artículo se enfoca a una red casera a pequeña escala.
Pin | Nombre | Descripción para 10baseT |
---|---|---|
1 | TX+ | Transmit. Data+ |
2 | TX- | Transmit. Data- |
3 | RX+ | Recibir Data+ |
4 | n/c | Sólo 100baseT4 |
5 | n/c | Sólo 100baseT4 |
6 | RX- | Recibir Data- |
7 | n/c | Sólo 100baseT4 |
8 | n/c | Sólo 100baseT4 |
Nota: | TX & RX son cambiados en el hub. |
Nota: Usted necesita pinzas especiales para conectar el conector RJ-45 al cable.
El mapeo entre los pines del conector RJ-45 y los pares trenzados está estandarizado. Existen muchos estándares y ellos utilizan colores ligeramente diferentes. La asignación válida de pines es:
Número de Par | Pines del Conector | estándar 1 | estándar 2 | estándar 3 | estándar 4 |
---|---|---|---|---|---|
1 | 4/5 | azul/blanco | blanco/azul | blanco/azul | blanco/marrón |
2 | 3/6 | blanco/verde | rojo/naranja | celeste/púrpura | verde/amarillo |
3 | 1/2 | blanco/naranja | negro/verde | blanco/naranja | gris/rosa |
4 | 7/8 | blanco/marrón | amarillo/marrón | celeste/púrpura | azul/rojo |
El cableado es sólo relevante si Ud. desea pasar 20 o más metros de cable a través de toda la casa. Si Ud. tan solo desea conectar unos pocos ordenadores en la misma habitación Ud. puede obtener cables económicos ya hechos con conectores. Estos cables están disponibles típicamente en longitudes entre 1 y 10 metros.
Pin No | Pin No |
---|---|
1 conectado | al 3 |
2 conectado | al 6 |
3 conectado | al 1 |
4 conectado | al 5 (100baseT4) |
5 conectado | al 4 (100baseT4) |
6 conectado | al 2 |
7 conectado | al 8 (100baseT4) |
8 conectado | al 7 (100baseT4) |
9 conectado | al 9 (100baseT4) |
Mi experiencia personal es que las más baratas son las mejores. Las más
costosas usualmente no le dan características adicionales. Las tarjetas
ISA PNP pueden causar problemas. La mayoría de las tarjetas vendidas
como ISA PNP vienen con un disquete DOS y software donde Ud. puede cambiar
los parámetros del flash ROM de esa tarjeta y configurarla para no usar
PNP. Usted puede establecer una IRQ y una dirección E/S fijas. (Nota: si
Vd. tiene un bios PNP entonces debe deshabilitar PNP para esa interrupción).
La dirección E/S estándar es normalmente io=0x300. Vd. puede ver cual
dirección e interrupciones está ya utilizando escribiendo:
cat /proc/interrupts /proc/ioports | more
(Nota: Estas son interrupciones y direcciones las cuales están siendo realmente
utilizadas por un controlador en el momento.)
Si usted adquirió una tarjeta ISA PNP entonces se habrá dado cuenta de que el disquete de DOS no es de mucha utilidad para un usuario de solo Linux. Usted o un amigo podrían tener un viejo disquete de inicio DOS en alguna parte. Copie el programa que vino con la tarjeta de red a ese disquete. Arranque de él y cambie los parámetros de la tarjeta de red. Si los parámetros son conservados en flash ROM, usted solo hará esto cuando instale el hardware y nunca más.
Las tarjetas más económicas son usualmente las tarjetas NE2000 y cuestan
hoy en día cerca de $15 (o 15 Euro). Estas tienen buen soporte bajo Linux.
Las tarjetas NE2000 están disponibles con bus ISA o PCI.
Las tarjetas de bus ISA requieren los módulos del kernel "ne" y
"8390". Usted puede dejatr que el controlador la reconozca
automáticamente o proveer un IRQ y una E/S en la línea de comando. La
carga del módulo del kernel sin comprobación automática puede ser
realizada como sigue:
insmod 8390
insmod ne irq=10 io=0x300
Con una tarjeta PCI usted usualmente no tendrá ningún problema con
interrupciones y direcciones de E/S pero son algo más costosas. Los
módulos del kernel para las tarjetas NE2000 PCI son llamados ne2k-pci
y 8390.
> /sbin/ifconfig -a lo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:1664 errors:0 dropped:0 overruns:0 TX packets:1664 errors:0 dropped:0 overruns:0 eth0 Link encap:10Mbps Ethernet HWaddr 00:80:AD:71:52:19 inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5993 errors:0 dropped:0 overruns:0 TX packets:4073 errors:0 dropped:0 overruns:0 Interrupt:5 Base address:0x300 dummy0 Link encap:10Mbps Ethernet HWaddr 00:00:00:00:00:00 inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0 UP BROADCAST RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0 ppp0 Link encap:Point-Point Protocol inet addr:199.94.253.30 P-t-P:199.94.253.4 Mask:255.255.255.0 UP POINTOPOINT RUNNING MTU:552 Metric:1 RX packets:7 errors:0 dropped:0 overruns:0 TX packets:8 errors:0 dropped:0 overruns:0Como puedes ver hay 4 interfaces de red en el ejemplo de arriba
IP de puerto paralelo es una posibilidad para usar el puerto paralelo como interfaz de red. El parámetro de configuración del kernel es llamado CONFIG_PLIP y usted debería preferiblemente configurarlo como un módulo. PLIP es una posibilidad económica para conectar su Laptop a otro ordenador y a través de éste último a su red casera. Usted necesita comprar un cable de puerto paralelo con 2 conectores macho, también llamado cable LapLink. Si quiere hacer el cable usted mismo entonces el cableado es:
|
|
Usted necesita decidir cuales direcciones IP utilizar para su red. Normalmente usted obtendrá una dirección IP asignada por su proveedor de servicios de Internet cuando se ponga "en línea". Esta dirección IP es asignado más o menos automáticamente al interfaz ppp. Usted normalmente no debe de preocuparse por el. Lo que usted necesita decidir ahora es cuáles direcciones asignar a los otros interfaces de su red privada (ej.: interfaces eth0 y plip1). Un número de direcciones son reservadas para uso privado. Estas direcciones no son enrutadas en la Internet y no le pueden causar problema alguno cuando las re-utilize. Sus rangos son:
Máscara de red | Direcciones de red |
---|---|
255.0.0.0 | 10.0.0.0 - 10.255.255.255 |
255.255.0.0 | 172.16.0.0 - 172.31.255.255 |
255.255.255.0 | 192.168.0.0 - 192.168.255.255 |
La mayoría de las distribuciones viene en éstos días con hermosos interfaces gráficos de usuario (GUIs) para configurar las redes (Ej.: yast o netcfg). Usted puede utilizarlas si lo desea. Refiérase al manual del usuario de su distribución de Linux para cómo utilizarlas. Este artículo no se enfocará en una distribución específica. Explica por tanto los archivos de configuración subyacentes que son de algún modo modificados mágicamente si usted utiliza los GUIs de su distribución. Esto le da también la posibilidad de verificar la configuración que los GUIs efectuaron.
Para una pequeña red casera no tiene mucho sentido tener habilitado un servidor DNS. En cambio usted puede tan solo entrar los nombres de las máquinas en un archivo llamado /etc/hosts Ejemplo:
# ipaddr. fullname alias 127.0.0.1 localhost 192.168.0.1 obelix.mynet obelix 192.168.0.2 asterix.mynet asterix 192.168.0.3 idefix.mynet idefixJunto al archivo /etc/hosts va un archivo llamado /etc/host.conf donde usted dice como resolver los nombres. Usted debería usar lo siguiente en éste archivo:
# /etc/host.conf order hosts bind # Allow multiple addrs multi on
El archivo /etc/resolv.conf dice donde resolver cualquier cosa que no pueda ser hallada en /etc/hosts. Usted necesita preguntar a su Proveedor de servicios por la dirección IP de su servidor DNS. Usted debería entrar más de un servidor DNS si fuera posible. Si el primer servidor DNS es lento o está caído entonces se le preguntará al próximo. La sintaxis es:
#/etc/resolv.conf #nameserver ipaddr. nameserver 123.456.789.1 # alternative DNS server: nameserver 123.456.111.9
/etc/HOSTNAME o (/etc/sysconfig/network para redhat) es un
archivo donde muchas distribuciones configuran el nombre de la máquina
local. Pero en realidad el nombre del host de una máquina es establecido
por el comando hostname. Lo que ocurre en éstas distribuciones es que
durante el arranque (Ej.: /etc/rc.d/rc.sysinit) el archivo
/etc/HOSTNAME es leído y entonces su contenido es alimentado al
comando hostname. Cual archivo se usa exactamente depende realmente de
las peculiaridades de su instalación específica. Sin embargo, debería ser
fácil para usted investigar ésto ya que usted sabe que puede hacer grep
para el nombre del host.
Ejemplo de como establecer el nombre del host:
hostname obelix.mynet
/etc/hosts.allow este es un archivo de configuración para
un sistema de seguridad llamado encapsulador tcp.
Todo lo que usted necesita saber es que usted debería añadir las direcciones IP
de todas las máquinas en su red local, excluyendo la máquina donde se encuentra
éste archivo, detrás de la palabra clave ALL:.
Ejemplo: obelix tiene 2 interfaces de red que van a otros ordenadores
en su red local. El
interfaz con la dirección IP 192.168.0.2 va a asterix y el interfaz con
la dirección IP
192.168.0.3 va a idefix.
# hosts.allow # See tcpd(8) and hosts_access(5) for a description ALL: 192.168.0.2 192.168.0.3Si usted ejecuta un servidor NFS en obelix entonces usted necesita también añadir la línea
portmap: 192.168.0.2 192.168.0.3El Sistema de Archivos de Red (Network File System ó NFS) le da a usted la posibilidad de tener acceso a archivos en otro host como si fueran del disco duro local.
/etc/hosts.deny es también para el encapsulador tcp y no debería ser cambiado nunca y debe verse siempre como sigue:
portmap: ALL ALL: ALL
/etc/hosts.equiv permite a los usuarios locales entrar a otras máquinas (Ej.: con rsh) sin contraseña. Usted puede decidir si quiere esto. La sintaxis es: nombre completo (como en /etc/hosts) de un host de confianza por línea. Ej.:
asterix.mynet idefix.mynet
El archivo /etc/hosts.lpd es importante si usted quisiera habilitar servicios de impresión via lpd. Como configurar la impresión en red es otra historia pero este archivo debe estar presente en la máquina donde se ejecuta el lp-daemon y debe listar los nombres de todas las máquinas a las que se le permite imprimir. La sintáxis es la misma que en hosts.equiv. La configuración de la impresora en sí misma se realiza mejor con las herramientas de administración de su distribución (Ej.: yast en suse y printtool en redhat). El Printing-HOWTO del Proyecto de Documentación de Linux describe como configurarla si usted no quiere utilizar las herramientas de administración de su distribución.
El archivo /etc/service.switch es usado por sendmail. En los hosts dentro de su red (aquellos que no tienen una conexión directa con Internet) usted escribe:
hosts files aliases filesUSted configura entonces su sendmail en estos hosts para reenviar todo el correo a la máquina que tiene el módem y utiliza ésta última como servidor de correo.
Sendmail lee al arranque un archivo de configuración llamado /etc/sendmail.cf y éste archivo es bien difícil de leer. Las fuentes de sendmail por tanto utilizan un lenguaje de macro llamado m4 para generar el sendmail.cf de un archivo macro. Para hacer ésto usted necesita el procesador de macros m4 (probablemente ya instalado en su sistema) y una parte de las fuentes de sendmail. Redhat Linux instala también éstas fuentes en /usr/lib/sendmail-cf otras distribuciones pueden no venir con ellas pero usted siempre podrá desempacar el código fuente de sendmail. Se puede obtener documentación de cómo trabaja sendmail de www.sendmail.org.
Un servidor de correo central es llamado mail-hub. La idea es que las diferentes máquinas en su red reenvíen todo su correo a éste hub y el hub almacene el correo. Usted lo puede accesar via NFS o pop/imap. Un archivo m4 para hacer exactamente eso luce como sigue:
#divert(-1) include(`../m4/cf.m4') VERSIONID(`archivo mc para asterix, UN HOST DENTRO DE LA RED PRIVADA') undefine(`UUCP_RELAY') undefine(`BITNET_RELAY') OSTYPE(`linux') # ponga aqui su dominio de correo. Ej. si su id de usuario es # joe y su dirección de correo es joe@linuxnet.somewhere.org entonces escribe: MASQUERADE_AS(linuxnet.somewhere.org) # No mostrar estos nombres internos al mundo exterior: MASQUERADE_DOMAIN(asterix.mynet) MASQUERADE_DOMAIN(asterix) MASQUERADE_DOMAIN(localdomain) MASQUERADE_DOMAIN(localhost) FEATURE(masquerade_envelope) #the /etc/passwd entry: mail:*:8:12:mail:/var/spool/mail: define(`confDEF_USER_ID',``8:12'') # el hub central de correo es obelix, note el punto al final define(`MAIL_HUB', `obelix.mynet.')dnl define(`confHOSTS_FILE',/etc/hosts)dnl MAILER(smtp)dnl MAILER(local)dnlPara generar el archivo sendmail.cf a partir del sendmail.mc de arriba usted va al directorio cf de las fuentes (redhat /usr/lib/sendmail-cf/cf) y coloca el sendmail.mc allí. Entonces ejecuta m4 sendmail.mc > /etc/sendmail.cf
Por favor note que para poner la red a trabajar usted no necesitará sendmail en lo absoluto y usted puede enviar y recibir correo con netscape sin preocuparse por sendmail. Sendmail es probablemente algo para usuarios de Linux más avanzados.
Un poco más difícil es la configuración de su servidor de correo. Este debe enviar correo local y reenviar correo externo. El correo externo puede por ejemplo ser reenviado via smtp (Protocolo Simple de Transferencia de Correo, por sus siglas en Inglés) con lo cual usted debería leer la documentación de sendmail (www.sendmail.org) sobre "define(`SMART_HOST', smtp:provider.mail.host)dnl". Para que el correo salga via smtp tambien es necesario que el fichero /etc/service.switch habilite el DNS lookup en la maquina de correo:
hosts files dns aliases filesUsted también puede utilizar UUCP y otros métodos. Realmente depende de lo que ofrezca su proveedor de Internet.
IP-Masquerading es el término Linux y la mayoría de las demás personas le llaman Traducción de Dirección de Red (Network Address Tslation o NAT, por sus siglas en Inglés). Esta es una cosa muy valiosa para una pequña red casera. Le da a usted la posibilidad de accesar la Internet desde cualquiera de sus máquinas locales aunque sólo una máquina sea reconocida en la Internet. Esta única máquina está probablemete conectada via modem/ppp y tiene una dirección IP válida enrutada asignada dinámicamente (o estáticamente) a su interfaz ppp0. Con IP-Masquerading mucha gente en diferentes ordenadores en su red casera pueden accesar la Internet al mismo tiempo. LinuxFocus tendrá un artículo separado de cómo establecer el IP-Masquerading. Recomiendo también la lectura del howto acerca de IP_Masquerade. Para el momento solo explicaremos los principios de su funcionamiento.
Para entender como IP-Masquerade trabaja usted debe entender como se establece una conexión TCP. Cuando usted conecta un host a la Internet con su hojeador de web entonces usted conecta la dirección IP de esa máquina y la aplicación de servidor de web. La aplicación (Ej.: un servidor web) es seleccionada por algo llamado número de puerto. Los números de puerto son pre-definidos. El puerto 80 es el número de puerto para la aplicación de servidor de web. Por tanto si usted escribe www.linuxfocus.org en su netscape entonces este sabe que debe conectarse a la dirección IP 195.53.25.18 (=www.linuxfocus.org) y puerto 80. Para una conexión TCP completa donde los datos pueden ser enviados y recibidos, se necesita un par de direcciones IP y puertos. Esto es 195.53.25.18 y 80 más su propia dirección IP y número de puerto local al cual puede contestar el servidor web. El puerto local generalmente es asignado aleatoriamente. Ej.:
www en www.linuxfocus.org: su.maquina.en.su.isp: IP=195.53.25.18 Port=80 ----- IP=123.123.456.1 Port=4123Si usted comienza una segunda ventana de netscape y establece otra conexión a www.linuxfocus.org entonces es escogido un nuevo puerto local:
www at www.linuxfocus.org: your.machine.at.your.isp: IP=195.53.25.18 Port=80 ----- IP=123.123.456.1 Port=4123 IP=195.53.25.18 Port=80 ----- IP=123.123.456.1 Port=4541 Nota: dos veces puerto 80 no es correcto pero solo lo decimos para hacer el ejemplo más sencillo.Cuando un paquete TCP regresa del servidor web entonces éste sabe a cual ventana netscape ir a causa de la diferencia en el número de puerto en su máquina. En el caso de una red privada detrás de su.maquina.en.su.isp la situación es:
www at www.linuxfocus.org --- su.maquina.en.su.isp --- hostprivado1.mired | +- hostprivado2.miredNinguna de las direcciones IP de las interfaces de hostprivado1.mired son conocidas en la Internet. Por tanto es imposible enviar un paquete-IP de la Internet de regreso a hostprivado1.mired. Ningún enrutador en la red sabría a donde enviarlo. Sin embargo su.maquina.a.su.isp tiene una dirección IP que es reconocida en la Internet y como vimos arriba, diferentes conexiones pueden ser llamadas aparte por sus números de puerto.
Los problemas con las interrupciones no son específicos de las redes. Ellos pueden ocurrir en cualquier momento que usted añada nuevo hardware a su ordenador. Desafortunadamente el hardware PC tan solo permite 16 interrupciones y la mayoría de ellas ya están en uso. Es posible compartir interrupciones entre dos tarjetas PCI a expensas de algún poder de CPU. No es posible compartir interrupciones entre tarjetas de bus ISA. Si usted tiene un bios PNP e inserta una tarjeta de bus ISA con un IRQ fijo en su computadora usted debe primero ir a la utilidad de configuración del BIOS y reservar dicho IRQ de lo contrario el BIOS puede tratar de asignar el IRQ a otro hardware y eso no funcionará.
Bajo Linux usted puede ver cuan frecuentemente algún hardware ha generado ya una interrupción utilizando el comando cat /proc/interrupts. El hardware que no esté en uso no generará interrupción alguna.
La siguiente es una lista de IRQs predefinidos. Ud. tan solo puede utilizarlos para otros propósitos si no utiliza el componente de hardware asignado a él. Ej.: si usted utiliza discos SCSI en vez de IDE entonces puede utilizar los IRQ 14/15 para otras cosas.
IRQ | Asignado a |
---|---|
0 | timer |
1 | teclado |
2 | cascade (controlador IRQ programable) |
3 | serial 2 |
4 | serial 1 |
5 | libre, usualmente tarjeta de audio |
6 | disquete |
7 | puerto paralelo, pero bajo Linux no generará interrupción alguna |
8 | reloj de tiempo real |
9 | free |
10 | libre |
11 | libre |
12 | ratón PS/2 (/dev/psaux) |
13 | coprocesador matemático |
14 | IDE 1 |
15 | IDE 2 |
Después de tanta teoría me gustaría discutir un pequeño ejemplo de red con usted. ¿Por qué la gente construye redes caseras? He aquí algunas ideas:
IP | |
192.168.0.1 | eth0 en Workstation 1 |
192.168.0.2 | eth0 en Workstation 2 |
>ping 192.168.0.2 PING 192.168.0.2 (192.168.0.2): 56 data bytes 64 bytes from 192.168.0.2: icmp_seq=0 ttl=64 time=0.9 ms 64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=0.8 ms 64 bytes from 192.168.0.2: icmp_seq=2 ttl=64 time=0.9 ms --- ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.8/0.8/0.9 msUstd detiene esto con ctrl-c. Eche un vistazo también al comando cat /proc/interrupts donde usted debería ver su tarjeta de red o PLIP en el caso de la conexión del portátil. Un cat /proc/ioports debería mostrarle su nuevo hardware y el comando netstat -i muestra cuántos paquetes IP son enviados a cada interfaz.
Básicamente su red ya se encuentra allí pero nada interesante funciona aún. Ahora usted debe editar los diferentes archivos de configuración (use también las finas herramientas gráficas que están disponibles con las varias distribuciones). Finalmente usted establece IP-Masquerade y NFS. Su red ahora es completamente funcional.
Espero que éste le haya brindado un buen vistazo. No se desanime si no le dije exactamente como configurar realmente la parte de software. Habrá artículos separados cubriendo ifconfig/route/netstat, IP-Masquerade, configuración PPP, impresión en red con lpd y NFS. Este artículo estaba destinado a dar un buen resumen para hacer más fácil la comprensión de otros artículos sobre redes.
Feliz networking
P.D.: LinuxFocus es siempre feliz de recibir artículos sobre redes. No todos los artículos se han escrito aún y éste es tan solo el comienzo de una serie. Haganoslo saber si usted es un usuario experimentado y le gustaría escribir un artículo
Contactar con el equipo de LinuFocus
© Guido Socher LinuxFocus 1999 |
Translation information:
|
1999-12-01, generated by lfparser version 0.6