Added CMake support with managed protocol settings
[6bed4] / README.MD
1 # IPv6 Everywhere with 6bed4
2
3 > *The 6bed4 tunnel and peer-to-peer toolkit enables IPv6 everywhere.
4 > It connects programs and hosts over UDP/IPv4.  It tries hard to setup
5 > connections as direct peer-to-peer connections, but may fall back to
6 > a server failing this.*
7
8 The intention of 6bed4 is to assure protocol designers of the availability
9 of IPv6 on all nodes that run their protocol.  For instance, a designer
10 of a peer-to-peer search application should be able to connect to peers
11 over IPv6, thereby bypassing many problems resulting from NAT.  One might
12 say that IPv6 is used to encapsulate all problems with NAT traversal.
13
14
15 ## Status
16
17 This code is **WORK IN PROGRESS**, while we are finalising our 6bed4
18 Internet Draft.
19
20
21 ## Programs
22
23 The `6bed4peer` program runs an interface over which IPv6 routing is
24 available, and for which up to 16383 local extensions can be allocated
25 and made available over a tunnel interface.
26
27 The `6bed4node` program is an extended `6bed4peer` in that it does not
28 provide a network interface but a network service that offers IPv6
29 addresses over a standard network interface, though this requires a few
30 extra programs like `radvd` and possibly a DHCPv6 server.  In this case,
31 programs can use native IPv6 network stacks.  A typical use case for the
32 `6bed4node` is on a network router, such as one of the OpenWRT routers.
33
34 The `6bed4router` program runs as a fallback router.  Even when it could
35 be considered a server program, it is faithful to the idea of peer-to-peer
36 communication in the sense that multiple of these routers can collaborate
37 to connect `6bed4peer` programs.  A user can choose which router to use,
38 although this
39 [depends on the prefix](PREFIXES.MD)
40 used.  We have arranged for public 6bed4 service at 145.136.0.1 port 25790.
41
42 **TODO:** 6bed4node remains to be done.
43
44 **TODO:** A socket-replacing library would be useful.
45
46 For use with Java, we have **TODO:** Android6bed4 and Socket6bed4.
47
48
49 ## Usage
50
51 TODO