The forward.txt file resides in the NOS directory. The forward.txt file contains message forwarding instructions that the SNOS program uses to forward packet messages (i.e. private messages, email, newsgroup articles, and bulletins) to other mail servers and user PBBS's (Private Bulletin Board Systems).
TCP/IP and AX25 are the two vehicles that are used by SNOS to literally carry forward messages to the other mail servers and user AX25 PBBS's. SNOS collectively makes use of several resources to enable forwarding that include:
The automated ARP (Address Resolution Protocol) table which resolves neighboring hardware (i.e. node callsign, media access controller signature) and associated IP addresses to a specific hardware interface on the local SNOS packet mail server.
The automated IP network route table which resolves the IP networks (domains) of other nodes within the region to a IP gateway (established from the ARP table) and the specific hardware interface and the local SNOS packet mail server.
The Hosts file which cross-references IP addresses to host names (i.e. callsigns, aliases, domain names, hierarchical addresses).
The Nodelist file which contains an automated listing of nodes and associated BBS's that are active on NET/ROM.
Specific instructions within the forwarding.txt file that define the hardware interface and connection parameters necessary to forward messages to a PBBS.
Three examples of how the contents found in the forwarding.txt file are applied in concert with the fore mentioned resources will be described using three references from the example file shown below.
SMTP & NNTP Forwarding
SMTP (Simple Mail Transfer Protocol) and NNTP (Network News Transfer Protocol) entries found in the forwarding.txt file must have host names or host IP addresses. Look at the first two entries under the GROUP:BVCK heading: the SMTP and the NNTP addresses are kb7zpj.ampr.org.
In this example, both SMTP and NNTP messages are to be forwarded to host kb7zpj.ampr.org. SNOS first must look up kb7zpj.ampr.org in the Hosts file and find the IP address for this host. Once the IP address has been discovered, then SNOS looks at the IP network route table to determine the gateway IP address that will lead to the IP host address of kb7zpj.ampr.org. Upon determination of the gateway IP address, SNOS then checks the ARP table for the gateway IP address in order to determine the associated hardware interface that the messages will be forwarded from. All of these elements must be present in order for the messages to be forwarded.
NET/ROM Forwarding
NET/ROM entries found in the forwarding.txt file must have valid callsigns or aliases for message forwarding. Look at the entry for W0RLI within the GROUP:BVCK.
In this example, NTS messages are to be forwarded to W0RLI via NET/ROM. SNOS must first look in the Nodelist file to determine if a entry exists for W0RLI. If a entry is found, then the hardware interface and neighboring node callsign are utilized to initiate a NET/ROM connection to W0RLI for the forwarding of the messages.
AX25 Forwarding to PBBS's
AX25 forwarding to user PBBS's is accomplished by writing specific connection instructions for each PBBS that SNOS is to forward messages. This method is the least flexible of the three methods in that there is no alternative routing options available.
Look at the very last two entries at the bottom of the example file for PBBS stations N7YAF and KC7WKO. Here one can see that the SNOS node hardware port has been specifically identified. Additionally, SNOS is being instructed to receive five lines (+r5) of text from the PBBS's before attempting to forward messages to these stations.
Tags established in the REWRITE.TXT file are used in the Forwarding.txt file. The tags are used to identify which messages are to be sent to each of the stations. For example, private messages addressed for KB7ZPJ are tagged "smzpj" and are to be forwarded via SMTP to kb7zpj.ampr.org, while newsgroup articles with the tag values like "orares" and "pdx" will be forwarded to kb7zpj.ampr.org using NNTP .
Messages are forwarded in groups. Explicit grouping bracketed by the GROUP:<name> and ENDGROUP parameters dictate that all of the messages destined for any of the stations within the group using a particular interface will be forwarded in sequential order across the interface. Restated, a group will begin with the GROUP:<name> parameter, followed by the station call (i.e. K7IQI, W7TRR, W7OEM), and be closed by the ENDGROUP parameter. SNOS will process the group by forwarding messages to K7IQI first, then to W7TRR when finished with K7IQI, and finally to W7OEM when finished with W7TRR. Without the use of groups, messages to the three stations will forward all at once, in effect, simultaneously.
Groups are forwarded in parallel. To illustrate this rule, messages going to stations contained in GROUP:NORTH will be transmitted on interface AX2 at the same exact time as messages to stations contained in GROUP:SOUTH are transmitted on interface AX3.
The key rule to remember is this: Groups are forwarded in parallel (simultaneously), Calls within the groups are forwarded in series (sequentially).
In the example file, the groups were defined by the neighboring stations that the SNOS node forwards to. Stations within the group would be typically be reached via the same neighboring station if individual connections were performed. Groups can have one or more stations within them using multiple protocols (i.e. SMTP, NNTP, NET/ROM). Forwarding entries without an explicit group definition will get a default group that is the same as the Call entry. Groups are forwarded in parallel meaning that they are all dispatched simultaneously across their respective interfaces.
Displayed below is a detailed working example forward.txt file. Note that lines beginning with a semi-colon are viewed as a remarks or comments and are ignored by the SNOS program.
; FORWARD.TXT FILE FOR NODE: orcy.ka7ijk ; This is FORWARD for orcy.ka7ijk ; 23aug05: Cleaned and updated file ; 27aug05: Added group forwarding to NMAR ;---------------------------------------------------- ; One group for each station we forward with. ; PARAMETER DEFINITIONS ; Call: The call of station we will forward with. ; Con: The interface to use and connect steps. ; Multiple Con: lines will be attempted in order. ; -rn before a connect means expect n lines of text ; prior to receiving the "connected to" response. ; +rn before a connect means expect n lines of text ; after receiving the "connected to" response. ; Tag: The tags to forward. ; Batch: Maximum size of compressed message batch. ; Timeout: "no activity" timeout in milliseconds. ; Calls bracketted by Group: / EndGroup: are done sequentially. ;__________________________________________________________________ ;Forward SMTP & NNTP messages with the following stations. ;Note the use of groups, where the messages are grouped by ;most probable forwarding port. GROUP:BVCK Call: smzpj SMTP: kb7zpj.ampr.org Tag: smzpj Call: kb7zpj NNTP: kb7zpj.ampr.org Tag: orares pdx or pnw arrl amsat usa usw ww noam Call: smqdn SMTP: n7qdn.ampr.org Tag: smqdn Call: smyss SMTP: n7yss.ampr.org Tag: smyss Call: smifj SMTP: n7ifj.ampr.org Tag: smifj Call: smqqu SMTP: n7qqu.ampr.org Tag: smqqu Call: smagh SMTP: ka7agh.ampr.org Tag: smagh Call: smrli SMTP: w0rli.ampr.org Tag: smrli ;Following to W0RLI is for outbound NTS traffic Call: w0rli Batch: 10000 Timeout: 600 Port: netrom Con: w0rli Tag: w0rli Call: smiqi SMTP: k7iqi.ampr.org Tag: smiqi Call: smzzx SMTP: kc7zzx.ampr.org Tag: smzzx ENDGROUP: GROUP:NMAR Call: smnkn SMTP: kd7nkn.ampr.org Tag: smnkn Call: kd7nkn NNTP: kd7nkn.ampr.org Tag: orares pdx or pnw arrl amsat usa usw ww noam ENDGROUP: GROUP:PARC Call: smlt SMTP: w7lt.ampr.org Tag: smlt Call: w7lt NNTP: w7lt.ampr.org Tag: orares pdx or pnw arrl amsat usa usw ww noam ENDGROUP: GROUP:KD7ZDO Call: smzdo SMTP: kd7zdo.ampr.org Tag: smzdo Call: kd7zdo NNTP: kd7zdo.ampr.org Tag: orares pdx or pnw clkams ENDGROUP: GROUP:CLMT Call: wb7awl SMTP: wb7awl.ampr.org Tag: smawl Call: wb7awl NNTP: wb7awl Tag: pdx or amsat arrl pnw usw usa noam ww ENDGROUP: ;__________________________________________________________________ ;Forward Internet mail to bctonline.com mail server Call: smbct Smtp: mail.bctonline.com Tag: smbct ;__________________________________________________________________ ; Forward Mail to various PBBS locations Call: n7yaf Batch: 10000 Timeout: 20000 Port: ax2 Con: n7yaf-1 +r5 Tag: n7yaf Call: kc7wko ;Batch: 10000 Timeout: 20000 Port: ax3 Con: kc7wko-1 +r5 Tag: kc7wko |
Written by KA7IJK, October 3, 2005