Subject: Issues with draft-huitema-v6ops-teredo-02.txt

From: Rémi Denis-Courmont <[email-masked]>
Date: Sun, 27 Jun 2004 11:20:22 +0200

Hello,

I've got a few questions regarding draft-huitema-v6ops-teredo-02.txt

> 5.1.2 Maximum Transmission Unit
> 
> The default link MTU assumed by a host, and the link MTU supplied by
> a Teredo server during router advertisement SHOULD normally be set
> to the minimum IPv6 MTU size of 1280 bytes [RFC2460].

Should the server embed a MTU in its RA?

> 5.2.1 Qualification procedure
(...)
> The client selects a secondary IPv4 server address, and
> repeats the procedure, the cone bit remaining to the value zero.

How is the secondary IPv4 server address determined?
The implementation currently shipped with Windows XP seems to increment 
the primary server address by one, but that behavior is not documented 
in the spec.

> 5.3 Teredo Server specification
(...)
> The Teredo server
> waits for incoming UDP packets at the Teredo Port, using the IPv4 
> address that has been selected for the service. In addition, the
> server is able to receive and transmit some packets using a
> different IPv4 address and a different port number.

I thought the port number was 3544 in both cases. Is that not the case, 
and, if so, how is the port determined by the client?

> 5.4.1 Transmission by relays to Teredo clients
(...)
> Before processing these packets, the Teredo Server MUST check that
> the IPv4 destination address embedded in the Teredo IPv6 address is
> in the format of a global unicast address; if this is not the case,
> the packet MUST be silently discarded.

I'm fairly confused there: Is it the server's or the relay's job to 
check the "IPv4 destination address embedded in the Teredo IPv6 
address" ?

I admit servers should do the check, as they should not blindly trust 
packets from relays. But as I read the following sentence:

> The relay then checks if there is an entry for this IPv6 address in
> the list of recent Teredo peers, and if the entry is still valid.

I assume it is the relay's job. Doesn't that need a bit of 
clarification?

Sincerely,

-- 
Rémi Denis-Courmont

---

From: "Christian Huitema" <[email-masked]>
Date: Tue, 29 Jun 2004 08:46:53 -0700

> Should the server embed a MTU in its RA?

Yes, that is what the spec says. On the other hand, the server must not advertise a value different from 1280, and the clients should ignore any advertisement different from 1280. The server is not on the path of most communications, and thus has no idea of what the proper MTU would be on the path between two nodes. 

The flip part of the requirement is that Teredo nodes must have adequate reassembly buffers to handle a 1280 byte IPv6 payload in an IPv4/UDP packet.

> the primary server address by one, but that behavior is not documented

The implementation in Windows XP reads the secondary IP address from the DNS. 

> and, if so, how is the port determined by the client?

Correct. The server must listen on port 3544 on the secondary address for the qualification procedure to work.

> check the "IPv4 destination address embedded in the Teredo IPv6

The text should read "Teredo Relay" instead of "Teredo Server." Sorry about that.

Thanks for the review. I will correct these points in the next version of the draft.

-- Christian Huitema