Native IPv6 at our school

Wednesday, March 10th, 2010

I’m happy to inform you that our school, Gimnazija in ekonomska srednja šola Trbovlje is now on native IPv6. We’ve been using IPv6 on our internal network for almost a year now and a few days ago ARNES routed a /48 prefix to us.

Oh, and my blog now also runs on native v6. :)

Hurricane Electric IPv6 – Sage

Friday, January 22nd, 2010

I had some free time and I could finally complete the HE’s IPv6 certification. After setting up postfix as an experimental mail server and taking care of reverse DNS for my routed IP’s (most of the other things were taken care of before), I became a “Sage” :)

IPv6 Certification Badge for N37L0RD

I don’t think of this certification as any real knowledge indicator but it sure is a great way to motivate you to explore the world of IPv6.

DHCPv6 (relay) and RADVD in harmony

Saturday, January 9th, 2010

Today it was time to test IPv6 routing on a much bigger scale than any of my previous tests and it took me and a friend a few hours to find a solution to a supposably simple problem.

Ok, first some theory about what we were trying to achieve. In IPv4 world, DHCP server sets client’s IP address, DNS servers, gateway and many other optional parameters and it all works great from one place. However, in IPv6 world, DHCP server doesn’t set your gateway address. Why is that so? Well, I can’t think of a good reason, but I guess this is because of some “architectural” changes in IPv6.

I have known this before and I also had a solution to that problem – mix it with radvd (Router Advertisement Daemon). What does radvd do? It advertises your router and IPv6 prefix to the connected clients and enables them to configure IPv6 much like a DHCPv6. So why can’t we use just one of them? Because radvd also gives your client a gateway address, but it can’t set things like DNS or NTP servers and other DHCP-like parameters.

And this is where we encountered a problem…

It all worked great (and as expected) when we had only one of them working (except that some of the things were missing), but when we started both of them it simply ignored DHCPv6. Ok… so we now need to persuade clients to use both of them to configure their networking and we need to make that on the server-side.

And just how do we do that? Well, after about two hours of searching, I dug into radvd.conf Manpage and what did I see?


AdvManagedFlag on|off

When set, hosts use the administered (stateful) protocol for address autoconfiguration in addition to any addresses autoconfigured using stateless address autoconfiguration. The use of this flag is described in RFC 2462.

Default: off

And after setting this parameter in my radvd configuration file, clients started to pump information from both radvd and DHCPv6.

At the end I would like to recommend Dibbler – a portable DHCPv6 as your DHCPv6 server or relay agent as it really worked out of the box and after a few configuration changes we were ready to roll.

Vyatta 6 – lost configuration

Thursday, December 31st, 2009

I’ve been doing some last g33king for this year when I was trying to use Vyatta as an IPv6/IPv4 gateway & firewall with DHCP relay functionality. I’ve never used Vyatta before, so I quickly went through those basic guides and did some googling.

After a day of experimenting, I finally managed to get it up and running. I even compiled ISC DHCP server 4.1 (which supports DHCPv6 relay) after installing tons of packages from Debian’s repositories.

When I had everything working, I decided to restart my Vyatta to see if it will still work. And that’s when I fell back into good old “I hate Linux!” mood. There was no configuration! It was like booting into my system after doing a fresh install.

I opened my dear friend – google.com straight away and what do I see? Commit doesn’t pernamently save your configuration and you have to use command “save” to make your changes pernament. :evil:

Well, I guess I’ll read Quick Start guides more carefully next time to prevent thing like this from happening.

Oh, and I almost forgot…

Happy new year!

IPv6 on DD-WRT v24 (pre)SP2

Saturday, December 26th, 2009

A few weeks ago I got my hands on a new Linksys WRT320N router (it looks extremelly nice, I should say) which replaced my Buffalo WHR-HP-G54. I played with the original firmware for a few minutes and then, of course, flashed it with the latest DD-WRT build for my router (based on 2.6 kernel). It all worked great but I just couldn’t properly configure IPv6 for my network. On my Buffalo I used a specialized crushedhat’s build and it worked like a charm, but here, no scripts I found on internet worked and after a few hours of searching and experimenting I finally found the solution. Since there are no working solutions around I considered it logical to share mine.

I’m using Hurricane Electric Tunnel Broker and text enclosed in square brackets and capitalized should be replaced by your own data from your “Tunnel Details”.

1. Turn on IPv6 and radvd under Administration -> Management and paste this inside “Radvd config” box:

interface br0 { 
        AdvSendAdvert on; 
        prefix [ROUTED 64] 
        { 
                AdvOnLink on; 
                AdvAutonomous on; 
        }; 
};

2. Go to Administration -> Commands, paste the following code into the box and click “Save startup”:

insmod ipv6
insmod sit 

ip tunnel add he-ipv6 mode sit remote [SERVER IPV4 ADDRESS] local [CLIENT IPV4 ADDRESS] ttl 64
ip link set he-ipv6 up
ip addr add [CLIENT IPV6 ADDRESS] dev he-ipv6
ip route add ::/0 dev he-ipv6
ip addr add [ROUTED 64] dev br0 

echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
radvd -C /tmp/radvd.conf

3. After saving startup script, paste the following code into the box and click “Save Firewall”:

iptables -I INPUT 2 -p ipv6 -i vlan1 -j ACCEPT

4. Reboot the router and you should have IPv6 connectivity for all connected (and IPv6 capable) clients.

The only problem for now is that by doing this, you are leaving yourself with no firewall (on DD-WRT’s side) through IPv6 and you need to have properly configured firewall on your computer.

I’ve contacted the developers about including ip6tables and they might soon fix that (well, it’s not really broken).

Oh, and here is the list of material that helped me: