c552afab5ab2929ff9dfd8e01500615473d06886
[spider.git] / txt / installation_en.txt
1   The DXSpider Installation Manual v1.50
2   Iain Philipps, G0RDI (g0rdi@77hz.com), Ian Maude, G0VGS,
3   (g0vgs@gb7mbc.net) and Charlie Carroll, K1XX,
4   (k1xx@ptcnh.net)
5   March 2003 revision 0.7
6
7   A reference for SysOps of the DXSpider DXCluster program.
8   ______________________________________________________________________
9
10   Table of Contents
11
12
13   1. Linux Installation
14      1.1 Introduction
15      1.2 Preparation
16      1.3 Installing the software
17      1.4 Setting callsigns etc
18      1.5 The client program
19      1.6 Starting up for the first time
20
21   2. Linux quick installation guide
22   3. Setting up the AX25 Utilities
23      3.1 Getting Started
24      3.2 The kernel
25      3.3 Installing the RPM's
26      3.4 Configuration
27      3.5 axports
28      3.6 nrports
29      3.7 nrbroadcast
30      3.8 ax25d.conf
31      3.9 node.conf
32      3.10 Getting it all running
33
34   4. Configuration
35      4.1 Allowing ax25 connects from users
36      4.2 Allowing telnet connects from users
37      4.3 Setting up telnet connects (from 1.47 onwards)
38      4.4 Setting up for AGW Engine (1.47 onwards)
39      4.5 Setting up node connects
40      4.6 Connection scripts
41      4.7 Starting the connection
42      4.8 Telnet echo
43      4.9 Autostarting the cluster
44
45   5. Microsoft Windows Installation
46      5.1 Introduction
47      5.2 The requirements
48      5.3 The system
49      5.4 Perl
50      5.5 Additional packages
51      5.6 Getting Spider
52
53   6. Installing the software
54      6.1 Incoming telnets
55      6.2 The AGW packet engine
56      6.3 Setting up the initial user files
57      6.4 Connecting to other clusters
58
59   7. General Information
60      7.1 The crontab file
61
62
63   ______________________________________________________________________
64
65
66
67   \e[1m1.  Linux Installation\e[0m
68
69   \e[1m1.1.  Introduction\e[0m
70
71   This section describes the installation of DX Spider v1.50 on a RedHat
72   Linux Distribution.  Wherever possible I will try to include
73   differences for other distributions.
74
75
76   I am assuming a general knowledge of Linux and its commands.  You
77   should know how to use \e[4mtar\e[24m and how to edit files using your favourite
78   editor.
79
80
81   The crucial ingredient for all of this is Perl.  Earlier versions of
82   Spider required perl 5.004, however it is now \e[4mSTRONGLY\e[24m recommended
83   that you use at least version 5.005_03 as this is the version being
84   used in the development of Spider.
85
86
87   In addition to the standard Red Hat distribution you will require the
88   following modules from http://www.cpan.org/modules/by-module/ , please
89   note however that with later versions of perl, some of these modules
90   may be included with the distribution.  Get the modules anyway and try
91   to install as below.  If they complain, they are probably already a
92   part of your perl distribution.
93
94
95
96   o  Data-Dumper-2.101.tar.gz
97
98   o  TimeDate-1.10.tar.gz
99
100   o  IO-1.20.tar.gz (for perl 5.00403 and lower)
101
102   o  Net-Telnet-3.03.tar.gz
103
104   o  Curses-1.06.tar.gz
105
106   o  Time-HiRes-01.20.tar.gz
107
108   o  Digest-SHA1-2.01.tar.gz
109
110
111   Copy the CPAN modules listed above to a convenient place on your
112   computer. One good place would be /usr/local/packages, and the
113   instructions which follow will assume that that's where you have put
114   them.
115
116
117   Log in as 'root', and make sure you're at '/root' before you continue.
118   Here are exactly the commands you must issue next: -
119
120
121
122   # tar xvfz /usr/local/packages/Data-Dumper-2.101.tar.gz
123   # cd Data-Dumper-2.101
124   # perl Makefile.PL
125   # make test
126   # make install
127   # cd ..
128   #
129   # tar xvfz /usr/local/packages/TimeDate-1.10.tar.gz
130   # cd TimeDate-1.10
131   # perl Makefile.PL
132   # make test
133   # make install
134   # cd ..
135   #
136   # tar xvfz /usr/local/packages/IO-1.20.tar.gz
137   # cd IO-1.20
138   # perl Makefile.PL
139   # make test
140   # make install UNINST=1
141   # cd ..
142   #
143   # tar xvfz /usr/local/packages/Net-Telnet-3.03.tar.gz
144   # cd Net-Telnet-3.02
145   # perl Makefile.PL
146   # make test
147   # make install
148   # cd ..
149   #
150   # tar xvfz /usr/local/packages/Curses-1.06.tar.gz
151   # cd Curses-1.06
152   # perl Makefile.PL
153   # make test
154   # make install
155   # cd ..
156   #
157   # tar xvfz /usr/local/packages/Time-HiRes-01.20.tar.gz
158   # cd Time-HiRes-01.20
159   # perl Makefile.PL
160   # make test
161   # make install
162   # cd ..
163   #
164   # tar xvfz /usr/local/packages/Digest-SHA1-2.01.tar.gz
165   # cd Digest-SHA1-2.01
166   # perl Makefile.PL
167   # make test
168   # make install
169   # cd ..
170
171
172
173   Do not fall into the trap of thinking they're all the same, just
174   because they nearly are! Pay particular attention to the instructions
175   of \e[4mIO\e[24m, above.
176
177
178
179   \e[1m1.2.  Preparation\e[0m
180
181   I will assume that you have already downloaded the latest tarball of
182   the DXSpider software and are ready to install it. I am assuming
183   version 1.50 for this section but of course you would use the latest
184   version.
185
186
187   Login as root and create a user to run the cluster under.  \e[4mUNDER\e[24m \e[4mNO\e[0m
188   \e[4mCIRCUMSTANCES\e[24m \e[4mUSE\e[24m \e[4mROOT\e[24m \e[4mAS\e[24m \e[4mTHIS\e[24m \e[4mUSER!\e[24m.  I am going to use the name
189   \e[4msysop\e[24m.  You can call it anything you wish.  Depending on your security
190   requirements you may wish to use an existing user, however this is
191   your own choice.
192
193
194
195        # adduser -m sysop
196
197
198
199   For SuSE distributions, the command would be ..
200
201
202
203        # useradd -m sysop
204
205
206
207   Now set a password for the user ...
208
209
210
211        # passwd sysop
212        # New UNIX password:
213        # Retype new UNIX password:
214        passwd: all authentication tokens updated successfully
215
216
217
218   \e[1m1.3.  Installing the software\e[0m
219
220   Now to unpack the DX Spider distribution, set symbolic links and group
221   permissions.  Copy the tarball to /home/sysop and do the following.
222
223
224
225        # cd ~sysop
226        # tar xvfz spider-1.50.tar.gz
227        # ln -s ~sysop/spider /spider
228        # groupadd -g 251 spider       (or another number)
229
230
231
232   If you do not have the command \e[4mgroupadd\e[24m available to you simply add a
233   line in /etc/group by hand.
234
235
236
237        # vi /etc/group                (or your favorite editor)
238
239
240
241   You also need to add some others to the group, including your own
242   callsign (this will be used as an alias) and root.  The finished line
243   in /etc/group should look something like this
244
245   spider:x:251:sysop,g0vgs,root
246
247
248   The next step is to set the permissions on the Spider directory tree
249   and files ....
250
251
252
253        # chown -R sysop.spider spider
254        # find . -type d -exec chmod 2775 {} \;
255        # find . -type f -exec chmod 775 {} \;
256
257
258
259   This last step allows various users of the group \e[4mspider\e[24m to have write
260   access to all the directories.  This is not really needed just yet but
261   will be useful when web interfaces start to appear.
262
263
264   Finally, you need to fix the permissions on the ax25_call and
265   netrom_call programs.  Check where they are with the \e[4mlocate\e[24m command
266   and alter the permissions with the \e[4mchmod\e[24m command like this ..
267
268
269
270        # chown root ax25_call netrom_call
271        # chmod 4775 ax25_call netrom_call
272
273
274
275   \e[1m1.4.  Setting callsigns etc\e[0m
276
277   Now login to your machine as the user you created earlier.  In my case
278   that user is called \e[4msysop\e[24m.  Once logged in, issue the following
279   commands ....
280
281
282
283        $ cd /spider
284        $ mkdir local
285        $ mkdir local_cmd
286        $ cp perl/DXVars.pm.issue local/DXVars.pm
287        $ cd local
288        $ vi DXVars.pm (or your favourite editor)
289
290
291
292   Using the distributed DXVars.pm as a a template, set your cluster
293   callsign, sysop callsign and other user info to suit your own
294   environment.
295
296
297
298        $mycall = "GB7DJK";
299
300
301
302   This is the call sign of your cluster.  If you use an SSID then
303   include it here also.
304
305
306
307        $myalias = "G1TLH";
308
309
310
311   This is the sysop user callsign, normally your own.
312
313
314   \e[1mPLEASE USE CAPITAL LETTERS FOR CALLSIGNS\e[0m
315
316
317   Note that this a perl file which will be parsed and executed as part
318   of the cluster. If you get it wrong then perl will complain when you
319   start the cluster process.  It is important only to alter the text of
320   any section.  Some of the lines look a little odd.  Take this line for
321   example ....
322
323   $myemail = "ianmaude\@btinternet.com";
324
325
326   There appears to be an extra slash in there.  However this has to be
327   there for the file to work so leave it in.
328
329
330   DON'T alter any file in /spider/perl, they are overwritten with every
331   release. Any files or commands you place in /spider/local or
332   /spider/local_cmd will automagically be used in preference to the ones
333   in /spider/perl EVEN while the cluster is running!
334
335
336   Save the new file and change directory to ../perl ....
337
338
339
340        $ cd ../perl
341
342
343
344   Now type the following command which creates the basic user file with
345   you as the sysop.
346
347
348
349        $ ./create_sysop.pl
350
351
352
353   \e[1m1.5.  The client program\e[0m
354
355   In earlier versions of Spider, all the processes were Perl scripts.
356   This was fine but with a lot of users your computer memory would soon
357   be used up.  To combat this a new client was written in "C".  This
358   client only works for \e[4mincoming\e[24m connects at the moment.  Before you can
359   use it though it has to be "made".  CD to /spider/src and type \e[4mmake\e[24m.
360   You should see the output on your screen and hopefully now have a
361   small C program called \e[4mclient\e[24m.  Leave it in this directory.
362   \e[1m1.6.  Starting up for the first time\e[0m
363
364   We can now bring spider up for the first time and see if all is well
365   or not!  It should look something like this ...
366
367
368
369        $ ./cluster.pl
370        DXSpider DX Cluster Version 1.50
371        Copyright (c) 1998 Dirk Koopman G1TLH
372        loading prefixes ...
373        loading band data ...
374        loading user file system ...
375        starting listener ...
376        reading existing message headers
377        reading cron jobs
378        orft we jolly well go ...
379
380
381
382   If all is well then login on another term or console as \e[4msysop\e[24m and cd
383   to /spider/src.  Now issue the following command ...
384
385
386
387        $ ./client
388
389
390
391   This should log you into the cluster as the sysop under the alias
392   callsign we set earlier.  In this case the callsign is G0VGS.  The
393   cluster callsign is set in the DXVars.pm file in /spider/local.  In
394   this case we will assume that this was set as GB7MBC.  You should
395   therefore see this when you login ....
396
397
398
399        G0VGS de GB7MBC 19-Nov-1999 2150Z >
400
401
402
403   If you do, congratulations!  If not, look over the instructions again,
404   you have probably missed something out.  You can shut spider down
405   again with the command ....
406
407
408
409        shutdown
410
411
412
413   and both the cluster and the client should return to Linux prompts.
414
415
416
417   \e[1m2.  Linux quick installation guide\e[0m
418
419   This section is designed for experienced Spider sysops who want to
420   install Spider from scratch.  It is simply a check list of things that
421   need to be done without any explanations.  The name in brackets at the
422   end of each line is the user that should be doing that process.
423
424
425   o  Login as root
426
427   o  Get the additional CPAN modules and install them (root)
428
429   o  Create the "sysop" user and set a password (root)
430
431   o  Put the Spider tarball in  sysop and untar it (root)
432
433   o  ln -s  sysop/spider /spider (root)
434
435   o  groupadd -g 251 spider (root)
436
437   o  Add any more users you need to the group entry in /etc/group (root)
438
439   o  Set the permissions on the spider tree (root)
440
441   o  Fix permissions on ax25_call and netrom_call (root)
442
443   o  Login as the sysop user
444
445   o  cd to /spider (sysop)
446
447   o  mkdir local (sysop)
448
449   o  mkdir local_cmd (sysop)
450
451   o  cp perl/DXVars.pm.issue local/DXVars.pm (sysop)
452
453   o  cd to /spider/local and edit DXVars to set your details (sysop)
454
455   o  cd ../perl (sysop)
456
457   o  ./create_sysop.pl (sysop)
458
459   o  ./cluster.pl (sysop)
460
461
462   Spider should now be running and you should be able to login using the
463   client program.
464
465
466   o  Login as root
467
468   o  Enter the correct line in ax25d.conf (root)
469
470   o  Enter the correct line in /etc/services (root)
471
472   o  Enter the correct line in /etc/inetd.conf (root)
473
474   o  killall -HUP inetd (root)
475
476
477   Spider should now be able to accept logins via telnet, netrom and
478   ax25.
479
480
481   o  Login as sysop
482
483   o  Start the cluster (sysop)
484
485   o  set/node and type for links (sysop)
486
487   o  Write any connect scripts (sysop)
488
489   o  Edit /spider/crontab as required (sysop)
490
491   o  Edit any other files as necessary (sysop)
492
493   o  Set filters, hops and forwarding files (sysop)
494
495   o  Login as root
496
497   o  Enter the correct line in /etc/inittab (root)
498
499
500   \e[1m3.  Setting up the AX25 Utilities\e[0m
501
502   The aim of this section is not to fully cover the installation and
503   configuration of all the possible ax25 modules.  I will attempt to
504   cover a simple installation and configure 2 serial ports as if they
505   had TNC's on them.  I will also show what additional configuration the
506   DXSpider program requires.
507
508
509   Please bear in mind that I am basing this section on a RedHat 7.1
510   distribution, if you are using SuSe or any other distibution then your
511   mileage may vary.  I will be happy to make any changes and additions
512   if you email me any errors or distribution specific requirements.
513
514
515   You would probably benefit from reading the AX25-HOWTO which is much
516   more comprehensive and an interesting configuration program is also
517   available called ax25-config which may help you to configure things.
518
519
520   The following files are extracts from the working files at GB7MBC and
521   are in daily use.  However, there are many ways that you can configure
522   the ax25 utils, this is just the one I use, it does not mean it is
523   necessarily the best or for that matter, the right way!
524
525
526   \e[1m3.1.  Getting Started\e[0m
527
528   There are 2 things you need to do initially.  You need to get the 3
529   files required for the ax25 installation and you need to make some
530   changes to the kernel configuration.
531
532
533   The first thing is to get the versions of the ax25 utils that match
534   your kernel.  You may also wish to get a node package of some kind.
535   There are 2 main node packages in use of which I shall keep to the
536   original by Tomi Manninen, OH2BNS as this is included in the ax25 rpms
537   as standard.  The other is AWZNode by IZ5AWZ.
538
539
540   NB: The AX25 stuff in 2.4 kernels appears to have been broken until
541   2.4.18.  I strongly suggest you get at least this kernel.
542
543
544   For 2.4 kernels you need these files...
545
546
547
548   o  libax25-0.0.7-7.i386.rpm
549
550   o  ax25-tools-0.0.6-13.i386.rpm
551
552   o  ax25-apps-0.0.4-9.i386.rpm
553
554
555   \e[1m3.2.  The kernel\e[0m
556
557   First you need to add Amateur Radio Support to your kernel.  This is a
558   main menu item and should be easily found.  Within this header you
559   will find lots of options.  For our purposes you need to enable
560   Amateur Radio AX.25 Level 2 Protocol, NET/ROM and the Serial Port KISS
561   Driver.  For the purposes of this document I will work under the
562   assumption that you include them in the kernel fully, ie not as
563   modules.  If you need to look at compiling your kernel for ax25 more
564   fully, I would refer to the excellent AX25-HOWTO
565
566
567   I should say at this stage that NET/ROM is not mandatory.  If you do
568   not use it simply ignore any instruction concerning it.
569
570
571   Now recompile your kernel in the normal way and reboot your system.
572
573
574   \e[1m3.3.  Installing the RPM's\e[0m
575
576   Now install the RPM's you downloaded, libax25 first, then ax25-tools,
577   then ax25-apps.
578
579
580
581        rpm -ivh libax25-0.0.7-7.i386.rpm
582        rpm -ivh ax25-tool-0.0.6-13.i386.rpm
583        rpm -ivh ax25-apps-0.0.4-9.i386.rpm
584
585
586
587   \e[1m3.4.  Configuration\e[0m
588
589   You will find the configuration files in /etc/ax25.  These consist of
590   several files ...
591
592
593   o  axports
594
595   o  nrports
596
597   o  nrbroadcast
598
599   o  ax25d.conf
600
601   o  node.conf
602
603
604   These are the main files. You will find other files but they do not
605   have any use unless you are wanting to use that particular protocol,
606   Rose or axip for example.
607
608
609   NOTE:- before we start it is important to realise that every interface
610   requires a different SSID.  You should be able to follow this in the
611   following examples.
612   \e[1m3.5.  axports\e[0m
613
614   This file sets up the ax25 ports you want to use.  An example is below
615   for a standard TNC2 ...
616
617
618
619        #portname   callsign   baudrate   paclen   window   description
620         2m         gb7mbc-2   19200      256      2        2m port on 144.900MHz
621         4m         gb7mbc-4   19200      256      2        4m port on 70.325MHz
622
623
624
625   Note that the portnames have to be unique.
626
627
628   The file headings are as follows ...
629
630
631   portname        -       The name you will refer to the port by
632   callsign        -       The ax25 callsign you want to assign to the port
633   baudrate        -       The speed you communicate between TNC and computer
634   paclen          -       The maximum packet length for ax25 connections
635   window          -       The ax25 window parameter.  This is like 'maxframe'
636   description     -       A textual description of the port
637
638
639
640   \e[1m3.6.  nrports\e[0m
641
642   This file sets up the netrom ports you want to use.  An example is
643   below and includes a port for both cluster and node.  You will see why
644   we need 2 ports later ...
645
646
647
648        #portname   callsign   alias   paclen   description
649         netrom     gb7mbc-8   BARE    236      Node Netrom Port
650         netrom2    gb7mbc-9   MBCDX   236      Cluster Netrom Port
651
652
653
654   Note that the portnames have to be unique.
655
656
657   The file headings are as follows ...
658
659
660   portname        -       The name you will refer to the port by
661   callsign        -       This is the callsign that NET/ROM traffic from this
662                           port will use
663   alias           -       The NET/ROM alias this port will be assigned
664   paclen          -       The maximum size of NET/ROM frames transmitted
665   description     -       A textual description of the port
666
667
668
669   \e[1m3.7.  nrbroadcast\e[0m
670
671   This file sets up the netrom broadcast qualities.  An example is below
672   ...
673
674
675
676        #axport   min_obs   def_qual   worst_qual   verbose
677         4m       5         10         100          1
678
679
680
681   The file headings are as follows ...
682
683
684   axport          -       The port name in axports that you wish to broadcast
685                           NET/ROM on.
686   min_obs         -       The minimum obsolescence value for the port
687   def_qual        -       The default quality for the port
688   worst_qual      -       The worst quality for the port.  Any routes under
689                           this quality will be ignored
690   verbose         -       This flag determines whether you will only broadcast
691                           your own node (0) or all known nodes (1)
692
693
694
695   \e[1m3.8.  ax25d.conf\e[0m
696
697   This file controls any incoming ax25 and NET/ROM connections and
698   steers them to the relevant program.  There are lots of configuration
699   options you can set here, however they are well covered in the
700   AX25-HOWTO.  For our purposes I will show a typical set of parameters.
701   An example is below ...
702
703
704
705   [gb7mbc-0 via 2m]
706   parameters    2 1   6  900 *  15  0
707   NOCALL *  *  *  *  *  *  L
708   default  * * * * * *  - sysop /spider/src/client client %u ax25
709
710   [gb7mbc-1 via 2m]
711   parameters    2 1   6  900 *  15  0
712   NOCALL *  *  *  *  *  *  L
713   default *  *  *  *  *  *  0  root  /usr/sbin/node  node
714
715   [gb7mbc-0 via 4m]
716   parameters    2 1   6  900 *  15  0
717   NOCALL *  *  *  *  *  *  L
718   default  * * * * * *  - sysop /spider/src/client client %u ax25
719
720   [gb7mbc-1 via 4m]
721   parameters    2 1   6  900 *  15  0
722   NOCALL *  *  *  *  *  *  L
723   default *  *  *  *  *  *  0  root /usr/sbin/node  node
724
725   <netrom2>
726   parameters 1    10 * * * 3 *
727   NOCALL *  *  *  *  *  *  L
728   default  * * * * * *  - sysop /spider/src/client client %u ax25
729
730   <netrom>
731   parameters 1    10 * * * 3 *
732   NOCALL *  *  *  *  *  *  L
733   default *  *  *  *  *  *  0  root  /usr/sbin/node  node
734
735
736
737   There are a few things to take note of here.  Firstly, all ax25
738   sections are wrapped in [ ] and all NET/ROM sections are wrapped in <
739   >.  Secondly you should be able to see that anyone who forgets to set
740   their callsign in a TNC and tries to connect with the standard NOCALL
741   set into their TNC will not connect, the 'L' means 'lockout'.  Lastly
742   and importantly, notice the order of the sections.  They are all done
743   in interface order.
744
745
746   You should be able to see that the normal line for access to the
747   cluster is like this ..
748
749
750
751        default  * * * * * *  - sysop /spider/src/client client %u ax25
752
753
754
755   however, if you wish your users to be able to use SSID's on their
756   callsigns ..
757
758
759
760        default  * * * * * *  - sysop /spider/src/client client %s ax25
761
762
763
764   For most purposes this is not desirable. The only time you probably
765   will need this is when you need to allow other cluster nodes that are
766   using SSID's in. In this case it would probably be better to use the
767   first example and then add a specific line for that node like this:
768
769
770
771        GB7DJK-2  * * * * * *  - sysop /spider/src/client client gb7djk-2 ax25
772        default  * * * * * *  - sysop /spider/src/client client %u ax25
773
774
775
776   \e[1m3.9.  node.conf\e[0m
777
778   For those of you that wish to run the node, you need to set up the
779   node.conf file.  There are a couple of additional files, node.perms is
780   very similar to the way ftp permissions are set up in NOS systems and
781   node.motd is the message anyone logging into the node will get.  The
782   node.conf file sets all the parameters of the node as you would
783   expect.  An example is below ...
784
785
786
787   # /etc/ax25/node.conf - LinuxNode configuration file
788   #
789   # see node.conf(5)
790
791   # Idle timeout (seconds).
792   #
793   IdleTimeout     1800
794
795   # Timeout when gatewaying (seconds).
796   #
797   ConnTimeout     40000
798
799   # Visible hostname. Will be shown at telnet login.
800   #
801   HostName        gb7mbc.ampr.org
802
803   # ReConnect flag.
804   #
805   ReConnect       off
806
807   # "Local" network.
808   #
809   #LocalNet       44.139.8.48/32
810
811   # Command aliases. See node.conf(5) for the meaning of the uppercase
812   # letters in the name of the alias.
813   #
814   ##Alias         CAllbook 'telnet %{2:44.17.0.53} 1235 %1 s'
815   #Alias          CONVers  'telnet %{2:oh2ti} 3600 "/n %u %{1:139}\n/w *"'
816   #Alias          CLuster  'c hkiclh'
817   Alias           CONV    "telnet lurpac 3600"
818   Alias           BBS     "c 70cm gb7crv"
819   Alias           DXC     "telnet localhost 9000"
820   Alias           MUD     "telnet homer 4000"
821   ##Alias           TEMP    "finger temp@mary.g6phf"
822   ##Alias           TNOS    "c ip1 gb7mbc-5"
823   ##Alias           TUtor   "telnet gb7mbc 3599"
824
825   # Hidden ports.
826   #
827   #HiddenPorts    2
828
829   # External commands. See node.conf(5) for the meaning of the uppercase
830   # letters in the name of the extcmd.
831   #
832   # Flags:        1       Run command through pipe
833   #               2       Reconnected flag
834   #
835   #ExtCmd         TPM     3       nobody  /usr/bin/finger finger tpm
836   #ExtCmd         ECho    1       nobody  /bin/echo echo \%U \%u \%S \%s \%P \%p \%R \%r \%T \%t \%\% \%0 \%{1:foobar} \%{2} \%3 \%4 \%5
837
838   # Node ID.
839   #
840   NodeId          "\nBARE:GB7MBC-1"
841   #NodeId         \033[01;31m***\033[0m
842
843   # Netrom port name. This port is used for outgoing netrom connects.
844   #
845   NrPort          netrom
846
847   # Logging level
848   #
849   LogLevel        3
850
851   # The escape character (CTRL-T)
852   #
853   EscapeChar      ^T
854
855   # Resolve ip numbers to addresses?
856   #
857   ResolveAddrs    off
858
859   # Node prompt.
860   #
861   #NodePrompt     "\n"
862   #NodePrompt     "%s@%h \%i> "
863   NodePrompt      "\nBARE:GB7MBC-1 \%i > "
864   #NodePrompt     "\a\033[36m%U\033[0m de \033[01;32m#LNODE\033[0m:\033[01;33mOH2BNS-10\033[0m> "
865
866
867
868   This should be fairly obvious I hope.
869
870
871   \e[1m3.10.  Getting it all running\e[0m
872
873   Ok, now we have all the relevant files configured, the next step is to
874   get it all running.
875
876
877   The first thing to do is attach the TNC's.  Your TNC's should be in
878   KISS mode and connected to the serial ports involved.
879
880
881   You now use the 'kissattach' command to connect the TNC's to the
882   system like this ...
883
884
885
886        kissattach /dev/ttyS0 2m 44.131.96.199
887        kissattach /dev/ttyS1 4m 44.131.96.199
888
889
890
891   Assuming that 44.131.96.199 is your IP address.  The devices ttyS0 and
892   ttyS1 are com1 and com2 respectively.  Now we can set some parameters
893   ...
894
895
896
897        kissparms -p 2m -t 150 -l 150 -s 50 -r 50
898        kissparms -p 4m -t 150 -l 150 -s 50 -r 50
899
900
901
902   The command 'man kissparms' will give you the explanation of the
903   switches.
904
905
906   Now we need to attach the NET/ROM ports in the same way ...
907
908
909
910        nrattach netrom
911        nrattach netrom2
912
913   All of the above can be put in a file and called from
914   /etc/rc.d/rc.local.  Put all the above commands in a file called
915   rc.ax25 and put a line in rc.local to call it.
916
917
918   Now you can start the daemons that set everything in motion ...
919
920
921
922        ax25d
923        netromd -i
924
925
926
927   All should now be running.  All that remains is to get the node
928   working for telnet connections.  If nothing else, this will allow you
929   to connect to the node yourself to check on connection status etc.
930   There are 2 files that need to be edited.
931
932
933   First edit /etc/services and add
934
935
936
937        node    3000/tcp     #OH2BNS's Node Software
938
939
940
941   Assuming you want it to run on port 3000
942
943
944   Now cd /etc/xinetd.d and edit a new file called node.  It should look
945   like this ...
946
947
948
949        # default: on
950        #       unencrypted username/password pairs for authentication.
951        service node
952        {
953                socket_type     = stream
954                wait            = no
955                user            = root
956                server          = /usr/sbin/node
957                log_on_failure  += USERID
958                disable         = no
959        }
960
961
962
963   You now need to restart the xinetd daemon.  First find out what the
964   PID is like so ..
965
966
967
968        ps auxw |grep xinetd
969
970
971
972   You will get a reply something like this ...
973
974
975
976        root       592  0.0  0.1  2256  620 ?        S    Feb07   0:00 xinetd -stayalive -reuse -pidfile /var/run/xinetd.pid
977
978
979
980   The PID or Process ID is 592 in this case so now we can issue the
981   command ...
982
983
984
985        kill -HUP 592
986
987
988
989   All should now be operational and you should be able to log into the
990   node by using a telnet session to the relevant port, like so ...
991
992
993
994        telnet localhost 3000
995
996
997
998   If that works, you are just about there.  you should (assuming you
999   have radios connected to the TNC's) be able to connect out to other
1000   stations and receive incoming ax25 and netrom connections.
1001
1002
1003   \e[1m4.  Configuration\e[0m
1004
1005   \e[1m4.1.  Allowing ax25 connects from users\e[0m
1006
1007   This is dealt with in the previous section
1008
1009
1010   \e[1m4.2.  Allowing telnet connects from users\e[0m
1011
1012
1013   >From version 1.47 there is a new (more efficient) way of doing this
1014   (see next section) but, if you prefer, the method of doing it
1015   described here will continue to work just fine.
1016
1017
1018   Allowing telnet connections is quite simple.  Firstly you need to add
1019   a line in /etc/services to allow connections to a port number, like
1020   this ....
1021
1022
1023
1024        spdlogin   8000/tcp     # spider anonymous login port
1025
1026
1027
1028   Then add a line in /etc/inetd.conf like this ....
1029
1030        spdlogin stream tcp nowait root /usr/sbin/tcpd /spider/src/client login telnet
1031
1032
1033
1034   Once this is done, you need to restart inetd like this ....
1035
1036
1037
1038        killall -HUP inetd
1039
1040
1041
1042   Now login as \e[4msysop\e[24m and cd spider/src. You can test that spider is
1043   accepting telnet logins by issuing the following command ....
1044
1045
1046
1047        ./client login telnet
1048
1049
1050
1051   You should get a login prompt and on issuing a callsign, you will be
1052   given access to the cluster.  Note, you will not get a password login.
1053   There seems no good reason for a password prompt to be given so it is
1054   not asked for.
1055
1056
1057   Assuming all is well, then try a telnet from your linux console ....
1058
1059
1060
1061        telnet localhost 8000
1062
1063
1064
1065   You should now get the login prompt and be able to login as before.
1066
1067
1068   \e[1m4.3.  Setting up telnet connects (from 1.47 onwards)\e[0m
1069
1070   >From version 1.47 you can choose to allow the perl cluster.pl program
1071   to allow connections directly (i.e. not via the /spider/src/client
1072   interface program). If you are using Windows then this is the only
1073   method available of allowing incoming telnet connections.
1074
1075
1076   To do this you need first to remove any line that you may previously
1077   have set up in /etc/inetd.conf. Remember to:-
1078
1079
1080
1081        killall -HUP inetd
1082
1083
1084
1085   to make the change happen...
1086
1087
1088   Having done that, you need to copy the file \e[4m/spider/perl/Listeners.pm\e[0m
1089   to \e[4m/spider/local\e[24m and then edit it. You will need to uncomment the line
1090   containing "0.0.0.0" and select the correct port to listen on. So that
1091   it looks like this:-
1092
1093
1094
1095        @listen = (
1096            ["0.0.0.0", 8000],
1097        );
1098
1099
1100
1101   As standard, the listener will listen on all interfaces
1102   simultaneously.  If you require more control than this, you can
1103   specify each interface individually:-
1104
1105
1106
1107        @listen = (
1108            ["gb7baa.dxcluster.net", 8000],
1109            ["44.131.16.2", 6300],
1110        );
1111
1112
1113
1114   This will only be successful if the IP addresses on each interface are
1115   static.  If you are using some kind of dynamic IP addressing then the
1116   'default' method is the only one that will work.
1117
1118
1119   Restart the cluster.pl program to enable the listener.
1120
1121
1122   One important difference with the internal listener is that no echoing
1123   is done by the cluster program. Users will need to set 'local-echo' on
1124   in their telnet clients if it isn't set automatically (as per the
1125   standards).  Needless to say this will probably only apply to Windows
1126   users.
1127
1128
1129   \e[1m4.4.  Setting up for AGW Engine (1.47 onwards)\e[0m
1130
1131   AGW Engine is a Windows based ax25 stack. You can connect to an AGW
1132   engine from Linux as well as Windows based machines.
1133
1134
1135   In order to enable access to an AGW Engine you need to copy
1136   \e[4m/spider/perl/AGWConnect.pm\e[24m to \e[4m/spider/local\e[24m and edit it.  Specifically
1137   you must:-
1138
1139
1140   o  set $enable to 1.
1141
1142   o  set $login and $passwd to the values set up in your AGW
1143      installation.  If you haven't set any there, then you should not
1144      touch these values.
1145
1146
1147   o  You can connect to a remote AGW engine (ie on some other machine)
1148      by changing $addr and $port appropriately.
1149
1150   o  Restart the cluster.pl program
1151
1152
1153
1154   \e[1m4.5.  Setting up node connects\e[0m
1155
1156   In order to allow cluster node connections, spider needs to know that
1157   the connecting callsign is a cluster node.  This is the case whether
1158   the connect is incoming or outgoing.  In spider this is a simple task
1159   and can be done in runtime.
1160
1161
1162   Later versions of Spider can distinguish different software and treat
1163   them differently.  For example, the WCY beacon cannot be handles by
1164   AK1A type nodes as AK1A does not know what to do with PC73.  There are
1165   4 different types of node at present and although they may not have
1166   any major differences at the moment, it allows for compatibility.  The
1167   4 types are ...
1168
1169
1170
1171        set/node        (AK1A type)
1172        set/spider
1173        set/dxnet
1174        set/clx
1175
1176
1177
1178   For now, we will assume that the cluster we are going to connect to is
1179   an AK1A type node.
1180
1181
1182   Start up the cluster as you did before and login as the sysop with
1183   client.  The cluster node I am wanting to make a connection to is
1184   GB7BAA but you would obviously use whatever callsign you required.  At
1185   the prompt type ...
1186
1187
1188
1189        set/node gb7baa
1190
1191
1192
1193   The case does not matter as long as you have a version of DXSpider
1194   later than 1.33.  Earlier versions required the callsign to be in
1195   upper case.
1196
1197
1198   That is now set, it is as simple as that.  To prove it, login on yet
1199   another console as sysop, cd to spider/src and issue the command ...
1200
1201
1202
1203        ./client gb7baa (using the callsign you set as a node)
1204
1205
1206
1207   You should get an initialisation string from DXSpider like this ...
1208
1209
1210
1211        ./client gb7baa
1212        PC38^GB7MBC^~
1213
1214
1215
1216   If the callsign you just set up as a cluster node is for an incoming
1217   connect, this is all that needs to be done.  If the connection is to
1218   be outgoing then a connection script needs to be written.
1219
1220
1221   Sometimes you make a mistake... Honest, it does happen.  If you want
1222   to make a node back to being a normal user, regardless of what type it
1223   is, do:
1224
1225
1226
1227        unset/node gb7baa
1228
1229
1230
1231   \e[1m4.6.  Connection scripts\e[0m
1232
1233   Because DXSpider operates under Linux, connections can be made using
1234   just about any protocol;  AX25, NETRom, tcp/ip, ROSE etc are all
1235   possible examples.  Connect scripts live in the /spider/connect
1236   directory and are simple ascii files.  Writing a script for
1237   connections is therefore relatively simple.
1238
1239
1240   The connect scripts consist of lines which start with the following
1241   keywords or symbols:-
1242
1243
1244
1245      \e[1m#  \e[22mAll lines starting with a # are ignored, as are completely blank
1246         lines.
1247
1248
1249      \e[1mtimeout\e[0m
1250         timeout followed by a number is the number of seconds to wait
1251         for a command to complete. If there is no timeout specified in
1252         the script then the default is 60 seconds.
1253
1254
1255      \e[1mabort\e[0m
1256         abort is a regular expression containing one or more strings to
1257         look for to abort a connection. This is a perl regular
1258         expression and is executed ignoring case.
1259
1260
1261      \e[1mconnect\e[0m
1262         connect followed by ax25, agw (for Windows users) or telnet and
1263         some type dependent information. In the case of a telnet
1264         connection, there can be up to two parameters.  The first is the
1265         ip address or hostname of the computer you wish to connect to
1266         and the second is the port number you want to use (this can be
1267         left out if it is a normal telnet session).  In the case of an
1268         ax25 session then this would normally be a call to ax25_call or
1269         netrom_call as in the example above. It is your responsibility
1270         to get your node and other ax25 parameters to work before going
1271         down this route!
1272
1273
1274      \e[1m'  \e[22m' is the delimiting character for a word or phrase of an
1275         expect/send line in a chat type script. The words/phrases
1276         normally come in pairs, either can be empty. Each line reads
1277         input from the connection until it sees the string (or perl
1278         regular expression) contained in the left hand string. If the
1279         left hand string is empty then it doesn't read or wait for
1280         anything. The comparison is done ignoring case.  When the left
1281         hand string has found what it is looking for (if it is) then the
1282         right hand string is sent to the connection.  This process is
1283         repeated for every line of chat script.
1284
1285
1286      \e[1mclient\e[0m
1287         client starts the connection, put the arguments you would want
1288         here if you were starting the client program manually. You only
1289         need this if the script has a different name to the callsign you
1290         are trying to connect to (i.e. you have a script called other
1291         which actually connects to GB7DJK-1 [instead of a script called
1292         gb7djk-1]).
1293
1294
1295   There are many possible ways to configure the script but here are
1296   three examples, one for a NETRom/AX25 connect, one for AGW engines and
1297   one for tcp/ip.
1298
1299
1300
1301        timeout 60
1302        abort (Busy|Sorry|Fail)
1303        # don't forget to chmod 4775 netrom_call!
1304        connect ax25 /usr/sbin/netrom_call bbs gb7djk g1tlh
1305        # you can leave this out if you call the script 'gb7dxm'
1306        client gb7dxm ax25
1307
1308
1309
1310        timeout 60
1311        abort (Busy|Sorry|Fail)
1312        # this does exactly the same as the previous example
1313        # the '1' is the AGW port number to connect thru for g1tlh
1314        connect agw 1 g1tlh
1315        # you can leave this out if you call the script 'gb7dxm'
1316        client gb7dxm ax25
1317
1318
1319
1320        timeout 15
1321        connect telnet dirkl.tobit.co.uk
1322        # tell GB7DJK-1 that it is connected to GB7DJK
1323        # you can leave this out if you call this script 'gb7djk'
1324        client gb7djk telnet
1325
1326   Both these examples assume that everything is set up properly at the
1327   other end.  You will find other examples in the /spider/examples
1328   directory.
1329
1330
1331   \e[1m4.7.  Starting the connection\e[0m
1332
1333   You start the connection, from within a sysop enabled cluster login,
1334   by typing in the word \e[4mconnect\e[24m followed by a script name like this ....
1335
1336
1337
1338        G0VGS de GB7MBC 13-Dec-1998 2041Z >connect gb7djk-1
1339        connection to GB7DJK-1 started
1340        G0VGS de GB7MBC 13-Dec-1998 2043Z >
1341
1342
1343
1344   This will start a connection using the script called \e[4mgb7djk-1\e[24m.  You
1345   can follow the connection by watching the term or console from where
1346   you started \e[4mcluster.pl\e[24m.  From version 1.47 onwards, you will need to
1347   set/debug connect first.  You should see something like this ...
1348
1349
1350
1351        <- D G1TLH connect gb7djk-1
1352        -> D G1TLH connection to GB7DJK-1 started
1353        -> D G1TLH G1TLH de GB7DJK 13-Dec-1998 2046Z >
1354        timeout set to 15
1355        CONNECT sort: telnet command: dirkl.tobit.co.uk
1356        CHAT "login" -> "gb7djk"
1357        received "
1358        Red Hat Linux release 5.1 (Manhattan)
1359        Kernel 2.0.35 on an i586
1360        "
1361        received "login: "
1362        sent "gb7djk"
1363        CHAT "word" -> "gb7djk"
1364        received "gb7djk"
1365        received "Password: "
1366        sent "gb7djk"
1367        Connected to GB7DJK-1, starting normal protocol
1368        <- O GB7DJK-1 telnet
1369        -> B GB7DJK-1 0
1370        GB7DJK-1 channel func  state 0 -> init
1371        <- D GB7DJK-1
1372        <- D GB7DJK-1 Last login: Sun Dec 13 17:59:56 from dirk1
1373        <- D GB7DJK-1 PC38^GB7DJK-1^~
1374        <- D GB7DJK-1 PC18^ 1 nodes, 0 local / 1 total users  Max users 0  Uptime
1375        0 00:00^5447^~
1376            etc
1377
1378
1379
1380   With later versions of Spider there is a set/login command for users.
1381   This tells them when a user or node logs in or out.  If you do not add
1382   a line to your scripts after the final line (or before the client line
1383   which should always be last if needed) then the login/logout
1384   information will be sent to users \e[4mbefore\e[24m the login actually completes.
1385   This means if a node is unreachable, it will continue sending logins
1386   and logouts to users even though it is not actually connecting.  To
1387   avoid this use the following line ...
1388   In a script, this might look like ...
1389
1390
1391
1392        timeout 35
1393        abort (Busy|Sorry|Fail)
1394        connect telnet mary 3000
1395
1396
1397
1398   \e[1m4.8.  Telnet echo\e[0m
1399
1400   Cluster links in particular suffer greatly from the presence of telnet
1401   echo.  This is caused by the telnet negotiation itself and can create
1402   at worst severe loops.  At best it creates unnecessary bandwidth and
1403   large logfiles!  There are things that can be done to limit this
1404   problem but will not always work dependent on the route taken to
1405   connect.
1406
1407
1408   Telnet echo itself should only be a problem if the connection is being
1409   made to the telnet port (23).  This port uses special rules that
1410   include echo negotiation.  If the connection is to a different port,
1411   such as 7300, this negotiation does not happen and therefore no echo
1412   should be present.
1413
1414
1415   Sometimes it is not possible to make a direct connection to another
1416   node and this can cause problems.  There is a way of trying to
1417   suppress the telnet echo but this will not always work, unfortunately
1418   it is difficult to be more specific.  Here is an example of what I
1419   mean ...
1420
1421
1422
1423        timeout 35
1424        abort (Busy|Sorry|Fail)
1425        connect telnet mary.lancs.ac.uk
1426
1427
1428
1429   So, the first connection is made by Spider.  This is fine as Spider
1430   uses the Net_Telnet script from within perl.  This actually uses TCP
1431   rather than TELNET so no negotiation will be done on the first
1432   connection.  Once connected to mary.lancs.ac.uk, the command is sent
1433   to suppress echo.  Now a telnet is made to a cluster node that is
1434   accepting connections on port 23.  The problem with this link is that
1435   the negotiation is made by the remote machine, therefore you have no
1436   control over it.  The chances are that this link will create echo and
1437   there will be no way you can stop it.
1438
1439
1440
1441   \e[1m4.9.  Autostarting the cluster\e[0m
1442
1443   Ok, you should now have DXSpider running nicely and allowing connects
1444   by cluster nodes or users.  However, it has to be shutdown and
1445   restarted manually.  It would be much easier to have it start
1446   automatically.
1447
1448
1449
1450   This is not only a way to start the cluster automatically, it also
1451   works as a watchdog, checking the sanity of DXSpider and respawning it
1452   should it crash for any reason.  Before doing the following, shutdown
1453   the cluster as you did earlier.
1454
1455
1456   Login as root and bring up the /etc/inittab file in your favourite
1457   editor.  Add the following lines to the file near the end ...
1458
1459
1460
1461        ##Start DXSpider on bootup and respawn it should it crash
1462        DX:3:respawn:/bin/su -c "/usr/bin/perl -w /spider/perl/cluster.pl" sysop >/dev/tty7
1463
1464
1465
1466   This line works fine for RedHat distributions. It is also fine for
1467   SuSE up to 7.0.  From SuSE 7.1 you need to add runlevels 2 and 5 like
1468   this ...
1469
1470
1471
1472        DX:235:respawn:/bin/su -c "/usr/bin/perl -w /spider/perl/cluster.pl" sysop >/dev/tty7
1473
1474
1475
1476   The line required for Slackware distributions is slightly different.
1477   My thanks to Aurelio, PA3EZL for this information.
1478
1479
1480
1481        DX:23:respawn:/bin/su - sysop -c "/usr/bin/perl -w /spider/perl/cluster.pl" >/dev/tty7
1482
1483
1484
1485   This will automatically start DXSpider on tty7 (ALT-F7) on bootup and
1486   restart it should it crash for any reason.
1487
1488
1489   NB: It should be noted that /dev/tty7 is only an example.  Some SuSE
1490   systems will only accept upto tty6.  It really does not matter which
1491   tty you run it on.
1492
1493
1494   As root type the command \e[4mtelinit\e[24m \e[4mq\e[24m.  DXSpider should start up
1495   immediately.  You will see the output on tty7 and if you login as
1496   \e[4msysop\e[24m you should find everything running nicely.
1497
1498
1499   \e[1m5.  Microsoft Windows Installation\e[0m
1500
1501   \e[1m5.1.  Introduction\e[0m
1502
1503   \e[1mIMPORTANT:\e[0m
1504
1505   What you'll be left with once you've followed these instructions is
1506   (hopefully) a working DX Spider v1.50 system that is capable of
1507   accepting or originating "internet" connections, plus inbound and
1508   outbound AX.25 and TCP/IP radio connections.
1509
1510   On the other hand, you may have an enquiring mind, or better yet, may
1511   be looking for a useful way of connecting your current (perhaps) AK1A
1512   cluster "to the internet" via some networking mechanism (BPQEther,
1513   etc) or other. I won't be producing instructions for the latter case,
1514   because I don't have an AK1A to play with. But someone might ...
1515
1516   Whatever, this document is intended to get you started with DX Spider
1517   in a Microsoft Windows (TM) environment. It's not intended to teach
1518   you anything other than how to perform a minimum configuration of a DX
1519   Spider installation and have it able to connect across "the internet"
1520   to other DX Clusters, while accepting inbound TELNET and radio
1521   connections.
1522
1523
1524   \e[1m5.2.  The requirements\e[0m
1525
1526   The very first things you're going to need are (in order of
1527   importance):-
1528
1529
1530   o  A cup of good, strong tea
1531
1532   o  A supported Windows platform with an internet connection so you can
1533      download the necessary software bits and bobs directly to it. There
1534      are other ways, but this is preferable.
1535
1536   o  Another cup of good, strong tea
1537
1538   o  If all goes according to plan, about an hour to spare
1539
1540   o  Plenty of good, strong tea
1541
1542
1543   \e[1m5.3.  The system\e[0m
1544
1545   The platform I used to generate these instructions was a "vanilla"
1546   Microsoft Windows Me 4.90.3000 system, with a 700MHz AMD Athlon
1547   processor and 96 Mb memory. I've also personally verified that it runs
1548   on my laptop (Pentium 266MHz, 32 Mb memory, Windows 98 SE v4.10.2222
1549   A) and a computer that I assembled from a random pile of junk (AMD
1550   K6-2 333MHz, 64 Mb memory, Windows 98 v4.10.1998). As a result, I have
1551   reason to believe that what I'm about to describe will perform equally
1552   on any 32-bit MS Windows environment with 32 Mb of memory.
1553
1554   Because of the changes that have recently been made to the core
1555   "cluster.pl" module and the introduction of a very lightweight
1556   "winclient.pl", I have a sneaking suspicion that this will now run on
1557   any platform that has reasonably complete support for Perl. Is there
1558   someone out there with both an enquiring mind and (say) a Macintosh,
1559   for instance?
1560
1561   Please bear in mind, though, that my instructions relate solely to how
1562   to get this going under a Microsoft Windows environment, and I have
1563   zero intention of trying to make them say otherwise.
1564
1565
1566   \e[1m5.4.  Perl\e[0m
1567
1568   Install your chosen Perl environment. Unless you have a very good
1569   reason for not doing so, I strongly suggest that you use ActivePerl
1570   v5.6. For my testing & development, I used build 623.  (A recent
1571   installation used the newer ActivePerl v5.6.1, build 633 without any
1572   noticable difficulty.)  You can get this from:
1573   http://www.activestate.com/Products/ActivePerl/Download.html
1574
1575
1576   The link takes you to an initial page of System Requirements and
1577   Software Prerequisites.  If you do not have it already installed, you
1578   can download and install the Windows Installer 2.0 for a Win98
1579   installation.  Be forewarned, you will have to reboot your PC at the
1580   completion of the installer's installation.
1581
1582   If you already have the installer on your PC, simply click on the Next
1583   arrow at the bottom of the page.  Two clicks will finally get you to
1584   the actual download page.  The MSI version of Build 633 is now 8.6MB
1585   in size, so make that a big cup of tea or coffee if you're on a slow
1586   dial-up connection.
1587
1588   During installation, please ensure that you do choose the options to
1589   "Add Perl to the PATH environment variable" and "Create Perl file
1590   extension association"; it will make your life so much easier. Once
1591   the installation is finished, be sure to reboot your PC. You probably
1592   won't be told anywhere else that this needs to be done now, but it
1593   does. Really.
1594
1595   Once you've rebooted, open a "DOS box" (Start > Run > command might do
1596   it, if you can't find it elsewhere) and from wherever it lands, type
1597   PERL -v <ENTER> (it's better if that's a lower-case be rewarded with
1598   some interesting information about your Perl installation. If you're
1599   not, you must go back to the beginning and discover what went wrong
1600   and fix it. It's pointless to proceed unless this simple check is
1601   passed. Assuming it did work, you may now move on.
1602
1603
1604   \e[1m5.5.  Additional packages\e[0m
1605
1606   Some extensions ("packages") need to be added to the base Perl
1607   distribution, and we'll do this next. If you're using the Perl I
1608   recommended, and don't know any better for yourself, then just blindly
1609   following these instructions will work just fine. If that didn't
1610   describe you, then you're on your own.
1611
1612   Visit the following URL:
1613
1614   http://www.activestate.com/PPMPackages/zips/6xx-builds-only/
1615
1616   and download the following files:-
1617
1618
1619
1620        Data-Dumper.zip
1621        Net-Telnet.zip
1622        TimeDate.zip
1623        Time-HiRes.zip
1624        DB_File.zip
1625
1626
1627
1628   If this is a new installation, now would also be a good time to
1629   install a copy of WinZip on your PC.  Make yourself a convenient
1630   directory to unpack all of these zip files into (I put mine in
1631   "D:\ppm>" but "C:\ppm" works just as well.) and do the following (the
1632   bits you type in are blue ).  You can upzip all of the files into the
1633   same directory.  When prompted, simply overwrite the Readme file from
1634   each zip package.  Note that where these files land will be directly
1635   related to where you chose to install your ActivePerl (mine, as you
1636   can probably guess from what follows, went into "D:\Perl"):-
1637
1638
1639
1640   D:\ppm>ppm install Data-Dumper.ppd
1641   Installing package 'Data-Dumper.ppd'
1642   Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.bs
1643   Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.dll
1644   Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.exp
1645   Installing D:\Perl\site\lib\auto\Data\Dumper\Dumper.lib
1646   Installing D:\Perl\html\site\lib\auto\Data\Dumper\Dumper.html
1647   Installing D:\Perl\site\lib\Data\Dumper\Dumper.pm
1648   Writing D:\Perl\site\lib\auto\Data\Dumper\Dumper.packlist
1649   D:\ppm>
1650
1651
1652
1653   I'm not going to bother you with exhaustive details of the rest of
1654   them, but suffice it to say you need to:
1655
1656
1657
1658        ppm install DB_File.ppd
1659        ppm install Net-Telnet.ppd
1660        ppm install TimeDate.ppd
1661        ppm install Time-HiRes.ppd
1662
1663
1664
1665   If all that seemed to work OK, time to move along. Before anyone who
1666   is familiar with PPM tells me that we didn't need to download and keep
1667   those files locally, I knew that. I also knew that PPM is sometimes
1668   awkward to configure via firewalls, and that sometimes the
1669   repositories don't always work the way we'd hope. I do it that way
1670   because it suits me.
1671
1672
1673   \e[1m5.6.  Getting Spider\e[0m
1674
1675   Get the current version of the DX Spider distribution. This needs to
1676   be v1.50 or later. You've got two ways (currently) of getting this;
1677   either get a CVS update from sourceforge (if you don't know what this
1678   is, then it isn't for you) or get the latest "official" release from:
1679
1680   http://www.dxcluster.org/download/index.html
1681
1682   or if you want the lastest snapshot of CVS version (which is produced
1683   every night):-
1684
1685   http://www.dxcluster.org/download/CVSlatest.tgz
1686
1687   This is generally the best one to go for as it is completely up to
1688   date. However, there is always the very slight chance that it might
1689   unstable. Generally, there will be a note on the website if this is
1690   the case.
1691
1692
1693   The only difference between "CVSlatest.tgz" and the latest "official"
1694   release version is that it is more up to date. \e[1mDo not confuse the\e[0m
1695   \e[1m"CVSlatest.tgz" file with "Downloading from Sourceforge with CVS" -\e[0m
1696   \e[1mthey are two quite different things.  \e[22m"Downloading from Sourceforge
1697   with CVS" is explained in a section within the Admin manual.
1698
1699
1700   If you go down the CVS route (ie installing WinCVS as explained in the
1701   Admin manual and downloaded from sourceforge), then everything will be
1702   nicely installed on your local disk. If you got the CVSlatest.tgz
1703   file, unzip (winzip) it to "C:\".  This is an important point since
1704   paths are included within the .tgz file.  Make sure you unzip to the
1705   root directory of whichever drive you use...  "C:\" or "D:\" or ..,
1706   not "C:\spider."  If you double click on CVSlatest.tgz, WinZip should
1707   open with a dialogue box that says the Archive contains a single file
1708   (CVSlatest.tar) and asks whether WinZip should decompress it to a
1709   temporary fold and then open it.  Say "Yes" and then you will get the
1710   typical Classical WinZip listing of files ready for extraction.
1711   Remember, extract them to your desired root directory ("C:\" or "D:\"
1712   or ...).  The following examples assume that you put it on drive
1713   "C:\", for convenience.
1714
1715
1716   \e[1m6.  Installing the software\e[0m
1717
1718   At this point you will need to create 2 additional directories under
1719   "C:\Spider."  Make directories "C:\spider\local" and
1720   "C:\spider\local_cmd".  If "C:\spider" is missing, go back and figure
1721   out why, because it shouldn't be.
1722
1723   Now create your own local copy of the DXVars.pm file by:-
1724
1725
1726
1727        copy c:\spider\perl\DXVars.pm.issue
1728        c:\spider\local\DXVars.pm
1729
1730
1731
1732   Now you'll need to edit this file using a text editor like Notepad. If
1733   nothing else, you can simply
1734
1735
1736
1737        cd \spider\local
1738
1739
1740
1741   and then
1742
1743
1744
1745        notepad DXVars.pm
1746
1747
1748
1749   to bring up an editor window containing the file. As an absolute
1750   minimum you must adjust the following items in DXVars.pm:-
1751
1752
1753   o  $mycall  - Should hold the callsign of your DX Cluster
1754
1755   o  $myname  - The SysOp's first name
1756
1757   o  $myalias - the SysOp's callsign. Cannot be the same as $mycall!
1758
1759   o  $myqth - The station's geographical location (QTH).
1760
1761   o  $mylatitude - The station latitude in degrees and decimal fractions
1762
1763   o  $mylongitude - The station longitude in degrees and decimal
1764      fractions
1765
1766
1767   o  $mylocator - The Maidenhead (or QRA) locator of the station
1768
1769   You really also ought to update the $myqth and $myemail variables. And
1770   unless you are absolutely certain you know what you're doing, you
1771   should change nothing else in this file. Note that if you use an "@"
1772   or a "$" character in one of the above strings (typically in $myemail)
1773   you must write them as "\@" or "\$".
1774
1775
1776   \e[1m6.1.  Incoming telnets\e[0m
1777
1778   If you want to enable inbound "TELNET" connections (or you are running
1779   Windows 98, NT, 2000 or XP), you've got a little more work to do. From
1780   a handy "DOS box" that's not doing anything else, do the following:-
1781
1782
1783
1784        copy \spider\perl\Listeners.pm \spider\local
1785        cd \spider\local
1786        notepad listeners.pm
1787
1788
1789
1790   The following line need attention:-
1791
1792
1793
1794        #               ["0.0.0.0", 7300],
1795
1796
1797
1798   On my machine, I've simply uncommented the "0.0.0.0" entry by removing
1799   the '#' from the front of the line.
1800
1801   \e[1mYou MUST carry out this step if you are running on a Windows 98, NT,\e[0m
1802   \e[1m2000 or XP based system\e[0m
1803
1804   If you don't have a static hostname for your machine, and you intend
1805   to allow folk to connect to your machine across the internet, then I'd
1806   suggest you pay a visit to www.dyndns.org and create one for yourself.
1807   While it's free, it will take a modest amount of effort on your part
1808   to read, understand and implement what needs to be done to set this
1809   up.
1810
1811
1812   If your machine is connected to the internet \e[1mand \e[22myou don't want to
1813   allow your machine to be visible to the outside world you should
1814   change the "0.0.0.0" to "127.0.0.1" [which is "localhost"]. This will
1815   then only allow connections from inside your machine. As was said
1816   earlier: if you aren't running Win9x (or you want to use DXTelnet or
1817   somesuch), then you need to have the machine listening at least to
1818   "127.0.0.1" ("0.0.0.0" means \e[1mall \e[22mIP addresses).
1819
1820
1821   \e[1m6.2.  The AGW packet engine\e[0m
1822
1823   On the assumption that you'll be using the SV2AGW Packet Engine to
1824   interface your radios to the cluster, it would be a good idea to
1825   download the Packet Engine software!  You can get this software from:
1826
1827   http://www.raag.org/sv2agw/agwpe.zip
1828
1829   Depending upon your TNCs, you may also need to get:
1830
1831   http://www.raag.org/sv2agw/drivers.zip
1832
1833   A couple of the tools:
1834
1835   http://www.raag.org/sv2agw/agwterm.zip
1836
1837   http://www.raag.org/sv2agw/agwmonitor.zip
1838
1839   will also help with troubleshooting of the RF links themselves.
1840
1841   Install and configure AGWPE.  You should now create your own local
1842   copy of AGWConnect.pm by:-
1843
1844
1845
1846        copy c:\spider\perl\AGWConnect.pm
1847        c:\spider\local\AGWConnect.pm
1848
1849
1850
1851   and then
1852
1853
1854
1855        notepad AGWConnect.pm
1856
1857
1858
1859   to bring up an editor window containing the file. You must consider
1860   adjusting the following items in AGWConnect.pm:-
1861
1862
1863   o  $enable - set to '1' to enable AGWPE interface
1864
1865   o  $login  - the login ID you chose when you set up the SV2AGW
1866      security :-)
1867
1868   o  $passwd - password that matches $login
1869
1870   The login ID and passwd only need to be set if you are accessing AGW
1871   separately via its web interface.  This interface is normally not
1872   needed for use with DXSpider.
1873
1874
1875   \e[1m6.3.  Setting up the initial user files\e[0m
1876
1877   Next you need to create the initial user files, etc. A tool is
1878   supplied which will do this for you. To run the tool:-
1879
1880
1881
1882        cd \spider\perl
1883        perl create_sysop.pl
1884
1885
1886
1887   If all goes according to plan, you will see no output from this
1888   program, and after a brief wait, your DOS prompt will be returned.
1889
1890   Depending on how brave you are, you might now care to try the
1891   following:-
1892
1893
1894        perl cluster.pl
1895
1896
1897
1898   If you did everything you were told, your DOS window will now hold a
1899   display which looks something like:-
1900
1901
1902
1903        DXSpider DX Cluster Version 1.50
1904        Copyright (c) 1998-2002 Dirk Koopman G1TLH
1905        loading prefixes ...
1906        loading band data ...
1907        loading user file system ...
1908        starting listeners ...
1909        Internal port: localhost 27754
1910        load badwords: Ok
1911        reading in duplicate spot and WWV info ...
1912        reading existing message headers ...
1913        load badmsg: Ok
1914        load forward: Ok
1915        load swop: Ok
1916        @msg = 0 before delete
1917        @msg = 0 after delete
1918        reading cron jobs ...v cron: reading /spider/cmd/crontab
1919        cron: adding 1 0 * * 0
1920        DXUser::export("$main::data/user_asc")
1921        reading database descriptors ...
1922        doing local initialisation ...
1923        orft we jolly well go ...
1924        queue msg (0)
1925
1926
1927
1928   Now, if that's what you've got, you are very nearly home and dry (in
1929   as far as these particular experiments are concerned, anyhow)
1930
1931   If you are running Windows 9x you can access your new cluster (from
1932   the local machine) by finding yourself another "DOS box" and doing the
1933   following:-
1934
1935
1936
1937        cd \spider\perl
1938        perl winclient.pl
1939
1940
1941
1942   If you are running Windows NT, 2000 or XP then winclient.pl does not
1943   work. We don't know why other than this seems to be some kind of
1944   incomaptibility in perl. You can achieve the same thing by telnetting
1945   to the port you defined in Listeners.pm (7300 as default), thus:-
1946
1947
1948
1949        Menu->Start->Run
1950        telnet localhost 7300
1951
1952
1953
1954   On getting the \e[1mlogin: \e[22mprompt, enter your sysop callsign (the one you
1955   put in DXVars.pm as $myalias).
1956   I would recommend \e[1mstrongly \e[22mthat you obtain a better telnet client than
1957   that which comes with windows (I use PuTTY).
1958
1959
1960   Anyway, if you are rewarded with a display which looks something
1961   like:-
1962
1963
1964
1965        Hello Iain, this is GB7SJP in Amersham, Bucks running DXSpider V1.50
1966        Cluster: 1 nodes, 1 local / 1 total users Max users 2 Uptime 0 00:00
1967        M0ADI de GB7SJP 4-Mar-2001 1511Z >
1968
1969
1970
1971   You've arrived. Try some commands, and see how they feel. (In case you
1972   were wondering, "Iain", "M0ADI" and "GB7SJP" all came from the version
1973   of DXVars.pm that was on the machine when I started the winclient.pl)
1974
1975
1976   The interface is very basic. It is a simple command line. There are
1977   better looking interfaces. Most of the "standard" logging and DX
1978   Cluster access programs that are capable of connecting via a TCP or
1979   telnet connection will work as a "Sysop Console" client. You connect
1980   to "localhost" on the port that you defined in Listeners.pm (usually
1981   7300). I recommend packages like DXTelnet.
1982
1983
1984   \e[1m6.4.  Connecting to other clusters\e[0m
1985
1986   If you want to connect this to another cluster, then you'll want to
1987   negotiate a link with someone. For experimental purposes, I'm happy to
1988   allow folk to connect to GB7DXA (spud.ath.cx), on the understanding
1989   that the system may or may not be there and may or may not be
1990   connected to anything particularly useful at any given moment. Contact
1991   me by Email if you want me to set up a connection for you.
1992
1993
1994   \e[1m7.  General Information\e[0m
1995
1996   The following relates to all versions of DXSpider and is not platform
1997   related.
1998
1999
2000   \e[1m7.1.  The crontab file\e[0m
2001
2002   Login as \e[4msysop\e[24m and create a file in /spider/local_cmd called crontab.
2003   Edit it with your favourite editor and add a line like this (I have
2004   included a comment)
2005
2006
2007
2008        # check every 10 minutes to see if gb7xxx is connected and if not
2009        # start a connect job going
2010
2011        0,10,20,30,40,50 * * * * start_connect('gb7xxx') unless connected('gb7xxx')
2012
2013
2014
2015   The callsign involved will be the callsign of the cluster node you are
2016   going to connect to.  This will now check every 10 minutes to see if
2017   gb7xxx is connected, if it is then nothing will be done.  If it is
2018   not, then a connect attempt will be started.
2019   There are probably lots of other things you could use this crontab
2020   file for.  If you want to know more about it, look at the DXSpider
2021   website at the cron page where it is explained more fully.
2022
2023
2024