El cable paralelo con el que me ha funcionado esto es un PLIP tipo 0 (4 bits, conocido también en Windows como "LapLink"). Aún no he logrado que funcione con el PLIP tipo 1 (8 bits).
En cuanto al cable serie, es uno corriente de los llamados "módem nulo".
En este ejemplo, vamos a llamar "desktop" a la máquina que está conectada al mismo tiempo a una red y al cable PLIP ó SLIP, y "notebook" a la que sólo está conectada a "desktop", mediante el cable.
Tienen las siguientes características:
En mi caso, ninguno de los nombres coincide, y así funciona bien.
Necesitamos recompilar el núcleo.
Opciones necesarias para núcleos 2.0.x:
Loadable module support ----> [*] Enable loadable module support [*] Kernel daemon support (e.g. autoload of modules) General setup: <M> Parallel port support <M> PC-style hardware [ ] Support foreign hardware Networking options ----> [*] Network firewalls [*] TCP/IP networking [*] IP: forwarding/gatewaying [*] IP: firewalling [*] IP: masquerading [*] IP: ICMP masquerading [*] IP: always defragment Network device support ----> [*] Network device support <m> PLIP (parallel port) support <m> PPP (point-to-point) support <m> SLIP (serial line) support [*] CSLIP compressed headers - Si quieres poner soporte para impresora, debe estar como módulo: Character devices ----> <M> Parallel printer support |
Opciones para núcleos 2.2.x:
Loadable module support ----> [*] Enable loadable module support [*] Kernel module loader General setup: <M> Parallel port support <M> PC-style hardware [ ] Support foreign hardware Networking options ----> [*] Network firewalls [*] TCP/IP networking no existe ---- [*] IP: forwarding/gatewaying Se activa con: echo "1" > /proc/sys/net/ipv4/ip_forward [*] Network firewalls [*] IP: firewalling [*] IP: alway defragment (required for masquerading) (NEW) [*] IP: masqueraing (NEW) [*] IP: ICMP masquerading (NEW) [*] IP: masquerading special modules support (NEW) Network device support ----> [*] Network device support <m> PLIP (parallel port) support <m> PPP (point-to-point) support <m> SLIP (serial line) support [*] CSLIP compressed headers - Si quieres poner soporte para impresora, debe estar como módulo: Character devices ----> <M> Parallel printer support |
Ahora creamos el paquete del núcleo:
debian/rules kernel_image |
Y lo instalamos con dpkg -i.
Ahora hay que configurar los módulos. Aunque el archivo para ésto es "/etc/conf.modules", no vamos a modificarlo directamente. Debian proporcina unas herramientas, las modutils, que permiten que la configuración resulte más clara y ordenada. De esta forma, añadiremos la siguientes líneas a "/etc/modutils/aliases":
alias plip0 plip alias plip1 plip alias slip0 slip alias slip1 slip |
A "/etc/modutils/modconf":
options parport_pc io=0x378 irq=7 |
Y construiremos el archivo "/etc/conf.modules" con:
update-modules |
Luego abrimos "/etc/modules" para eliminar las entradas repetidas que pudiera haber. Cada módulo sólo necesita aparecer una vez.
A partir de aquí, el manejo es igual para ambos módulos. Los ejemplos se muestran con plip.
Cargamos el módulo, con:
insmod plip |
y comprobamos que se cargado con:
lsmod |
Deberá aparecer una línea que menciona el módulo plip.
Para ver en qué puerto exacto utiliza plip, buscamos la línea correspondiente en syslog con:
grep -i "plip" /var/log/syslog |
En mi caso, la máquina "desktop" usa el plip1, puerto 0x378, IRQ 7, y la máquina "notebook", el plip0, puerto 0x378, IRQ7.
Elegimos direcciones IP para cada uno de los ordenadores. Conviene usar unas que pertenezcan a los márgenes dedicados a redes privadas:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
Por ejemplo, podemos usar 192.168.168.1 y 192.168.168.2.
Las añadimos en el archivo "/etc/hosts" en las dos máquinas:
192.168.0.1 desktop 192.168.0.2 notebook |
Activamos la interfase PLIP.
En "desktop":
ifconfig plip1 desktop pointopoint notebook up |
En "notebook":
ifconfig plip0 notebook pointopoint desktop up |
Cuidado, es "pointopoint", no "pointtopoint". Esto me causó un montón de problemas al principio, hasta que me dí cuenta 3 horas más tarde.
Añadimos la ruta correspondiente. Si no hemos configurado el encaminamiento de red anteriormente, no tendremos las variables NETWORK ni NETMASK. Miramos si las tenemos con:
echo $NETWORK echo $NETMASK |
Si no están ya definidas, podemos usar éstas de momento:
export NETWORK="192.168.0.0" export NETMASK="255.255.255.0" |
En "desktop":
/sbin/route add -net ${NETWORK} netmask ${NETMASK} dev plip1 |
En "notebook":
/sbin/route add -net ${NETWORK} netmask ${NETMASK} dev plip0 route add default gw desktop |
Probamos desde cada máquina, con ping a la otra. Desde "desktop":
ping notebook |
Y desde "notebook":
ping desktop |
Sección "LocalHost":
LocalHost { desktop 192.168.0.1 localhost 127.0.0.1 } |
Sección "AllowedConnect":
AllowedConnect { 192.168 } |
Para activar los cambios:
wwwoffle -config |
Por ejemplo, para acceder desde netscape al proxy en "desktop", pondremos como proxy http y ftp "desktop", con el puerto "8080".
Modificamos el archivo "/etc/news/nnrp.access". Añadimos esta línea al final:
192.168.*:Read Post:::* |
Y ya está.
Primero, necesitamos que se comuniquen, y para eso hacemos lo del punto aterior.
Ahora, configuramos newsx e INN de forma que "notebook" obtenga sus news de "desktop", y le envíe los mensajes que haya pendientes en el servidor local.
Añadimos la siguiente línea a "/etc/news/newsfeeds":
desktop/news.desktop:*,!junk,!control,!local.*:Tf,Wf: |
El nombre "news.desktop" debe corresponderse con el que el servidor INN de desktop usa para identificarse en el campo path de los mensajes.
Creamos el archivo "/var/spool/news/in.hosts/desktop", y ponemos en él todos los grupos que queramos mantener sincronizados, seguidos cada uno por un "0", y finalizado todo con ":stop":
es.comp.os.linux.instalacion 0 es.comp.os.linux.misc 0 es.comp.os.linux.redes 0 es.comp.os.linux.programacion 0 :stop |
Creamos un archivo vacío para salida de mensajes:
touch /var/spool/news/out.going/desktop |
Sólo nos falta el script que realice la sincronización. Lo pondremos, por ejemplo, en "/var/spool/news/syncnews":
#!/bin/bash BOBINA=desktop SERVIDOR=desktop /usr/lib/news/bin/newsx --inn -dd -e stop --window 10 --rnews $BOBINA $SERVIDOR |
Le ponemos los permisos:
chmod 750 /var/spool/news/syncnews |
Y decimos a INN que relea los archivos de configuración:
ctlinnd reload "" "" |
Listo. Sólo tenemos que entrar como usuario news, y ejecutar ./syncnews desde su directorio.
En "desktop", si usamos un Kernel 2.2.x:
echo "1" > /proc/sys/net/ipv4/ip_forward |
y luego, tanto en kernels 2.0.x como 2.2.x:
ipfwadm -F -p deny ipfwadm -F -a m -S 192.168.0.0/24 -D 0.0.0.0/0 |
Vamos a hacer que el ordenador que actúa como servidor ("desktop") tenga activada la interfase PLIP desde el arranque.
Creamos el archivo "/etc/rc.boot/plip":
#!/bin/bash insmod plip # Activamos la interfase plip0 con la dirección 192.168.0.2 ifconfig plip0 notebook pointopoint desktop up ifconfig export NETWORK="192.168.0.0" export NETMASK="255.255.255.0" route add -net ${NETWORK} netmask ${NETMASK} dev plip0 echo "1" > /proc/sys/net/ipv4/ip_forward ipfwadm -F -p deny ipfwadm -F -a m -S 192.168.0.0/24 -D 0.0.0.0/0 /root/setplip_server /root/setipmasq |
Y le damos los permisos adecuados:
chmod 755 /etc/rc.boot/plip |