CCNP IPv6 with GNS3 (hint: use 7200 image).

First and foremost, I need to apologize to the CCNP and CCIE guys. I realize 90 percent of them already know this, but if you use my beloved 3725 for IPv6…well…things start to ‘break down’ inside GNS3.

Just recently, I was following along with CCNP route book by Cisco press and in the third chapter, it’s all about learning and configuring IPv6.

It’s one of those chapters that I did blow through and I shouldn’t have. Reason being is because I created a test lab with all these 3725 routers. I connected them like I always do, and I run through the normal setup.

The major difference is instead of using the traditional ip address x.x.x.x 255.255.255.0 address that you normally do, you use an ipv6 address 2012::/64 eui-64.

There are two things to talk about regards to this simple statement.

1). What TYPE of interface are you setting this up on?

2.) Which ipv6 method works the best?

Here is where the apology comes in…I configured the ipv6 address on the 3725 ETHERNET interface. What you get is a route in the routing table…you get the interface showing UP/UP and from the physical and link layer…everything looks okay…only…it’s not okay.

When you get to the part in the chapter to turn on debugging to make sure the ipv6 packets are being sent by NS and NA (this is all explained in the chapter)…the multicast goes through…but the ICMP portions just absolutely fail!

So I searched the internet to find what other people are using for ipv6 labs. One guy in commonerrors used a 7200 image.

And then it hit me. The 7200 image I know for a fact worked for port-channeling. It’s the only image I know in that class that can do that. Maybe the Gigabit Ethernet connection is handled differently in Dynamips or GNS3. Hopefully it’s that easy.

So I grabbed my 7200 image, imported into GNS3…added a Gigabit module and started the configuration settings all over again.

Then I hit the debug ipv6 nd command and watched the messages as I turned up all the interfaces.

That worked!

I honestly don’t understand WHY the gigabit interface is better with IPV6…but I imagine its mostly the actual BUILD of the 7200 image that works well with the ipv6 protocol.

Stick with a 3725 image for beginners…but you have been warned about using that same image for IPv6. It’s recommended from this point on to use the 7200 image. You will have better success seeing routes and far more consistency than the 3725.

In respects to whether to use a manual ipv6 or use the eui-64. To do quick mock ups, you can and should use the later for simplicity sake. The nice thing about this whole exercise is you can “trust” the IOS to do the job and create the rest of the address according to the RFC that is discussed IN DETAIL in chapter 3. I also like the fact that I don’t have to worry about getting the syntax right since the IOS doesn’t mess up like a human does…even with ipv4 subnets.

So to recap:

Use the 7200 to do everything with ipv6. I have tested it out and THIS time I did some deep analysis. It just works.

Get in the habit of using the eui-64 option in the command ipv6 2012::/64 eui-64.

UPDATE: I spun up the 3725 image and after a couple of attempts, I got the ipv6 link to work. Again, just because I got it to work on the 3725 doesn’t mean I’ll recommend it. It’s too much of a ‘pain point’ for new users. To have inconsistencies in the links between an ETHERNET and a SERIAL interface on the same build as a 3725 is not good for training purposes. The 7200 worked the first time and every time with ipv6. It has connected 20/20. With the 3725 it never connected on Ethernet connections…failed initially on Serial, only to reboot the server…bring up the next day and have the Serial work. No bueno.

So if you have a “go” at it…you should get these messages from one of the routers using ipv6:

ipv6_serial

The screenshot below is the important one:

NS_NA_complete.png

If you don’t see specifically the the DAD reference in above screenshot, or the “Sending NA”, then there is something wrong with your 3725 connection. What you will get is a bunch of repeated “NS” sends. The router will try four times and if it doesn’t get a response…it will shut down the interface and delete the attempts.

At least here, you can use the gif and the screenshot above to know you got it right for the next area in the chapter which deals with RIPng.