Friday, August 16, 2013

The 'Doh' Moment (one of many)

While making my way through the technology specific labs of Workbook 1, I found myself making silly mistakes or overlooking the simple things. An example of this 'Doh' moment, (in a Homer Simpson voice), is explained below.

Working through some basic IPv6 labs I came across an issue while trying to achieve link-local reachability. The following was configured on a local interface:



Router(config-if)#interface GigabitEthernet0/0
Router(config-if)#ip address 155.1.58.5 255.255.255.0
Router(config-if)#ip rip advertise 10
Router(config-if)#duplex auto
Router(config-if)#speed auto
Router(config-if)#ipv6 address FC00:1:0:58::5/64
Router(config-if)#ipv6 address FC00:1:0:85::5/64
Router(config-if)#ipv6 nd prefix FC00:1:0:58::/64 14400 14400 no-autoconfig
Router(config-if)#ipv6 nd prefix FC00:1:0:85::/64 14400 14400
Router(config-if)#ipv6 nd ra lifetime 40
Router(config-if)#ipv6 nd ra interval 60

Nothing too crazy here. A pretty basic IPv6 interface configuration. Since my link-local neighbor was not reachable via ping, something must be terribly wrong, right? Let's do a  debug to find out.

Router# debug ipv6 nd

*Jul  3 01:23:21.839: ICMPv6-ND: Sending NS for FE80::219:E7FF:FEF6:5C5 on GigabitEthernet0/0
*Jul  3 01:23:21.843: ICMPv6-ND: Received NA for FE80::219:E7FF:FEF6:5C5 on GigabitEthernet0/0 from FE80::219:E7FF:FEF6:5C5
*Jul  3 01:23:21.843: ICMPv6-ND: PROBE -> REACH: FE80::219:E7FF:FEF6:5C5
Router(config-if)#
*Jul  3 01:23:38.915: ICMPv6-ND: REACH -> STALE: FE80::219:E7FF:FEF6:5C5
Router(config-if)#
*Jul  3 01:24:19.967: ICMPv6-ND: STALE -> DELAY: FE80::219:E7FF:FEF6:5C5
Router(config-if)#
*Jul  3 01:24:24.963: ICMPv6-ND: Received NS for FE80::21B:2AFF:FEC1:6D70 on GigabitEthernet0/0 from FE80::219:E7FF:FEF6:5C5
*Jul  3 01:24:24.963: ICMPv6-ND: Sending NA for FE80::21B:2AFF:FEC1:6D70 on GigabitEthernet0/0


Hmm, well this doesn't look right. The interface seems to be unsuccessful when resolving Network Discovery messages. Let us see if we can enable an IPv6 routing process, for example RIP NG.

Router(config-if)#ipv6 rip RIPNG enable
% IPv6 routing not enabled
 

 Well that does not seem to make sense. So you are telling me that all I have to do is enable IPv6 routing?

Router# ipv6 unicast-routing

*Jul  3 01:35:03.967: ICMPv6-ND: Created RA context for FE80::21B:2AFF:FEC1:6D70
*Jul  3 01:35:04.479: ICMPv6-ND: Request to send RA for FE80::21B:2AFF:FEC1:6D70
*Jul  3 01:35:04.479: ICMPv6-ND: Sending RA from FE80::21B:2AFF:FEC1:6D70 to FF02::1 on GigabitEthernet0/0
*Jul  3 01:35:04.479: ICMPv6-ND:     MTU = 1500
*Jul  3 01:35:04.479: ICMPv6-ND:     prefix = FC00:1:0:58::/64 onlink
*Jul  3 01:35:04.479: ICMPv6-ND:             14400/14400 (valid/preferred)
*Jul  3 01:35:04.479: ICMPv6-ND:     prefix = FC00:1:0:85::/64 onlink autoconfig
*Jul  3 01:35:04.479: ICMPv6-ND:             14400/14400 (valid/preferred)

*Jul  3 01:35:05.487: ICMPv6-ND: Received NA for FC00:1:0:85:219:E7FF:FEF6:5C5 on GigabitEthernet0/0 from FC00:1:0:85:219:E7FF:FEF6:5C5


Yes, that's it. IPv6 routing was not enabled on the router so it is unable to resolve the ICMPv6 messages. This command allows the forwarding of IPv6 datagrams. So why even write a post about something so trivial? Isn't this something learned at the CCNP or even CCNA level? Two reasons.  

First, do not assume anything. We notice that the configuration parser accepted the interface IPv6 addressing commands without IPv6 routing enabled. However, it rejected the routing commands. This says that the parser check is not the same for the routing process versus the interface and can be terribly misleading. Just because the router accepts certain commands, does not mean a particular process or service is running. If you are unsure if you enabled a process or service, enable it again just to be sure, but never assume anything.

Second, don't over think the small things.The CCIE is a high level and difficult test but does not mean all of the components of it are expert level configurations. The simplest solution is usually the best and in this case, would have saved some time troubleshooting.

Even though I am fairly early in the lab studies, I have started to use note pad for configurations that will be the same across multiple switches or routers. This eliminates having to retype the same command, in this case 'ipv6 unicast-routing' on every single device.


'Happy' Labbing

~P