WiFi Access Point Bridge with Raspberry Pi 3 – ETH to WLAN

A Raspberry Pi WiFi Extender is a cheap and power efficient way of increasing the total range of your WiFi Network. In my case I needed to extend a WiFi coverage within the same LAN (bridge mode from Ethernet to WiFi).

I have found a working shortcut 😎 to create an access point following a GitHub project so I didn’t need to follow instructions from raspberrypi.org page – Using the Raspberry Pi as an access point to share an internet connection (bridge).

 

So let’s start to create an access point with an Internet connection sharing from you RaspBerry Pi 3. All you need to do is to follow these two steps:

  1. Clone and compile the create_ap tool:
git clone https://github.com/oblique/create_ap
cd create_ap
sudo make install
create_ap --help

❓ You need the following basic tools: sudo apt-get install git make

  1. Run the command that creates access point that bridge internet from the ethernet cable to WiFi:
sudo create_ap -m bridge wlan0 eth0 MyAccessPointSSID MyPassPhrase

By using your existing access point SSID name and WPA passphrase, the WiFi network will be extended and clients will automatically connects to your new WiFi access point on Raspberry Pi 3 Model B.
❓ If you get an error, that WiFi is already in use, just close it by:sudo ifconfig wlan0 down

To auto-start WiFi access point at system start: sudo systemctl enable create_ap and modify the configuration file /etc/create_ap.conf
Do not forget to disable WiFi client auto-start by modifying /etc/network/interfaces<br />

/etc/network/interfaces

 

Check the WiFi status with commands: iw wlan0 info or iwconfig

iw iwconfig WLAN status
iw iwconfig WLAN status

 

The configuration file for the create_ap service used in my working scenario:

pi@raspi:~ $ cat /etc/create_ap.conf
CHANNEL=6
GATEWAY=192.168.12.1
WPA_VERSION=2
ETC_HOSTS=0
DHCP_DNS=gateway
NO_DNS=0
NO_DNSMASQ=0
HIDDEN=0
MAC_FILTER=0
MAC_FILTER_ACCEPT=/etc/hostapd/hostapd.accept
ISOLATE_CLIENTS=0
SHARE_METHOD=bridge
IEEE80211N=0
IEEE80211AC=0
HT_CAPAB=[HT40+]
VHT_CAPAB=
DRIVER=nl80211
NO_VIRT=1
COUNTRY=SK
FREQ_BAND=2.4
NEW_MACADDR=
DAEMONIZE=0
NO_HAVEGED=0
WIFI_IFACE=wlan0
INTERNET_IFACE=eth0
SSID=MYSSID_CHAGE_IT
PASSPHRASE=MYPASSPHRASE_CHAGE_IT
USE_PSK=0

 

The version of Rasbian used for the working access point: $ lsb_release -a is: Raspbian GNU/Linux 8.0 (jessie)

On version Stretch Lite I need to install:  sudo apt-get install git hostapd haveged

By reading interesting source describing WiFi power tuning, I have decreased ( 😯 yes, decreased… ) the power by playing with the command iwconfig <device> txpower <txpower in dBm>.

Check the temperature of your Raspberry PI: watch /opt/vc/bin/vcgencmd measure_temp Mine is temp=49.4'C which is well under 80C, so the overheating should not be any problem (even without heatsinks).

Next chapters describes various scenarios of WiFi modes.

 

Scenarios of WiFi Modes

This chapter describes why have I decided to create an access point from Raspberry Pi 3.

You have three main situations in regards of infrastructure connection:

  • Ethernet port (RJ45) IS NOT available and you need WiFi extender to cover more area with WiFi signal
  • Ethernet port (RJ45) IS NOT available and you need WiFi client mode to connect some devices not capable of WiFi (TV, printer,..)
  • Ethernet port (RJ45) IS available in a not WiFi covered room and you need to extend WiFi coverage by WiFi Access Point. In this situation you have 3 more options of Internet sharing:
    • None – the Internet connection is not shared to Wifi clients and is available only to the Access Point.
    • NAT (Network address translation) – new LAN segment is created with separate DHCP server and
    • Bridge – You can create an AP with the same interface you are getting your Internet connection (same LAN segment so the devices will see each other and will get IP from the main router).

Check this NAT vs Bridge explanation to understand a difference between NAT and Bridge in more detail.  The main difference between WiFi extender and WiFi access point is that WiFi access point is getting its network connection from Ethernet, WiFi extender gets its network connection from a WiFi adapter.

WiFi Modes
WiFi Modes

 

 

Brief explanation of WiFi router modes is explained in next chapters.

WiFi Router Default Mode

Wireless router mode
Wireless router mode

This is the default mode and the first option if you are not currently using any wired/wireless routers. WiFi router connects to the Internet provider via some protocol (PPPoE, DHCP, PPTP, L2TP, or Static IP) and shares internet to the wireless/wired LAN clients or devices. In this mode, NAT, firewall, and DHCP server are usually enabled.

WiFi Client Mode

Client mode
Client mode

Client Mode router connects to a wireless Access Point (usually the primary gateway router). It uses its wireless connection as the WAN interface, and shares the internet connection only to the LAN ports. There are many sources that you can find on google that covers this topic. There is no need to create another source that copy/paste others… 😉 In general, be aware of 2 types of internet sharing: bridge mode and NAT mode.

 

WiFi Extender (Repeater) Mode

Repeater mode
Extender (repeater) mode

In Extender (repeater) mode, Raspberry 3 Pi wireless connects to an existing wireless network to extend the wireless coverage. In this mode, the firewall, IP sharing, and NAT functions are disabled. Again find some of many google sources that covers this mode with step by step instructions (e.g. tutorial with WiFi dongle).

WiFi Access Point Mode

Access Point mode
Access Point mode

Similar to main WiFi router, with the only one exception, i.e. the Internet is provided directly with WAN port. As stated at the beginning of this post, just follow instructions from raspberrypi.org if you like the longer way.