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