Hello,
I had the problem that ftps between Suns and HP's (and HP's to HP's) failed
with "no route to host" or "no such file or directory" by transfering big files
(>5MB) via a T1 link.
This is a HP problem.
Thanks to Mike Peterson <system@alchemy.chem.utoronto.ca>, who gave the right
hint. (I will add the script to the SUMMARY). We had a fine transmission
without any problems over the last 6 days.
Regards,
Michael Fendt
ESO (European Southern Observatory)
Karl-Schwarzschild-Str. 2
85748 Garching
Germany
Tel: +49 89 32006 441
Fax: +49 89 32023 62
email: mfendt@eso.org
___________________________ included message _________________________________
From: Mike Peterson (System Admin) <system@alchemy.chem.utoronto.ca>
To: mfendt@eso.org
Subject: Re: [HPADM] FTP problem, question
Content-Length: 3843
X-Lines: 200
As long as a HP system is involved in the ftp (either as client or
server), you may be getting the ICMP redirect problem that caused
us a lot of problems for 4 months. HP finally gave us a script,
which I have attached to this mail, that stopped the problems
immediately.
Mike
________________________________________________________________________________
Thanks to Stuart Tares <stares@lhrsys1.lhr-sys.bru-ro.dhl.com>
who thought that it might be a timeout problem.
__________________________________ including message ___________________________
On Mon, 28 Aug 1995 mfendt@eso.org wrote:
Michael,
I have seen the same problem when transferring data between two different
machines but only when there was a router in the way.
The problem has been seen with various different hardware/software setups.
It would appear to be a problem with the ftp command channel timing out
whilst the data channel is still transferring.
Stuart
________________________________________________________________________________
This is the original question:
----- Begin Included Message -----
>From mfendt Mon Aug 28 17:49:55 1995
From: Michael Fendt <mfendt@eso.org>
To: hpux-admin@cv.ruu.nl, sun-managers@eecs.nwu.edu
Subject: FTP problem, question
Cc: mfendt@eso.org
Content-Length: 1770
X-Lines: 50
Hello,
I have a problem (and questions) to FTP. It actually started as a
HP only problem, but only for a few hours and then I'm not shure where the
culprit is.
I'm transferring huge files >8MB over a T1 link with FTP from an
HP 9000/735/99 running HP 9.01 (let's call it HP1) to another HP 9000/735/99
with 9.05 (HP2)
Every now and again (~30%) it fails with in the middle of the transfer with
"no route to host"
or
"no such file or directory"
but nothing has changed and the next transfer might work without any problems.
The same thing happens as well if I use a Sun connecting to HP2
On the other side no error occured if HP1 is transferring
from a Sun (which is close to the HP; not exactly on the same subnet but
on the other side of the T1 link)
I might be able to convince the other end to install the wu ftpd if that helps,
but what did not help was using another ftp (I compiled the berkley ftp
and Suns and HP's).
Actually that's where my question start:
on Sun the original ftp and the Berkley version run at the same (~350kbits/sec)
speed whereas on HP the original ftp runs at ~450Kbits/sec and the Berkley
version only at ~120Kbits/sec. (So that's why we did not consider that as a
work araound)
The same phenomena I have on a Sun running Sol2.3 (~350Kbits/sec) and a Sun
running 2.4 (~120Kbits/sec).
Any idea why (TCP Window size?, Segment size?, MTU path discovery?, ftp
implementations ?,...) Any pointers to literature are welcome as well.
Regards,
Michael Fendt
----- End Included Message -----
----- Begin Included Message -----
This is the "helpful" script, which prevents to pass ICMP to the application
layer.
I now do a 'set_icmp -off' in the localrc() section
of /etc/rc.
#!/bin/sh
#
# set_icmp
# --------
# Script to modify the inetctlerror-map, which gates whether or not
# ICMP messages are passed out of TCP/IP to end applications at
# higher layers. This script turns ON/OFF the passing of
# ICMP messages Host Unreachable / Net Unreachable.
#
# Hewlett-Packard Corporation
# This script is UNSUPPORTED. Use at own risk.
# Written: 20 Aug 93 Michael Hartmann RCO Germany
# Modified: 1 Sept 93 Bob Kelley EC Cupertino
#
#
PATH=/bin:/usr/bin:/etc:.
#
# default values
#
value1=0
value2=0
hostunreach_on=61938
hostunreach_off=61696
netunreach_on=58866
netunreach_off=0
#
# Temporary Dumping Ground
#
TMPFILE=/tmp/inet$$
#
# Usage Subroutine
#
usage()
{
echo "usage: set_icmp { [-off] | [-on] | [-help] | [-p] }"
exit
}
#
# Help Information Subroutine - called when -help option given
#
printhelp()
{
echo "set_icmp :"
echo " Will set the kernel's inetctl-errormap-table."
echo "- The \"-off n\" option disables the transfer of ICMP-destination "
echo " unreachable-messages to upper layers."
echo "- The \"-on\" option enables the transfer (default behavior)."
echo "- The \"-d\" default option also enables the transfer."
echo "- The \"-help\" prints this message."
echo "- The \"-p\" displays the current setting."
}
#
# Kernel value reading subroutine
#
read_values()
{
adb /hp-ux /dev/kmem << EOF > $TMPFILE
inetctlerrmap+0x4/D
inetctlerrmap+0x8/d
EOF
vals=`cat $TMPFILE | grep inet | awk '{if ($2 != "") print $2}'`
once=0
for i in $vals
do
case $once in
0) rvalue1=$i
once=`expr $once + 1`;;
1) rvalue2=$i
if [ $rvalue2 -lt 0 ]
then
rvalue2=`expr $rvalue2 + 65536`
fi
once=`expr $once + 1`;;
*) echo "internal error"
esac
done
rm $TMPFILE
}
#
# Display values
#
show_values()
{
if [ $rvalue1 -eq $hostunreach_off ]
then
echo "ICMP HOSTUNREACH passing is OFF"
else
echo "ICMP HOSTUNREACH passing is ON (default)"
fi
if [ $rvalue2 -eq $netunreach_off ]
then
echo "ICMP NETUNREACH passing is OFF"
else
echo "ICMP NETUNREACH passing is ON (default) "
fi
}
# Begin of Program
#
# check for options
change=0
display=0
enable=0
if [ $# -eq 0 ]
then
usage
fi
for i in $*
do
case $i in
-d ) echo "Resetting to defaults..."
value1=$hostunreach_on
value2=$netunreach_on
change=1
enable=1;;
-on ) value1=$hostunreach_on
value2=$netunreach_on
change=1
enable=1;;
-off ) value1=$hostunreach_off
value2=$netunreach_off
change=1
enable=0;;
-p ) display=1;;
-help ) printhelp
exit ;;
-* ) echo $1 is an unknown parameter
usage;;
esac
done
read_values
if [ $display -eq 1 ]
then
show_values
fi
#
# Set the values
#
if [ $change -eq 1 ]
then
# write interval to kernel and kernel image
adb -w -k /hp-ux /dev/mem << EOF >/dev/null
inetctlerrmap+0x4/W 0D$value1
inetctlerrmap+0x8/w 0d$value2
EOF
read_values
test=1
if [ $rvalue1 != $value1 ]
then
test=0
fi
if [ $rvalue2 != $value2 ]
then
test=0
fi
if [ $test -eq 1 ]
then
if [ $enable -eq 0 ]
then
echo "ICMP-destination-unreachable messages are NOT sent to upper layers!"
show_values
else
echo "ICMP-destination-unreachable messages ARE sent to upper layers!"
show_values
fi
else
echo "Problems changing inetctlerrmap!"
show_values
fi
fi
----- End Included Message -----
This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:10:32 CDT