Linux anywhere

Hints for using Linux on the Linksys WRT54G(S) router

Which router to choose?

Linksys is offering small routers with integrated wireless access points. The cool thing about this devices is that you can install an open source firmware on it. Of course this open source firmware is based on Linux.

Especially as routing and modern networking protocols are concerned Linux is a great advantage. You can setup very advanced setups with just a small box that costs only about 80€. Even the limited memory doesn't stop you, it's really enough. Actually this is the first hint from my side:
If you see it from the Linux users point of view the WRT54G offers 4MB of flash and 16MB of RAM and the WRT54GS offers 8MB of flash and 32MB RAM.

If you just want to dialin and route packets, the small router is absolutly okay, but if you want to experiment with more applications you'll like to have more memory (e.g. for tools like tcpdump).

I won't talk about the first steps of installing Linux on the Linksys router, this is described in great detail on the pages of the OpenWRT project.

IPv6

I'd like to talk about my IPv6 setup with this box, I use a small shell skript for that. I used nearly the same skript on my Linux box before. I just made small changes to be more flexible. The script configures a 6to4 address conformant to RFC3068 on the external interface and offers internally (and additionally on the bridged WLAN) a /64 IPv6 network. It's actually not a full plug and play solution but with this script it's fairly simple.

The script generates the file /tmp/radvd.conf. You can call the radvd application with this file. I reduced the lifetimes dramatically, this way configuration changes (like new v4 addresses) will reflect quite fast in the v6 addresses.

You'll need the following ipkg packages: kmod_ipv6, radvd, iproute2

The following entries have to be added in /etc/sysctl.conf to configure the Linksys as IPv6 router:

# Configuration for IPv6 router
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.all.router_solicitations = 0
			

If you don't load the ipv6 kernel module on bootup sysctl will complain during bootup that the kernel doesn't know the settings. .

o 2k setup-6to4.sh download the shellskript.

I recommend putting the skript into /usr/local/sbin and call it directly there (e.g. after pppoe dialed in). The current WAN_IP is read from the settings of ppp0 and the IPv6 networking is configured. After running the skript you should call /usr/sbin/radvd -C /tmp/radvd.conf.

© Carsten Groß - last change 08.03.2008 10:56