The DXSpider Installation and Administration Manual
Ian Maude, G0VGS, (ianmaude@btinternet.com)
- Version 1.34 (Revision 1.01) April 2001
+ $Date$ $Revision$
A reference for SysOps of the DXSpider DXCluster program.
______________________________________________________________________
3.1 Allowing ax25 connects from users
3.2 Allowing telnet connects from users
- 3.3 Setting up node connects
- 3.4 Connection scripts
- 3.5 Starting the connection
- 3.6 Telnet echo
+ 3.3 Setting up telnet connects (from 1.47 onwards)
+ 3.4 Setting up for AGW Engine (1.47 onwards)
+ 3.5 Setting up node connects
+ 3.6 Connection scripts
+ 3.7 Starting the connection
+ 3.8 Telnet echo
4. Automating things
- +\bo MD5-1.7.tar.gz
+ +\bo Data-Dumper-2.101.tar.gz
- +\bo Data-Dumper-2.10.tar.gz
+ +\bo TimeDate-1.10.tar.gz
- +\bo TimeDate-1.08.tar.gz
-
- +\bo IO-1.20.tar.gz
+ +\bo IO-1.20.tar.gz (for perl 5.00403 and lower)
+\bo Net-Telnet-3.02.tar.gz
+ For most purposes this is not desirable. The only time you probably
+ will need this is when you need to allow other cluster nodes that are
+ using SSID's in. In this case it owuld probably be better to use the
+ first example and then add a specific line for that node like this:
+
+
+
+ GB7DJK-2 * * * * * * - sysop /spider/src/client client gb7djk-2 ax25
+ default * * * * * * - sysop /spider/src/client client %u ax25
+
+
+
+
3\b3.\b.2\b2.\b. A\bAl\bll\blo\bow\bwi\bin\bng\bg t\bte\bel\bln\bne\bet\bt c\bco\bon\bnn\bne\bec\bct\bts\bs f\bfr\bro\bom\bm u\bus\bse\ber\brs\bs
+
+ From version 1.47 there is a new (more efficient) way of doing this
+ (see next section) but, if you prefer, the method of doing it
+ described here will continue to work just fine.
+
+
Allowing telnet connections is quite simple. Firstly you need to add
a line in /etc/services to allow connections to a port number, like
this ....
- spdlogin 8000/tcp # spider anonymous login port
+ spdlogin 7300/tcp # spider anonymous login port
-
-
- This needs to be added above the standard services such as ftp, telnet
- etc. Once this is done, you need to restart inetd like this ....
+ Once this is done, you need to restart inetd like this ....
- ./client login telnet
+ ./client login telnet
- telnet localhost 8000
+ telnet localhost 7300
You should now get the login prompt and be able to login as before.
- 3\b3.\b.3\b3.\b. S\bSe\bet\btt\bti\bin\bng\bg u\bup\bp n\bno\bod\bde\be c\bco\bon\bnn\bne\bec\bct\bts\bs
+ 3\b3.\b.3\b3.\b. S\bSe\bet\btt\bti\bin\bng\bg u\bup\bp t\bte\bel\bln\bne\bet\bt c\bco\bon\bnn\bne\bec\bct\bts\bs (\b(f\bfr\bro\bom\bm 1\b1.\b.4\b47\b7 o\bon\bnw\bwa\bar\brd\bds\bs)\b)
+
+ From version 1.47 you can chose to allow the perl cluster.pl program
+ to allow connections direct (i.e. not via the /spider/src/client
+ interface program). If you are using Windows then this is the only
+ method available of allowing incoming telnet connections.
+
+
+ To do this you need first to remove any line that you may previously
+ have set up in /etc/inetd.conf. Remember to:-
+
+
+
+ killall -HUP inetd
+
+
+
+
+
+ to make the change happen...
+
+
+ Having done that then you need to copy the file
+ /spider/perl/Listeners.pm to /spider/local and then edit it. You will
+ need to uncomment the line containing "0.0.0.0" and select the correct
+ port to listen on. So that it looks like this:-
+ @listen = (
+ ["0.0.0.0", 7300],
+ );
+
+
+
+
+
+ As standard, the listener will listen on all interfaces
+ simultaniously. If you require more control than this, you can specify
+ each interface individually:-
+
+
+
+ @listen = (
+ ["gb7baa.dxcluster.net", 7300],
+ ["44.131.16.2", 6300],
+ );
+
+
+
+
+
+ This will only be successful if the IP addresses on each interface are
+ static. If you are using some kind of dynamic IP addressing then the
+ 'default' method is the only one which will work.
+
+
+ Restart the cluster.pl program to enable the listener.
+
+
+ One important difference with the internal listener is that no echoing
+ is done by the cluster program. Users will need to set 'local-echo' on
+ in their telnet clients if it isn't set automatically (as per the
+ standards). Needless to say this will probably only apply to Windows
+ users.
+
+
+ 3\b3.\b.4\b4.\b. S\bSe\bet\btt\bti\bin\bng\bg u\bup\bp f\bfo\bor\br A\bAG\bGW\bW E\bEn\bng\bgi\bin\bne\be (\b(1\b1.\b.4\b47\b7 o\bon\bnw\bwa\bar\brd\bds\bs)\b)
+
+ AGW Engine is a Windows based ax25 stack. You can connect to an AGW
+ engine from Linux as well as Windows based machines.
+
+
+ In order to enable access to an AGW Engine you need to copy
+ /spider/perl/AGWConnect.pm to /spider/local and edit it. Specifically
+ you must:-
+
+
+ +\bo set $enable to 1.
+
+ +\bo set $login and $passwd to the values set up in your AGW
+ installation. If you haven't set any there, then you should not
+ touch these values.
+
+ +\bo You can connect to a remote AGW engine (ie on some other machine)
+ by changing $addr and $port appropriately.
+
+ +\bo Restart the cluster.pl program
+
+
+
+
+
+
+
+ 3\b3.\b.5\b5.\b. S\bSe\bet\btt\bti\bin\bng\bg u\bup\bp n\bno\bod\bde\be c\bco\bon\bnn\bne\bec\bct\bts\bs
In order to allow cluster node connections, spider needs to know that
the connecting callsign is a cluster node. This is the case whether
+
The case does not matter as long as you have a version of DXSpider
later than 1.33. Earlier versions required the callsign to be in
upper case.
./client gb7baa
PC38^GB7MBC^~
-
-
-
If the callsign you just set up as a cluster node is for an incoming
connect, this is all that needs to be done. If the connection is to
be outgoing then a connection script needs to be written.
- 3\b3.\b.4\b4.\b. C\bCo\bon\bnn\bne\bec\bct\bti\bio\bon\bn s\bsc\bcr\bri\bip\bpt\bts\bs
-
- Because DXSpider operates under Linux, connections can be made using
- just about any protocol; AX25, NETRom, tcp/ip, ROSE etc are all
- possible examples. Connect scripts live in the /spider/connect
- directory and are simple ascii files. Writing a script for
- connections is therefore relatively simple.
-
+ Sometimes you make a mistake... Honest, it does happen. If you want
+ to make a node back to being a normal user, regardless of what type it
+ is, do:
- The connect scripts consist of lines which start with the following
- keywords or symbols:-
+ unset/node gb7baa
+ 3\b3.\b.6\b6.\b. C\bCo\bon\bnn\bne\bec\bct\bti\bio\bon\bn s\bsc\bcr\bri\bip\bpt\bts\bs
+ Because DXSpider operates under Linux, connections can be made using
+ just about any protocol; AX25, NETRom, tcp/ip, ROSE etc are all
+ possible examples. Connect scripts live in the /spider/connect
+ directory and are simple ascii files. Writing a script for
+ connections is therefore relatively simple.
+ The connect scripts consist of lines which start with the following
+ keywords or symbols:-
+ #\b# All lines starting with a # are ignored, as are completely blank
+ lines.
+ t\bti\bim\bme\beo\bou\but\bt
+ timeout followed by a number is the number of seconds to wait
+ for a command to complete. If there is no timeout specified in
+ the script then the default is 60 seconds.
+ a\bab\bbo\bor\brt\bt
+ abort is a regular expression containing one or more strings to
+ look for to abort a connection. This is a perl regular
+ expression and is executed ignoring case.
+ c\bco\bon\bnn\bne\bec\bct\bt
+ connect followed by ax25, agw (for Windows users) or telnet and
+ some type dependent information. In the case of a telnet
+ connection, there can be up to two parameters. The first is the
+ ip address or hostname of the computer you wish to connect to
+ and the second is the port number you want to use (this can be
+ left out if it is a normal telnet session). In the case of an
+ ax25 session then this would normally be a call to ax25_call or
+ netrom_call as in the example above. It is your responsibility
+ to get your node and other ax25 parameters to work before going
+ down this route!
+ '\b' line in a chat type script. The words/phrases normally come in
+ pairs, either can be empty. Each line reads input from the
+ connection until it sees the string (or perl regular expression)
+ contained in the left hand string. If the left hand string is
+ empty then it doesn't read or wait for anything. The comparison
+ is done ignoring case. When the left hand string has found what
+ it is looking for (if it is) then the right hand string is sent
+ to the connection. This process is repeated for every line of
+ chat script.
+ c\bcl\bli\bie\ben\bnt\bt
+ client starts the connection, put the arguments you would want
+ here if you were starting the client program manually. You only
+ need this if the script has a different name to the callsign you
+ are trying to connect to (i.e. you have a script called other
+ which actually connects to GB7DJK-1 [instead of a script called
+ gb7djk-1]).
- # All lines starting with a # are ignored, as are completely
- blank lines.
- timeout timeout followed by a number is the number of seconds to wait for a
- command to complete. If there is no timeout specified in the script
- then the default is 60 seconds.
+ There are many possible ways to configure the script but here are
+ three examples, one for a NETRom/AX25 connect, one for AGW engines and
+ one for tcp/ip.
- abort abort is a regular expression containing one or more strings to look
- for to abort a connection. This is a perl regular expression and is
- executed ignoring case.
- connect connect followed by ax25 or telnet and some type dependent
- information. In the case of a telnet connection, there can be up to
- two parameters.
- The first is the ip address or hostname of the computer you wish to
- connect to and the second is the port number you want to use (this
- can be left out if it is a normal telnet session).
- In the case of an ax25 session then this would normally be a call to
- ax25_call or netrom_call as in the example above. It is your
- responsibility to get your node and other ax25 parameters to work
- before going down this route!
- ' line in a chat type script. The words/phrases normally come in pairs,
- either can be empty. Each line reads input from the connection until
- it sees the string (or perl regular expression) contained in the
- left hand string. If the left hand string is empty then it doesn't
- read or wait for anything. The comparison is done ignoring case.
- When the left hand string has found what it is looking for (if it is)
- then the right hand string is sent to the connection.
- This process is repeated for every line of chat script.
+ timeout 60
+ abort (Busy|Sorry|Fail)
+ # don't forget to chmod 4775 netrom_call!
+ connect ax25 /usr/sbin/netrom_call bbs gb7djk g1tlh
+ # you can leave this out if you call the script 'gb7dxm'
+ client gb7dxm ax25
- client client starts the connection, put the arguments you would want here
- if you were starting the client program manually. You only need this
- if the script has a different name to the callsign you are trying to
- connect to (i.e. you have a script called other which actually
- connects to GB7DJK-1 [instead of a script called gb7djk-1]).
- There are many possible ways to configure the script but here are two
- examples, one for a NETRom/AX25 connect and one for tcp/ip.
timeout 60
abort (Busy|Sorry|Fail)
- # don't forget to chmod 4775 netrom_call!
- connect ax25 /usr/sbin/netrom_call bbs gb7djk g1tlh
+ # this does exactly the same as the previous example
+ # the '1' is the AGW port number to connect thru for g1tlh
+ connect agw 1 g1tlh
# you can leave this out if you call the script 'gb7dxm'
client gb7dxm ax25
client gb7djk telnet
+
+
+
Both these examples assume that everything is set up properly at the
other end. You will find other examples in the /spider/examples
directory.
- 3\b3.\b.5\b5.\b. S\bSt\bta\bar\brt\bti\bin\bng\bg t\bth\bhe\be c\bco\bon\bnn\bne\bec\bct\bti\bio\bon\bn
+
+
+ 3\b3.\b.7\b7.\b. S\bSt\bta\bar\brt\bti\bin\bng\bg t\bth\bhe\be c\bco\bon\bnn\bne\bec\bct\bti\bio\bon\bn
You start the connection, from within a sysop enabled cluster login,
by typing in the word _\bc_\bo_\bn_\bn_\be_\bc_\bt followed by a script name like this ....
This will start a connection using the script called _\bg_\bb_\b7_\bd_\bj_\bk_\b-_\b1. You
can follow the connection by watching the term or console from where
- you started _\bc_\bl_\bu_\bs_\bt_\be_\br_\b._\bp_\bl. You should see something like this ...
+ you started _\bc_\bl_\bu_\bs_\bt_\be_\br_\b._\bp_\bl. From version 1.47 onwards, you will need to
+ set/debug connect first. You should see something like this ...
avoid this use the following line ...
+
+
+
+
In a script, this might look like ...
- 3\b3.\b.6\b6.\b. T\bTe\bel\bln\bne\bet\bt e\bec\bch\bho\bo
+ 3\b3.\b.8\b8.\b. T\bTe\bel\bln\bne\bet\bt e\bec\bch\bho\bo
Cluster links in particular suffer greatly from the presence of telnet
echo. This is caused by the telnet negotiation itself and can create
Telnet echo itself should only be a problem if the connection is being
made to the telnet port (23). This port uses special rules that
include echo negotiation. If the connection is to a different port,
- such as 8000, this negotiation does not happen and therefore no echo
+ such as 7300, this negotiation does not happen and therefore no echo
should be present.
# check every 10 minutes to see if gb7xxx is connected and if not
# start a connect job going
- 0,10,20,30,40,50 * * * * start_connect('gb7xxx') if !connected('gb7xxx')
+ 0,10,20,30,40,50 * * * * start_connect('gb7xxx') if unless connected('gb7xxx')