usbmodeswitch: Updated to v.1.2.6 from shibby's branch.
[tomato.git] / release / src / router / openvpn / README.IPv6
blobd504f4ff801ffbcae5dfe4a4b6a28e0e4565ca31
1 IPv6 payload support
2 --------------------
4 Latest IPv6 payload support code and documentation can be found from here:
6   http://www.greenie.net/ipv6/openvpn.html
8 For TODO list, see TODO.IPv6.
10 Gert Doering, 31.12.2009
14 IPv6 transport support
15 ----------------------
17 [ Last updated: 25-Mar-2011. ]
19 OpenVPN-2.1 over UDP6/TCP6 README for ipv6-0.4.x patch releases:
20 ( --udp6 and --tcp6-{client,server} )
22 * Availability
23   Source code under GPLv2 from http://github.com/jjo/openvpn-ipv6
25   Distro ready repos/packages:
26   o Debian sid official repo, by Alberto Gonzalez Iniesta,
27     starting from openvpn_2.1~rc20-2
28   o Gentoo official portage tree, by Marcel Pennewiss:
29     - https://bugs.gentoo.org/show_bug.cgi?id=287896
30   o Ubuntu package, by Bernhard Schmidt:
31     - https://launchpad.net/~berni/+archive/ipv6/+packages
32   o Freetz.org, milestone freetz-1.2
33     - http://trac.freetz.org/milestone/freetz-1.2
35 * Status:
36   o OK:
37     - upd6,tcp6: GNU/Linux, win32, openbsd-4.7, freebsd-8.1
38     - udp4->upd6,tcp4->tcp6 (ipv4/6 mapped): GNU/Linux
39       (gives a warning on local!=remote proto matching)
40   o NOT:
41     - win32: tcp4->tcp6 (ipv4/6 mapped) fails w/connection refused
42   o NOT tested:
43     - mgmt console
45 * Build setup:
46   ./configure --enable-ipv6        (by default)
48 * Usage:
49   For IPv6 just specify "-p upd6" an proper IPv6 hostnames, adapting the example
50   from man page ...
52   On may:
53     openvpn --proto udp6 --remote <june_IPv6_addr> --dev tun1 \
54       --ifconfig 10.4.0.1 10.4.0.2 --verb 5 --secret key
56   On june:
57     openvpn --proto udp6 --remote <may_IPv6_addr>  --dev tun1 \
58       --ifconfig 10.4.0.2 10.4.0.1 --verb 5 --secret key
60   Same for --proto tcp6-client, tcp6-server.
62 * Main code changes summary:
63   - socket.h: New struct openvpn_sockaddr type that holds sockaddrs and pktinfo,
64     (here I omitted #ifdef USE_PF_xxxx, see socket.h )
66     struct openvpn_sockaddr {
67         union {
68                 struct sockaddr sa;
69                 struct sockaddr_in in;
70                 struct sockaddr_in6 in6;
71         } addr;
72     };
74     struct link_socket_addr
75     {
76             struct openvpn_sockaddr local;
77             struct openvpn_sockaddr remote;
78             struct openvpn_sockaddr actual;
79     };
81     PRO: allows simple type overloading: local.addr.sa, local.addr.in, local.addr.in6 ... etc
82     (also local.pi.in and local.pi.in6)
84   - several function prototypes moved from sockaddr_in to openvpn_sockaddr
85   - several new sockaddr functions needed to "generalize" AF_xxxx operations:
86     addr_copy(), addr_zero(), ...etc
87     proto_is_udp(), proto_is_dgram(), proto_is_net()
89 * For TODO list, see TODO.IPv6
92 JuanJo Ciarlante   jjo () google () com ............................
93 :                                                                  :
94 .                                         Linux IP Aliasing author .
95 .   Modular algo (AES et all) support for FreeSWAN/OpenSWAN author .
96 .                                        OpenVPN over IPv6 support .
97 :......     plus other scattered free software bits in the wild ...: