If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

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 (https://service.xs4all.nl/) and you skip the next section.

FIND A POP

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 http://www.sixxs.net/faq/account/?faq=10steps, which I will repeat here. Please read the information on each page carefully.

First create a 6bone handle with this page: http://www.sixxs.net/signup/6bone/
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: http://www.sixxs.net/signup/
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: http://www.sixxs.net/home/requesttunnel/
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: http://www.sixxs.net/faq/account/?faq=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.

MAKE YOUR WL-500G SPEAK IPV6

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: http://www.p-bierman.nl/~phedny/WL50....7-3b+ipv6.trx
You can also setup the custom firmware development environment and download the source patch from http://wl500g.info/attachment.php?attachmentid=316 which you can unpack in the /root/broadcom directory (adding and overwriting some files in the src subdir).

CONFIGURE IPV6 - WAN

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:

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.

CONFIGURE IPV6 - LAN

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.

CONFIGURE SYSTEMS - WINDOWS

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 http://msdn.microsoft.com/downloads/...ipv6/start.asp and follow the instructions. For Windows 2003 I don't know, since I don't have that OS.

CONFIGURE SYSTEMS - LINUX

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.

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 sixxs.net 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

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.

Aiccu not working

I tried to install aiccu (the version mentioned in previous post) with oleg's 1.9.2.7-7f 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: http://www.sixxs.net/forum/?msg=setup-496351 ). Do someone use aiccu with oleg's firmware? What could be the problem?

Thanks Oleg, zkar and phedny

Hello,

I use oleg's 1.9.2.7-7g 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 :

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?

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.