I was sending a file to a friend who lives a block away and it took a while due to the uplink bandwidth limit. There was no way to get around that besides sending the file via an internal network. A wired network was out of the question. The next best thing was wireless mesh networking. This is a project to build and analyze the performance of a working wireless mesh network using the Optimized Link State Routing protocol.
Setting up OLSR using a Linksys WRT54G router on the DDWRT 2.4 SP2 firmware
A very detailed guide with screenshots of how to do this can is located at http://sites.google.com/a/uprm.edu/ccli/Home/testbeds-1/wireless-mesh-network-testbed-using-wrt54gl-dd-wrt-and-olsr
Due to the implementation of OLSR requiring the isolation of the WIFI interface, most of the functionality (DHCP, QOS, etc) that can be configured through the web interface will no longer work.
Routing Internet to Clients
Once an internet accessible link is plugged into the WAN port, OLSR will automatically discover it and update the routing table.
Setting up NAT
iptables -t nat -A POSTROUTING -o $(nvram get wan_ifname) -j MASQUERADE
iptables -t nat -A POSTROUTING -o $(nvram get wl0_ifname) -s $(nvram get eth1_ipaddr)/$(nvram get eth1_netmask) -d $(nvram get eth1_ipaddr)/$(nvram get eth1_netmask) -j MASQUERADE
iptables -t nat -A POSTROUTING -o $(nvram get lan_ifname) -s $(nvram get lan_ipaddr)/$(nvram get lan_netmask) -d $(nvram get lan_ipaddr)/$(nvram get lan_netmask) -j MASQUERADE
Setting up DHCP on Isolated Wifi (eth1) Interface
iptables -I INPUT -i eth1 -p udp --dport 67:68 --sport 67:68 -j ACCEPT
iptables -I INPUT -i eth1 -p udp --dport 53 -j ACCEPT
killall -q -9 dnsmasq
sed /^interface.*/d /tmp/dnsmasq.conf > /tmp/dnsmasq.conf.new
echo -n "
option subnet 255.255.255.0
option router 10.1.1.1
option lease 86640
option dns $(nvram get wan_dns)
" > /tmp/udhcpdeth1.conf
taken from http://www.dd-wrt.com/wiki/index.php/Separate_Lan_and_WLan
DHCP requests are not propagated in AD-HOC mode; therefore, each node must provide its own set of IP’s.
Removing Generated Filters
On some versions of DD-WRT, namely the micro version on WRT54G V5 and V6, there are some generated DROP entries in iptables that prevent proper routing. Remove those entries by,
iptables -F INPUT