Results 1 to 9 of 9

Thread: HOWTO use your WL-500g as IPv6 router

  1. #1

    HOWTO use your WL-500g as IPv6 router

    In this HOWTO I'll try to explain you how to get IPv6 working in your LAN. What we will do is request a tunnel to an IPv6 PoP, configure you WL-500g router and setup the systems in you LAN.

    Since most ISP's don't provide any IPv6 services to customers, you need another method of sending your IPv6 packets onto the internet. Basically what happens is the we're going to make our LAN talk IPv6, so the systems in your network can reach each other by IPv6 directly. When you send a packet off to the internet, the WL-500g will pick it up, place it inside an IPv4-packet and send that one to a so-called PoP (Point of Presence). A large router on the PoP will extract the IPv6-packet from the IPv4-packet and relay it to the IPv6-internet.

    Before requesting an account for some IPv6 PoP-service, find out whether your ISP has some IPv6-functionallity. For customers of any Dutch ISP: only XS4ALL is offering IPv6-tunnels to customers. If you're using XS4ALL, you can enable your IPv6-tunnel in the Service Center ( and you skip the next section.


    So first of all, we need access to a PoP. SixXS is an organisation that offers several PoPs, located in a 11 European countries, and most of them can be access for free after signing up. You can only make use of SixXS if your WL-500g is online 24/7 and it's public IP address doesn't change, if you don't meet either of those requirements, you would be able to request a dynamic tunnel, but this is not supported by the WL-500g yet. To gain access, you should perform the first 6 steps from, which I will repeat here. Please read the information on each page carefully.

    First create a 6bone handle with this page:
    Note that you should fill in your real and valid address, random checks are performed to verify them.

    You will be assign a NIC handle, which you fill in on this page:
    The SixXS staff likes to know why you want to signup. If you enter to little data, your request will be denied.

    When your account have been approved, you can login an request a tunnel:
    On this page you should select the static IPv4 endpoint option and enter the public IP address of your router. Follow the instructions these pages give you.

    After requesting the tunnel, wait for the approval mail, which should follow shortly.

    While waiting for this email to arrive, you should read their FAQ about credits:
    Basically, after configuring the IPv6 tunnel for your WL-500g, you should leave it online (with IPv6) for a week to gain enough credits for requesting an entire IPv6-subnet.


    Before you can configure IPv6 on your WL-500g, you must first upload a firmware file that is IPv6-enabled. If you don't use any additional packages and only use the device as a router / AP, you can just download this firmware file:
    You can also setup the custom firmware development environment and download the source patch from which you can unpack in the /root/broadcom directory (adding and overwriting some files in the src subdir).


    When you have uploaded this file and rebooted your router, there should be a menu item in IP Config -> IPv6. On this page, you can configure the IPv6-settings of the WL-500g. Scroll down to the section Tunnel IPv6 Setting. Enable the IPv6-tunnel by clicking the Yes-option and filling the fields. When using SixXS, you can find all required information by logging into your account and clicking on the tunnel name. Now enter this information:

    Remote endpoint: "POP IPv4" on the SixXS tunnel info page
    Local IPv6 address: "Your IPv6" on the SixXS tunnel info page
    Netsize: The number after the / in the "IPv6 Prefix" field on the SixXS tunnel info page
    Remote IPv6 gateway: "POP IPv6" on the SixXS tunnel info page
    Tunnel MTU: SixXS users enter 1280, otherwise ask your PoP (or just use 1280 )
    Tunnel TTL: SixXS users enter 64, otherwise ask your PoP (or just use 64 )

    Now click the Finish button and on the page that appears click Save&Restart to save your settings.

    At this point your router can speak IPv6 with the rest of the internet.


    If you already have an IPv6-subnet, you can perform this step right now. Users who just signed up for SixXS must wait a week and keep the WL-500g online, to obtain the 5 additional credits you need to request a tunnel. After this week, you can log into your SixXS-account and select the "Request Subnet" menu item. Select the tunnel and enter a reason why you want a subnet. After the request has been approved, you can configure your WL-500g:

    On the page IP Config -> IPv6, find the section LAN IPv6 Setting. Here you can enter details for the LAN-side of the WL-500g. Basically, you give the WL-500g a local address and set the netsize. When using SixXS, on the home page you find the subnets section. In this table, you notice the "Subnet Prefix". Easiest thing to do, is take the part before the / and copy it to the "Static IPv6 address" field of the WL-500g config page. Then you add a 1 to the end and set the netsize to 64 (which might differ from the value from the Subnet Prefix, but that's OK). For example, if the Subnet Prefix sais 2001:838:3ca::/48, you choose your static IPv6 address 2001:838:3ca::1 and the netsize 64.

    Select Yes to enable the router advertisements. This will make your WL-500g announce itself in your LAN as an IPv6-router, so systems in your LAN that speak IPv6 will auto-configure themselves to communicate with the WL-500g.


    Next thing to do is to enable IPv6 on the systems in your LAN. IPv6 is available for Windows 2000, XP and 2003. If you're using any other Windows system, you should upgrade or not use IPv6 at all. Users of Windows XP just start a command prompt (press Start -> Run and enter the command: cmd). The command you give is: ipv6 install. After a minute, you're system is ready to talk IPv6. You can verify this by using the ipconfig command: ipconfig /all. This will show you the IPv6 addresses that the system has configured. Windows 2000 users should visit and follow the instructions. For Windows 2003 I don't know, since I don't have that OS.


    Next thing to do is to enable IPv6 on the systems in your LAN. As far as I know, every Linux distribution has IPv6 support. As root, enter the ifconfig command and it may show lines like these:
    inet6 addr: 2001:838:3ca:0:20a:e4ff:fe4b:b176/64 Scope:Global
    inet6 addr: fe80::20a:e4ff:fe4b:b176/64 Scope:Link

    This means you already have IPv6 running. If you don't see inet6 addresses, you can try "modprobe ipv6", to insert the ipv6 kernel module. If this doesn't work, that means your distribution hasn't IPv6 support out-of-the-box. You may want to check documentation for your distribution or ask for help.

  2. #2

    Dynamic IPv6-Tunnel

    Some notes:
    For running a dynamic tunnel with SixXS, a special heardbeat-client is needed, called aiccu, which dynamically enables/disables the tunnel and takes the configuration of the tunnel. This client need your NIC-Handle and password. It get all other needed informations from and configures automatically your tunnel and updates it dynamically. For this purpose it runs in daemon-mode.

    Warning: I had to get this enabled fast, so I hacked a little bit around :-( Perhaps someone would like to build a nice ipkg-package for the asus boxes

    1. Step: get more space
    create a loopback-filesystem and mount /opt:

    2. Step: install ipkg update install ipkg

    3. Step: get the ipkg-package of the aiccu-client, which is for the openwrt-project

    4. Step: get files out of the package
    ipkg -o /opt -nodeps install /opt/tmp/ipkg/aiccu_2004.09.17-BETA2b_mipsel.ipk
    (My ipkg got a segfault after extracting, but I got the needed files)

    The extracted needed files are: /opt/etc/aiccu.conf and /opt/usr/sbin/aiccu

    5. Step: configure aiccu
    Modify /opt/etc/aiccu.conf for your needs.

    You can check, if aiccu is working by setting daemonmode to false and verbosity to true in the conf. Before starting aiccu you have to load the tun-module by typing 'insmod tun'. Afterwards you can run aiccu and see debug messages in the terminal. Everything should works fine. Now set the settings for deamonmode back to true and verbosity to false.

    6. Step: make it permanent
    Note: Make sure opt is mounted on reboot

    insmod tun
    /opt/usr/sbin/aiccu start /opt/etc/aiccu.conf
    to your /usr/local/sbin/post-boot

  3. #3
    Join Date
    Sep 2005
    i used this aiccu package:

    and it fails with a missing lib

    searching in the same source i found a libgcc pacakge, install it with:

    [admin@wl-500g /]$ ipkg -nodeps install

    after this, aiccu seens to be working fine

  4. #4
    Join Date
    Sep 2005
    i also had a problem, aiccu didnt start in post-boot
    checking the logs aiccu tells me that the clock is wrong and checking on boot its set to 1970 8)

    i tried to correct it with ntp, but at that time network isnt still running enough to allow it, so i put this in the post-boot

    # ipv6
    insmod tun
    ( while [ `date +%Y` -eq 1970 ]; do
    sleep 1
    done && /opt/usr/sbin/aiccu start /opt/etc/aiccu.conf ) &

    this way it will wait untill network is running and the system ntp corrects the time/date before starting up aiccu, but allowing the rest of the system to finish booting

    i background it because i find no information when the networks is setup, if before or after this script, so its safer this way

  5. #5
    Join Date
    Sep 2005
    Since the beginning of 2007, the aiccu package was updated and the gateways disables the access to older versions... so you need to update to the latest package, found at this time in here:

    i just update it, copied the configuration and it now working again

  6. #6

    Aiccu not working

    I tried to install aiccu (the version mentioned in previous post) with oleg's firmware, but it didn't work. When I run it in "not daemon" mode, everything seems to be ok, authentication, information retrieval, creation of pseudointerface, but there is no connectivity (more detailed discussion is here: ). Do someone use aiccu with oleg's firmware? What could be the problem?

  7. #7
    Join Date
    Jan 2004
    Lyon (France)

    Thanks Oleg, zkar and phedny


    I use oleg's firmware and the updated aiccu without problem.
    I follow zkar's howto and it is running. Do not forget to change the prefix length to 64 to enable autoconfiguration..
    Note that ipkg can install the package directly from the http server :

    ipkg -o /opt install

  8. #8
    Ok. I got it to startup and it says it is running however I still can't get any ipv6 connectivity. I don't know what I am missing here. Any ideas as to what is wrong? Any way I can check for ipv6 connectivity starting from the router?

  9. #9
    Well just so you guys know I have gone over to OpenWRT for now. I found that this ntp wait hack is going to be needed over there. Noting that. The most recent aiccu package does work on Kamikaze 7.09 on the WL500gP so those still working on it don't lose hope!

    Oh and if for some reason that ntp wait trick doesn't work then try inserting a command to either cat the date to a file just prior to running that command or touch a file and get the year from that. After that adjust it to your needs. On my router I had 2 different default years depending on the firmware. The latest oleg firmware gave me 1970 for the startup year and OpenWRT Kamikaze 7.09 gives me 1999. On the Kamikaze router you will need to set it up in /etc/init.d/aiccu and make sure you create a symlink to here from /etc/rc.d/S50aiccu otherwise it won't start.
    Last edited by shinji257; 17-02-2008 at 08:25.

Similar Threads

  1. wl 500g and ipv6
    By Holli in forum WL-500g Custom Development
    Replies: 78
    Last Post: 15-02-2010, 20:34
  2. [HowTo] ssh to wl-500g under corporate proxy
    By kiewer in forum WL-500g/WL-500gx Tutorials
    Replies: 13
    Last Post: 17-12-2006, 10:17
  3. tcpdump with --enable-ipv6
    By sodb in forum WL-500g Q&A
    Replies: 2
    Last Post: 25-05-2005, 19:50

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts