sshuttle allows traffic to be routed to the internal network (10.0.3.0) used for the lxc containers inside a Juju Vagrant image. sshuttle does not work with OS X 10.10 (Yosemite). This alternate solution alters your local network routing rules in order to communicate directly with the virtual machine over its vboxnet0 bridge. It's also faster than using sshuttle, because it doesn't need to proxy over an SSH tunnel or teardown/reassemble the TCP packets.
This approach adds and removes the route when a virtual machine is brought up and taken down, and requires sudo at each step. Alternatively, you could add this route at boot or via login script.
You'll need to have the triggers plugin installed for this to work.
vagrant plugin install vagrant-triggers
Add the config.trigger rules in your Vagrantfile:
config.trigger.after [:provision, :up, :reload] do
system('sudo route add -net 10.0.3.0/24 172.16.250.15 >/dev/null')
end
config.trigger.after [:halt, :destroy] do
system('sudo route delete -net 10.0.3.0/24 172.16.250.15 >/dev/null')
end
Optionally, add a sudoer role so you don't have to enter your password each time:
user ALL=(ALL) NOPASSWD: /sbin/route