I got this to work on Angstrom by modifying the /usr/bin/g-ether-load.sh script which sets up the USB Ethernet connection. I added 2 lines at the end of the file:
/sbin/route add default gw 192.168.7.1
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
This adds a default gateway for the network carried over USB and adds a DNS server for resolving names - 8.8.8.8 is Google - change it to a local DNS server or your favorite external one as needed.
You could also do this manually each time it's needed rather than every time via the g-ether-load.sh script.
I don't know if there is a better way to do this without modifying g-ether-load.sh. There might a more "correct" way using systemd or connman but I'm still learning those.
On the host side running Ubuntu, I enable forwarding via the following two commands:
sudo iptables -A POSTROUTING -t nat -j MASQUERADE
sudo echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward > /dev/null
Note that these need to be run each time you re-boot the host, either manually or via some init script.
Kyle: any tips/advice on getting this going on the Mac? I tried enabling "Internet Sharing" via the GUI on Mac OSX 10.8, but nothing gets through from the BBB. I can ping the Mac from the BBB and ssh into the BBB from the Mac so the connection is up. Do you use the command-line ipfw command to set this up?
Mark