ipv6 enable
Enables IPv6 processing on an interface, allowing the interface to forward IPv6 traffic and participate in IPv6 routing protocols.
Definition: ipv6 enable is a Cisco IOS interface config command. Enables IPv6 processing on an interface, allowing the interface to forward IPv6 traffic and participate in IPv6 routing protocols.
Overview
The `ipv6 enable` command is a fundamental interface configuration command in Cisco IOS that activates IPv6 processing on a given interface. Without this command, an interface cannot forward IPv6 traffic, participate in IPv6 routing protocols, or respond to IPv6 neighbor discovery messages. This command is essential for any network that uses IPv6, whether in a dual-stack environment alongside IPv4 or in an IPv6-only deployment.
The underlying concept is that IPv6 is not enabled by default on Cisco interfaces; you must explicitly turn it on. This differs from IPv4, where an interface becomes IPv4-capable as soon as you assign an IPv4 address. For IPv6, you can enable the interface without assigning a global unicast address—the interface will automatically generate a link-local address (FE80::/10) using EUI-64 or privacy extensions.
This link-local address is crucial for neighbor discovery, routing protocol adjacencies (e.g., OSPFv3, EIGRP for IPv6), and next-hop reachability. You would reach for `ipv6 enable` when you need an interface to participate in IPv6 communication. Alternatives include assigning a global IPv6 address directly with `ipv6 address`, which implicitly enables IPv6, but `ipv6 enable` is the explicit method.
In a typical workflow, you first enter interface configuration mode, then issue `ipv6 enable` to turn on IPv6 processing. After that, you may configure a global address, enable routing protocols, or apply IPv6 ACLs. The command takes effect immediately and is added to the running configuration.
It requires no special privilege level beyond the standard 15 for configuration. One important behavior: if you later remove the `ipv6 enable` command, the interface loses all IPv6 capability, including its link-local address, which can break routing adjacencies. Also, on some platforms, enabling IPv6 may cause the interface to generate a link-local address even if no global address is configured.
This command is often used in conjunction with `ipv6 unicast-routing` globally, which enables IPv6 routing on the router. Without `ipv6 unicast-routing`, the router will not forward IPv6 packets between interfaces, even if individual interfaces have IPv6 enabled. In summary, `ipv6 enable` is the first step to bring IPv6 to life on an interface, and understanding its role is critical for CCNA and CCNP candidates.
ipv6 enableWhen to Use This Command
- Enable IPv6 on a router interface connected to an IPv6-enabled network segment.
- Prepare an interface for IPv6 static routing or dynamic routing protocols like OSPFv3 or EIGRP for IPv6.
- Allow a router interface to send and receive IPv6 Router Advertisements for SLAAC.
- Enable IPv6 on a VLAN interface for inter-VLAN routing with IPv6.
Command Examples
Enable IPv6 on a GigabitEthernet interface
interface GigabitEthernet0/0
ipv6 enableRouter(config-if)# ipv6 enable
Router(config-if)# end
Router# show ipv6 interface brief
GigabitEthernet0/0 [up/up]
FE80::1
2001:DB8:1::1The command enables IPv6 on the interface. The 'show ipv6 interface brief' output confirms the interface is up/up and shows the link-local address (FE80::1) and the global unicast address (2001:DB8:1::1) if configured.
Enable IPv6 on a Serial interface for point-to-point link
interface Serial0/0/0
ipv6 enableRouter(config-if)# ipv6 enable
Router(config-if)# end
Router# show ipv6 interface serial0/0/0
Serial0/0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::2
No global unicast address is configured
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:2
MTU is 1500 bytesThe output shows that IPv6 is enabled with a link-local address (FE80::2) but no global address. The joined group addresses indicate multicast groups for all-nodes (FF02::1), all-routers (FF02::2), and solicited-node (FF02::1:FF00:2).
Understanding the Output
The 'show ipv6 interface' command provides detailed IPv6 status. Key fields: 'IPv6 is enabled' confirms the command worked; 'link-local address' is automatically generated (FE80::/10); 'No global unicast address' means you need to assign one with 'ipv6 address'. 'Joined group address(es)' shows multicast groups the interface listens to.
'MTU' is the maximum transmission unit. In a real network, ensure the interface is up/up and has a global address for routing. Watch for 'IPv6 is disabled' if the command wasn't applied, or 'Tentative' if DAD is in progress.
Configuration Scenarios
Enable IPv6 on a router interface for dual-stack operation
A branch router needs to support both IPv4 and IPv6 traffic on its GigabitEthernet0/0 interface connecting to the ISP. The interface already has an IPv4 address; now IPv6 must be enabled to allow IPv6 traffic flow.
Topology
R1(Gi0/0)---ISPSteps
- 1.Step 1: Enter global configuration mode: Router> enable
- 2.Step 2: Enter interface configuration mode: Router# configure terminal
- 3.Step 3: Select the interface: Router(config)# interface GigabitEthernet0/0
- 4.Step 4: Enable IPv6 processing: Router(config-if)# ipv6 enable
- 5.Step 5: (Optional) Assign a global IPv6 address: Router(config-if)# ipv6 address 2001:db8:1:1::1/64
- 6.Step 6: Exit and verify: Router(config-if)# end
! interface GigabitEthernet0/0 ip address 192.168.1.1 255.255.255.0 ipv6 enable ipv6 address 2001:db8:1:1::1/64 !
Verify: Use `show ipv6 interface GigabitEthernet0/0` to verify IPv6 is enabled. Expected output includes: 'IPv6 is enabled, link-local address is FE80::...' and the global address if configured.
Watch out: Forgetting to enable `ipv6 unicast-routing` globally will prevent the router from forwarding IPv6 packets between interfaces, even if individual interfaces have IPv6 enabled.
Enable IPv6 on an interface for OSPFv3 routing
Two routers need to run OSPFv3 over a point-to-point link. IPv6 must be enabled on the connecting interfaces to form an OSPFv3 adjacency.
Topology
R1(Gi0/0)---10.0.12.0/30---(Gi0/0)R2Steps
- 1.Step 1: On R1, enter interface configuration: R1(config)# interface GigabitEthernet0/0
- 2.Step 2: Enable IPv6: R1(config-if)# ipv6 enable
- 3.Step 3: Assign a global IPv6 address: R1(config-if)# ipv6 address 2001:db8:12::1/64
- 4.Step 4: Enable OSPFv3 on the interface: R1(config-if)# ipv6 ospf 1 area 0
- 5.Step 5: Repeat steps 1-4 on R2 with address 2001:db8:12::2/64
- 6.Step 6: Verify OSPFv3 adjacency: R1# show ipv6 ospf neighbor
! interface GigabitEthernet0/0 ipv6 enable ipv6 address 2001:db8:12::1/64 ipv6 ospf 1 area 0 !
Verify: `show ipv6 ospf neighbor` should show a FULL state neighbor with the link-local address of R2. Also `show ipv6 interface GigabitEthernet0/0` confirms IPv6 is enabled.
Watch out: OSPFv3 uses link-local addresses for neighbor adjacencies. If `ipv6 enable` is not configured, no link-local address is generated, and OSPFv3 cannot form an adjacency.
Troubleshooting with This Command
When troubleshooting IPv6 connectivity issues, the `ipv6 enable` command is often the first thing to check. A common symptom is that an interface cannot ping its IPv6 neighbor or fails to form routing protocol adjacencies. The primary verification command is `show ipv6 interface [interface]`.
Healthy output shows 'IPv6 is enabled' and a link-local address (FE80::/10). If IPv6 is not enabled, the output will say 'IPv6 is not enabled' or the interface will not appear in `show ipv6 interface brief`. Another key indicator is the absence of a link-local address; without `ipv6 enable`, no link-local address is generated.
This can be confirmed by checking the output of `show ipv6 interface` for the line 'link-local address:'. If it shows 'no link-local address', IPv6 is not enabled. Additionally, if you have configured a global address but forgot `ipv6 enable`, the global address may appear in the configuration but the interface will not process IPv6 traffic.
The command `show running-config interface [interface]` will reveal whether `ipv6 enable` is present. A step-by-step diagnostic flow: 1) Verify global IPv6 routing is enabled with `show ipv6 unicast-routing`. 2) Check the specific interface with `show ipv6 interface [interface]`. 3) If IPv6 is not enabled, enter interface configuration mode and apply `ipv6 enable`. 4) After enabling, verify that a link-local address appears. 5) If the interface still does not have a link-local address, check for any interface-level shutdown or hardware issues. Correlate with `debug ipv6 nd` to see neighbor discovery messages; if the interface is not sending router solicitations, IPv6 may not be enabled.
Also, `show ipv6 neighbors` will show no entries for that interface if IPv6 is disabled. In summary, `ipv6 enable` is a binary switch; if it's off, nothing IPv6 works on that interface. Always confirm its presence when troubleshooting IPv6 connectivity.
CCNA Exam Tips
CCNA exam tip: 'ipv6 enable' is required before assigning an IPv6 address or using IPv6 routing protocols on an interface.
CCNA exam tip: The command automatically generates a link-local address using EUI-64; you can override it with 'ipv6 address link-local'.
CCNA exam tip: Without 'ipv6 enable', the interface will not process IPv6 traffic even if an IPv6 address is configured (though some IOS versions auto-enable).
CCNA exam tip: On exam simlets, remember to enter interface configuration mode first, then apply 'ipv6 enable'.
Common Mistakes
Mistake 1: Forgetting to enter interface configuration mode before typing 'ipv6 enable', resulting in '% Invalid input detected'.
Mistake 2: Assuming 'ipv6 enable' also assigns a global unicast address; it only enables IPv6 and creates a link-local address.
Mistake 3: Using 'ipv6 enable' on a switch port that is not a routed port (SVI or no switchport); on Layer 2 ports, use 'ipv6 enable' only on SVIs.
ipv6 enable vs ipv6 address [prefix/len]
Both 'ipv6 enable' and 'ipv6 address [prefix/len]' are used to activate IPv6 on an interface, but they serve different purposes. They are often confused because 'ipv6 enable' is sufficient for basic IPv6 connectivity (generating a link-local address) and enabling routing protocol participation, while 'ipv6 address' additionally assigns a global unicast or specific address. Understanding their distinct roles is key for proper IPv6 configuration.
| Aspect | ipv6 enable | ipv6 address [prefix/len] |
|---|---|---|
| Function | Enables IPv6 processing and generates a link-local address automatically | Assigns a specific global unicast or link-local IPv6 address to the interface |
| Address Type | Only creates a link-local address (FE80::/10) based on EUI-64 or privacy extension | Assigns any user-specified IPv6 prefix (global, unique-local, etc.) and also generates a link-local |
| Routing Protocol Participation | Allows interface to participate in IPv6 routing protocols (e.g., OSPFv3, EIGRP) with link-local address | Enables routing protocol participation as well, using the assigned address as source |
| Configuration Persistence | Persistent in running config; must be explicitly removed to disable IPv6 | Persistent; removal of the address also disables IPv6 unless 'ipv6 enable' is present |
| Precedence | Used when no global address is needed (e.g., management, routing adjacencies only) | Used when a specific IPv6 address is required for traffic forwarding or identification |
| Typical Use Case | Quickly enable IPv6 on an interface for management or as a transit link without global addressing | Assign a global address to an interface that will originate or terminate IPv6 traffic |
Use 'ipv6 enable' when you only need IPv6 link-local connectivity (e.g., for routing protocol adjacencies or management access) and do not require a global unicast address.
Use 'ipv6 address [prefix/len]' when you need to assign a specific global unicast or unique-local IPv6 address to the interface for end-to-end traffic forwarding.
Platform Notes
In IOS-XE, the `ipv6 enable` command syntax and behavior are identical to classic IOS. However, the output of `show ipv6 interface` may include additional fields such as 'IPv6 is enabled, link-local address is ...' with the same format. On NX-OS (Cisco Nexus switches), the equivalent command is `ipv6 enable` as well, but note that NX-OS uses a different configuration hierarchy; you must first enter interface configuration mode and then issue the command.
The behavior is the same: it generates a link-local address and enables IPv6 processing. On ASA firewalls, IPv6 is enabled differently; the command `ipv6 enable` is not used. Instead, you configure an IPv6 address directly on an interface, which implicitly enables IPv6.
For example: `interface gigabitethernet0/0`, then `ipv6 address 2001:db8::1/64`. The ASA automatically generates a link-local address. In IOS-XR, the command is `ipv6 enable` under interface configuration, but the syntax may require additional parameters like `ipv6 address` to assign a global address.
The output of `show ipv6 interface` in IOS-XR is similar but may have different formatting. Across IOS versions (12.x, 15.x, 16.x), the `ipv6 enable` command has remained consistent. However, in older IOS versions (12.0 and earlier), IPv6 support was limited and the command might not be available.
Always ensure the IOS image supports IPv6 (e.g., advanced IP services feature set). In summary, `ipv6 enable` is widely supported across Cisco platforms with minor variations in output format.
Related Commands
ipv6 address [prefix/len]
Assigns a global unicast or link-local IPv6 address to an interface, enabling IPv6 routing on that interface.
ipv6 unicast-routing
Enables IPv6 unicast routing on a Cisco router, allowing it to forward IPv6 packets and participate in IPv6 routing protocols.
show ipv6 interface [interface]
Displays detailed IPv6 configuration and status for an interface, including all IPv6 addresses, link-local address, NDP settings, RA flags (M/O), and whether the interface is forwarding IPv6 packets.
Practice for the CCNA 200-301
Test your knowledge with practice questions covering all CCNA 200-301 exam domains.
Practice CCNA 200-301 Questions