hyperboria / android

Android app for mesh networking with cjdns
GNU General Public License v3.0
159 stars 40 forks source link

Reach Hyperboria via Clearnet Overlay #27

Open benhylau opened 9 years ago

benhylau commented 9 years ago

I am not sure what exactly needs to be done to make this happen. But the goal is to reach a Hyperboria-only site from the default browser.

@lgierth @kpcyrd I imagine we'd first need peering creds in cjdroute.conf or some kind of peers.d. Then we can get cjdroute running in the background. The we need to set up a VpnService, right?

kpcyrd commented 9 years ago

I don't think it'd be a good idea to modify the config automatically (obviously, since I've implemented peers.d for this reason). In yrd, I'm starting up cjdroute with a blank config and add the connections during runtime. Usually, this is being done by the cjdroute angle process in the same way.

I think it'd require some hard work on cjdroute to make it work with VpnService, since this requires the tun device to be plugable. I'm not sure if this is currently the case. A file descriptor interface in cjdroute would be useful, so we can just read the packets from the VpnService fd and pass them to the cjdroute fd.

After that is done, all applications should be able to access the fc00::/8 network, since we've registered a route in the kernel.

A concerns from the VpnService docs:

There can be only one VPN connection running at the same time. The existing interface is deactivated when a new one is created.

This would prevent a user from using the openvpn app and cjdns-android at the same time.

benhylau commented 9 years ago

Yea I really hate the idea of directly modifying conf too. So a yrd port to Java? Now it's Python-only right?

I guess one VPN at a time, switching as needed, isn't too horrible.

kpcyrd commented 9 years ago

yrd is python only, yes, but it should be easy to port it to java, since it can be used as reference on how to talk to the admin API.

It'd be an issue if you need openvpn for your business email and want to connect to your personal email over hype, but I'm not sure if that's very likely.

benhylau commented 9 years ago

The guy probably has a Blackberry in this case :laughing:

benhylau commented 8 years ago

Embed a bunch of public peers by default and select from phone via nodeinfo.json and smallest ping.