SUMMARY: FTP problem, question

From: mfendt@eso.org
Date: Tue Sep 05 1995 - 07:43:19 CDT


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