From eba.eb.ele.tue.nl!svin09.info.win.tue.nl!tuegate.tue.nl!sun4nl!mcsun!uknet!warwick!pipex!bnr.co.uk!bnrgate!nott!torn!howland.reston.ans.net!agate!dog.ee.lbl.gov!network.ucsd.edu!sdcrsi!silogic!markd Wed Jun 16 13:59:05 EET 1993 Article: 10287 of comp.sys.apollo Newsgroups: comp.sys.apollo Path: eba.eb.ele.tue.nl!svin09.info.win.tue.nl!tuegate.tue.nl!sun4nl!mcsun!uknet!warwick!pipex!bnr.co.uk!bnrgate!nott!torn!howland.reston.ans.net!agate!dog.ee.lbl.gov!network.ucsd.edu!sdcrsi!silogic!markd From: markd@silogic.uucp (Mark C. DiVecchio (K3FWT)) Subject: Re: Hekp: How to make ethernet run Message-ID: <1993Jun15.205531.7951@silogic.uucp> Organization: Silogic Systems, San Diego, CA References: <1vk1qm$ehu@fougere.munich.ixos.de> Date: Tue, 15 Jun 1993 20:55:31 GMT Lines: 774 In article <1vk1qm$ehu@fougere.munich.ixos.de> stevie@payot (Stefan Wende) writes: >I have a problem trying to make TCP/Ip work on a DN 3000 (yes, I know, its >old stuff, but its all I got). >Any pointers would be greatly appreciated. > This might help: ------------------------- Installing an Ethernet Controller in an Apollo DN4000 and Living to Tell About It April 20, 1992 Mark C. DiVecchio Silogic Systems 9888 Carroll Center Road Suite 113 San Diego, CA 92126 email ...!ucsd!celit!silogic!markd markd@silogic.uucp Table of Contents 1.0 Environment. . . . . . . . 4 2.0 3C505. . 4 3.0 Run the Jumper Program . . 4 4.0 Test tcp/ip. . . . . . . . 6 5.0 Shut Down the Node . . . . 6 6.0 Installation of the Ethernet Card. . . . . . 6 7.0 Test the Ethernet Card . . 6 8.0 Boot the Node. . . . . . . 6 9.0 Edit These Files . . . . . 7 9.1 /etc/hosts . . . . 7 9.2 /etc/hosts.equiv . 7 9.3 /etc/networks. . . 8 9.4 /etc/rc. . . . . . 8 9.5 /etc/rc.local. . . 9 10.0 Check Files . . . . . . 10 10.1 /etc/inetd.config . . . . . . . . 10 11.0 Edit /etc/daemons . . . 11 12.0 Reboot the Node . . . . 11 13.0 Check It Out. . . . . . 11 14.0 Edit /etc/hosts files . 12 15.0 Test tcp/ip . . . . . . 13 16.0 tcpst Utility . . . . . 14 16.1 tcpst Options . 14 16.2 tcpst Listing . 14 17.0 Acknowledgements. . . . 17 1.0 Environment Our shop is running an Apollo Token Ring (ATR) with one DN4000, 2 DN3010 and 2 DN3000. The DN4000 and two of the DN3010 are running SR10.3. The remaining two DN3000 are running SR10.1. We also have an Ethernet connecting a Sun IPX, a PC running ESIX Unix 4.0.3 and three PC's running NCSA Telnet. We wanted to install a gateway so that every machine on the ATR could have access to every machine on the Ethernet. The ESIX Unix box has all our modems connected to it. We were already running tcp/ip over the ATR and Ethernet separately. There is no need to boot anything diskless over Ethernet. 2.0 3C505 Buy a 3Com 3C505 Ethernet card. This is just a generic off the shelf card. I will not have a diskless boot ROM on it. If you have need to boot diskless, you will have to buy the card from Apollo. 3.0 Run the Jumper Program Run /systest/ssr_util/jumpers and set the jumpers on the card. See Figure 1. The jumper program shows two selections for jumper settings. They are actually both the same. Select DIX if you use thick cable, BNC for thin cable. This sets up the card with : DMA Channel 6 I/O Base 300h Interrupt 10 Memory Address : Unit 0 Address 80000 4.0 Test tcp/ip Make sure that tcp/ip is up and running by pinging each host on the ATR. % ping m07 PING m07: 56 data bytes 64 bytes from 198.8.6.54: icmp_seq=0. time=17. ms 64 bytes from 198.8.6.54: icmp_seq=1. time=10. ms 64 bytes from 198.8.6.54: icmp_seq=2. time=11. ms ----m07 PING Statistics---- 3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms) min/avg/max = 10/12/17 5.0 Shut Down the Node Shut down the node and turn off the power. Put the service/normal switch into the service position. 6.0 Installation of the Ethernet Card Install the card into any slot. Power on the node. I did not find it necessary to tell CONFIG that I have installed the 3C505. If you do run CONFIG, set up the machine to have two network controllers, the Ring and the Ethernet card. Select the Ring as the primary network. When I did this, the boot diagnostics had trouble finding the card even though everything worked fine. Try whatever works. I decided not to tell CONFIG about the card so the machine would still automatically boot. I had no problems with this. 7.0 Test the Ethernet Card Press RETURN a few times until you get the '>' MD prompt. Type RE and RETURN a few times until you hear a beep. At the MD prompt again, run TE, just to make sure have not messed up anything. Since we did not put the Ethernet card into the Configuration Tables using CONFIG, TE does not test the card. Don't put the case on yet. Next run EX DEX to actually test the Ethernet card. Select the Ethernet card by typing SELECT ETHER -ALL. Then run the test by typing GO. Put the service/normal switch back into the normal position. 8.0 Boot the Node Start Domain O/S by typing EX DOMAIN_OS and pressing RETURN. The rear LED on the card should blink at about a 1 second rate as the OS boots. 9.0 Edit These Files Login as root and edit the following files. The changed areas are shown in bold larger typeface. For the bigger files, only the portion changed is shown with portion not shown indicated by a string of dots '.'. 9.1 /etc/hosts I've used 198.8.6 for the ATR network and 198.8.7 for the Ethernet network. This machine, the gateway, has two entries (m01 on the ATR and apollo on the Ethernet). This is specified via the ifconfig command in rc.local. If your machines aren't actually on the Internet, you can make up the network addresses. If you are on the Internet, then you have been assigned addresses. Use those. 'localhost' and 'defaultmask' most likely have the values shown. The 'defaultmask' of 255.255.0.0 indicate this is a gateway (by the first 0 entry). A network without gateways would probably want to use 255.255.255.0. 127.0.0.1 localhost 255.255.0.0 defaultmask 198.8.6.51 s01 # DN3000 198.8.6.52 s02 # DN3000 198.8.6.54 m07 # DN3000 198.8.6.55 m08 # DN3000 198.8.6.56 m01 # DN4000 Gateway 198.8.7.199 apollo # DN4000 Gateway 198.8.7.200 markd # PC Running Telnet 198.8.7.201 johnp # PC Running Telnet 198.8.7.202 deba # PC Running Telnet 198.8.7.203 triton # Sun IPX 9.2 /etc/hosts.equiv Setup per your local conventions. s01 s02 m07 m08 m01 markd johnp deba apollo triton 9.3 /etc/networks Put a line in this file for each network that is being gatewayed through this node. aring 198.8.6 # Apollo Token Ring Network ether 198.8.7 # Ethernet Network 9.4 /etc/rc # # `node_data/etc/rc (DOMAIN/OS version SR10 ) # @(#)rc 4.21 - 90/07/06 # # This script is run by /etc/init during node startup. # To start up a daemon at boot time, create a file of # the same name in the directory /etc/daemons. E.g., # if the file /etc/daemons/inetd exists, then /etc/inetd # will be started. # # echo commands are parenthesized so that they will be run # in a subprocess (echo is builtin to the shell). Otherwise, # the shell running this script (and all the programs started # from it) would acquire /dev/console as their controlling tty. # # the setting of the SYSTYPE variable while this script is running # is determined by the contents of /etc/environ. . . . . # # On a routing node, start Domain internet routing here (before TCP and NCS). # Put a timestamp in `node_data/system_logs/startup_rtsvc.log # and put error messages from the routing process in that file. # # Create the /etc/daemons/rtsvc file, if any of the rtsvc commands are uncommented. # if [ -f /etc/rtsvc -a -f /etc/daemons/rtsvc ]; then (echo "Starting Apollo Token Ring routing" > /dev/console) (echo "Routing startup at \c" >> \`node_data/system_logs/startup_rtsvc.log) if [ -f /bin/date ]; then (echo "`/bin/date` \n" >> \`node_data/system_logs/startup_rtsvc.log) else (echo "`/com/date` \n" >> \`node_data/system_logs/startup_rtsvc.log) fi # Edit and uncomment the following line(s) to make one line for # each network. Use one line for each device and include the # correct device name and network number. # rtsvc commands must run to completion before TCP, NCS, or location # broker start, so DON'T USE "& in these lines" !! (echo "Starting Ethernet routing (by MCD)" > /dev/console) /etc/rtsvc -dev ETH802.3_AT -ne 1 -r 1>/dev/null 2>>\`node_data/system_logs/startup_rtsvc.log #/etc/rtsvc -dev device_name -ne network_number -r 1>/dev/null 2>>\`node_data/system_logs/startup_rtsvc.log #/etc/rtsvc -dev device_name -ne network_number -r 1>/dev/null 2>>\`node_data/system_logs/startup_rtsvc.log #/etc/rtsvc -dev device_name -ne network_number -r 1>/dev/null 2>>\`node_data/system_logs/startup_rtsvc.log fi . . . . exit 0 9.5 /etc/rc.local # # `node_data/etc/rc.local (DOMAIN/OS version SR10 ) # @(#)rc.local 4.18 - 90/08/31 # . . . . # # Enable network interface(s) for TCP. # If the node has only one network interface, # then you can enable it using the pseudo-interface # 'net0'. If the node has more than one network # interface, or more than one internet address, # then you must enable each interface using its # explicit interface name (eth0, dr0, itr0, sl0, eth1, dr1, itr1) # and its numeric IP address (e.g. 128.5.1.2). # # If the node is running in a subnetted environment, # you must supply 'netmask ' to ifconfig. # By default, the node enables interface 'net0' with # the subnet mask assigned to the pseudo host name # 'defaultmask' in /etc/hosts. If the name defaultmask # is not in /etc/hosts, then subnets are not enabled for # the interface. # # You can use the form 'netmask icmp-request' to # indicate you wish the host to obtain the subnet mask # from local gateways, using the ICMP Address Mask # Request/Reply protocol. You can also enable this # ICMP Address Mask protocol by assigning the address # 255.255.255.255 to the pseudo host name defaultmask # in /etc/hosts. # # If the node must interoperate with certain older # TCP implementations, then add 'broadcast 0' # to the ifconfig command line. The node will then # send the '0-form' IP broadcast address, which is the # one recognized by bsd4.2 and some other older tcp's. # # Ifconfig must complete before routed starts up, # so DO NOT supply a trailing & on the command line. # if [ -f /etc/ifconfig ]; then # /etc/ifconfig net0 `/etc/hostname` netmask defaultmask /etc/ifconfig lo0 localhost /etc/ifconfig dr0 198.8.6.56 netmask defaultmask # /etc/ifconfig dr1 /etc/ifconfig eth0 198.8.7.199 netmask defaultmask # /etc/ifconfig eth1 # /etc/ifconfig itr0 # /etc/ifconfig itr1 # /etc/ifconfig sl0 fi # . . . . # # Enable dynamic routing. # Options include -s: be a routing supplier, -q: be quiet, # -t: trace rip traffic, -f: flush routing tables, # and -h: exit on hosts when routing tables stabilizes. # Remove the -q option below for gateway nodes. # See routed manual page for details. # if [ -f /etc/routed -a -f /etc/daemons/routed ]; then (echo " routed\c" >/dev/console) # /etc/routed -f -q /etc/routed -f # gateway node fi # . . . . 10.0 Check Files Check the following files to make sure they are complete. 10.1 /etc/inetd.config No changes required to this file. Just make sure it looks like this. # inetd (Internet daemon) configuration file # tells inetd how to startup daemons for things in /etc/services # Format is: # service socket proto- wait/ server server # name type col nowait user program path program args # # telnetd/rlogind allow incoming login. telnet stream tcp nowait root /etc/telnetd telnetd login stream tcp nowait root /etc/rlogind rlogind # rshd/rexecd offer remote command execution. shell stream tcp nowait root /etc/rshd rshd exec stream tcp nowait root /etc/rexecd rexecd # ftpd offers file transfer services. ftp stream tcp nowait root /etc/ftpd ftpd # tftpd offers UDP_based file transfer services. (do not run tftpd as root!) #tftp dgram udp wait tftp /etc/tftpd tftpd # ntalkd offers new 4.3BSD talk service. #ntalk dgram udp wait root /etc/ntalkd ntalkd # biff(comsat) offers notification of incoming SMTP mail. #biff dgram udp wait root /etc/comsat comsat # fingerd offers finger user identification service #finger stream tcp nowait root /etc/fingerd fingerd 11.0 Edit /etc/daemons Edit the directory /sys/node_data/etc/daemons to start /etc/rtsvc. To do this, 'cd' to this directory and use the 'touch' command to create the zero length file rtsvc. Generally, a non-registry node should have the following files in the /etc/daemons directory. A registry node may have rgyd and glbd as well. Your node may have even a different mix. This is what the directory may look like. % ls -laL /etc/daemons drwxrwxrwx+ 1 root staff 1024 Nov 27 19:56 . drwxr-xr-x+ 1 root staff 1024 Nov 27 19:55 .. -rwxrwxrwx+ 2 root staff 4533 Jul 9 18:56 README -rw-r--r-- 1 root sys_admin 0 Jul 20 10:40 inetd -rw-r--r-- 1 root sys_admin 0 Jul 10 13:55 llbd -rw-r--r-- 1 root sys_admin 0 Jul 13 09:35 routed -rw-r--r-- 1 root sys_admin 0 Nov 27 16:31 rtsvc -rw-r--r-- 1 root sys_admin 0 Nov 27 19:56 rwhod -rw-r--r-- 1 root sys_admin 0 Jul 13 09:35 tcpd -rw-r--r-- 1 root sys_admin 0 Nov 27 19:56 timed 12.0 Reboot the Node Shutdown and reboot the node. The rear LED on the Ethernet card should still be going at about 1 blink per second and new the front LED should be steady on indicating successful initialization of the card. 13.0 Check It Out Login as root and run the following to make sure all is well: % rtsvc Controller Net ID Service offered ================== ======== ==================== RING 0 Own traffic only ETH802.3_AT 1 Internet routing % netstat -I Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Collis lo0 9216 127.0.0 localhost 0 0 0 0 0 dr0 1268 aring m01 381 0 401 0 0 eth0 1500 ether apollo 206 0 165 0 0 The Network and Address should reflect the values you put into the /etc/hosts and /etc/networks files. % netstat -h Host Stat Ref Pct Mapaddr markd U 1 0 00:00:c0:e7:60:2c s01 U 0 0 00:00:a9:1e:00:00 s02 U 0 0 00:00:aa:b7:00:00 m07 U 0 0 00:00:d0:ce:00:00 The Mapaddr should show the Apollo Node ID's. Other non-Apollo Nodes should show the hardware Ethernet address of the card installed in that system. Here, 'markd' is a PC running NCSA Telnet. Its Ethernet hardware address is 00:00:c0:e7:60:2c. (That is a number burned into a PROM on the Ethernet card by its manufacturer - in this case a Western Digital Elite 16). The other hosts listed are all Apollo Nodes. % netstat -a Active connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp 0 0 m01.telnet markd.8064 ESTABLISHED tcp 0 0 *.ftp *.* LISTEN tcp 0 0 *.exec *.* LISTEN tcp 0 0 *.shell *.* LISTEN tcp 0 0 *.login *.* LISTEN tcp 0 0 *.telnet *.* LISTEN udp 0 0 *.ncs *.* udp 0 0 *.timed *.* udp 0 0 *.who *.* udp 0 0 *.route *.* % ifconfig eth0 eth0: flags=43 inet 198.8.7.199 netmask ffffff00 broadcast 198.8.7.255 macaddr 8:0:1e:0:fc:50 Indicates the Ethernet interface is up and running. % ifconfig dr0 dr0: flags=43 inet 198.8.6.56 netmask ffffff00 broadcast 198.8.6.255 Indicates the ATR interface is up and running. 14.0 Edit /etc/hosts files Next, go all all machines in both networks and fix up their /etc/hosts, /etc/hosts.equiv, and /etc/networks files to match those files on the gateway machine. On the ATR, you can specify this gateway node as the tcp_admin host. Domain O/S then uses softlinks for these files on each node pointing to this node. Then you only have to keep one set of files up to date. To do this, create these links on the other nodes: ln -s //m01 //x01/etc/tcp_admin ln -s tcp_admin/etc/hosts //x01/etc/hosts ln -s tcp_admin/etc/hosts.equiv //x01/etc/hosts.equiv ln -s tcp_admin/etc/networks //x01/etc/networks Where m01 is the gateway node, and x01 is each of the other nodes in the ATR. If you do this, an ls should have these entries on the tcp_admin machine (I've deleted a bunch of lines from the ls listing): %ls -la total 5723 drwxrwxrwx+ 1 root 11264 Nov 27 21:21 . drwxrwxrwx+ 1 root 1024 Oct 8 14:41 .. lrwxrwxrwx 1 root 22 Nov 27 21:21 daemons -> `node_data/etc/daemons -rw-r--r--+ 1 root 197 Nov 27 21:10 hosts -rw-r--r--+ 1 root 44 Nov 27 20:16 hosts.equiv lrwxrwxrwx 1 root 25 Nov 27 21:21 inetd.conf -> `node_data/etc/inetd.conf -rw-r--r--+ 1 root 28 Nov 27 19:35 networks lrwxrwxrwx 1 root 23 Nov 27 21:21 rc.local -> `node_data/etc/rc.local lrwxrwxrwx 1 root 22 Nov 27 21:21 rc.user -> `node_data/etc/rc.user lrwxrwxrwx 1 root 21 Nov 27 21:21 remote -> `node_data/etc/remote lrwxrwxrwx 1 root 5 Nov 27 21:21 tcp_admin -> //m01 An ls on a non-tcp_admin node should have these entries : %ls -la total 5717 drwxr-xr-x 1 root 11264 Nov 27 21:08 . drwxr-xr-x 2 root 1024 Jul 13 18:31 .. lrwxrwxrwx 1 root 22 Nov 27 21:08 daemons -> `node_data/etc/daemons lrwxrwxrwx 1 root 19 Nov 27 21:10 hosts -> tcp_admin/etc/hosts lrwxrwxrwx 1 root 25 Nov 27 20:16 hosts.equiv -> tcp_admin/etc/hosts.equiv lrwxrwxrwx 1 root 25 Nov 27 21:21 inetd.conf -> `node_data/etc/inetd.conf lrwxrwxrwx 1 root 22 Nov 27 19:35 networks -> tcp_admin/etc/networks lrwxrwxrwx 1 root 23 Nov 27 21:21 rc.local -> `node_data/etc/rc.local lrwxrwxrwx 1 root 22 Nov 27 21:21 rc.user -> `node_data/etc/rc.user lrwxrwxrwx 1 root 21 Nov 27 21:21 remote -> `node_data/etc/remote lrwxrwxrwx 1 root 5 Nov 27 21:21 tcp_admin -> //m01 15.0 Test tcp/ip Test that tcp/ip is gatewaying by going to each host and pinging hosts on the other network. % ping markd PING markd: 56 data bytes 64 bytes from 198.8.7.200: icmp_seq=0. time=162. ms 64 bytes from 198.8.7.200: icmp_seq=1. time=153. ms 64 bytes from 198.8.7.200: icmp_seq=2. time=190. ms 64 bytes from 198.8.7.200: icmp_seq=3. time=15. ms 64 bytes from 198.8.7.200: icmp_seq=4. time=17. ms 64 bytes from 198.8.7.200: icmp_seq=5. time=15. ms 64 bytes from 198.8.7.200: icmp_seq=6. time=16. ms 64 bytes from 198.8.7.200: icmp_seq=7. time=15. ms ----markd PING Statistics---- 8 packets transmitted, 8 packets received, 0% packet loss round-trip (ms) min/avg/max = 15/72/190 16.0 tcpst Utility Since I can't remember what I had for breakfast let alone all the details about tcp/ip, I've created a shell script to help me automate tcp/ip administration tasks. 16.1 tcpst Options h - Edit //$UUNODE/etc/hosts n - Edit //$UUNODE/etc/networks e - Edit //$UUNODE/etc/hosts.equiv r - Edit //$UUNODE/etc/rc l - Edit //$UUNODE/etc/rc.local c - Edit //$UUNODE/etc/inetd.conf j - Run the jumper program i - Run ifconfig $IF p - Ping a specified host P - Ping each host in turn R - Run rtsvc N - Run netstat d - Display /etc/daemons t - Add (touch) a file to /etc/daemons A - Setup tcp_admin links to $UUNODE from //*/etc/tcp_admin (erases each remote hosts, hosts.equiv and networks) C - Copy //$UUNODE/etc/hosts and hosts.equiv to $NODES X - Change System Node Y - Change Interface - exit program 16.2 tcpst Listing #!/bin/sh # @(#) tcpst v1.0 tcp/ip status utility for SR10.x NODES='m01 m07 m08 s01 s02' if [ $# -gt 0 ] then echo "tcpst: argument error" >&2 echo "usage: tcpst" >&2 exit 1 fi UUNODE=`uuname -l` OTHER=`uuname` IF='dr0' while : do echo "[H[Jtcp/ip MENU machine: $UUNODE interface: $IF h - Edit //$UUNODE/etc/hosts n - Edit //$UUNODE/etc/networks e - Edit //$UUNODE/etc/hosts.equiv r - Edit //$UUNODE/etc/rc l - Edit //$UUNODE/etc/rc.local c - Edit //$UUNODE/etc/inetd.conf j - Run the jumper program i - Run ifconfig $IF p - Ping a specified host P - Ping each host in turn R - Run rtsvc N - Run netstat d - Display /etc/daemons t - Add (touch) a file to /etc/daemons A - Setup tcp_admin links to $UUNODE from //*/etc/tcp_admin (erases each remote hosts, hosts.equiv and networks) C - Copy //$UUNODE/etc/hosts and hosts.equiv to $NODES X - Change System Node Y - Change Interface - exit program Press a letter or :" read CMD case $CMD in "") exit 0;; h) echo "//$UUNODE/etc/hosts" $EDITOR //$UUNODE/etc/hosts;; n) echo "//$UUNODE/etc/networks" $EDITOR //$UUNODE/etc/networks;; e) echo "//$UUNODE/etc/hosts.equiv" $EDITOR //$UUNODE/etc/hosts.equiv;; r) echo "//$UUNODE/etc/rc" $EDITOR //$UUNODE/etc/rc;; l) echo "//$UUNODE/etc/rc.local" $EDITOR //$UUNODE/etc/rc.local;; c) echo "//$UUNODE/etc/inetd.conf" $EDITOR //$UUNODE/etc/inetd.conf;; X) echo "Enter New Machine Name (without //):" read UUNODE;; Y) echo "Enter New Interface :" read IF;; C) echo "Are you sure?" read ANS case $ANS in ""|N|n) echo "tcpst: no action taken" >&2 ;; Y|y) for DEST in $NODES do if [ $UUNODE != $DEST ] then echo Copying from $UUNODE to $DEST cp //$UUNODE/etc/hosts //$DEST/etc/hosts cp //$UUNODE/etc/hosts.equiv //$DEST/etc/hosts.equiv fi done ;; *) echo "tcpst: invalid response '$ANS'" >&2;; esac echo "Press RETURN" read ANS ;; A) echo "Are you sure? (this will delete remote files and replace with links" read ANS case $ANS in ""|N|n) echo "tcpst: no action taken" >&2 ;; Y|y) for DEST in $NODES do if [ $UUNODE != $DEST ] then echo Setting up tcp_admin link from $DEST to $UUNODE ln -s //$UUNODE //$DEST/etc/tcp_admin ln -s tcp_admin/etc/hosts //$DEST/etc/hosts ln -s tcp_admin/etc/hosts.equiv //$DEST/etc/hosts.equiv ln -s tcp_admin/etc/networks //$DEST/etc/networks fi done ;; *) echo "tcpst: invalid response '$ANS'" >&2;; esac echo "Press RETURN" read ANS ;; j) /systest/ssr_util/jumper;; i) /etc/ifconfig $IF echo "Press RETURN" read ANS ;; R) /etc/rtsvc echo "Press RETURN" read ANS ;; N) echo "[H[Jtcp/ip MENU machine: $UUNODE interface: $IF Enter netstat option a - active connections including servers T - full status h - hardware addresses (ARP Host Table) I - Monitor $IF at 5 second intervals [Angimnrst] - Other Options for default Press a letter or :" read OPT case $OPT in "") /usr/ucb/netstat;; T) /usr/ucb/netstat -$OPT | more;; I) /usr/ucb/netstat -n -I $IF 5;; *) /usr/ucb/netstat -$OPT;; esac echo "Press RETURN" read ANS ;; p) echo "Enter Host Name:" read DEST ping $DEST 100 5 echo "Press RETURN" read ANS ;; P) for DEST in $NODES do ping $DEST 100 5 done echo "Press RETURN" read ANS ;; d) /bin/echo "/etc/daemons:" ls -laL /etc/daemons echo "Press RETURN" read ANS ;; t) echo "Enter new daemon name:" read DAEMON case $DAEMON in "") echo "tcpst: no action taken" >&2 ;; *) touch /etc/$DAEMON esac echo "Press RETURN" read ANS ;; *) echo "tcpst: invalid argument '$CMD'" >&2 sleep 3 ;; esac done 17.0 Acknowledgements Getting this all to work relied on tidbits received on USENET (comp.sys.apollo) from : dbfunk@ICAEN.UIOWA.EDU Dave B. Funk tomg@cv.hp.com Thomas J.Gilg system@alchemy.chem.utoronto.ca Mike Peterson droms@bucknell.edu Ralph Droms herb@blender.UUCP -- Mark DiVecchio, Silogic Systems, 619-549-9841 K3FWT ----- 9888 Carroll Center Road, Suite 212, San Diego, CA 92126 ----- markd@silogic.uucp BBS 619-549-3927 ...!ucsd!sdcrsi!silogic!markd sdcrsi!silogic!markd@ucsd.edu