The Alternate Address Trailer is used by the Hairpinning Extension. The Alternate Address Trailer MUST NOT be present in any packets other than direct or indirect bubbles sent by a Teredo client. The Alternate Address Trailer provides another Teredo client positioned behind the same NAT with more address options that it can use to connect.
| 0
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 1 0
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 2 0
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 3 0
| 1
|
|---|
| Type | Length | Reserved |
| Alternate Address/Port List (variable) |
| ... |
Type (1 byte): The Trailer Option type. This field MUST be set to 0x03.
Length (1 byte): The length in bytes of the rest of the option. The value of this field SHOULD be in the range 8 to 26 (that is, 2 bytes for the Reserved field, and 6 bytes for each entry in the Alternate Address/Port List). This allows for a minimum of one address/port mapping and a maximum of four address/port mappings to be advertised. It SHOULD be at most 14, because a maximum of two address/port mappings can be determined by Teredo: one local address/port and one obtained using UPnP.
Because the length of the alternate address/port is 6 bytes, the valid range of values is only 8, 14, 20, and 26.
Reserved (2 bytes): This field MUST be set to 0x0000 and ignored on receipt.
Alternate Address/Port List (variable): An array of additional address/port pairs that can be used by other Teredo clients to communicate with the sender.
Each alternate address/port entry MUST be formatted as follows.
| 0
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 1 0
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 2 0
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 3 0
| 1
|
|---|
| IPv4 Address |
| Port | |
IPv4 Address (4 bytes): An IPv4 address in network byte order. This field MUST contain a valid unicast address.
Port (2 bytes): A port number in network byte order. This field MUST NOT be zero.