Ever tried to get an IPv6 address working in a 4.5‑9 lab and ended up staring at a blank prompt?
You’re not alone. The first time I typed ipv6 address on a virtual router, the console stared back like it didn’t even know what language I was speaking. Turns out, the “4.5‑9 lab”—the version of the Cisco IOS‑based lab that ships with the CCNA Routing & Switching training kit—has a few quirks that trip up even seasoned admins.
Below is the whole shebang: what the 4.5‑9 lab actually is, why you should care about IPv6 there, the step‑by‑step to get an address up and running, the pitfalls most people hit, and a handful of practical tips you can copy‑paste into your next practice session.
What Is the 4.5‑9 Lab
The “4.In plain English, it’s a slightly older IOS release that still ships with a lot of CCNA‑level labs, especially the ones you’ll see on Netacad or in the Packet Tracer 4.But it’s simply the designation for the Cisco IOS 4. 5(9)E image that powers the lab routers and switches you find in the official Cisco training bundles. On top of that, 5‑9 lab” isn’t a fancy new protocol. 5‑9 simulation.
The environment in practice
- Router model: 1841, 2811, or the virtual equivalents that run IOS 4.5(9)E.
- CLI quirks: Some newer IPv6 commands are missing or hidden behind
ipv6 unicast-routing. - License: The lab image is fully featured for routing, but it doesn’t support some of the “advanced” IPv6 features you’ll find in later releases (e.g., DHCPv6 PD).
Knowing the exact IOS version matters because the command syntax can differ by a few characters—enough to make you think you’ve typed something wrong when you haven’t.
Why It Matters
IPv6 isn’t a “nice‑to‑have” anymore; it’s the future of the internet. If you’re still only configuring IPv4 in a 4.5‑9 lab, you’re missing out on the skills employers actually test on the newer CCNA exam No workaround needed..
- Real‑world relevance: Most enterprise networks have already rolled out IPv6 on at least a few segments.
- Exam readiness: The CCNA 200‑301 exam throws IPv6 scenarios that expect you to know the exact command flow on a Cisco router.
- Troubleshooting muscle: When you finally move to a modern IOS (e.g., 16.x), the fundamentals you learn here—like enabling routing, assigning link‑local addresses, and verifying with
show ipv6 interface—still apply.
In short, if you can get an IPv6 address up on a 4.5‑9 router, you’ve already crossed the biggest learning curve.
How It Works (or How to Do It)
Below is the full workflow, from a brand‑new lab topology to a ping‑successful IPv6 link. I’ll assume you have a basic router‑to‑router setup with two GigabitEthernet interfaces.
1. Verify the IOS version
Router# show version | include 4.5\(9\)
If you see something like Cisco IOS Software, 1841 Software (C1841‑IPBASEK9-M), Version 4.5(9)S, RELEASE SOFTWARE (fc1), you’re in the right place And that's really what it comes down to..
2. Enable IPv6 routing
Older IOS images don’t turn IPv6 on by default Easy to understand, harder to ignore..
Router(config)# ipv6 unicast-routing
That single line tells the router to treat IPv6 like any other routing protocol.
3. Assign a global IPv6 address
You have two options: static or SLAAC (Stateless Address Autoconfiguration). For a lab, static is clearer.
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 address 2001:db8:1::1/64
Router(config-if)# no shutdown
A quick note: the 2001:db8: prefix is reserved for documentation, so it’s safe to use in any lab.
4. Add a link‑local address (optional but recommended)
Link‑local addresses (fe80::/10) are automatically generated, but you can set a custom one for easier debugging The details matter here..
Router(config-if)# ipv6 address fe80::1 link-local
5. Configure the neighboring router
On the other side, repeat steps 2‑4, but change the global address to 2001:db8:1::2/64 and the link‑local to fe80::2.
6. Verify the interface status
Router# show ipv6 interface GigabitEthernet0/0
You should see both the global and link‑local addresses listed, plus a line that reads IPv6 is enabled, link-local address is FE80::1. If the interface is down, double‑check the no shutdown command.
7. Test connectivity
From Router A:
Router# ping ipv6 2001:db8:1::2
A successful reply means the address is correctly configured and routing is working Worth keeping that in mind. Which is the point..
8. Enable a routing protocol (optional)
If you have more than two routers, you’ll want a dynamic protocol. OSPFv3 is the go‑to for IPv6.
Router(config)# ipv6 router ospf 1
Router(config-router)# router-id 1.1.1.1
Router(config-router)# exit
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 ospf 1 area 0
Do the same on the other routers, adjusting the router‑id each time.
Common Mistakes / What Most People Get Wrong
-
Skipping
ipv6 unicast-routing
The most frequent “why won’t it ping?” moment is forgetting to enable IPv6 routing. Without it, the router treats IPv6 like a disabled feature Small thing, real impact.. -
Using the wrong prefix length
In a lab you’ll usually see/64. If you type/48or/128by accident, the interface will still come up, but neighbor discovery will break. -
Relying on DHCPv6 in 4.5‑9
The 4.5‑9 image doesn’t support a full DHCPv6 server. Trying to configureipv6 dhcp serverwill throw an “unrecognized command” error. Stick to static or SLAAC. -
Mixing IPv4 and IPv6 commands
ip addressandipv6 addressare not interchangeable. A common slip is to typeip address 2001:db8::1 255.255.255.0—obviously wrong and confusing. -
Forgetting the
no shutdown
New interfaces default to administratively down. Even if you see the address assigned, the interface won’t pass traffic until you bring it up And that's really what it comes down to. But it adds up..
Practical Tips / What Actually Works
- Copy‑paste the block: Keep a ready‑made snippet in a text file. One paste, and you’ve got IPv6 up on any interface.
- Use
show running-config | include ipv6after you finish. It’s a quick sanity check that you didn’t miss a line. - take advantage of link‑local for debugging:
ping ipv6 fe80::2%GigabitEthernet0/0forces the ping to use the specific interface, which is handy when you have multiple links. - Document the prefix: Write the subnet you’re using on a piece of paper (or a sticky note). It’s easy to type
2001:db8:2::1when you meant2001:db8:1::1. - Turn on IPv6 ACLs early: If you plan to test security, add a basic IPv6 access list now so you don’t have to retrofit it later.
Router(config)# ipv6 access-list TEST Router(config-ipv6-acl)# permit icmp any any Router(config)# interface GigabitEthernet0/0 Router(config-if)# ipv6 traffic-filter TEST in
FAQ
Q: Do I need a separate IPv6 routing protocol for a two‑router lab?
A: No. With just two routers, static routes (ipv6 route) are enough. OSPFv3 becomes useful once you add a third hop.
Q: Can I use the ipv6 dhcp pool command on a 4.5‑9 router?
A: The 4.5‑9 image supports DHCPv6 client mode but not server mode. Stick to static addressing or SLAAC Not complicated — just consistent..
Q: What’s the difference between a link‑local address and a global address?
A: Link‑local (fe80::/10) works only on the same physical segment. Global addresses (2001:db8::/32 in labs) are routable across the entire network Worth knowing..
Q: My router shows “IPv6 is enabled, but no address is assigned.” What now?
A: Verify that you entered the address in the correct interface context and that the prefix length matches the network. Also check that the interface isn’t shut down That's the part that actually makes a difference..
Q: Is there any way to see the IPv6 routing table?
A: Yes—show ipv6 route gives you the exact same view you get for IPv4, but with IPv6 prefixes.
Getting IPv6 up on a 4.Consider this: once you’ve walked through the process a couple of times, you’ll find the commands stick in your muscle memory, and the “why won’t it ping? 5‑9 lab isn’t rocket science, but it does require a few steps that older Cisco guides often gloss over. ” moments become a thing of the past.
Quick note before moving on.
Now that you’ve got the basics down, go ahead and spin up a three‑router topology, enable OSPFv3, and watch those IPv6 routes populate. Happy labbing!
Next Steps: Expanding the Lab
Adding a Third Router
Once you’re comfortable with two routers, bring a third into the mix. The steps are identical—enable IPv6, assign addresses, and add static routes. The real fun begins when you start a routing protocol:
Router(config)# ipv6 router ospf 1
Router(config-rtr)# router-id 1.1.1.1
Router(config-rtr)# exit
Router(config)# interface GigabitEthernet0/1
Router(config-if)# ipv6 ospf 1 area 0
Repeat the ipv6 ospf command on the other two routers, and you’ll see the OSPFv3 adjacency form in seconds. The show ipv6 ospf neighbor command will confirm the link‑state exchange That's the part that actually makes a difference..
Introducing NAT64
If you want to bridge IPv4 and IPv6 traffic, NAT64 is a handy tool. On a 4.5‑9 router, you can enable it with:
Router(config)# ipv6 nat64 pool NAT64 2001:db8:ff::/96
Router(config)# ipv6 nat64 interface GigabitEthernet0/0
Now, any IPv4 packet destined for a global IPv6 address will be translated on the fly, allowing legacy applications to reach IPv6 services.
Security Hardening
Beyond basic ACLs, consider enabling IPv6 firewall features:
Router(config)# ipv6 access-list BLOCK_IPV6
Router(config-ipv6-acl)# deny ipv6 any any
Router(config-ipv6-acl)# permit ipv6 any any
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 traffic-filter BLOCK_IPV6 in
Couple this with ipv6 unicast-routing and ipv6 router ospf to confirm that only vetted traffic traverses your lab.
Troubleshooting Checklist
| Symptom | Likely Cause | Quick Fix |
|---|---|---|
| Ping fails to a global address | Interface down or wrong prefix length | show interfaces → no shutdown |
| No route learned in OSPFv3 | OSPF not enabled on interface | ipv6 ospf 1 area 0 |
| No IPv6 traffic on an interface | IPv6 not enabled globally | ipv6 unicast-routing |
| DHCPv6 client not receiving prefix | Server not configured or unreachable | Verify server or use SLAAC |
Remember: the show family of commands is your best friend. Whenever something “doesn’t work,” start with show ipv6 interface, show ipv6 route, and show ipv6 ospf neighbor. The output will tell you exactly where the chain broke.
Conclusion
Getting IPv6 up and running on a Cisco 4.5‑9 lab may feel like a chore at first, but once you break the process into bite‑size steps—enable IPv6 globally, configure the interface, add a static route, and verify with ping—you’ll find that the commands are almost mechanical. The real value comes from the confidence that the lab is now a fully functional IPv6 environment, ready for advanced routing protocols, NAT64 experiments, or security testing.
So, fire up your 4.The internet of the future is already here; it’s just a few lines of text away. Plus, 5‑9 router, load the configuration, and let your IPv6 journey begin. Happy labbing!