Subject: (ngtrans) I-D ACTION:draft-ietf-ngtrans-shipworm-00.txt

From: [email-masked]
Date: Wed, 29 Aug 2001 07:20:12 -0400

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Next Generation Transition Working Group of the IETF.

	Title		: Shipworm: Tunneling IPv6 over UDP through NATs
	Author(s)	: C. Huitema
	Filename	: draft-ietf-ngtrans-shipworm-00.txt
	Pages		: 22
	Date		: 28-Aug-01
	
We propose here a service that enables nodes located behind one or 
several IPv4 NATs to obtain IPv6 connectivity by tunneling packets 
over UDP; we call this the Shipworm service. The establishment of 
the tunnel is automatic, and does not require any configuration 
parameters on the client. Running the service requires the help of 
'Shipworm servers' and 'Shipworm relays'; the Shipworm servers are 
stateless, and only have to manage a small fraction of the traffic 
between Shipworm clients; the Shipworm relays act as IPv6 routers 
between the Shipworm service and the

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-ngtrans-shipworm-00.txt

Internet-Drafts are also available by anonymous FTP. Login with the username
"anonymous" and a password of your e-mail address. After logging in,
type "cd internet-drafts" and then
	"get draft-ietf-ngtrans-shipworm-00.txt".

A list of Internet-Drafts directories can be found in
http://www.ietf.org/shadow.html 
or ftp://ftp.ietf.org/ietf/1shadow-sites.txt

Internet-Drafts can also be obtained by e-mail.

Send a message to:
	[email-masked].
In the body type:
	"FILE /internet-drafts/draft-ietf-ngtrans-shipworm-00.txt".
	
NOTE:	The mail server at ietf.org can return the document in
	MIME-encoded form by using the "mpack" utility.  To use this
	feature, insert the command "ENCODING mime" before the "FILE"
	command.  To decode the response(s), you will need "munpack" or
	a MIME-compliant mail reader.  Different MIME-compliant mail readers
	exhibit different behavior, especially when dealing with
	"multipart" MIME messages (i.e. documents which have been split
	up into multiple messages), so check your local documentation on
	how to manipulate these messages.

Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.

---

From: Pekka Savola <[email-masked]>
Date: Wed, 29 Aug 2001 17:39:39 +0300 (EEST)

On Wed, 29 Aug 2001 [email-masked] wrote:

Some comments.  Others are purely editorial in nature, some not so much..

2 Definitions

==> Should add Shipworm secondary port here.

3.3 Non requirement of permanent addresses

The absence of permanent addresses can be palliated by "name
services" or "rendezvous services" through which the node can
publish its address of the moment to its peers; for example, the
nodes can be

==> something left out.. :-)

==> should that be "Non-requirement"?  Also, this would also be applicable
to 6to4; should the title be something more specific?

==> DynDNS etc.  One should very much avoid embedding plain IPv6 addresses
everywhere (not even 6to4 IMO), especially as chancy as this.

4.1.4 Shipworm bubble

s/as follow/as follows/.

(note: some of the lists end with period here and elsewhere in the doc;
perhaps better remove it/add it everywhere)

4.2.2 [Client] Packet reception

==> If there is no IPv6 packet inside encapsulating IPv4, I think it
must be discarded as with Server.  (this is implicit in the spec).

==> s/silently rejected/silently discarded/.

==> should target ipv4 and ipv6 addresses also be checked?

4.2.5 Sending Shipworm Bubbles

s/MUST creates/MUST create/

4.2.6 Optional Refresh Interval Determination Procedure

If the secondary qualification succeeds, the maximum refresh
interval is set to 960 seconds

==> why not just 900 seconds ie. 15 minute?  Being able to more easily
take 75% of it?  Feels like some other rule might be better in this case
if this is so..

6) if the procedure has not concluded, perform the maintenance
procedure on the secondary port, which will reset the date and time
of the last interaction on the secondary port, and may result in the
allocation of a new Shipworm secondary address; this would not affect
the values of the refresh interval, candidate interval or maximum
refresh interval.

==> what Shipworm secondary address?  This term is not used anywhere else
in the draft.

4.3.1
3)	If the IPv6 source address is a Shipworm IPv6 anycast address, if
the IPv4 source address and UDP source port match the values
embedded in the IPv6 source address, and if the IPv4 source
address the packet MUST be accepted.

==>

The thought has been left unfinished :-)

Should s/a Shipworm IPv6 anycast address/a Shipworm IPv6 address/ ?

There is something missing in the sentence 'IPv4 source address the..'.
Seems like leftover from moving to 2).

4)      If the IPv6 source address is the IPv6 unspecified address, and
if the IPv6 source address is the Shipworm IPv6 anycast address,
the packet MUST be accepted.

==> I believe the second source address should be destination address.

If the destination address is not a Shipworm IPv6 address, the
packet should be relayed to the IPv6 Internet using regular IPv6
routing.

==> if you put 'fe80::1' as ipv6 destination address, or ::127.0.0.1, or
whatever, will you able to breach into the Shipworm Server?  Should there
be some sanity checking, like outlined by me in 'practical 6to4 security
rulesets'?

Tunneling, especially the automatic kind, is always chancy...

4.3.2   Processing of router solicitations

Before relaying packets received on the Shipworm port, the Shipworm
server MUST perform the security tests described in section 7.

==> These have now been moved to 4.3.1, right?

4.3.5   Fault isolation

==> shouldn't ping6/traceroute6 to ipv6 shipworm anycast address in the
end give you the non-anycast ipv6 address of the relay, as anycast cannot
be used as a source?  Of course, if the server doesn't work so far to get
even there, this won't yield much.

4.4	Shipworm Relay specification

==> The mandatory security checks referenced from chapter 7 aren'
mentioned here yet.

5)	In all other cases, the packet MUST be rejected.

==> rejected or discarded?  If rejected, how?  ICMP destination
unreachable: address unreachable (1:3)?  If source is believed to be
forged or otherwise tampered, is it sensible to try to send ICMP packets
there?

If the IPv6 destination address is a valid Shipworm IPv6 address,
the Shipworm Server MUST check that the IPv4 destination address is
in the format of a global unicast address; if this is not the case,
the packet MUST be silently discarded.

==> Should this check happen before Shipworm server processes the packet
if it was meant for it?

5.5
Scaling, failover and access control

==> This is a leftover note.

-- 
Pekka Savola                 "Tell me of difficulties surmounted,
Netcore Oy                   not those you stumble over and fall"
Systems. Networks. Security.  -- Robert Jordan: A Crown of Swords