Bridge wlan0 to eth0
Introduction
This wiki describes methods to bridge a wired and wireless interface to enable network communication between hosts reachable via either interface. This allows one or more wired hosts to share the wireless interface on the bridge host.
In my use case, I have a desk with a wired switch with multiple hosts connected. All wired devices on this switch can access my home wifi network via the bridge host's wireless interface.
I am only going to document the proxy ARP method as that's what I'm currently using. Please feel free to add additional methods and remove this section of the introduction.
Method 1: Proxy ARP
These steps result in a working solution where hosts on the wired side and hosts on the wireless side are all in the same ip network. There are no frills added, such as dhcp or automatic route entries for the wired hosts. Each wired host needs to have a manually configure IP address and an entry manually added to the bridge host's routing table.
Note: For your wired hosts, use IP addresses in the same IP range as the rest of your network but outside of the scope used by a local DHCP server, if applicable. You may need to reduce your DHCP scope to free up IP addresses for your wired bridge hosts.
Configure the network interfaces on your bridge host:
Contents of /etc/network/interfaces
Notice that the wireless interface (wlan0) uses dhcp from the home network as usual and that an IP address is not used at all on the wired interface (eth0).
Enable and create a local start-up script to add route entries for your bridged wired hosts:
# rc-update add local default # touch /etc/local.d/RouteAdd.start # chmod +x /etc/local.d/RouteAdd.start
Add route statements for each bridged wired host:
Contents of /etc/local.d/RouteAdd.start
Enable proxy arp:
Contents of /etc/sysctl.d/local.conf
# reboot