Three steps:
- Get the two computers speaking via IP. Pick addresses that aren't already used elsewhere. A fancy way of doing this might be
avahi-autoipd
, which implements 'IPv4LL, "Dynamic Configuration of IPv4 Link-Local Addresses" (IETF RFC3927)', but that's only in Ubuntu feisty. In any case you need to tell the internet-less machine to route through the gateway one (as well as give it the upstream DNS server address). - Tell the laptop machine to forward packets routed to it:
echo 1 > /proc/sys/net/ipv4/ip_forward
- Tell iptables to masquerade (NAT) packets going out the wireless interface:
iptables -t nat -A POSTROUTING -o ath0 -j MASQUERADE
echo 0
into the ip forwarding control and clear ("flush") the nat
iptable: iptables -t nat -F
.