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