Courseiva
IPv6Global Config

ipv6 unicast-routing

Enables IPv6 unicast routing on a Cisco router, allowing it to forward IPv6 packets and participate in IPv6 routing protocols.

Definition: ipv6 unicast-routing is a Cisco IOS global config command. Enables IPv6 unicast routing on a Cisco router, allowing it to forward IPv6 packets and participate in IPv6 routing protocols.

Overview

The `ipv6 unicast-routing` command is a fundamental global configuration command on Cisco IOS routers that enables IPv6 unicast packet forwarding and allows the router to participate in IPv6 routing protocols. Without this command, a Cisco router will not forward IPv6 packets between interfaces, even if IPv6 addresses are configured. This command is essential for any network that uses IPv6, as it activates the IPv6 control plane, enabling the router to build and maintain IPv6 routing tables, process IPv6 routing updates, and forward traffic based on those tables.

The concept behind it is simple: IPv6 routing is disabled by default on Cisco IOS to conserve resources and prevent accidental routing loops in networks not yet using IPv6. By issuing this command, the network engineer explicitly enables the IPv6 data plane and control plane, allowing the router to act as an IPv6 router rather than just an IPv6 host. You would reach for this command whenever you need to route IPv6 traffic between subnets, implement IPv6 routing protocols like OSPFv3, EIGRP for IPv6, or BGP for IPv6, or when configuring IPv6 multicast routing.

It is a prerequisite for any dynamic IPv6 routing protocol configuration. In the broader workflow, this command is typically one of the first steps when enabling IPv6 on a router, followed by configuring IPv6 addresses on interfaces, and then enabling the desired routing protocol. Important IOS behavior: this command is saved to the running configuration and requires reload to take effect?

No, it takes effect immediately. It does not require a reload. The command is available in global configuration mode and requires privilege level 15 (enable mode).

There is no buffered output; it simply enables the feature. Disabling IPv6 routing is done with the `no ipv6 unicast-routing` command, which stops IPv6 packet forwarding and removes all IPv6 routes from the routing table. This command is also required for IPv6 multicast routing (`ipv6 multicast-routing`) to function.

In summary, `ipv6 unicast-routing` is the on/off switch for IPv6 routing on Cisco IOS, and its proper use is critical for any IPv6 deployment.

Syntax·Global Config
ipv6 unicast-routing

When to Use This Command

  • Enable IPv6 routing on a router that will serve as a gateway for IPv6-enabled VLANs.
  • Configure a router to participate in OSPFv3 or EIGRP for IPv6 in a dual-stack network.
  • Prepare a router to forward IPv6 traffic between subnets in a small-to-medium enterprise network.
  • Enable IPv6 on a router that will be used for IPv6-only testing or lab environments.

Command Examples

Enable IPv6 unicast routing globally

Router(config)# ipv6 unicast-routing
Router(config)#

No output is displayed upon successful execution. The command simply enables IPv6 routing globally. Use 'show ipv6 interface brief' to verify that interfaces are now IPv6-capable.

Verify IPv6 routing is enabled

Router# show ipv6 interface brief
GigabitEthernet0/0    [up/up]
    FE80::1
    2001:DB8:1::1
GigabitEthernet0/1    [up/up]
    FE80::2
    2001:DB8:2::1

The output shows each interface with its link-local (FE80::) and global unicast (2001:DB8::) IPv6 addresses. The [up/up] indicates the interface is operational and IPv6 is enabled.

Understanding the Output

The command 'ipv6 unicast-routing' produces no direct output. Its effect is seen in subsequent show commands. Use 'show ipv6 interface brief' to see which interfaces have IPv6 enabled and their addresses.

The first column is the interface name, followed by status in brackets (line protocol/interface status). Then each IPv6 address is listed on a separate line. Link-local addresses start with FE80, global unicast addresses are typically assigned from a prefix like 2001:DB8::/32 for documentation.

If an interface does not appear, IPv6 is not enabled on it. Good status is 'up/up'; anything else indicates a problem. Also use 'show ipv6 route' to see the IPv6 routing table, which will be empty until routes are added via static or dynamic routing.

Configuration Scenarios

Enable IPv6 routing on a router with two directly connected IPv6 subnets

A network engineer needs to enable IPv6 routing between two directly connected routers (R1 and R2) to allow end-to-end IPv6 connectivity. Without this command, the routers will not forward IPv6 packets between their interfaces.

Topology

R1(Gi0/0)---2001:db8:1::/64---(Gi0/0)R2 R1(Gi0/1)---2001:db8:2::/64---PC1 R2(Gi0/1)---2001:db8:3::/64---PC2

Steps

  1. 1.Step 1: Enter global configuration mode on R1: R1> enable, R1# configure terminal
  2. 2.Step 2: Enable IPv6 unicast routing: R1(config)# ipv6 unicast-routing
  3. 3.Step 3: Configure IPv6 addresses on interfaces: R1(config)# interface GigabitEthernet0/0, R1(config-if)# ipv6 address 2001:db8:1::1/64, R1(config-if)# no shutdown
  4. 4.Step 4: Repeat for GigabitEthernet0/1: R1(config-if)# interface GigabitEthernet0/1, R1(config-if)# ipv6 address 2001:db8:2::1/64, R1(config-if)# no shutdown
  5. 5.Step 5: Repeat steps 1-4 on R2 with appropriate addresses (2001:db8:1::2/64 on Gi0/0 and 2001:db8:3::1/64 on Gi0/1)
  6. 6.Step 6: Verify connectivity: R1# ping ipv6 2001:db8:3::1
Configuration
! R1 configuration
ipv6 unicast-routing
!
interface GigabitEthernet0/0
 ipv6 address 2001:db8:1::1/64
 no shutdown
!
interface GigabitEthernet0/1
 ipv6 address 2001:db8:2::1/64
 no shutdown

Verify: Use `show ipv6 interface brief` to verify IPv6 addresses are up/up. Use `ping ipv6 2001:db8:3::1` from R1 to test reachability to R2's loopback. Expected output: Success rate is 100 percent (5/5).

Watch out: A common mistake is forgetting to enable `ipv6 unicast-routing` before configuring routing protocols. Without it, OSPFv3 or EIGRP for IPv6 will not form adjacencies because the router is not acting as an IPv6 router.

Enable IPv6 routing to allow OSPFv3 neighbor adjacency

Two routers need to run OSPFv3 to exchange IPv6 routes. The `ipv6 unicast-routing` command must be enabled on both routers before OSPFv3 can form an adjacency and exchange routes.

Topology

R1(Gi0/0)---2001:db8:12::/64---(Gi0/0)R2

Steps

  1. 1.Step 1: On R1, enable IPv6 routing: R1(config)# ipv6 unicast-routing
  2. 2.Step 2: Configure OSPFv3 process: R1(config)# ipv6 router ospf 1, R1(config-rtr)# router-id 1.1.1.1
  3. 3.Step 3: Enable OSPFv3 on interface: R1(config)# interface GigabitEthernet0/0, R1(config-if)# ipv6 ospf 1 area 0
  4. 4.Step 4: Repeat steps 1-3 on R2 with router-id 2.2.2.2
  5. 5.Step 5: Verify OSPFv3 adjacency: R1# show ipv6 ospf neighbor
Configuration
! R1 configuration
ipv6 unicast-routing
!
ipv6 router ospf 1
 router-id 1.1.1.1
!
interface GigabitEthernet0/0
 ipv6 address 2001:db8:12::1/64
 ipv6 ospf 1 area 0
 no shutdown

Verify: Use `show ipv6 ospf neighbor` to see the neighbor state. Expected output: Neighbor ID 2.2.2.2, state FULL. Use `show ipv6 route ospf` to see OSPF-learned routes.

Watch out: If `ipv6 unicast-routing` is not enabled, OSPFv3 will not start, and the `show ipv6 ospf` command will show no OSPF process running. Also, ensure the interface IPv6 address is configured; OSPFv3 requires an IPv6 address on the interface.

Troubleshooting with This Command

When troubleshooting IPv6 connectivity issues, the first step is to verify that `ipv6 unicast-routing` is enabled on all routers in the path. Use `show running-config | include ipv6 unicast-routing` to confirm. If the command is missing, IPv6 packets will not be forwarded, and pings to remote IPv6 addresses will fail with 'Destination unreachable' or 'No route to host'.

Healthy output shows the command present in the running config. Problem indicators include the absence of the command or the presence of `no ipv6 unicast-routing`. Another common symptom is that IPv6 routing protocols (OSPFv3, EIGRP for IPv6) fail to form adjacencies.

The `show ipv6 protocols` command will show no routing protocols running if IPv6 routing is disabled. To diagnose, follow this step-by-step flow: 1) Check `show ipv6 interface brief` to ensure interfaces are up and have IPv6 addresses. 2) Verify `ipv6 unicast-routing` is enabled. 3) Check `show ipv6 route` to see if a default route or specific routes exist. If the routing table is empty, the router cannot forward packets. 4) If using a routing protocol, check `show ipv6 ospf neighbor` or `show ipv6 eigrp neighbors` to see if adjacencies are formed. 5) Use `debug ipv6 packet` cautiously to see if packets are being dropped.

Correlate with `show ipv6 traffic` to see if packets are being received and forwarded. A key field in `show ipv6 interface` is 'IPv6 is enabled, link-local address is ...' — if IPv6 is not enabled, the interface will show 'IPv6 is disabled'. Also, `show ipv6 route` will show 'C' for connected routes and 'L' for local routes; if only connected routes appear, routing is not working.

The `ipv6 unicast-routing` command is the master switch; without it, no IPv6 routing occurs.

CCNA Exam Tips

1.

CCNA exam tip: 'ipv6 unicast-routing' is required before you can configure any IPv6 routing protocol (OSPFv3, EIGRP for IPv6) or static routes.

2.

CCNA exam tip: Without this command, a router will not forward IPv6 packets even if interfaces have IPv6 addresses configured.

3.

CCNA exam tip: The command is global configuration mode only; it cannot be applied per interface.

4.

CCNA exam tip: Remember that 'ipv6 unicast-routing' is the IPv6 equivalent of 'ip routing' for IPv4.

Common Mistakes

Mistake 1: Forgetting to enable 'ipv6 unicast-routing' before configuring OSPFv3 or EIGRP for IPv6, causing the routing process to fail to start.

Mistake 2: Assuming that assigning an IPv6 address to an interface automatically enables IPv6 routing; the global command is still required.

Mistake 3: Typing 'ipv6 routing' instead of 'ipv6 unicast-routing'; the correct command is 'ipv6 unicast-routing'.

ipv6 unicast-routing vs ipv6 enable

The commands 'ipv6 unicast-routing' and 'ipv6 enable' are often confused because both are necessary for IPv6 operation but serve different purposes: the former enables routing globally, while the latter activates IPv6 on a specific interface. Understanding the distinction is critical for proper IPv6 configuration.

Aspectipv6 unicast-routingipv6 enable
ScopeGlobal (entire router)Interface-specific
Configuration modeGlobal configurationInterface configuration
Effect on routingEnables IPv6 packet forwarding between interfacesDoes not affect forwarding; only activates IPv6 on the interface
Effect on interfaceNone directly; interfaces remain unaffectedGenerates a link-local address and allows IPv6 processing
DependencyNot dependent on 'ipv6 enable'Works independently, but global routing often needed for forwarding

Use ipv6 unicast-routing when you need the router to forward IPv6 packets between its interfaces and participate in dynamic IPv6 routing protocols.

Use ipv6 enable when you want to activate IPv6 on a specific interface (e.g., to assign an address or run a routing protocol neighbor) without needing the router to forward traffic globally.

Platform Notes

On Cisco IOS-XE (e.g., Catalyst 9000 switches), the command syntax is identical: `ipv6 unicast-routing` in global configuration mode. However, on some IOS-XE platforms, IPv6 routing may be enabled by default in certain software versions; always verify. On NX-OS (Nexus switches), the equivalent command is `feature ipv6` which enables IPv6 routing globally.

Without `feature ipv6`, IPv6 addresses cannot be configured on interfaces. On ASA firewalls, IPv6 routing is enabled by default when IPv6 addresses are configured; there is no explicit command, but `ipv6 enable` on an interface is required. On IOS-XR, the command is `ipv6 unicast-routing` in global configuration mode, similar to IOS.

However, IOS-XR uses a different configuration hierarchy; the command is entered under the 'configure' terminal. Behavior differences: In older IOS versions (12.x), `ipv6 unicast-routing` was introduced in 12.2(2)T. In 15.x and 16.x, it remains the same.

On some platforms, the command may be hidden if the feature set does not support IPv6. Always check the specific platform documentation.

Related Commands

Practice for the CCNA 200-301

Test your knowledge with practice questions covering all CCNA 200-301 exam domains.

Practice CCNA 200-301 Questions