Raspberry as Pi Ethernet-WiFi-Bridge: Difference between revisions
(→Notes) |
|||
Line 53: | Line 53: | ||
DHCPHELPER_OPTS="-b eth0" | DHCPHELPER_OPTS="-b eth0" | ||
Explanation: <tt>dhcp-helper</tt> will now forward all [[DHCP]]-related boradcasts to this interface (and none coming from there to the other interfaces). | Explanation: <tt>dhcp-helper</tt> will now forward all [[DHCP]]-related boradcasts to this interface (and none coming from there to the other interfaces). | ||
=== Known issues === | |||
* After br0 is set up… | |||
** [[DNS]]-lookups fail (and therefore everything else, like pings to external hosts or <tt>apt-get</tt> | |||
** the [[Pi]] can't be reached by [[ssh]] or any other service | |||
=== Notes === | === Notes === | ||
Since you use a [[DHCP]] server and you manually set [[IPA]]s, you might want to reserve those [[IPA]]s in your [[DHCP]]-server configuration. | Since you use a [[DHCP]] server and you manually set [[IPA]]s, you might want to reserve those [[IPA]]s in your [[DHCP]]-server configuration. | ||
This might become handy: | |||
systemd-resolve --status | |||
Displays your [[DNS]]-setup | |||
nslookup www.wurst-wasser.net | |||
---- | ---- |
Revision as of 12:27, 5 February 2019
The Challenge
I wanted to set up my Raspberry Pi 3 as Webcam, intranet server, and Ethernet-WiFi-Bridge. In the long run I want to use some kind of QOA/shaping on the Pi to manage my really bad internet connection (yes, 6MBit/s in a country where 82 million people live on 356 thousand square-kilometers (about 230 people per square-km).
Setup
Install additional software
apt get install hostapd bridge-utils dhcp-helper dnsutils
What do they do?
- hostapd: A daemon that sets up your WiFi as a access point, so anyone can join. Please note, that this means WiFi only. No DHCP, and therefore no DNS.
- bridge-utils: These provide the bridging you need to "connect" the ethernet and WiFi interfaces.
- dhcp-helper: DHCP uses a broadcast to the network (address) to reach the DHCP-server. Since broadcasts stay in the broadcast-domain with a TTL of 1, the won't get bridged. This is where dhcp-helper comes in. It forwards the broadcasts in all other nets (except the one specified with -b.
- dnsutils: Just to do a nslookup from time to time. You can test your DNS-setup as well as lookup with nslookup[1]
Configuration
vi /etc/sysctl.conf
and set
net.ipv4.ip_forward=1 net.ipv6.conf.all.disable_ipv6 = 1
to TBD: EXPLANATION
vi /etc/hostapd/hostapd.conf
and set something like this:
interface=wlan0 driver=nl80211 bridge=br0 hw_mode=g channel=7 ieee80211n=1 wmm_enabled=1 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP ssid=HeartOfGold wpa_passphrase=42
Explanation: hostapd creates the WiFi-Access Point and creates a bridge-device br0, which he ties (only) wlan0 to.
vi /etc/dhcpcd.conf
and set something like this:
nohook wpa_supplicant interface wlan0 static ip_address=192.168.178.58/24
Explanation: I try to omit /etc/wpa_supplicant/wpa_supplicant.conf, and configure a static IPA for wlan0. NOTE TO SELF: Might be unnecessary since the bridge is now working. TBD: CHECK!
vi /etc/network/interfaces
Don't touch this file. dhcpcd gets jealous...
vi /etc/default/dhcp-helper
and set:
DHCPHELPER_OPTS="-b eth0"
Explanation: dhcp-helper will now forward all DHCP-related boradcasts to this interface (and none coming from there to the other interfaces).
Known issues
- After br0 is set up…
Notes
Since you use a DHCP server and you manually set IPAs, you might want to reserve those IPAs in your DHCP-server configuration. This might become handy:
systemd-resolve --status
Displays your DNS-setup
nslookup www.wurst-wasser.net
- More like this:
- tbd
- Footnotes
- ↑ or dig