I'm using mDNS and DNS-SD on Arduino to announce services on Arduino. I have some interests on doing it across subnets. Generally, we often use VPN server and client to look like being together in the same network. Is there any try to implement that kind of thing on Arduino? Due to the lack of memory, I'm not even sure that this makes sense on Arduino.
Have a VPN client on the Arduino is probably out of reach, for one because of the limited RAM but for the other because the CPU resources are too limited.
Usually VPN connectivity is done on the router and not on every device in the network. If you connect two routers by a VPN in bridge mode you get one LAN over the two networks.
Arduino as VPN client some time is only solution to get job done, say Arduino behind the firewall.
I agree Arduino lack resource of hardware to support vpn, and if not all at least most of tcp/ip Arduino shield ( ethernet, wifi...) lack of software support for vpn.
However there are still few solution:
1. The router which support openwrt and with usb port, here router become ehternet (100Mb/1Gb) or wifi shield, then load openvpn. ready to go. ( cost $20+)
2. Pogoplug install archlinux ARM , It has 1Gb ehternet port if use it as ethernet shield, add usb wifi stick for wifi shield, then install openvpn ( cost $18+)
3. Raspberry Pi install debian, It has 100Mb ehternet port if use it as ethernet shield, add usb wifi stick for wifi shield, then install openvpn ( cost $35+)
There are long list ARM base board, we could use, but I only list common one here.