---
title: DD-WRT
layout: default
created: 2009-04-03 12:30:33 +0200
updated: 2009-12-04 00:54:05 +0100
toc: false
tags:
  - know-how
  - software
  - dd-wrt
---
DD-WRT is an alternative firmware for several WLAN routers which offers a lot of more features than the default
firmwares of most routers, such as repeater mode, printserver, fileserver, etc.. I use it on an *ASUS WL-300g* and a
*Linksys WRT54GL*.

* **Homepage:** [dd-wrt.com](http://www.dd-wrt.com/)


Configure as non-WDS repeater
=============================

After a lot of trial-and-error and studying [the](http://www.dd-wrt.com/wiki/index.php/Wlan_Repeater) [different](http://www.dd-wrt.com/phpBB2/viewtopic.php?t=7595)
[HowTos](http://www.dd-wrt.com/wiki/index.php/Universal_Wireless_Repeater), I now found the best settings to make my
former AccessPoint a repeater.

<p><div class="noteclassic">
This mode will repeat the WLAN network under a different SSID. Your WLAN card won't do any roaming and you will have to
setup port forwardings for server daemons.
</div></p>

So here are the neccessary settings. Pages you don't need to change do not have an image linked.

* Setup
    * [Basic Setup]({{ site.url }}/assets/setup_basic_setup.png)
    * DDNS
    * MAC Address Clone
    * [Advanced Routing]({{ site.url }}/assets/setup_advanced_routing.png)
    * [Networking]({{ site.url }}/assets/setup_networking.png)
* Wireless
    * [Basic Settings]({{ site.url }}/assets/wireless_basic_settings.png)
    * Radius
    * [Wireless Security]({{ site.url }}/assets/wireless_wireless_security.png)
    * MAC Filter
    * [Advanced Settings]({{ site.url }}/assets/wireless_advanced_settings.png)
    * [WDS]({{ site.url }}/assets/wireless_wds.png)
* Services
    * [Services]({{ site.url }}/assets/services_services.png)
    * PPTP
    * Hotspot
* Security
    * [Firewall]({{ site.url }}/assets/security_firewall.png)
    * VPN
* Access Restrictions
    * WAN Access
* NAT / QoS
    * Port Forwarding
    * Port Range Forwarding
    * Port Triggering
    * UPnP
    * DMZ
    * QoS
* Administration
    * Management
    * Keep Alive
    * Commands
    * WOL
    * Factory Defaults
    * Firmware Upgrade
    * Backup
* Status
    * Router
    * LAN
    * Wireless
    * Bandwidth
    * Sys-Info


Notify about new IP via Prowl service
=====================================

*Prowl* was originally thought as a remote notification service from MacOS *Growl* to the iPhone. But it provides a
great web-based API so that it can be used for any other purpose.

The [DD-WRT Wiki](http://www.dd-wrt.com/wiki/index.php/Script_Execution) lists all the locations where you can place
scripts for automatic execution. As we want to be notified upon IP changes, the best event is the `wanup`. So create a
file `/tmp/etc/config/prowl.wanup`. In the [Script Examples](http://www.dd-wrt.com/wiki/index.php/Script_Examples#Use_freedns.afraid.org_as_DDNS)
section, there's a nice DynDNS script which shows, how to get the current WAN IP and check whether it has changed.

With some modifications, it looks like this:

{% highlight bash %}
#!/bin/sh
IFACE=ppp0
OLDFILE=/tmp/ipaddr.cache

OLD_IP=`cat $OLDFILE`
NEW_IP=`ifconfig ${IFACE} | sed '/.*inet addr:/!d;s///;s/ .*//'`

# Special (private) Unicode icons for the iPhone
PROWL_UP=""
PROWL_DISH=""

if [ "$NEW_IP" != "$OLD_IP" ]; then
    /tmp/root/prowl.sh "ppp0 is $PROWL_UP" -2 "IP is $NEW_IP $PROWL_DISH"
    echo $NEW_IP > $OLDFILE
    echo Updated IP to $NEW_IP
fi
{% endhighlight %}

Put this file to `/tmp/etc/config/prowl.wanup`. The used `/tmp/root/prowl.sh` is the one you can find in the [[TODO:software:sh:http-post]] article.


*[WLAN]: Wireless Local Area Network
*[SSID]: Service Set Identifier
*[DDNS]: Dynamic DNS
*[MAC]: Media Access Control
*[WDS]: Wireless Distribution System
*[PPTP]: Point-to-Point Tunneling Protocol
*[VPN]: Virtual Private Network
*[NAT]: Network Address Translation
*[QoS]: Quality of Service
*[UPnP]: Universal Plug'n'Play
*[DMZ]: Demilitarized Zone
*[WOL]: Wake-on-LAN
*[LAN]: Local Area Network
*[API]: Application Programming Interface
*[WAN]: Wide Area Network
