How to configure static routing in IPv6 on Cisco Routers

Home > Blogs > Cisco > How to configure static routing in IPv6 on Cisco Routers

How to configure static routing in IPv6 on Cisco Routers

Like This Blog 0 Mark Jacob
Added by February 5, 2014

Imagine you are standing on the shore of a vast ocean – its far side not visible in the distance. The right and left edges recede into the fringes of your vision and disappear over the horizon. The water is inky black, so dark you can’t see even the pebbles under the surface even at your feet where it is only inches deep. Where are you? You are about to dip your toe into the immense IPv6 address space.

This might sound like the beginning of a horror story – and to some people, it is. IPv6 is enormous, at least in mathematical terms, so some may interpret that as IPv6 being too much to digest. This is not the case. The earlier reference to dipping a toe is apropos. As with any other topic, a great way to begin is to take little nibbles of the topic rather than trying to gulp down the entire subject in one sitting. So cast aside your flip-flops and let’s start dipping toes.

As noted in the title of this blog, the scope will be limited to static routing; that is, routing in the absence of any routing protocol. First, let’s take a look at the scenario:


To quote from “The Hunt for Red October,” I like to ‘run home to mama’ when I am trying to learn something new by generating a frame of reference with something I already know. In the scenario above, I have configured static routes to allow for complete end-to-end IPv4 connectivity. On Branch I have configured it thus:

ip route

On HQ I have a corresponding static route pointing back the other way that looks like this:

ip route

If everything is working as expected, I should be able to ping from HQ to PC, and use a source address from Loopback 0. Let’s check:


Cool! All is well. Since many readers will already be familiar with the principles of IPv4 static routing, let’s get a little toe-dipping action by performing the same feat of legerdemain using IPv6. The IPv6 addresses have already been placed on the interfaces as shown in the diagram. You will note that PC1 has no IPv6 address configured. So let’s first just use a manually configured IPv6 address on PC1 and verify that we can ping the Branch router with it. Just like in IPv4, I need to select an IPv6 address that is in the same network as the address on Branch that I am using as a target. The address on Branch is 2001:DB8:C0A8:1::1/64. Since the first 64 bits belong to the network, my manually assigned address on PC1 need to match to the first 64 bits as well. I will use 2001:DB8:C0A8:1::2/64. To verify:


If this were IPv4 and I wanted to verify connectivity at Layer 2, I would try to ping from PC1 to Branch. Let’s try the same thing using IPv6:


We are not just dipping our toe into the IPv6 ocean – we are walking on the water! The next step would be to ping from PC1 to the HQ router. Let’s see if we can get that far…


The first try garnered an error message that there was no valid source address for the destination. I then tried using the source address information that was just configured – to no avail. We cannot reach the intended destination yet. Calling on our IPv4 troubleshooting skills, we quickly discern that if PC1 has no default route, any pings to an unknown destination will fail. Let’s correct that by configuring a default IPv6 route on PC1. I configured it on PC1 with the following command: ipv6 route ::/0 f0/0 2001:DB8:C0A8:1::1

With that in place, let’s try to ping g0/0 on HQ again. I also configured HQ to debug IPv6 icmp messages to see if they are arriving. First, the try from PC1:


Now to see if HQ is receiving the pings:


Sure enough, the pings are arriving. So the problem must be the path back. Since I already configured a default route on PC1, let’s do something similar but different by configuring a static route on HQ pointing specifically to the network from which PC1 is pinging. Like this:

ipv6 route 2001:db8:c0a8:1::/64 g0/0 2001:db8:d1a5:1::1

With that in place, let’s retry that ping from PC1:


Now it is prediction time. Will I be able to successfully ping from PC1 to the Loopback 0 interface on HQ? Place your bets, place your bets. If you think it will not be successful, what is your reason why? Okay, enough suspense, let’s check:


Let’s run through the progression to see why it fails. PC1 has a default route that points to f1/0.10 on Branch. HQ can successful ping PC1. Where is the gap in our network? Let’s look at the ipv6 routing table on Branch:


Aha! Branch does not know about the ipv6 network represented by the Loopback 0 on HQ. Let’s fix that with this command:

ipv6 route 2001:db8:ac10:100::/64 g0/0 2001:db8:d1a5:1::2

Now Branch has the necessary information, so let’s try that same ping again:


Yippee! Success at last! So we have configured a very small networking environment and made it work using all manually configured ipv6 route commands – not a routing protocol in sight. Now that we have done a little wading in the IPv6 ocean, let’s see if we can move on to surfing. In a future blog, I will introduce IPv6 routing using dynamic routing protocols. The ocean is vast, yet it can be conquered. Begin the journey…

Mark Jacob
Cisco Instructor – Interface Technical Training
Phoenix, AZ

Videos You May Like

Agile Methodology in Project Management

0 153 0

In this video, you will gain an understanding of Agile and Scrum Master Certification terminologies and concepts to help you make better decisions in your Project Management capabilities. Whether you’re a developer looking to obtain an Agile or Scrum Master Certification, or you’re a Project Manager/Product Owner who is attempting to get your product or … Continue reading Agile Methodology in Project Management

JavaScript for C# Developers – September 24, 2014

0 487 3

Is JavaScript worth taking the time to learn if I’m a server-side .NET developer? How much of C# carries over to JavaScript? In this recorded video from Dan Wahlin’s webinar on September 24,2014, Dan answers these questions and more while also discussing similarities between the languages, key differences, and the future of JavaScript (ES6). If … Continue reading JavaScript for C# Developers – September 24, 2014

Detailed Forensic Investigation of Malware Infections – April 21, 2015

4 608 5

How does an investigator hunt down and identify unknown malware? In this recording of our IT Security training webinar on April 21, 2015, Security expert Mike Danseglio (CISSP / CEH) performed several malware investigations on infected computers and identify symptoms, find root cause, and follow the leads to determine what’s happening. He demonstrated his preferred … Continue reading Detailed Forensic Investigation of Malware Infections – April 21, 2015

Write a Comment

Share your thoughts...

Please fill out the comment form below to post a reply.