| Santiago González
Herrero, Agosto 1999 |
En Mayo de 1999 tuve la necesidad de conectar una red remota a la intranet de mi centro de trabajo para dos muestras de "Enseñanza" y "Formación y Empleo" respectivamente que tuvieron lugar en Oviedo y Avilés en las que el Instituto en que trabajo: IES Valliniello de Avilés (Asturias) estaría representado. En esas muestras se pretendía conectar una red de ordenadores (en el stand) a la intranet de nuestro centro, de forma que los visitantes se sentaran en los puestos y se encontraran en la misma situación que los alumnos del centro, con posibilidad de acceder a nuestros servidores internos y poder practicar en las mismas condiciones. Una posibilidad sería una videoconferencia entre un ordenador del stand y otro en nuestras aulas, acceder al servidor WWW local, utilizar el correo interno, nuestros servidores IRC, FTP, de noticias, etc.
Para ello, configuré un servidor de acceso remoto mediante PPP en un sistema Linux del centro, y en la red remota, el ordenador que conectado a la línea RDSI era también un Linux con el encaminamiento IP activado.
La conexión se realizó mediante RDSI, pero al utilizar adaptadores externos, la configuración es igual que si hubiera usado módems analógicos normales (de hecho no he usado nunca una tarjeta RDSI). La única diferencia es que he necesitado tarjetas serie de alta velocidad.
Nota Importante: Este documento es una chuleta para un administrador de redes habituado a trabajar con Linux. En ningún caso pretende ser un tutorial. Como se puede comprobar hay muchos aspectos que no se tocan (compilación del kernel, del puerto serie, módem, nociones TCP/IP, etc). Para un manual más exhaustivo, te vuelvo a remitir a la guía de Josh Gentry.
Nuestro servidor PPP, permitirá la conexión de equipos que usen Linux como aquéllos que usen Windows mediante el acceso telefónico a redes.
S2:2345:respawn:/sbin/mgetty ttyS1
Donde:
S2 Abreviatura del nombre de dispositivo que usará init.Una vez editado /etc/inittab, ejecutar la orden "kill -1 1" para forzar a que el proceso init vuelva a leerlo.
2345 son los runlevel para los que se activará la atención a este terminal
respawn Indica a init que la entrada está activa.
/sbin/mgetty Es el programa que atenderá al terminal, mgetty puede detectar llamadas de FAX o de datos por PPP, y actuar en consecuencia. Las opciones están en /etc/mgetty+sendfax/mgetty.config
/AutoPPP/ - a_ppp /usr/sbin/pppd file /etc/ppp/options.servidor
Una vez configurado esto, mgetty lanzará
pppd automáticamente cuando reciba una petición de
configuración LCP del otro extremo de la línea. La opción
file indica a pppd que obtenga las opciones del fichero /etc/ppp/options.servidor
en vez del habitual /etc/ppp/options.
# Mi modem en /dev/ttyS1
port ttyS1
debug 6
speed 115200
data-only yes
init-chat "" \d+++\dAT&FH0 OK
rings 1
donde:
port ttyS1
indica el puerto al que hace referencia esta configuración
debug 6
Nivel de depuración en ficheros de log
speed 115200
Velocidad de conexión
data-only yes
No fax, sólo datos
init-chat "" \d+++\dAT&FH0 OK
Cadena de inicialización y descuelge
rings 1
Número de rings antes de descolgar
make HAS_SHADOW=1
Para usar también la opción MS-DNS (entregar la dirección IP del servidor DNS a clientes Windows), usar:
make USE_MS_DNS=1 HAS_SHADOW=1
El contenido de /etc/ppp/options.servidor será:
debug
lock
modem
crtscts
/dev/ttyS1
115200
asyncmap 0
auth
login
:192.168.0.7
proxyarp
nodetach
refuse-chap
require-pap
Para mayor información sobre las opciones (man pppd) las opciones más importantes son:
auth, obliga al otro extremo a autentificarse
antes de permitir el tráfico de paquetes.
login, significa que utilizará
la base de datos de usuario para la autentificación (/etc/passwd)
:192.168.0.7, es la dirección
IP que entrega al interfaz ppp0 del otro extremo.
proxyarp creará una entrada
ARP para la IP del otro extremo asociada a la dirección Ethernet
del servidor, esto hará el efecto de que el otro extremo está
en la misma red que el servidor para otros equipos en la red del servidor.
Si asignamos la ip remota dentro del rango de direcciones del segmento
de red en que está el servidor, el extremo remoto es como si tuviera
una tarjeta de red conectada a esta misma red, lo que simplifica el encaminamiento.
nodetach no se desconecta del terminal.
refuse-chap rehusa autentificación
chap
require-pap solicita autentificación
pap
* * "" *
Nota, si hay problemas de autentificación, poner lo siguiente:
* * ""
192.168.0.7
El servidor (roxu) tiene la ip 192.168.0.6 asociada al interfaz eth0 conectado a uno de los segmentos de nuestra red local, al otro extremo (pinon) le entregaremos la ip 192.168.0.7 para su interfaz ppp0 (con la opción proxyarp es como si estuviera realmente en ese segmento, de ahí la ip corresponediente a la red local). La dirección ip del interfaz ppp0 del servidor (roxu) la dejamos sin asignar (según se ve en /etc/ppp/options.servidor) esto hará que sea la misma 192.168.0.6 que tiene asociado el interfaz eth0! (no hay problema, lo dice incluso Olaf Kirch en su Guía del Administrador de Redes). Por tanto:
a) Si es un único pc el que se conecta a nuestro servidor, ¡No hace falta ninguna entrada en las tablas de encaminamiento del/los routers de nuestra red local!
b) Si vamos a conectar una red local: El pc remoto también encamina paquetes IP, y su interfaz eth0 tiene la ip 192.168.1.1 de la red remota 192.168.1.0/24 (con lo que es el gateway por defecto para los puestos de la red remota), únicamente debemos añadir la ruta 192.168.0.6 para la red 192.168.1.0/24 a nuestros routers.
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.6
En el script que corresponda en cada router.
| Santiago González
Herrero, Agosto 1999 |