Click here to Skip to main content
12,748,873 members (38,436 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as

Stats

5.6K views
5 bookmarked
Posted 20 Jan 2014

Creating a Wireless Router / Access Point with #raspberrypi and #raspbian #linux

, 20 Jan 2014 CPOL
Rate this:
Please Sign up or sign in to vote.
How to create a wireless router/access point with #raspberrypi and #raspbian #linux

What about creating my own low powered development network infrastructure at home? Sounds like a good idea right? You can hack the router settings, creating vlans, control your network traffic, ...

The other reason is to create an abstraction layer between your ISP router and your physical network that can be moved when you move to your shinny new flat!

Let's get to business then. The router hardware is composed by a raspberry PI model A and a USB WiFi (802.11b/g/n) Module with Antenna for Raspberry. The raspberry was configured to boot from a 4gb USB pen drive with a swap partition and the /tmp size was increased (instructions).

My router uses 10.0.0.0/24 network and my internal network 10.10.0.0/24.

First of all, install the software:

sudo apt-get install hostapd bind9 isc-dhcp-server ntpdate

This will install AP, DNS, DHCP and NTP support.

Now, you need to configure the following files (click on each title to see the configuration!):

interfaces

Configure the network interfaces.

iptables

Configure the firewall, NAT, and forwarding rules.

DHCP

The DHCP server configuration allows the dynamic DNS update, meaning that the hostname of the DHCP client is added to the DNS.

You can also configure DHCP to only listen to the wireless device:

> sudo vim /etc/default/isc-dhcp-server
INTERFACES="wlan0"

To enable logging, you also need to:

> sudo vim /etc/rsyslog.conf
# add the line
local7.* /var/log/dhcpd.log

DNS

Be sure you also run:

# Enable dynamic dns
> sudo chown bind /etc/bind/

hostapd

Enables the wireless access point.

Sync Boot

Lastly, you need to disable the services from boot. This is because the raspberry doesn't have a battery and then it doesn't save the system date which causes DNS and DHCP to fail.

We need to sync the initialisation of the raspberry to first get the date from NTP servers and then initialize the router services.

sudo update-rc.d hostapd remove
sudo update-rc.d bind remove
sudo update-rc.d isc-dhcp-server remove
sudo update-rc.d ntp remove

Now, we create the boot script to initialise all:

sudo update-rc.d init-router defaults
sudo update-rc.d init-router enable

Conclusion

I'm very happy with the raspberry performance. I did not notice any significant decrease on network speed. My next step is to configure vlan support and dynamic DNS support to be able to access when I'm away from home.

Also I'll fiddle a little around the iptables rules to have full network control.

If you have any problems or would like to make any suggestions, you can always contact me.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

aetheon
Web Developer
Portugal Portugal
No Biography provided

You may also be interested in...

Pro

Comments and Discussions

 
-- There are no messages in this forum --
Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.170215.1 | Last Updated 20 Jan 2014
Article Copyright 2014 by aetheon
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid