Bridge between two LANs with OpenBSD
My router is sharing the internet connection for an ethernet network and a Wi-Fi network. Both of them where on their own sub-networks.
On my iPhone (using the Wi-Fi network), I have the Remote application, allowing to control the iTunes on my Mac (which is using the ethernet network). Since they are not in the same network, it doesn’t work (even if routes are properly specified). The solution is to create a bridge for those two networks.
I already blogged about how I configured Wi-Fi on my OpenBSD router.
Bridge configuration
Here is the configuration of the interfaces (rl0 is the ethernet interface and rum0 is the Wi-Fi interface):
inet 192.168.2.254 255.255.255.0 NONENothing specific as expected.
up media autoselect mode 11g mediaopt hostap nwid <SSID> wpa wpaprotos wpa2 wpaakms psk wpapsk <SHARED KEY>Here there is a slight modification, an IP address is not needed anymore. Bridge configuration:
add rl1
add rum0
upPF
Be sure that PF is allowing packets between the two interfaces, you should have something like this:
int_if="rl1"
wlan_if="rum0"
pass quick on $int_if no state
pass quick on $wlan_if no stateIt’s a bit simplistic, you may write more sophisticated filtering rules depending on your needs.
DHCP
My router is also acting as a DHCP for ethernet and Wi-Fi devices. To activate DHCP, add the following line:
dhcpd_flags=""Tell dhcpd to listen on rl1 only (rum0 does not have any IP so we don’t have to bind dhcpd to it):
rl1dhcpd configuration:
shared-network LAN {
option domain-name "example.net";
option domain-name-servers <primary_dns_ip>, <secondary_dns_ip>;
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.254;
range 192.168.2.32 192.168.2.127;
}
}