mirror of
https://github.com/wezm/wezm.net.git
synced 2024-11-10 01:42:32 +00:00
First draft of openwrt-on-alix
This commit is contained in:
parent
094dd82785
commit
06e109a985
1 changed files with 86 additions and 2 deletions
|
@ -1,3 +1,87 @@
|
|||
A few months ago we were having a lot of trouble with reliable internet.
|
||||
A few months ago we were having a lot of trouble with reliable
|
||||
internet. The problem was that we had up to three computers and three
|
||||
iPhones on the network at once, and a 1.5Mbit ADSL connection that was
|
||||
very easy to saturate if one or more of those devices was uploading or
|
||||
downloading. Additionally our ADSL router would slow and eventually stop
|
||||
working after a day or so of BitTorrent traffic flowing through it.
|
||||
|
||||
ALIX
|
||||
So there were a few problems that needed addressing. I needed a way
|
||||
to offload the routing from the modem, get some insight into what
|
||||
was using bandwidth and ideally set up some <abbr title="Quality of
|
||||
Service">QoS</abbr> so that some bandwidth was reserved for higher
|
||||
priority traffic like HTTP and SSH.
|
||||
|
||||
My chosen solution was to drop some birthday money on an [ALIX single
|
||||
board computer from PC Engines][alix]. I ordered the alix2d13 version
|
||||
along with a nice silver case for it. Its a neat little board around the
|
||||
size of two CD cases stacked on top of each other. It has a 500Mhz AMD
|
||||
Geode (x86 compatible) CPU, 256Mb RAM, USB, 3 × 10/100 Ethernet
|
||||
ports and an on-board CompactFlash socket.
|
||||
|
||||
[alix]: http://www.pcengines.ch/alix2d13.htm
|
||||
|
||||
TODO(Add Photos)
|
||||
|
||||
Whilst waiting for the board to arrive I checked out some open source
|
||||
router targetted operating systems such as [pfSense], [m0n0wall] and
|
||||
[IPFire][ipfire]. I decided to go with m0n0wall as it was based on
|
||||
a good foundation ([FreeBSD]), happily fit on an 8Mb CF card I had lying
|
||||
around and had out of the box support for the ALIX boards.
|
||||
|
||||
[pfSense]: http://www.pfsense.org/
|
||||
[m0n0wall]: http://www.pfsense.org/
|
||||
[ipfire]: http://www.ipfire.org/
|
||||
[FreeBSD]: http://www.freebsd.org/
|
||||
|
||||
m0n0wall was a breeze to get up an running. I basically inserted the CF
|
||||
card, powered the board up and it was working with separate WAN and LAN
|
||||
networks, with NAT and firewall between them. It was very easy to add QoS
|
||||
through the guided traffic shaper configuration as well.
|
||||
|
||||
I ran the board like this for a while and it helped with our issues but
|
||||
did not eliminate them. We still had the problem of unknown network
|
||||
activity using up all the bandwidth. The next step was to find a compact
|
||||
OS that allowed additional software to be installed. I considered
|
||||
[Alpine Linux][alpine], but settled on [OpenWRT][openwrt]. OpenWRT fit
|
||||
the bill perfectly. It was designed for embedded systems so the base
|
||||
install was very small, was designed to run from CF, has a great little
|
||||
package manager for adding an removing software, a large selection of
|
||||
packages including an optional web UI and an easy to use build system
|
||||
for building custom images and packages.
|
||||
|
||||
[alpine]: http://alpinelinux.org/
|
||||
[openwrt]: https://openwrt.org/
|
||||
|
||||
The recommnded installation method for OpenWRT on ALIX boards was to
|
||||
build from source so that the ALIX specific configuration and kernel
|
||||
modules can be selected. It took some time to produce an image that
|
||||
I was happy with but after that it was a simple matter of writing the
|
||||
image to a CF card and booting the ALIX board from it.
|
||||
|
||||
Out of the box OpenWRT was configured for separate WAN and LAN networks
|
||||
like m0n0wall. Along with the base system I added the neat Lua based
|
||||
[LuCI][luci] web UI, support for USB mass storage devices and iftop for
|
||||
watching traffic on network interfaces.
|
||||
|
||||
[iftop]: http://www.ex-parrot.com/pdw/iftop/
|
||||
[luci]: http://luci.subsignal.org/
|
||||
|
||||
The addition of iftop allowed the network traffic to be examined when
|
||||
our Internet connection appeared to be be flooded. I was able to determine
|
||||
that that in some cases the problem was Wi-Fi backup to iCloud on our
|
||||
iPhones.
|
||||
|
||||
There was still some instability with the ADSL though. I decided to
|
||||
swap the modem I was using for another that allowed more control
|
||||
and turned off everything except the ADSL modem functionality,
|
||||
delegating all of that to the ALIX board including maintaining the <abbr
|
||||
title="">PPPoE</abbr> connection. Since this change everything has been
|
||||
running very smoothly.
|
||||
|
||||
With OpenWRT's great build and packaging system I was also able to build
|
||||
a custom package for the weather logging software that communicates with
|
||||
my [weather station][weather]. With this package installed the ALIX
|
||||
board now does the logging instead of my Mac Pro, consuming vastly less
|
||||
power in the process.
|
||||
|
||||
[weather]: /personal/2010/09/weather-station/
|
||||
|
|
Loading…
Reference in a new issue