CCNP Tshoot - IPv6 Troubleshooting (OSPFv3, RIPng)



 - As part of an IPv4 to IPv6 migration, you might also need to update the IP routing protocol in use, because the existing IP routing protocol might not be compatible
with IPv6.
 - Troubleshooting OSPFv3 bears many similarities with troubleshooting OSPFv2
 - Like OSPFv3, RIPng also supports IPv6 routes.

Reviewing IPv6
 - IPv6 dramatically increases the number of available IP addresses (~ 5 * 10^28 IPv6 addresses for each person on the planet)
 - IPv6 offers many other features:
   ■ Simplified header. (IPv4 header: Uses 12 fields./IPv6 header: Uses 5 fields).
   ■ No broadcasts.
   ■ No fragmentation (performs MTU discovery for each session).
   ■ Can coexist with IPv4 during a transition.
   ■ Dual stack (running IPv4 and IPv6 simultaneously).
   ■ IPv6 over IPv4 (tunneling IPv6 over an IPv4 tunnel).

IPv6 has following address types:
 - Unicast,
 - Multicast,
 - Anycast.

IPv6 Address Format
An IPv6 address has the following address format, where X equals a hexadecimal digit in the range of 0–F:
XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX
4 bits per digit * 4 digits per field * 8 fields = 128 bits in an IPv6 address

Rules for abbreviating IPv6 addresses:
 - Leading zeros in a field can be omitted.
 - Contiguous fields containing all zeros can be represented with a double colon. (NOTE: This can only be done once for a single IPv6 address.)

IPv6 Routing Options
IPv6 maintains a separate routing table from IPv4.
■ Static routes:Configured similar to IPv4 static routes.
■ RIP next generation (RIPng):Has many of the same characteristics as RIPv2 (for example, a distance vector routing protocol with a 15 hop-count maximum).
■ OSPFv3:Builds on OSPFv2 to add support for IPv6 network characteristics (for example, 128-bit network addresses and link-local addresses).
■ IS-IS for IPv6:Similar to IS-IS for IPv4, with a few IPv6 extensions added (for example, new Type, Length, Value [TLV] attributes, and a new protocol ID).
■ Multiprotocol BGP:Allows BGP to route protocols other than IPv4 (for example,IPv6).
■ EIGRP:Configured on the interfaces with IPv6 addressing, similar to OSPFv3.

IPv6 Configuration Commands
R(conf)# ipv6 cef                                         <--Configures Cisco Express Forwarding for IPv6
R(conf)# ipv6 unicast-routing                             <--Instructs a router to forward IPv6 traffic
R(conf-if)# ipv6 address <ipv6>/<prefix-length> [eui-64]  <--assigns an IPv6 address to an interface.
! eui-64 - option that allows a router to complete the low-order 64 bits of an address, based on an interface’s MAC address

Configuring IPv6 Parameters on Router R1’s Tunnel Interface
Example IPv6 tunnel over IPv4
R1# show run
...OUTPUT OMITTED...
interface tunnel 1
tunnel source 192.168.1.1
tunnel destination 192.168.1.2
ipv6 address b:b:b:b::1/64
ipv6 ospf 1 area 1
tunnel mode ipv6ip

R2# show run
...OUTPUT OMITTED...
interface tunnel 1
tunnel source 192.168.1.2
tunnel destination 192.168.1.1
ipv6 address b:b:b:b::2/64
ipv6 ospf 1 area 1
tunnel mode ipv6ip

OSPFv3 Troubleshooting
 - OSPFv3 can be used on IPv6 networks (OSPFv2 is incompatible with IPv6),
 - OSPFv3 builds on OSPFv2 ( Areas, Backbone Area, Uses many of the same packet types, Adjacencies formed with neighbors),
 - OPSFv3 enhancements over OSPFv2:
   - Routes over links rather than over networks.
   - Uses IPv6 link-local addresses to identify neighbors.
   - Can support multiple IPv6 subnets on a single link.
   - Allows communication between two nodes connected to a common link, even though the two nodes might not share a common subnet.
   - Supports multiple instances of OSPFv3 running over a common link.
   - Does not require the use of ARP. 

Configuring OSPFv3
R(conf)# ipv6 router ospf <PID>              <- enables an OSPFv3 routing process on a router
R(conf-router)# router-id <IPv4-address)     <- specifies an IPv4 address to be used by OSPFv3 as a router’s Router-ID
R(conf-if)# ipv6 ospf <PID> area <Area-ID>   <- allows the IPv6 address configured on an interface to participate in an OSPFv3 routing process
Example
interface FastEthernet0/0
   ip address 192.168.1.11 255.255.255.0
   ipv6 address A:A:A:A::11/64
   ipv6 ospf 100 area 1
ipv6 router ospf 100
router-id 10.1.1.1
Troubleshooting OSPFv3
show ipv6 ospf           <- OSPFv3 routing process, router ID, various timers, and information about each area on a router
show ipv6 ospf interface <- IPv6 link local address, area ID, process ID, router ID, and cost
show ipv6 ospf neighbor  <- Lists the state of a router’s adjacency with all configured OSPFv3 neighbors
debug ipv6 ospf adj      <- Displays information about OSPFv3 adjacencies
debug ip ipv6 ospf hello <- Shows OSPFv3 HELLO packet information
Many of the same root causes for an OSPFv2 issue could also result in an OSPFv3 issue.
As just a few examples, consider the following list of potential reasons an OSPFv3 adjacency might not be formed:
■ Mismatched HELLO parameters
■ Mismatched IP MTU setting
■ Interface configured as passive
■ Mismatched area type

RIPng Troubleshooting
 - RIPng supports IPv6 routes (whereas RIP versions 1 and 2 do no)
 - RIPng is an enhancement to RIPv2; however, RIPng does have several characteristics similar to RIPv2, as follows:
   - Distance-vector routing protocol
   - Hop count metric
   - Maximum hop count of fifteen
   - Sends routing updates via multicast: RIPv2: 224.0.0.9  /  RIPng: FF02::9
- RIPng enhancements over RIPv2:
   - Supports the routing of 128-bit IPv6 network addresses.
   - Link-local addresses used for next-hop addresses.
   - Next-hop addresses stored in Routing Information Base (RIB).
   - Interfaces added to a RIP routing process in interface-configuration mode  (as opposed to router configuration mode).

RIPng Configuration Commands
R(conf)# ipv6 router rip <process-name> <- enters router configuration mode for the specified RIPng routing process
R(conf-if)# ipv6 rip <process-name> enable  <- instructs an interface to participate in the specified RIPng routing process
R(conf-if)# ipv6 rip <process-name> default-information {only| originate}   <- causes an interface to originate a default route advertisement (::/0)
! only - optionally suppress the advertisement of all other routes
R(conf-if)# maximum-paths <number>          <- specifies the number of equal-cost paths across which RIPng can load balance (defaults to 16 with a valid range of 1-64)
Example:
!
ipv6 unicast-routing
ipv6 cef
!
interface FastEthernet0/0
   ip address 192.168.1.11 255.255.255.0
   ipv6 address A:A:A:A::11/64
   ipv6 rip PROCESS1 enable
!
!
ipv6 router rip PROCESS1
...OUTPUT OMITTED...
Troubleshooting RIPng
show ipv6 route      <--Shows the contents of the IPv6 routing table
debug ipv6 rip       <--Provides real-time information about RIPng messages
show ipv6 rip [process-name] [database| next-hops]  <- Displays information about the specified RIPng routing process, and optionally the contents of the RIPng database and a listing of next-hop addresses
Common RIPng issues:
■ RIPng routes not appearing in the IPv6 routing table
■ RIPng not performing appropriate load balancing
■ Interface not sending RIPng updates
■ Individual network advertisements not suppressed when sourcing a default route