4 Network Working Group O. Gsenger
5 Internet-Draft March 2007
6 Expires: September 2, 2007
9 Anycast stream relaying
10 draft-gsenger-anycast-relay-00
14 By submitting this Internet-Draft, each author represents that any
15 applicable patent or other IPR claims of which he or she is aware
16 have been or will be disclosed, and any of which he or she becomes
17 aware will be disclosed, in accordance with Section 6 of BCP 79.
19 Internet-Drafts are working documents of the Internet Engineering
20 Task Force (IETF), its areas, and its working groups. Note that
21 other groups may also distribute working documents as Internet-
24 Internet-Drafts are draft documents valid for a maximum of six months
25 and may be updated, replaced, or obsoleted by other documents at any
26 time. It is inappropriate to use Internet-Drafts as reference
27 material or to cite them other than as "work in progress."
29 The list of current Internet-Drafts can be accessed at
30 http://www.ietf.org/ietf/1id-abstracts.txt.
32 The list of Internet-Draft Shadow Directories can be accessed at
33 http://www.ietf.org/shadow.html.
35 This Internet-Draft will expire on September 2, 2007.
39 Copyright (C) The IETF Trust (2007).
55 Gsenger Expires September 2, 2007 [Page 1]
57 Internet-Draft Anycast stream relaying March 2007
62 The anycast tunneling (anytun) protocol defines a protocol used for
63 communication between unicast clients and anycast servers. It can be
64 used for tunneling information between 2 clients over the servers or
65 in relay mode to transmit data form the client over the servers to a
66 third party not using the protocol and vice versa.
111 Gsenger Expires September 2, 2007 [Page 2]
113 Internet-Draft Anycast stream relaying March 2007
118 anytun defines a Host Anycast Service as defined in rfc1546. It can
119 be used to build high scalable and redundant tunnel services. It
120 supports both UDP and TCP connections. Additionally to the
121 possibility of establashing an unicast TCP connection over an anycast
122 address as suggested in rfc1546, it supports real anycast TCP
123 connections with state syncronisation and heuristic state forecast.
124 It also has a relay mode, that makes it possible, that only one of
125 the connection endpoints has to use the anytun protocol. This can be
126 used to make connections through Firewalls or behind a NAT Router
167 Gsenger Expires September 2, 2007 [Page 3]
169 Internet-Draft Anycast stream relaying March 2007
174 This section gives an overview of possible operation modes und usage
175 scenarios. Please note, that the protocols used in the figures are
176 only examples and that anytun itself does not care about either
177 transport protocols or encapsulated protocols. Routing and network
178 address translation is not done by anytun. Each implemetation MAY
179 choose it's own way of doing this task (e.g. using functions provided
180 by the operating system). Anytun is used to establish and controll
181 tunnnels, to encapsulate and encrypt data.
185 2.1.1. Tunneling Mode
187 An example of anytun used in tunnel mode
189 ----------- -----------
190 | RTP | ---------- | RTP |
191 ----------- -> |server 1| -> -----------
192 | UDP | ---------- | UDP |
193 ----------- -----------
194 ----- | IPv6 | ---------- | IPv6 | -----
195 | | -> ----------- -> |server 2| -> ----------- -> | |
196 ----- | anytun | ---------- | anytun | -----
197 ##### ----------- ----------- #####
198 | UDP | ---------- | UDP |
199 client 1 ----------- -> |server 3| -> ----------- client 2
200 | IPv4 | ---------- | IPv4 |
201 ----------- -----------
202 | ... | anycast | ... |
206 In tunneling mode the payload of the anytun packet is transmitted
207 from one unicast host to the anycast server. This server makes a
208 routing descision based on the underlying protocol and transmits a
209 new anytun package to one or more clients depending on the routing
210 descition. The server MAY also route the packet to a directly
211 connected network or a service running on the server, but please
212 note, that this is only usefull for anycast host services like DNS
213 and that the services HAVE TO be running on all servers in order to
223 Gsenger Expires September 2, 2007 [Page 4]
225 Internet-Draft Anycast stream relaying March 2007
228 2.1.2. Open tunnel mode
230 An example of anytun used in open tunnel mode
234 ----------- -> |server 1| ->
235 | UDP | ---------- -----------
237 ----- | IPv6 | ---------- ----------- -----
238 | | -> ----------- -> |server 2| -> | UDP* | -> | |
239 ----- | anytun | ---------- ----------- -----
240 ##### ----------- | IPv6* | #####
241 | UDP | ---------- -----------
242 client 1 ----------- -> |server 3| -> | ... | host
243 | IPv4 | ---------- not using
246 *changed source address
251 In open tunnel mode only one of two clients talking to each other
252 over the servers MUST use the anytun protocol. When a client using
253 the anytun protocol wants to tunnel data, it is building a connection
254 to the anycast servers using the anytun protocol. The anycast
255 servers relay the encapsulated packages directly to the destination
256 without using the anytun protocol. The source address of the
257 datagramm HAS TO be changed to the anycast address of the server.
258 The anytun servers act like a source NAT router, therefor for the
259 destination it saems that it is talking to the client directly.
279 Gsenger Expires September 2, 2007 [Page 5]
281 Internet-Draft Anycast stream relaying March 2007
286 An example of anytun used in relay mode
289 ----- | RTP | ----------
290 | | -> ----------- -> |server 1| ->
291 ----- | UDP** | ---------- -----------
292 ##### ----------- | RTP |
293 | IPv6**| ---------- ----------- -----
294 host ----------- -> |server 2| -> | UDP* | -> | |
295 not using | ... | ---------- ----------- -----
296 anytun | IPv6* | #####
297 ---------- -----------
298 ----------- -> |server 3| | ... | host
299 ----- | anytun | ---------- not using
300 | | -> ----------- anytun
301 ----- | IPv4 | anycast
306 *changed source address or port
307 **changed destination address or port
311 In relay mode the anycast serveres directly repaet the packetes of
312 clients, only the source and destination addresses are changed. The
313 anytun protocol is only used for controll messages, but not fr
335 Gsenger Expires September 2, 2007 [Page 6]
337 Internet-Draft Anycast stream relaying March 2007
340 2.2.1. anycast udp mode
342 An example of anytun used with udp transport
344 ----------- -----------
345 | RTP | ---------- | RTP |
346 ----------- -> |server 1| -> -----------
347 | UDP | ---------- | UDP |
348 ----------- -----------
349 ----- | IPv6 | ---------- | IPv6 | -----
350 | | -> ----------- -> |server 2| -> ----------- -> | |
351 ----- | anytun | ---------- | anytun | -----
352 ##### ----------- ----------- #####
353 | UDP | ---------- | UDP |
354 client 1 ----------- -> |server 3| -> ----------- client 2
355 | IPv4 | ---------- | IPv4 |
356 ----------- -----------
357 | ... | anycast | ... |
361 In anycast udp mode the data between clients and anycast serveres is
362 carried by udp packets. Packets are routed by the serveres from one
363 client to another. Because udp is stateless no inforamtion has to be
366 2.2.2. anycast light udp mode
368 An example of anytun used with udp transport
370 ----------- -----------
371 | RTP | ---------- | RTP |
372 ----------- -> |server 1| -> -----------
373 | UDP | ---------- | UDP |
374 ----------- -----------
375 ----- | IPv6 | ---------- | IPv6 | -----
376 | | -> ----------- -> |server 2| -> ----------- -> | |
377 ----- | anytun | ---------- | anytun | -----
378 ##### ----------- ----------- #####
379 |lightUDP | ---------- |lightUDP |
380 client 1 ----------- -> |server 3| -> ----------- client 2
381 | IPv4 | ---------- | IPv4 |
382 ----------- -----------
383 | ... | anycast | ... |
387 The light UDP mode is neerly the same as the normal UDP mode, the
391 Gsenger Expires September 2, 2007 [Page 7]
393 Internet-Draft Anycast stream relaying March 2007
396 only difference is, that the udp size is set to the udp header lenght
397 and not to the length of the full packet and therefor the checksum is
398 only calculated for the udp header itself. So there is no error
399 correction or detection done on the payload. This can be usefull if
400 realtime data is beeing transimittet or the tunneled protocol does
401 error correction/detection by itself.
403 2.2.3. Protocol specification
405 2.2.3.1. Header format
407 2.2.3.2. Protocol field
409 The protocol field defines the payload protocol. ETHER TYPE protocol
410 numerbers are used. http://www.iana.org/assignments/ethernet-numbers
411 . The values 0000-05DC are reserverd and not used at the moment.
413 Some exmples for protocol types
419 0800 Internet IP (IPv4)
420 6558 transparent ethernet bridging
447 Gsenger Expires September 2, 2007 [Page 8]
449 Internet-Draft Anycast stream relaying March 2007
452 Appendix A. The appan
503 Gsenger Expires September 2, 2007 [Page 9]
505 Internet-Draft Anycast stream relaying March 2007
510 [1] Huitema, C., "An Anycast Prefix for 6to4 Relay Routers",
559 Gsenger Expires September 2, 2007 [Page 10]
561 Internet-Draft Anycast stream relaying March 2007
572 Email: otti@wirdorange.org
573 URI: http://anytun.org/
615 Gsenger Expires September 2, 2007 [Page 11]
617 Internet-Draft Anycast stream relaying March 2007
620 Full Copyright Statement
622 Copyright (C) The IETF Trust (2007).
624 This document is subject to the rights, licenses and restrictions
625 contained in BCP 78, and except as set forth therein, the authors
626 retain all their rights.
628 This document and the information contained herein are provided on an
629 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
630 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
631 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
632 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
633 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
634 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
637 Intellectual Property
639 The IETF takes no position regarding the validity or scope of any
640 Intellectual Property Rights or other rights that might be claimed to
641 pertain to the implementation or use of the technology described in
642 this document or the extent to which any license under such rights
643 might or might not be available; nor does it represent that it has
644 made any independent effort to identify any such rights. Information
645 on the procedures with respect to rights in RFC documents can be
646 found in BCP 78 and BCP 79.
648 Copies of IPR disclosures made to the IETF Secretariat and any
649 assurances of licenses to be made available, or the result of an
650 attempt made to obtain a general license or permission for the use of
651 such proprietary rights by implementers or users of this
652 specification can be obtained from the IETF on-line IPR repository at
653 http://www.ietf.org/ipr.
655 The IETF invites any interested party to bring to its attention any
656 copyrights, patents or patent applications, or other proprietary
657 rights that may cover technology that may be required to implement
658 this standard. Please address the information to the IETF at
664 Funding for the RFC Editor function is provided by the IETF
665 Administrative Support Activity (IASA).
671 Gsenger Expires September 2, 2007 [Page 12]