Thick Ethernet/Sun networking problems

From: Pete Turnbull <pete_at_dunnington.u-net.com>
Date: Fri Nov 2 13:19:00 2001

On Nov 2, 8:03, Douglas Quebbeman wrote:

> Ok, likely this won't work for Calcomp, but HP stuff uses a default
> IP address of 192.0.0.192 for their network interfaces. Try setting
> up a separate computer and give it an address on the 192.0.0.0 network.
> Then try pinging it...

Which is really slightly naughty, as 192.0.0.0/16 is NOT in the private
address range (that would be 192.168.0.0/16). But that's not relevant to
Arno's problem :-)

> If that doesn't work, this next idea will take some time and preparation.
> Get a Windows 2000 or Windows XP machine. They allow you to change the
> machine's network address on the fly (can Linux do this?)

MOST systems other than Windows can do this :-)

It's not a good idea if you need to go through all the networks numbers
(see end of this post for the reason, if you've not realised yet).

If you want to try the Class A addresses, it would be rather easier to do
on one of the Suns, just by writing a script that cycles through the
network numbers in a loop, issues an ifconfig for each iteration, and a
broadcast ping (with the number of packets emitted restricted to a quantity
of 1 or 2).

Assuming the devices of interest are too old to understand CIDR, there are
three ranges of network numbers to consider: class A, class B, and class C;
ie those with 8-bit network numbers and 24-bit host parts, 16/16, and 24/8.
 The quick and dirty way is to run the script once for each class, so
that's networks 1..127 with subnet mask 255.0.0.0, networks 128.0 ...
191.255 with netmask 255.255.0.0, and 192.0.0 ... 223.255.255 with
255.255.255.0 (the rest are multicast or reserved addresses). Of course,
if the printer's IP address has been really scrambled, it might end up in
the reserved range, and I can't think of an easy way to get at that.

Unless the Sun has something like the range(1) command, it's probably
easiest to make a file containing each list (call the files netsA, netsB,
netsC, for example) and then do something like this in the script:

#!/bin/sh
for i in `cat netsA`
do
  ifconfig le0 down
  ifconfig le0 ${i}.0.0.2 broadcast ${i}.255.255.255 netmask 255.0.0.0 up
  ping -c 2 ${i}.255.255.255 2>&1 >/tmp/responses
done

Check the syntax of ifconfig (and where it is, it might not be in the
normal PATH) as I've not used an old Sun for a while. Ditto for ping.
 It's in /usr/etc/ping on my IRIX boxes, /sbin/ping on recent Solaris, but
I can't remember where it is in SunOS. Don't be tempted to simplify the
sript by using the "local broadcast" address of 255.255.255.255 every time,
as some things deliberately do not respond to that (my HP printers don't,
nor do my switches).

Don't forget to restore the original address with "ifconfig le0 111.0.0.1
broadcast 111.255.255.255 netmask 255.0.0.0 up" when you've finished :-)

It'll take a while to work through the class C range, because ping will
take a while to time out on each network number :-) Say two seconds per
network, thats (224-192) * 256 * 256 * 2 seconds, about 4 million seconds,
or just over 48 days. Oh, and you'll probably want to refine my shell
script to eliminate the unneccesary lines generated by ping recording
responses from the Sun itself, and the headers. You don't need 12 million
extra lines in the output :-)

-- 
Pete						Peter Turnbull
						Network Manager
						University of York
Received on Fri Nov 02 2001 - 13:19:00 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:34:13 BST