fidonet:guia_dbrige_linux

¡Esta es una revisión vieja del documento!


ESTO ES BORRADOR TODAVIA

Configuración de d'Brige usando DosBox (y BinkD desde el GNU/Linux)

En esta guía vamos a configurar el d'Bridge para leer correo de Fidonet. Este programa contiene las tres etapas que necesitan para tener un sistema completo de punto:

Mailer: Trae incluido el BinkD como ejecutable y tiene una versión Win32 y una para os/2. Con lo cual si lo usan en esos entornos, no hay que tener nada externo, simplemente vía tcp/ip baja los paquetes desde nuestro boss/uplink.

Tosser: Tiene el tosser también incluido, el cual se encarga de procesar los paquetes que llegan desde el BinkD y genera los archivos de las áreas de mensajes para netmail y echomail que luego el editor puede acceder a ellos.

Editor: Con el editor interno alcanza y sobra, con él podés navegar por las áreas, listar los mensajes de las mismas y por supuesto leer/escribir/responder.

Lo particular de esta guía es que vamos a apuntar a los usuarios GNU/Linux, donde ejecutaremos el d'Bridge dentro del DosBox, y como no trae un ejecutable del BinkD para Linux, vamos a usarlo por fuera de ese DosBox y de forma nativa en el GNU/Linux. Ya veremos este embrollo más adelante.

Todo va a funcionar bien mientras tengamos en cuenta que se correspondan los paths en ambos procesos y entornos.

El esquema es más o menos así:

   GNU/Linux

  +-------------------------------------------------------------+
  |                                                             |
  |        BINKD                     DOSBOX                     |
  |                                                             |
  |   +-----------------------+     +-----------------------+   |
  |   |                       |     |                       |   |
  |   |    /usr/sbin/binkd    |     | C:\DB                 |   |
  |   |                       |     |                       |   |
  |   |                       |     | d'Bridge              |   |
  |   |                       |     | +------------------+  |   |
  |   |                       | <=> | |                  |  |   |
  |   |     INBOUND/          |     | |  INBOUND\        |  |   |
  |   |                       |     | |                  |  |   |
  |   |     data/fidonet      |     | |  data\\fidonet   |  |   |
  |   |                       |     | |                  |  |   |
  |   |                       |     | +------------------+  |   |
  |   |                       |     |                       |   |
  |   +-----------------------+     +-----------------------+   |
  |                                                             |
  +-------------------------------------------------------------+

Por supuesto la instalación del DosBox así como la del BinkD queda fuera de esta guía, pero básicamente en un Debian o derivados es suficiente hacer lo siguiente:

sudo apt-get install dosbox binkd 

Para el resto de las distros vean con su sistema de paquetes como instalarlos o en su defecto bajar y compilar.

Configuración del DosBox

Cuando ejecutamos el DosBox es necesario mapear la unidad C: a un directorio del GNU/Linux, eso se hace con el comando mount desde dentro del mismo DosBox. Por ejemplo, en mi home del usuario ragnarok tengo un directorio llamado DOS que es el que uso siempre como disco C para el DosBox (o dosemu):

Entonces luego de iniciar el DosBox, en su prompt hacemos:

Z:\> mount C /home/ragnarok/DOS
Drive C is mounted as local directory /home/ragnarok/DOS/

NOTA: Para no tener que hacerlo cada vez que iniciamos DosBox, lo podemos agregar en el archivo de configuración ~/.dosbox/dosbox-0.74.conf en la sección autoexec que todos los comandos que pongamos ahí, se ejecutan al iniciar.

[autoexec]
mount c: /home/ragnarok/DOS

Ahora si, teniendo DosBox andando con su disco C montado y todos los chiches, vamos a bajar la versión de d'Bridge de su sitio oficial:

Descargar dbridge para DOS (la versión estándar) desde https://www.dbridgemailer.com/

El URL al día de hoy (11/2020) es el siguiente: https://www.dbridgemailer.com/DB4S.ZIP

Una vez descargado, lo que tenemos que hacer es descomprimir el archivo .ZIP que dentro está el instalador.

En mi caso, yo mapeo un disco T: que apunta mi /tmp donde descargué el archivo y desde dentro del DosBox descomprimo el mismo porque tengo el pkunzip. Pero también podemos descomprimirlo desde el GNU/Linux con el comando unzip si quieren:

Instalación

Como pudimos observar, en el T:\ nos quedó el archivo DB4.EXE que debemos ejecutar para iniciar la instalación del d'Brigde

T:\>db4.exe <enter>

El primer paso nos preguntan el path donde se instala el d'Bridge. Por defecto es C:\DB, el cual quedará para el Linux en /home/ragnarok/DOS/DB y debemos presionar F10 para que comience a copiar los archivos.

Al terminar de copiarse los archivos, se presenta una selección de paleta de colores, de todas formas luego se puede cambiar en la configuración general.

El 2do. paso consiste en ingresar los datos de nuestro Point, como ejemplo voy a usar 4:90/26.16

Vamos poniendo cada número por separado y dando enter para pasar a cada campo (ZONE:4 NET:902 NODE:26 POINT:16)

Debemos confirmar los datos del punto poniendo Y (yes) y Enter

Aquí tenemos que poner los datos del nuestro boss/uplink donde recogeremos los paquetes. Cabe aclarar que estos datos así como los del punto tenemos que gestionarlos con el operador del BBS que nos conecte a Fidonet. Hay que ingresar la dirección del servidor binkp, clave que usaremos para la sesión y la que usaremos para gestionar los pedidos para el AreaFix, que en general pueden ser las mismas.

También debemos confirmar los datos como hicimos anteriormente.

Ejemplo:

Nodo del uplink: 4:902/26 
Dirección (host): bbs.docksud.com.ar
Clave de conexión: pankeke
Clave para AreaFix: PANKEKE

En este paso tenemos que poner el nombre del archivo Nodelist, yo recomiendo dejarlo en blanco ahora, ya que seguramente no tenemos uno. Y luego de finalizar la instalación lo podemos configurarlo, porque es necesario para que funcione correctamente el sistema.

En este último paso se nos pregunta como va a ser el entorno de ejecución para el BinkD. recordemos que los procesos son:

Para recibir:

BinkD se conecta con nuestro nodo padre (boss/uplink), descarga solo los paquetes, luego el proceso de tosser del dbridge, toma esos paquetes los descomprime (por lo general vienen zipeados), los procesa y los convierte en áreas de mensajes que pueden ser leídos por el proceso “Editor”

Para enviar:

Uno redacta un mensaje con el “Editor” y quedan marcados para enviar, el proceso de tosser toma cada uno de esos y deja paquetes en el directorio de salida del BinkD para que luego este los envíe al servidor del nodo padre.

En necesario saber este detalle también:

El ejecutable DB.EXE es de 16bits DOS, y como habíamos dicho al principio, trae un ejecutable BinkD para windows (BINKDWIN.EXE) de 32bits y el del os/2 (BINKDOS2.EXE).

En caso de tener esta instalación sobre un windows de 32bits, se puede usar todo de forma nativa y sin problemas.

Si tenemos un windows de 64bits es el mismo caso que en nuestro GNU/Linux, se tiene que usar DosBox para ejecutar el d'Bridge y por fuera ejecutar el BinkD.

Continuando con nuestro escenario en Linux ponemos L y Enter para continuar:

Una vez que termina el setup inicial arranca el programa y aparece la ventana de actividades del mismo, donde tenemos un estado de los que va pasando. Si queremos salir del programa usamos ALT+X

Revisión de la configuración

En esta sección vamos a repasar como siempre los diferentes menús de configuración para asegurarnos de que el sistema quede completamente funcional para nuestro punto. Obviamente no vamos a ver absolutamente todas las opciones, ya que muchas con su valor por defecto alcanzan. Así que pasaremos a verificar algunas que considero importantes.

Desde la pantalla inicial, tocando ESC vemos las opciones de menú.

Esta es una de las primeras configuraciones que debemos realizar, ya que contiene los datos básicos de nuestro sistema

Primary Address: debe contener la dirección de nuestro punto que fue puesto en la instalación.

System Name, Location y Operator: es información de como se presenta nuestro sistema al conectarse al remoto. Es bastante util, ya que cuando hay problemas, estos datos sirven para identificar la conexión en algún arhivo de log y ver que pasó.

System Log Level: Nivel de detalle del registro que se guarda en DBRIDGE.LOG

En esta sección están los paths que utiliza el d'Bridge para guardar sus archivos.

Aquí tenemos que ver un tema importante con el directorio para INBOUND y de como funciona d'Bridge cuando elegimos que el entorno de ejecución del BinkD es “Linux”.

Van a ver que por defecto seguramente la configuración del path aparece C:\DB\INBOUND. El problema es que esa ruta la va a usar el BinkD cuando lo ejecutemos desde el GNU/Linux y obviamente sería incorrecta. Por lo tanto debemos poner un path “relativo”, con lo cual si ponemos solo INBOUND/ vas a estar ok.

En la sección de la configuración del BinkD explico más detalles.

Esta por fuera del ámbito de esta guía usar un modem con una conexión Dialup, así que matanga:

Desde d'Bridge se genera de forma automática el archivo de configuración para el BinkD, este archivo es C:\DB\DBRIDGE.BNK (y sería accesible desde el GNU/Linux según nuestro ejemplo desde /home/ragnarok/DOS/DB/DBRIDGE.BNK)

A partir de los datos que ponemos acá es con lo que se genera este archivo para BinkD.

Al seleccionar el entorno como Linux, d'Bridge no va a lanzar ningún proceso de BinkD (recordemos que solo traía los ejecutables para otros sistemas operativos) sino que simplemente ejecutará su proceso de “tosser” cada x cantidad de tiempo según el calendario de eventos (schedule). Y asume que nosotros ejecutaremos el BinkD desde una ventana de terminal aparte de nuestro GNU/Linux (por fuera del DosBox).

Entonces el BinkD ejecutándose aparte se conectará a nuestros boss/uplink y hará las transferencias necesarias de los paquetes.

Mientras que el d'Bridge dentro del DosBox, cada tanto tiempo tomará esos paquetes y los procesará para que podamos abrir los mensajes.

Las opciones por lo tanto serían:

Transfer mail using BinkD: Linux

BINKD incommig port: 24554

Outgoing port: 24554

Binkd session information: acá ponemos nuestro nodo, el dominio que es fidonet y la dirección del host, por lo tanto quedaría: 4:902/26 fidonet bbs.docksud.com.ar

NOTA: Por defecto aparece una letra U al final, que significa que se envíen paquetes sin comprimir. Esta letra la podemos borrar y provocará que para las transferencias los paquetes sean comprimidos en formato ZIP por defecto.

Additional BINKD options: esto es superimportante, ya que como el BinkD lo vamos a ejecutar desde el GNU/Linux, tenemos que hacer unas conversiones de los paths usando la opción ftrans. Así como también podemos poner cualquier opción que necesitemos que vaya a parar al archivo DBRIDGE.BNK

domain fidonet.org alias-for fidonet
percets
ftrans "\\" "/"
ftrans "C:/DB" "/home/ragnarok/DOS/DB"
ftrans ".pkt" ".PKT"

Esto último fue un rompecabezas para mí, ya que ejecutaba el comando binkd y tenía errores de paths por todos lados cuando importaba o exportaba los paquetes.

Pero básicamente es convertir el path de DOS a GNU/Linux. La conversión de .PKT es también para tener en cuenta que en GNU/Linux es sensible a mayúsculas y minúsculas.

NOTA: Yo también probé usando dosemu en vez de DosBox y todas las configuraciones fueron exactamente iguales, exceptuando la única diferencia que encontré es que (desconozco el motivo) tuve que “invertir” la configuración del ftrans para los .PKT, quedando de esta forma:

ftrans ".PKT" ".pkt"

Con estas opciones pude ejecutar el binkd sin problemas desde el GNU/Linux. (más adelante vemos como hacerlo)

La configuración de eventos es bastante completa, ya que trae unas cuantas variantes, ver la ayuda del d'Bdrige (con F1) para conocer todos los detalles o el manual de usuario que está en el archivo DBRIDGE.TXT. Por defecto, si no hay configurado ningún evento parar ejecutarse, funciona uno llamado “UN-EVENT”, es algo así como un “idle” de los eventos.

Si queremos agregar uno nuevo, le ponemos un “tag” que es un nombre de referencia, el tipo puede ser “Mail” que sería un evento en el cual se hace una llamada a algún sistema remoto y ponemos días y horarios. También existen otros tipos de eventos como por ejemplo para ejecutar programas de DOS en algún momento.

Para que el sistema funcione correctamente es necesario tener un archivo de NODELIST.

Este archivo lo tenemos que conseguir desde nuestro boss/uplink.

Para mantener los archivos ordenados, simplemente agregué un nuevo directorio C:\DB\NODELIST donde guardé ahí un archivo de nodelist (previamente descomprimido):

C:\DB>

C:\>dir NODELIST
Directory of C:\DB\NODELIST\.
.              <DIR>         10-11-2020 01:52
..             <DIR>         10-11-2020 01:52
NODELIST 276         164.773 02-10-2020 00:15
    1 File(s)        164.773 Bytes.
    2 Dir(s)     262,111,222 Bytes free.
    

“St. Louis” nodelist: Acá tenemos que poner el path y el nombre del archivo (separados por un espacio obvio)

El valor queda: C:\DB\NODELIST NODELIST

Cuando le damos Enter, el d'Bridge agrega un par de números al final que son para un uso interno que mismo en la ayuda (F1) indica que no nos preocupemos por ellos.

Dentro es este menú encontramos opciones para el envío de paquetes, la primera importante que encontré es:

Forced priorities: que indica como se envían los paquetes a nuestro boss/uplink, la opción es Crash, si quisiéramos mantener los paquetes hasta que nuestro boss/uplink se nos conecte, podríamos dejarlo en HOLD

La otra opción importante consiste en los parámetros para el AREAFIX, debemos poner la dirección del nodo, la clave que tenemos y algunos parámetros en cuanto a permisos y prioridad (vean la ayuda con F1 para más detalles)

Por lo general los paquetes se transmiten comprimidos y acá podemos configurar los programas para compresión y descompresión de los mismos respectivamente.

NOTA: El pkzip y pkunzip vienen incluidos, además detecta si tenemos algún que otro buscando en los directorios que se encuentren en la variable de entorno PATH

Desde esta pantalla se puede configurar las opciones relacionadas con la hora y la zona horaria.

No descubrí aún como ajustar correctamente por ejemplo la zona horaria (que es GMT-3 en mi caso). Entiendo que por defecto toma el RTC del equipo, pero también es posible ajustar la hora haciendo una llamado a un sistema remoto.

Admito que no le di mucho tiempo a estas opciones, porque todo parece funcionar. Si alguno logra investigar, se agradece si comparte información al respecto para mejorar esta documentación.

Usando d'Bridge

Bueno, bueno, bueno.. tengo que decir que si llegaron a leer hasta acá, estoy seguro de que tienen el sistema de punto andando sin ningún problema. (?)

Por lo tanto veamos mínimamente el uso del mismo:

Lo primero que vemos al iniciar d'Bridge, es la ventana principal donde vemos tres cosas:

* Un log de lo que va pasando * El listado de eventos que se van a ejecutar * Un resumen de la actividad

Desde aquí, tocando ESC entramos al resto de los menús del programa. (Mail, Editor, Utilities, Config, etc).

Para acceder al Editor de mensajes, lo hacemos desde el menu o directamente con ALT+E

Cuando entramos al modo Editor, probablemente no tengamos ningun mensaje aun:

Asi que tocamos E para ingresar mensaje nuevo. Nestra prueba de fuego es mandar un mensaje al AreaFix de nuestro boss/uplink para pedir que nos conecte a algunas areas de echomail

Como nombre para seguir con los datos de nuestro ejemplo, agregamos areafix y la direccion 4:902/26 (reitramos que estos datos los tenemos que gestionar de antemano con el responsable del nodo donde llamamos)

Luego agregamos un area por linea, por ejemplo ESP.PRUEBAS o REGION90 (areas de la zona4)

Tocamos F2 y se guarda el menasaje

Desde el mismo modo de Editor, podemos usar L para listar los mensajes del area, o cambiar la misma con A (todas estas opciones, como ya se habrán dado cuenta, estan visibles en la pantalla).

Una vez que terminamos, podemos salir del modo Editor y volver a la pantalla principal con ALT+X, donde esta listo para llamar y conectarse a nuestro boss/uplink.

En caso de necesitar conectar a tus boos sin tener que esperar a un evento, podemos usar ALT+P para generar una llamada.

Debemos ingresar la dirección del nodo a llamar (que podemos buscar a travez del nodelist) y la prioridad de esta de la misma (Normal/Crash/Inmediate)

Una vez que le damos Enter, el sistema se conectará al nodo remoto que hemos ingresado.

No se olviden del BINKD!

Todo muy lindo hasta acá, pero notaron seguramente que jamas se ha transferido ningun paquete, que es lo que pasó?

Como bien sabemos, todo la operaciones del d'Bridge fueron ejecutadas dentro del DosBox (sin conectivad de red alguna hacia internet).

Y aqui es donde entra el binkd en acción.

En una nueva terminal que abrimos desde el GNU/Linux, ejecutamos el binkd con el archivo de configuracion que nos generó e d'Brigde.

NOTA: Si recuerdan, habiamos puesto que el directorio INBOUND del bink sea relativo, por lo tanto tenemos que pararnos en el directorio del d'Bridge para ejecutarlo.

NOTA2: en Debian, el binkd esta en /usr/sbin/binkd y /usr/sbin para los usuarios comunes no esta en el path por defecto.

ragnarok@ragnarok:~$  cd /home/ragnarok/DOS/DB

Ejecutamos binkd con el parametro -p como para que simplemente se conecte como cliente y luego termine:

ragnarok@ragnarok:~/DOS/DB$ /usr/sbin/binkd -p DBRIDGE.BNK
    01:07 [30956] BEGIN, binkd/1.0.5-pre5/Linux -c -p DBRIDGE.BNK
    01:07 [30956] clientmgr started
  + 01:07 [30957] call to 4:902/26@fidonet
    01:07 [30957] trying 152.169.163.196...
    01:07 [30957] connected     
  + 01:07 [30957] outgoing session with bbs.docksud.com.ar (24554)
  - 01:07 [30957] OPT CRAM-MD5-dfasdfasdfasdfasdfasdfasd CRYPT
  + 01:07 [30957] Remote requests MD mode
  + 01:07 [30957] Remote requests CRYPT mode
  - 01:07 [30957] SYS Dock Sud BBS
  - 01:07 [30957] ZYZ Ragnarok  
  - 01:07 [30957] LOC Dock Sud, Bs As, Argentina
  - 01:07 [30957] NDL 115200,TCP,BINKP
  - 01:07 [30957] TIME Fri Nov 13 2020 01:07:15 GMT-0300
  - 01:07 [30957] VER BinkIT/2.39,JSBinkP/1.123,sbbs3.18c/Linux binkp/1.1
  + 01:07 [30957] addr: 4:902/26@fidonet
  + 01:07 [30957] addr: 666:1/1@latinet (n/a or busy)
  + 01:07 [30957] addr: 21:2/151@fsxnet (n/a or busy)
  + 01:07 [30957] addr: 618:500/45@micronet (n/a or busy)
  + 01:07 [30957] pwd protected session (MD5)
  - 01:07 [30957] session in CRYPT mode
  + 01:07 [30957] sending C:\DB\QUEUE\D-0040P2.00Q\50107051.PKT as 50107051.PKT (169)
  + 01:07 [30957] sent: C:\DB\QUEUE\D-0040P2.00Q\50107051.PKT (169, 169.00 CPS, 4:902/26@fidonet)
  + 01:07 [30957] done (to 4:902/26@fidonet, OK, S/R: 1/0 (169/0 bytes))
    01:07 [30957] session closed, quitting...
    01:07 [30956] rc(30957)=0   
    01:07 [30956] the queue is empty, quitting...

Como vemos en el log que sale por la consola, se transfirió un paquete a nuestro boss/uplink !!!

En caso de que no tengamos ningun mensaje en la cola de salida y usamos el parametro -p, el binkd no hace nada y sale:

ragnarok@ragnarok:~/DOS/DB$ /usr/sbin/binkd -p DBRIDGE.BNK
  01:01 [30771] BEGIN, binkd/1.0.5-pre5/Linux -c -p DBRIDGE.BNK
  01:01 [30771] clientmgr started
  01:01 [30771] the queue is empty, quitting...

En el caso que queremos forzar que conecte sin importar si tenemos mensajes en la cola de salida podemos usar -P 4:902/26 (P mayúscula)

ragnarok@ragnarok:~/DOS/DB$ /usr/sbin/binkd -c -p DBRIDGE.BNK -P 4:902/26

  01:13 [31078] BEGIN, binkd/1.0.5-pre5/Linux -c -p DBRIDGE.BNK -P 4:902/26
  01:13 [31078] creating a poll for 4:902/26@fidonet (`d' flavour)
  01:13 [31078] clientmgr started
+ 01:13 [31079] call to 4:902/26@fidonet
  01:13 [31079] trying 152.169.163.196...
  01:13 [31079] connected     
+ 01:13 [31079] outgoing session with bbs.docksud.com.ar (24554)
- 01:13 [31079] OPT CRAM-MD5-a2a117501cbc2f400faffbd7d82241fe CRYPT  
+ 01:13 [31079] Remote requests MD mode
+ 01:13 [31079] Remote requests CRYPT mode
- 01:13 [31079] SYS Dock Sud BBS
- 01:13 [31079] ZYZ Ragnarok  
- 01:13 [31079] LOC Dock Sud, Bs As, Argentina
- 01:13 [31079] NDL 115200,TCP,BINKP
- 01:13 [31079] TIME Fri Nov 13 2020 01:13:31 GMT-0300
- 01:13 [31079] VER BinkIT/2.39,JSBinkP/1.123,sbbs3.18c/Linux binkp/1.1
+ 01:13 [31079] addr: 4:902/26@fidonet
+ 01:13 [31079] addr: 666:1/1@latinet (n/a or busy)
+ 01:13 [31079] addr: 21:2/151@fsxnet (n/a or busy)
+ 01:13 [31079] addr: 618:500/45@micronet (n/a or busy)
+ 01:13 [31079] pwd protected session (MD5)
- 01:13 [31079] session in CRYPT mode
+ 01:13 [31079] done (to 4:902/26@fidonet, OK, S/R: 0/0 (0/0 bytes))
  01:13 [31079] session closed, quitting...
  01:13 [31078] rc(31079)=0   
  01:13 [31078] the queue is empty, quitting...

Finalmente no hace falta ejecutar de forma manual del binkd a cada rato, sino que lo ejecutamos una vez con el archivo de configuracion DBRIDGE.BNK como parametro (a lo sumo con -c que es client-only) y listo.

Porque a traves de un archivo semáforo (opción flag dbrige.ufm del DBRIDGE.BNK), el d'Bridge le avisa al binkd que tiene que hacer una llamada.

Luego, el binkd detecta que se creó ese archivo y realiza la conexión al equipo remoto. Pura magia!

ragnarok@ragnarok:~/DOS/DB$ /usr/sbin/binkd -c DBRIDGE.BNK 
  01:20 [31327] BEGIN, binkd/1.0.5-pre5/Linux DBRIDGE.BNK
  01:20 [31328] clientmgr started

Podemos poner esto en un alias de bash (o el shell que usen) o crear un archivo .sh para ejecutar todo de una:

cd /home/ragnarok/DOS/DB ; /usr/sbin/binkd DBRIDGE.BNK & ; dosbox -c “cd c:\db” -c “db.exe”

Finalizando

Esta guia me llevo unas cuantas horas de escribirla, y sin embargo obvimente puede contener errores.

Asi que si encuentran alguno, avisen. Gracias!

Ragnarok at DockSud Com Ar

  • fidonet/guia_dbrige_linux.1605243360.txt.gz
  • Última modificación: 2020/11/13 01:56
  • por ragnarok