ipv4 ipv6

From: Moughan, Laurence (Laurence.Moughan@o2.com)
Date: Wed Feb 05 2003 - 09:33:11 EST


Hi All,

I found the solution to a rcp issue i was having was a known bug in solaris
8, with workaround ( details below ) was to replumb my interface ipv6.
However i was wondering if anyone knew if there was any impact or if it was
possible to have a mixed ipv4 / ipv6 environment ( switched )or if all
hosts, routers and switches would have to be migrated to ipv6

Thanks

Laurence

.......................

Customer transfers files with the command rcp from a Solaris 5.8 system to
other unix platforms like HP or SGI.

When using the target system's hostname within the rcp-command it works
fine.
When using the target system's ip-address it fails (with a confusing
message).

sample:
$ rcp mda.xbm 172.25.53.53:mda.xbm
::ffff:172.25.53.53: unknown host

The message is confusing here, because it contains a IPv6 type ip-address,
but
there was used an IPv4 type address in the rcp command.

A rcp to the hostname works fine:
$ rcp mda.xbm bomek4.europe.nokia.com:mda.xbm
$

This remote host is defined in DNS. The hosts-entry in nsswitch.conf
contains
files nis dns. But the problem also occurs when this entry only contains
files
and the hostname is defined in /etc/hosts.

Hostname and ip-address are resolvable:

$ getent ipnodes 172.25.53.53
172.25.53.53 bomek4.europe.nokia.com bomek4

$ getent hosts bomek4.europe.nokia.com
172.25.53.53 bomek4.europe.nokia.com bomek4

The problem only occurs when the remote system is a non-Solaris platform.
When
there's a Solaris on the other end, rcp also works when an ip-address is
used
in the command.

This is because the non-Solaris platforms return "/usr/lib/sunw,rcp not
found"
when responding to the rcp's request, if acl is possible:
(extract from snoop)

  9 0.10655 172.25.53.53 -> 131.228.113.8 RSHELL R port=1018 ksh:
/usr/lib/sunw,r

           0: 0800 2082 aca9 0030 19c9 bc00 0800 4500 .. ....0......E.
          16: 004b f6e7 4000 3906 748a ac19 3535 83e4 .K..@.9.t...55..
          32: 7108 0202 03fa 7029 de02 14aa fd42 5018 q.....p)....}BP.
          48: 8000 052e 0000 6b73 683a 202f 7573 722f ......ksh: /usr/
          64: 6c69 622f 7375 6e77 2c72 6370 3a20 206e lib/sunw,rcp: n
          80: 6f74 2066 6f75 6e64 0a ot found.

Truss shows that the error-message becomes written, immediatelly after the
("read(5, " k", 1)" ) above frame has been read from the socket.

6956/1: 0.9446 connect(5, 0xFFBEFBE0, 32, 1) = 0
6956/1: AF_INET name = 172.25.53.53 port = 514
6956/1: 0.9451 write(5, "\0", 1) = 1
6956/1: 0.9455 write(5, " i d e a s c p\0", 8) = 8
6956/1: 0.9458 write(5, " i d e a s c p\0", 8) = 8
6956/1: 0.9461 write(5, 0x00025590, 29) = 29
6956/1: / u s r / l i b / s u n w , r c p - t m d a . x b m\0
6956/1: 1.3110 read(5, "\0", 1) = 1
6956/1: 1.3114 sigaction(SIGPIPE, 0xFFBEFD00, 0x00000000) = 0
6956/1: new: hand = 0xFF219458 mask = 0 0 0 0 flags = 0x0012
6956/1: 1.3117 sigprocmask(SIG_SETMASK, 0xFFBEFCE0, 0x00000000) = 0
6956/1: set = 0 0 0 0
6956/1: 1.4186 read(5, " k", 1) = 1
6956/1: 1.4192 close(5) = 0
6956/1: 1.4194 getpid() =
6956 [6955]
6956/1: 1.4197 ioctl(4, 0xC00C6982, 0xFFBEF92C) = 0
6956/1: 1.4204 write(2, 0x00025F20, 19) = 19
6956/1: : : f f f f : 1 7 2 . 2 5 . 5 3 . 5 3
6956/1: 1.4207 write(2, 0xFF3AAC6E, 15) = 15
6956/1: : u n k n o w n h o s t\n
6956/1: 1.4210 llseek(0, 0, SEEK_CUR) =
22610
6956/1: 1.4212 _exit(1)

rcp always fails when an ip-address is specyfied for the remote system and
the
file /usr/lib/sunw,rcp does not exist on the remote system.

I was able to recreate this here when doing a rcp from Solaris 8 to Solaris
7
after I unlinked the symbolic link /usr/lib/sunw,rcp on the (target) Solaris
7
system.
I haven't been able to recreate this when doing rcp from Solaris 7 to
Solaris
7. So I guess something in the IPv6 relevant additions to rcp makes this
happening.
Work Around Top
rcp command fails from Solaris 8 to non-solaris machines if IPv6 is not
enabled.
The workaround is to enable IPv6.

To enable IPv6:

1. Login as root
2. Run the following commands
    # ifconfig <interface> inet6 plumb up
3. Create the file hostname6.<interface> so that this
   is done automatically next time the machine boots up
    # touch /etc/hostname6.<interface>

*****************************************************************************
***********

This E-mail is from O2. The E-mail and any files
transmitted with it are confidential and may also be privileged and intended
solely for the use of the individual or entity to whom they are addressed.
Any unauthorised direct or indirect dissemination, distribution or copying
of this message and any attachments is strictly prohibited. If you have
received the E-mail in error please notify postmaster@O2.com or
                  telephone ++ 353 1 6095000.

*****************************************************************************
************
_______________________________________________
sunmanagers mailing list
sunmanagers@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers



This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 23:25:46 EDT