"La Gaceta de Linux...haciendo de Linux algo un poco más divertido!"


Haciendo una simple red Linux incluyendo a Win9x

Por :Juraj Sipos

Traducción al Español por:  Javier Cano
el día 4 de Septiembre de 2000, para La Gaceta de Linux


Decidí escribir este articulo porque usualmente, cuando leo algún howto o texto de ayuda general, encuentro dificultad al navegar en el mar de información debido al hecho de que normalmente necesito solo un poco por saber. En lugar de esto, me he visto obligado a leer cientos de paginas de texto para encontrar la respuesta.

Le daré un ejemplo. Este articulo le ayudara a hacer una red sencilla entre dos computadoras, pero no he sido capaz de usar el correo entre las dos. La configuración de sendmail es muy complicada y antes de que encuentre la solución, debo leer muchas paginas de texto. Pero en realidad necesito solo unas cuantas palabras, algo como: "Coloca este archivo de configuración sendmail y esta listo". No quiero decir que no soy capaz de resolver esto, pero el tiempo es dinero y usualmente tengo otras cosas que hacer para vivir. La gente como yo gusta de ejemplos que puedan ser aplicados sin problemas. Así que doy tales ejemplos en este articulo. No le diré como colocar 20.0.0.0 en su /etc/hosts, tal como otros autores escriben acerca de configurar una red casera, porque este no es un numero IP de red privada. Le daré los números y expresiones que tengo y utilizo con la certeza de que trabajo en mi caso. Por favor no me envíen email con preguntas como "mi Linux no ve el puerto paralelo", "no puedo conectarme a otra maquina desde  el segundo puerto paralelo..." o preguntas que son contestadas en este articulo, pero escríbanme como configurar sendmail!

Este articulo también espera algo de trabajo y estudio hecho de su parte asumiendo que no usara algún kernel o hardware prehistórico.

Me gustaría comentar la siguiente pregunta "Necesito Ayuda" de Linux Gazette, agosto de 2000.

Hola, mi nombre es Sergey, utilizo Slackware 7.0. He leído un documento sobre conexión serial entre Win95 y Linux, pero nunca he visto algo sobre conexiones paralelas. Ayúdenme, díganme como puedo usar mi  NULL módem paralelo. Es lp0 el puerto LPT1? Gracias, Sergey

He conectado exitosamente dos computadoras con PLIP Install HOWTO (el cual esta muy bien escrito), pero encontré algunos problemas que tuve que resolver usando mi creatividad. Además, la parte de "configuración del kernel" en el PLIP HOWTO puede ser confusa para los principiantes, porque la re configuración no es necesaria. Por lo tanto aquí les daré información mas detallada de como conectar dos maquinas Linux con PLIP o tarjetas de red, y mencionare también la conexión de una maquina Windows a una Linux.

Yo utilizo RedHat 6.0 porque parece ser el Linux más estable para la configuración de mi computadora. Tengo una configuración un poco difícil, utilizo FreeBSD, Linux, DOS-Windows, Zip Drive, y otras cosas que son un poco complicadas (por ejemplo, mi disco C esta totalmente encriptado, así que inicio mi computadora con una contraseña y luego el boot manager es ejecutado). Tengo 8 sistemas operativos en dos disco duros, incluyendo OS/2 y BEOS y archivos de disco de inicio en lazo (Linux iniciando de un gran archivo). He probado conexiones de red (PLIP y  tarjetas de red NE2000 y compatibles) en RedHat 6.0, 6.1, 6.2 y SuSE 6.4.

PLIP

Si tiene los sistemas arriba mencionados, no necesita compilar el kernel para usar PLIP. Esto también debe funcionar para Mandrake, pero no lo he probado. El kernel genérico de Linux es suficiente (aquel que tenemos luego de instalar Linux). Para hacer una conexión PLIP, haga lo siguiente:

  1. Obtenga un cable paralelo laplink
  2. Instale Linux en ambas computadoras (espero que tenga dos maquinas:) con los servicios de red apropiados (inet, etc.)
  3. Abrir /etc/hosts con su editor de textos favoritos en ambas computadoras y coloque las siguientes líneas:
  4. 127.0.0.1               localhost localhost.localdomain
    10.0.0.1                one
    10.0.0.2                two
    10.0.0.1 es una dirección IP de red privada que no interfiere con su conexión a Internet.
  5. Ingrese al BIOS de la segunda computadora y cambie "Halt on all Errors"  por "halt on all Errors except Keyboard".
  6. Editar /etc/rc.d/rc.local en la segunda computadora y colocar en alguna parte al final:
modprobe plip
ifconfig plip0 two pointopoint one up

(Linux asignara automáticamente el servicio plip0 a lp0 o LPT1, así que nunca debe usar lp0 en una configuración de conexión plip. Pero si quiere usar una impresora, escriba "ifconfig plip0 down", luego retire él modulo plip del kernel con el comando rmmod. No me escriba mensajes sobre problemas con impresoras.)

Luego de esto, la segunda computadora iniciara automáticamente, sin teclado, con interfase plip. Reinicie para comprobarlo. No se preocupe de verlo en la misma maquina, será capaz de hacer telnet, ftp o ssh desde la otra computadora. Pero pude conectar un teclado a esta. Lo importante es que será capaz de iniciar con Linux. Aquí esta el problema en el que PLIP HOWTO no pudo ayudarme: el comando "modprobe plip" no trabajo y el sistema me dio algo así como "unresolved symbols" "...device busy". Me di cuenta que el problema estaba en la incapacidad de Linux para asignar un numero IRQ a mi interfase PLIP. Lo resolví con el siguiente comando:

echo 7 > /proc/parport/0/irq

Este comando colocara él numero IRQ en el directorio de procesos del kernel (/proc) y plip trabajara. Pero primero debe ejecutar el comando "modprobe plip" porque así creara un directorio parport en /proc. Ahora cambie él numero IRQ a 7 en /proc/parport/0/irq. Luego ejecute el comando "modprobe plip" otra vez. La segunda vez que ejecute el comando modprobe instalara plip. Esto también funcionó en mi sistema SuSE. Así que, si recibe un error en la segunda computadora, algo como "unresolved symbols...", "the device is busy", coloque este comando en /etc/rc.d/rc.local:

modprobe plip
echo 7 > /proc/parport/0/irq
ifconfig plip0 two pointopoint one up

Obviamente, el mismo comando deberá ser ejecutado en la primera computadora, pero deberá cambiar el orden de "ifconfig plip0 pointopoint one up" a "ifconfig plip0 one pointopoint two up", así que en la segunda computadora escribirá:

modprobe plip
echo 7 > /proc/parport/0/irq
ifconfig plip0 one pointopoint two up

Puede ejecutar esto manualmente, colocarlo en el rc.local, o hacer un script para estos comandos (para usar en la computadora UNO). Ahora debe ser capaz de hacer un telnet, ssh, ping, ftp o lynx, si Apache esta ejecutándose, a la segunda computadora, y hacer un telnet de regreso de la segunda computadora a la primera. Pero primero revise que tiene demonios de red apropiados en ejecución. Luego intente "telnet two" o "telnet 10.0.0.2".

NOTA: Debido a que telnet no le permite ingresar como root, deberá crear otro usuario sin privilegios de root en ambos sistemas.

Conectando una maquina Windows y una caja Linux PLIP Existe un driver plip para DOS/Windows: ftp://ftp.crynwr.com/drivers/plip.zip. El problema con este driver es que no trabaja con Windows 9x (se supone que funciona con DOS), pero Ud. puede intentarlo. Este punto permanece disponible para un desarrollo de un programa y yo no tuve éxito en hacer funcionar un enlace entre una maquina Linux y una Windows vía cable paralelo.

Si Ud. tiene una computadora con Windows 9x no trate de forzarla, intente con un emulador de Linux tal como Bochs – para instalar Linux sobre Windows (ftp.bochs.com, www.bochs.com), o hacer un archivo loop boot. Un howto para hacer un archivo con habilidad de boot esta incluido en la Documentación Linux Howto Documentation con él titulo "Loopback-Root-FS" . Es un excelente articulo. Luego Ud. ejecutara lo mismo que describí aquí a su archivo loop.

Tarjetas de Red Me gustaría sugerir una thinnet porque es la red más barata con un precio similar al de un cable paralelo extenso. Esta red es conocida oficialmente como 10Base 2. Necesita un cable coaxial con conector BNC, tees y terminators. Las Tees parecen una T donde la parte de abajo de la te se conecta a la NIC (Tarjeta de red), Y los extremos opuestos se conectan cada uno al cable hacia la otra computadora y a los terminators.

 
 Aquí colocara              > ------|------  <        aquí colocara
 Un cable coaxial                   |                 un terminator
 Hacia la otra computadora          |
                                    |
La parte de abajo de la TE será conectada a la NIC en su computadora.

Si tiene dos computadoras, deberá usar un terminator en cada extremo de ambas maquinas en las tees (un extremo de la te esta conectado a la NIC, otro extremo al cable que va a la otra computadora, el extremo que queda va al terminator). Si tiene 5 computadoras en este orden "1comp 2comp 3comp 4comp 5comp", la 1comp y la 5comp deberán tener los terminators en sus tees, pero 2comp, 3comp, y 4 comp tendrán cable coaxial en ambos lados de las tees. Su red no trabajara sin terminators.

Generalmente, existen tres tipos ampliamente usados de redes:

10Base 5  - es un poco antigua
10Base 2  - sobre la que acabo de escribir, el cable coaxial puede medir hasta 185 metros;
            puede tener hasta 30 computadoras por segmento.
10Base T – requiere un concentrador y puede ser costoso.

Sugiero comprar tarjetas NE2000 (10Mbit) o compatibles. No he tenido problemas con estas tarjetas. Las puede conseguir por menos de 10 dólares. Haga lo mismo que dije anteriormente – coloque la información de su red en el archivo /etc/hosts:

127.0.0.1               localhost localhost.localdomain
10.0.0.1                one
10.0.0.2                two

 

Asegúrese de que las NIC estén bien conectadas a las ranuras de expansión. Ejecute el programa diagnostico (rset8029.exe en mi caso). Cambie la configuración de 10Base T (por defecto) a 10Base 2 en ambas tarjetas. Re inicie. Coloque el siguiente comando en la computadora uno:

 
modprobe ne2k-pci
ifconfig eth0 one

Coloque el siguiente comando en la computadora dos:

modprobe ne2k-pci
ifconfig eth0 two

Ahora debería ver algo como esto en ambas computadoras:

eth0    Link encap:Ethernet  HWaddr 52:54:AB:1F:7A:51
          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:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          Interrupt:11 Base address:0xe800

He leído que algunos howtos de redes recomiendan usar el comando "route add", para su uso es irrelevante aquí.

 [El kernel 2.2no necesita "route add". El kernel 2.0 sí. El kernel 2.2 automáticamente agrega "standard route"; esto es, la ruta necesaria para que el IP se conecte a su red local. -Mike]

Esta red de dos computadoras trabaja muy bien. Ahora puede hacer telnet, ssh, ping, ftp a la segunda computadora y vise versa. Si quiere usar NFS, lea el NFS Howto. O simplemente lea mis instrucciones: instale el demonio nfs. Edite el archivo /etc/exports o cree uno si no se encuentra en su computadora. Coloque allí la siguiente línea:

/ two (rw)

Ejecute rpcinfo -p para confirmar que funcione. Debería ver algo como:

program vers proto   port
  100000    2   tcp   110   rpcbind
  100000    2   udp   111   rpcbind
  100024    1   udp   903   status
  100024    1   tcp   905   status
  100011    1   udp   914   rquotad
  100011    2   udp   914   rquotad
  100005    1   udp   924   mountd
  100005    1   tcp   926   mountd
  100005    2   udp   929   mountd
  100005    2   tcp   931   mountd
  100005    3   udp   934   mountd
  100005    3   tcp   936   mountd
  100003    2   udp   2049  nfs
 
Si no ve mountd o nfs, ha instalado erróneamente el programa nfs (instale el programa knfsd* y netkit-base-*, el cual contiene inetd). Cada cambio al archivo /etc/exports debe ser seguido del comando "exportfs –av". Ejecútelo y luego escriba: mount -t nfs two:/ /mnt -o rsize=8192,wsize=8192,nolock y debe tener a NFS trabajando. De un vistazo al directorio /mnt. Deberá ver a la segunda computadora allí. Si tiene problemas con permisos de escritura, de los permisos en la segunda computadora a todos (solo para un directorio; esto puede hacerlo con telnet). 

Comunicación entre Linux & Windows Linux y Windows (y también otros sistemas) pueden comunicarse entre sí vía tarjetas de red. Haga lo siguiente: Windows instalara su tarjeta de red automáticamente, si no, abra en el Panel de Control, Agregar Hardware. Haga Click en agregar hardware. Tuve problemas de direccionamiento PCI, ya que Windows asignaba un numero IRQ a mi NIC diferente a la asignada por el BIOS, así que mi tarjeta no trabajaba, y Windows se comporto como una baratija en la que un usuario novato puede resultar perdido. Confirme él numero IRQ en el icono de sistema en el Panel de Control. Si es diferente del asignado por el BIOS a la tarjeta, retire la opción de direccionamiento PCI (PCI steering). Aquí Linux es mucho más flexible. Si Windows ve su tarjeta de red, los drivers de red apropiados serán instalados automáticamente. Si se instalo, ingrese al Panel de Control , Redes, y edite TCP/IP > Realtek RTL8029 Ethernet Adapter and Compatibles (u otra NIC, sí es diferente) en Propiedades. Haga click en "Especificar una dirección IP" y cambie la IP en el TAB Dirección IP a 10.0.0.1, la mascara de subnet debe ser 255.255.255.0. Eso es todo. Reinicie la computadora. Windows contiene C:\windows\lmhosts.sam y C:\windows\hosts.sam. Cópielos o cree nuevos archivos en C:\windows - hosts, lmhosts. Coloque las siguientes líneas en ambos:

c:\windows\hosts
c:\windows\lmhosts
127.0.0.1               localhost localhost.localdomain
10.0.0.1                one
10.0.0.2                two

 

Ahora, si hace un telnet hacia la maquina Linux desde la maquina Windows, puede ejecutar comandos Linux y programas – tendrá a Linux ejecutándose en Windows. No he tenido tiempo de probar un X Server, pero la mayoría de comandos de consola trabajan. Si tiene un servidor de Apache ejecutándose en Linux, puede hacer un http a Linux desde  Netscape usando el siguiente comando:

http://two

Si tiene acceso para usuarios pero no anónimo al servicio ftp de Linux, puede hacer un ftp a Linux desde Netscape usando el comando: ftp://user:password@two (donde "user" es un usuario activo en la maquina Linux; no debe ser root).

El cable paralelo, si es demasiado largo, puede ser un poco costoso. Las tarjetas de red baratas mencionadas aquí pueden ser un poco más costosas. Y si compra una de segunda mano, puede ser incluso mas económica que un cable paralelo largo de laplink. Así que le sugiero usar tarjetas de red similares a las mías para tener una red simple y operativa en su hogar. Tal conexión es considerablemente más rápida que usando los puertos paralelos.

Si tiene problemas, siempre puede hechar un vistazo a los howtos Linux de PLIP, NET, etc. Si algo no funciona, considere examinar su hardware bajo otro sistema operativo.

A todo esto, alguien sabe como se configura sendmail para usarlo en nuestra red casera?


 

Copyright © 2000, Juraj Sipos
Publicado en el número 57 de Linux Gazette, Septiembre 2000