Re: [Openvpn-devel] [PATCH] UDPv6 support (UDP/IPv6)

2004-09-25 Thread JuanJo Ciarlante
On Fri, Sep 24, 2004 at 05:09:28PM -0300, JuanJo Ciarlante wrote:
> 
> I've finished ./configure [ --disable-ipv6] [ --enable-unix-sockets ];
> tested compilation for the 4 combinations, and testbed runs too.
> Expect new patch for tomorrow

Done.

CHANGES.IPv6 excerpt:

* v0.2.2
  - IPv6, unix-socket support selectable at configure-time (all 4 combinations 
tested)
./configure --disable-ipv6(enabled by default)
./configure --enable-unix-sockets (disabled by default)
(internal) USE_PF_INET6, USE_PF_UNIX from autoconf
  - Change PROTO_x from #define to enum, to allow easier/cleanersupport for
optional protocols
  - Added IPV6__HEADER_SIZE

Available (GPL) at
  http://www.irrigacion.gov.ar/juanjo/openvpn/

Regards ..

--
--Juanjo

#  Juan Jose Ciarlante (JuanJo) jjo ;at; mendoza.gov.ar #
#  GnuPG Public Key: gpg --keyserver wwwkeys.eu.pgp.net --recv-key 66727177 #
#   Key fingerprint: 0D2F 3E5D 8B5C 729E 0560  F453 A3F7 E249 6672 7177 #



Re: [Openvpn-devel] [PATCH] UDPv6 support (UDP/IPv6)

2004-09-24 Thread JuanJo Ciarlante
On Fri, Sep 24, 2004 at 02:01:46PM -0600, James Yonan wrote:
> 
> 
> On Fri, 24 Sep 2004, JuanJo Ciarlante wrote:
> 
> > On Fri, Sep 24, 2004 at 10:39:59AM +0200, Matthias Andree wrote:
> > > On Fri, 24 Sep 2004, JuanJo Ciarlante wrote:
> > > 
> > > > This README covers UDP/IPv6 ( --udp6 ) support for openvpn-2.0_beta11
> > > > Also, with address family "generalization" changes came local AF_UNIX 
> > > > socket
> > > > support.
> > > 
> > > Is there a use for AF_UNIX in a VPN driver?
> > 
> > It stated in README file.. it allows the creation of local specialized
> > proxys that can  take full advantage of POSIX fileystem perm. semantics.
> > 
> > Currently I;'m working on a Jabber one 8))
> > regards...
> 
> I must say that the thought of running a VPN over Jabber is deliciously 
> subversive :)

yeahhh

> But I cringe when I think of the potential complexification in the sockets 
> code.
> 
> We are already moving in the direction of having lots of transport layer
> options (i.e. TCP, UDP, IPv4, IPv6, HTTP, Socks).  Now we're talking about
> local unix sockets and Jabber!  Maybe it's time to formally codify a
> transport layer driver model, i.e. a pluggable architecture.

Totally agreed, in fact my 1st thought was to try to abstract proxys code
paths, but I left for new now the of the impact.

My patch has a lot of work in this direction (functions like
proto_is_dgram... addr_copy, etc ); you know my first approach was to thinks
AF_UNIX as http/socks, but later I concluded that if we DONT require openvpn
to specify destination to the proxy entity its not a proxy, its a (tunneled)
pee; in the JAbber case , this could be an _already_ connected, _already_
configured destination JID not even known to openvpn, ... for openvpn its
just another channel (socket).

Indeed , AF_INET , AF_INET6 and AF_UNIX are mostly "siblings" from the
connection pointo of view.


> Then people
> can add new drivers to their heart's content, while OpenVPN itself will
> conveniently interact with a generalized abstraction of the model.

Count on me for that ... hope I can resist the temptation 8)))

Regards
-- 
--Juanjo

#  Juan Jose Ciarlante (JuanJo) jjo ;at; mendoza.gov.ar #
#  GnuPG Public Key: gpg --keyserver wwwkeys.eu.pgp.net --recv-key 66727177 #
#   Key fingerprint: 0D2F 3E5D 8B5C 729E 0560  F453 A3F7 E249 6672 7177 #



Re: [Openvpn-devel] [PATCH] UDPv6 support (UDP/IPv6)

2004-09-24 Thread JuanJo Ciarlante
On Fri, Sep 24, 2004 at 01:50:07PM -0600, James Yonan wrote:
> Juanjo,
> 
> Great work on the IPv6 support!

Thanks, Jim ...

> I see there are still a few TODO items,

Indeed, some of them may require code flow changes, mainly because of:
DNS may return A or  records,  iff we _require_ to specify --udp|--udp6 
(which
I think is wise given you DO know/coordinate you r peer's setup), these 
"ambiguities" 
disappear.

> and of course the OpenVPN project itself is in the transition zone between
> the end of the 2.0 beta series and the start of 2.0 release candidates, so
> I think it would make sense to hold off on merging your contribution until
> after 2.0 final is released.

Agreed.

I've finished ./configure [ --disable-ipv6] [ --enable-unix-sockets ];
tested compilation for the 4 combinations, and testbed runs too.
Expect new patch for tomorrow

Regards..

-- 
--Juanjo

#  Juan Jose Ciarlante (JuanJo) jjo ;at; mendoza.gov.ar #
#  GnuPG Public Key: gpg --keyserver wwwkeys.eu.pgp.net --recv-key 66727177 #
#   Key fingerprint: 0D2F 3E5D 8B5C 729E 0560  F453 A3F7 E249 6672 7177 #



Re: [Openvpn-devel] [PATCH] UDPv6 support (UDP/IPv6)

2004-09-24 Thread James Yonan

On Fri, 24 Sep 2004, JuanJo Ciarlante wrote:

> On Fri, Sep 24, 2004 at 10:39:59AM +0200, Matthias Andree wrote:
> > On Fri, 24 Sep 2004, JuanJo Ciarlante wrote:
> > 
> > > This README covers UDP/IPv6 ( --udp6 ) support for openvpn-2.0_beta11
> > > Also, with address family "generalization" changes came local AF_UNIX 
> > > socket
> > > support.
> > 
> > Is there a use for AF_UNIX in a VPN driver?
> 
> It stated in README file.. it allows the creation of local specialized
> proxys that can  take full advantage of POSIX fileystem perm. semantics.
> 
> Currently I;'m working on a Jabber one 8))
> regards...

I must say that the thought of running a VPN over Jabber is deliciously 
subversive :)

But I cringe when I think of the potential complexification in the sockets 
code.

We are already moving in the direction of having lots of transport layer
options (i.e. TCP, UDP, IPv4, IPv6, HTTP, Socks).  Now we're talking about
local unix sockets and Jabber!  Maybe it's time to formally codify a
transport layer driver model, i.e. a pluggable architecture.  Then people
can add new drivers to their heart's content, while OpenVPN itself will
conveniently interact with a generalized abstraction of the model.

James




Re: [Openvpn-devel] [PATCH] UDPv6 support (UDP/IPv6)

2004-09-24 Thread James Yonan
Juanjo,

Great work on the IPv6 support!  I see there are still a few TODO items,
and of course the OpenVPN project itself is in the transition zone between
the end of the 2.0 beta series and the start of 2.0 release candidates, so
I think it would make sense to hold off on merging your contribution until
after 2.0 final is released.

James 

On Fri, 24 Sep 2004, JuanJo Ciarlante wrote:

> Hi ppl ...
> As part of my master thesis _and_ community giveback y added UPDv6 support to
> openvpn-2.0_beta11, its working AFAITested, see attached README.IPv6 for
> details.
> 
> Output from my uoHAaaaAAA!! session:
> """
>   root@carpediem openvpn-2.0_beta11-jjo # ./openvpn  --dev tun --proto udp6 \
>   --remote fe80::240:5ff:feae:c851 --port 5010 --secret 
> ../openvpn.key \
>   --ifconfig 1.1.1.253 1.1.1.1
>   Tue Sep 21 17:30:39 2004 OpenVPN 2.0_beta11 i686-pc-linux [SSL] [LZO] 
> [EPOLL] built on Sep 21 2004
>   Tue Sep 21 17:30:39 2004 TUN/TAP device tun0 opened
>   Tue Sep 21 17:30:39 2004 /sbin/ifconfig tun0 1.1.1.253 pointopoint 1.1.1.1
>   mtu 1500
>   Tue Sep 21 17:30:39 2004 UDPv6 link local (bound): [AF_INET6]:::5010
>   Tue Sep 21 17:30:39 2004 UDPv6 link remote: 
> [AF_INET6]fe80::240:5ff:feae:c851:5010
>   Tue Sep 21 17:30:49 2004 Peer Connection Initiated with 
> [AF_INET6]fe80::240:5ff:feae:c851%wlan0wds0:5000
>   Tue Sep 21 17:30:51 2004 Initialization Sequence Completed
> 
>   :
> 
>   jjo@carpediem jjo $ ping -c 2 1.1.1.1
>   PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
>   64 bytes from 1.1.1.1: icmp_seq=1 ttl=64 time=16.5 ms
>   64 bytes from 1.1.1.1: icmp_seq=2 ttl=64 time=5.92 ms
> 
>   --- 1.1.1.1 ping statistics ---
>   2 packets transmitted, 2 received, 0% packet loss, time 1001ms
>   rtt min/avg/max/mdev = 5.928/11.258/16.588/5.330 ms
> """
> 
> BTW ... I've broke some basic indentation rules in order to avoid enlarging
> diff size.
> 
> Patch attached, also available (GPL) under
>http://www.irrigacion.gov.ar/juanjo/ipsec/
> 
> Best regards...
> 
> --
> --Juanjo
> 
> PS: Sorry for not signing this message, I've broken my mutt setup recently,
>  you'll find signed MD5SUM @URL above..
>  
> #  Juan Jose Ciarlante (JuanJo) jjo ;at; mendoza.gov.ar #
> #  GnuPG Public Key: gpg --keyserver wwwkeys.eu.pgp.net --recv-key 66727177 #
> #   Key fingerprint: 0D2F 3E5D 8B5C 729E 0560  F453 A3F7 E249 6672 7177 #
> 



Re: [Openvpn-devel] [PATCH] UDPv6 support (UDP/IPv6)

2004-09-24 Thread JuanJo Ciarlante
On Fri, Sep 24, 2004 at 09:24:39AM -0300, JuanJo Ciarlante wrote:
> On Fri, Sep 24, 2004 at 10:39:59AM +0200, Matthias Andree wrote:
> > Is there a use for AF_UNIX in a VPN driver?
> 
> It stated in README file.. it allows the creation of local specialized
> proxys that can  take full advantage of POSIX fileystem perm. semantics.

As a clarification, AF_UNIX gets autoconf'd on sys/un.h presence (every
AF_UNIX src section is #ifdef'd HAVE_SYS_UN_H) , but I'll make it selectable at
configure time.

For IPV6 code, I followed Itojun's guidelines (RFC) , it _should_
compile and work on all platforms [last famous words]; I'll truly
appreciacte feedback on this .


Regards...
-- 
--Juanjo

#  Juan Jose Ciarlante (JuanJo) jjo ;at; mendoza.gov.ar #
#  GnuPG Public Key: gpg --keyserver wwwkeys.eu.pgp.net --recv-key 66727177 #
#   Key fingerprint: 0D2F 3E5D 8B5C 729E 0560  F453 A3F7 E249 6672 7177 #



Re: [Openvpn-devel] [PATCH] UDPv6 support (UDP/IPv6)

2004-09-24 Thread JuanJo Ciarlante
On Fri, Sep 24, 2004 at 10:39:59AM +0200, Matthias Andree wrote:
> On Fri, 24 Sep 2004, JuanJo Ciarlante wrote:
> 
> > This README covers UDP/IPv6 ( --udp6 ) support for openvpn-2.0_beta11
> > Also, with address family "generalization" changes came local AF_UNIX socket
> > support.
> 
> Is there a use for AF_UNIX in a VPN driver?

It stated in README file.. it allows the creation of local specialized
proxys that can  take full advantage of POSIX fileystem perm. semantics.

Currently I;'m working on a Jabber one 8))
regards...

-- 
--Juanjo

#  Juan Jose Ciarlante (JuanJo) jjo ;at; mendoza.gov.ar #
#  GnuPG Public Key: gpg --keyserver wwwkeys.eu.pgp.net --recv-key 66727177 #
#   Key fingerprint: 0D2F 3E5D 8B5C 729E 0560  F453 A3F7 E249 6672 7177 #



Re: [Openvpn-devel] [PATCH] UDPv6 support (UDP/IPv6)

2004-09-24 Thread Matthias Andree
On Fri, 24 Sep 2004, JuanJo Ciarlante wrote:

> This README covers UDP/IPv6 ( --udp6 ) support for openvpn-2.0_beta11
> Also, with address family "generalization" changes came local AF_UNIX socket
> support.

Is there a use for AF_UNIX in a VPN driver?

-- 
Matthias Andree

Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 (PGP/MIME preferred)



[Openvpn-devel] [PATCH] UDPv6 support (UDP/IPv6)

2004-09-23 Thread JuanJo Ciarlante
Hi ppl ...
As part of my master thesis _and_ community giveback y added UPDv6 support to
openvpn-2.0_beta11, its working AFAITested, see attached README.IPv6 for
details.

Output from my uoHAaaaAAA!! session:
"""
  root@carpediem openvpn-2.0_beta11-jjo # ./openvpn  --dev tun --proto udp6 \
--remote fe80::240:5ff:feae:c851 --port 5010 --secret 
../openvpn.key \
--ifconfig 1.1.1.253 1.1.1.1
  Tue Sep 21 17:30:39 2004 OpenVPN 2.0_beta11 i686-pc-linux [SSL] [LZO] [EPOLL] 
built on Sep 21 2004
  Tue Sep 21 17:30:39 2004 TUN/TAP device tun0 opened
  Tue Sep 21 17:30:39 2004 /sbin/ifconfig tun0 1.1.1.253 pointopoint 1.1.1.1
  mtu 1500
  Tue Sep 21 17:30:39 2004 UDPv6 link local (bound): [AF_INET6]:::5010
  Tue Sep 21 17:30:39 2004 UDPv6 link remote: 
[AF_INET6]fe80::240:5ff:feae:c851:5010
  Tue Sep 21 17:30:49 2004 Peer Connection Initiated with 
[AF_INET6]fe80::240:5ff:feae:c851%wlan0wds0:5000
  Tue Sep 21 17:30:51 2004 Initialization Sequence Completed

  :

  jjo@carpediem jjo $ ping -c 2 1.1.1.1
  PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
  64 bytes from 1.1.1.1: icmp_seq=1 ttl=64 time=16.5 ms
  64 bytes from 1.1.1.1: icmp_seq=2 ttl=64 time=5.92 ms

  --- 1.1.1.1 ping statistics ---
  2 packets transmitted, 2 received, 0% packet loss, time 1001ms
  rtt min/avg/max/mdev = 5.928/11.258/16.588/5.330 ms
"""

BTW ... I've broke some basic indentation rules in order to avoid enlarging
diff size.

Patch attached, also available (GPL) under
   http://www.irrigacion.gov.ar/juanjo/ipsec/

Best regards...

--
--Juanjo

PS: Sorry for not signing this message, I've broken my mutt setup recently,
 you'll find signed MD5SUM @URL above..

#  Juan Jose Ciarlante (JuanJo) jjo ;at; mendoza.gov.ar #
#  GnuPG Public Key: gpg --keyserver wwwkeys.eu.pgp.net --recv-key 66727177 #
#   Key fingerprint: 0D2F 3E5D 8B5C 729E 0560  F453 A3F7 E249 6672 7177 #
# $Id: README.IPv6,v 1.1.2.5 2004/09/24 04:53:59 jjo Exp $ #

This README covers UDP/IPv6 ( --udp6 ) support for openvpn-2.0_beta11
Also, with address family "generalization" changes came local AF_UNIX socket
support.

Available under GPLv2 from 
  http://www.irrigacion.gov.ar/juanjo/openvpn/

See "Examples" section below for usage.

* Working:
  - upd6->upd6 (AF_INET6)
  - upd4->upd6 bound (show correctly mapped address) but requires
--float (to be fixed soon)
  - unix-dgram->unix-dgram (AF_UNIX)
useful for implementing local proxies that can take full advantage
of POSIX filesystem permissions ( more powerfull access mechanisms
than inet, even for localhost)

* Examples: some succesfully tested command lines 
  BTW did you know that openvpn can succesfully negotiate to self
  with --remote localhost ? (VERY useful for fast testing)

  - IPv6 "normal" usage (+succesfully tested tunnel traffic) 
server# openvpn --proto udp6 ...
  :
  Thu Sep 23 22:15:48 2004 Peer Connection Initiated with 
[AF_INET6]fe80::205:5dff:fef1:1ceb%wlan0wds1:5000
  :
client# openvpn --proto udp6 --remote fe80::240:5ff:feae:c851 ...
  :
  Thu Sep 23 22:13:19 2004 Peer Connection Initiated with 
[AF_INET6]fe80::240:5ff:feae:c851%wlan0wds0:5000
  :

  - IPv6 server, IPv4 client (more detailed)
server# openvpn --proto udp6 ...
  :
  Thu Sep 23 22:28:36 2004 UDPv6 link local (bound): [AF_INET6][undef]:5000
  Thu Sep 23 22:28:36 2004 UDPv6 link remote: [AF_INET6][undef]
  Thu Sep 23 22:28:50 2004 Peer Connection Initiated with 
[AF_INET6]:::10.55.14.253:5000
  Thu Sep 23 22:28:51 2004 Initialization Sequence Completed
  Thu Sep 23 22:28:56 2004 WARNING: Actual Remote Options ('... proto UDPv4 
... ') \
   are inconsistent with Expected Remote Options 
('... proto UDPv6 ...')

client# openvpn  --remote 10.55.14.254 ...  ### same default as now: --udp
  :
  Thu Sep 23 22:26:11 2004 UDPv4 link local (bound): [AF_INET][undef]:5000
  Thu Sep 23 22:26:11 2004 UDPv4 link remote: [AF_INET]10.55.14.254:5000
  Thu Sep 23 22:26:21 2004 Peer Connection Initiated with 
[AF_INET]10.55.14.254:5000
  Thu Sep 23 22:26:21 2004 WARNING: Actual Remote Options ('... proto UDPv6 
...') \
   are inconsistent with Expected Remote Options 
('... proto UDPv4 ...')
  Thu Sep 23 22:26:22 2004 Initialization Sequence Completed

  - IPv6 loopback
alone# openvpn --proto udp6 --remote ::1 ...
  :
  Wed Sep 22 13:03:07 2004 Peer Connection Initiated with [AF_INET6]::1:5000
  :

  - AF_UNIX toself
alone# openvpn --proto unix-dgram --local /tmp/o.s --remote /tmp/o.s --dev 
tun  ...
  :
  Thu Sep 23 16:37:27 2004 Peer Connection Initiated with [AF_UNIX]/tmp/o.s
  :

  - AF_UNIX between to diff instances
peer1# openvpn --proto unix-dgram --local /tmp/o1.s --remote /tmp/o2.s
peer2# openvpn --proto unix-dgram --local /tmp/o2.s --remote /tmp/o1.s
  :
  Wed Sep 22 12:49:03 2004 Peer