ISIS Single Topology strange behavior


For CCIE-SP Workbook lab problem 2.17 "Single Topology IS-IS" where you issue the “traceroute 20.20.20.20” and “traceroute 2001::20:20:20:20” command from R1 to XR2, the result should be that IPv4 and IPv6 traffic must follow the same path throughout the network as the shortest Path Tree for each of them are the same. This seems to be true when issuing the traceroute command from R1 to XR2 (with the condition that no ISIS process ID (null) is used for regular IOS. For some reason when I use a number for a process id it does not work as it should), but when you try to do a traceroute from XR2 to R1 (1.1.1.1, 2001::1:1:1:1) in the other direction, it does not follow the same path......ipv4 goes through R5 and ipv6 goes through R6. If you do the same traceroute from XR1 to R1 (1.1.1.1, 2001::1:1:1:1) it follows the same path correctly as it should. Is this a bug?

Comments

  • If I understand you correctly when going from R1->XR2 with ip router isis/ipv6 router isis without the process ID there is no problem in that direction? When you use ip router isis 1/ipv6 router isis 1 for example the trace result is different?

    When I use process 1 both v4 and v6 are the same in R1->XR2, in the reverse direction R6 makes a CEF decision for me and splits the traffic between R3/4 on each protocol, this does not occur R1->XR2, paths happen to be the same I guess.

    R6#sho ip cef exact-route 20.20.20.20 1.1.1.1
    20.20.20.20 -> 1.1.1.1 => label 16 TAG adj out of FastEthernet0/0.36, addr 20.3.6.3
    R6#sho ipv6 cef exact-route 2001::20:20:20:20 2001::1:1:1:1
    2001::20:20:20:20 -> 2001::1:1:1:1 => IPV6 adj out of FastEthernet0/0.46, addr FE80::208:A4FF:FEE8:3C08

     

    XR1 send both v4/6 traffic via R6

    RP/0/0/CPU0:XR1#sho cef exact-route 20.20.20.20 1.1.1.1
    Mon Sep 30 08:43:30.750 UTC
    1.1.1.1/32, version 5760, internal 0x4000001 (ptr 0xae3f1bd8) [1], 0x0 (0xae3bff50), 0x0 (0x0)
     Updated Sep 30 08:28:18.979
     local adjacency 20.6.19.6
     Prefix Len 32, traffic index 0, precedence n/a, priority 1
       via GigabitEthernet0/1/0/0.619
       via 20.6.19.6, GigabitEthernet0/1/0/0.619, 7 dependencies, weight 0, class 0 [flags 0x0]
        path-idx 1 [0xaeeb3058 0x0]
        next hop 20.6.19.6
        local adjacency
    RP/0/0/CPU0:XR1#sho cef ipv6 exact-route 2001::20:20:20:20 2001::1:1:1:1
    Mon Sep 30 08:44:14.368 UTC
    2001::1:1:1:1/128, version 5213, internal 0x4000001 (ptr 0xae9bda14) [1], 0x0 (0xae5a2400), 0x0 (0x0)
     Updated Sep 30 08:28:18.980
     local adjacency fe80::204:deff:fe6b:2800
     Prefix Len 128, traffic index 0, precedence n/a, priority 1
       via GigabitEthernet0/1/0/0.619
       via fe80::204:deff:fe6b:2800, GigabitEthernet0/1/0/0.619, 7 dependencies, weight 0, class 0 [flags 0x0]
        path-idx 1 [0xaf042184 0x0]
        next hop fe80::204:deff:fe6b:2800
        local adjacency

    The same behaviour exists when I change the process to null on R1.

    I'm testing this on 4.3.0 so possible that it's an issue with 3.9.1

     

    One thing I did notice between the ISIS Db on R1 vs R6 is the formatting of the text, upper versus lower case on the hex.  Anyone know why this is? same code on both boxes

    E.g.

    R6 says R5.01-00              0x00000003   0xe1da   

    R1 says R5.01-00              0x00000003   0xE1DA

     

  • Hello,


    One correction to the second statement......When I use process 1 both v4 and v6 were the same in R1 -> XR2, in the reverse direction XR1 makes a CEF decision for me and splits the traffic between R5/6 on each protocol. Initially, this did not occur R1 -> XR2 but I rebuilt the lab this morning in a 1:1 bases (ipv4/ipv6) again and now going from R1 -> XR2, R2 makes a CEF decision for me and splits the traffic between R3/4. 

    So, I guess my question is for integrated ISIS single topology is the rule/law absolute that IPv4 and IPv6 traffic must follow the same path throughout the network, as the SPT for each of them are the same. If this is true, why the inconsistent behavior? I truly appreciate the response. Thank you. I’ve also provided router configs below. Again, this is from the CCIE-SP Lab Workbook, Section 1 - 2.17.

     R1#show ip interface brief                               

    Interface              IP-Address      OK? Method Status                Protocol

    FastEthernet0/0        10.1.2.1        YES manual up                    up      

    FastEthernet1/0        unassigned      YES unset  administratively down down    

    Serial2/0              unassigned      YES unset  administratively down down    

    Serial2/1              unassigned      YES unset  administratively down down    

    Serial2/2              unassigned      YES unset  administratively down down    

    Serial2/3              unassigned      YES unset  administratively down down    

    Loopback0              1.1.1.1         YES manual up                    up      

    R1#show ipv6 interface brief   

    FastEthernet0/0            [up/up]

        FE80::217:5AFF:FE51:BD00

        2001:10:1:2::1

    FastEthernet1/0            [administratively down/down]

        unassigned

    Serial2/0                  [administratively down/down]

        unassigned

    Serial2/1                  [administratively down/down]

        unassigned

    Serial2/2                  [administratively down/down]

        unassigned

    Serial2/3                  [administratively down/down]

        unassigned

    Loopback0                  [up/up]

        FE80::217:5AFF:FE51:BD00

        2001::1:1:1:1

    R1#show run | include interface Fast|isis|net|passive|is-

    interface FastEthernet0/0

     ip router isis 

     ipv6 router isis 

    interface FastEthernet1/0

    router isis

     net 49.0001.0000.0000.0001.00

     is-type level-2-only

     passive-interface Loopback0

    R1#traceroute 20.20.20.20                                

    Type escape sequence to abort.

    Tracing the route to 20.20.20.20

      1 10.1.2.2 0 msec 0 msec 0 msec

      2 20.2.4.4 4 msec 0 msec 0 msec

      3 20.4.6.6 4 msec 0 msec 0 msec

      4 20.6.19.19 4 msec 4 msec 4 msec

      5 10.19.20.20 4 msec *  4 msec

    R1#traceroute 2001::20:20:20:20                          

    Type escape sequence to abort.

    Tracing the route to 2001::20:20:20:20

      1 2001:10:1:2::2 0 msec 0 msec 0 msec

      2 2001:20:2:3::3 0 msec 0 msec 0 msec

      3 2001:20:3:6::6 4 msec 0 msec 0 msec

      4 2001:20:6:19::19 4 msec 4 msec 4 msec

      5 2001::20:20:20:20 4 msec 0 msec 4 msec

    R1#

    RP/0/3/CPU0:XR2#show ipv4 interface brief 

    Mon Sep 30 09:42:15.059 UTC

    Interface                      IP-Address      Status                Protocol

    Loopback0                      20.20.20.20     Up                    Up      

    MgmtEth0/3/CPU0/0              unassigned      Up                    Up      

    MgmtEth0/3/CPU0/1              unassigned      Up                    Up      

    MgmtEth0/3/CPU0/2              unassigned      Down                  Down    

    GigabitEthernet0/4/0/0         unassigned      Up                    Up      

    GigabitEthernet0/4/0/1         unassigned      Up                    Up      

    GigabitEthernet0/4/0/2         unassigned      Up                    Up      

    GigabitEthernet0/4/0/3         unassigned      Up                    Up      

    POS0/7/0/0                     10.19.20.20     Up                    Up      

    POS0/7/0/1                     unassigned      Up                    Up      

    POS0/7/0/2                     unassigned      Up                    Up      

    POS0/7/0/3                     unassigned      Down                  Down    

    RP/0/3/CPU0:XR2#show ipv6 interface brief 

    Mon Sep 30 09:42:23.934 UTC

    Loopback0              [Up/Up]

        fe80::a5e2:caff:fea7:39d1                     

        2001::20:20:20:20                             

    MgmtEth0/3/CPU0/0      [Up/Up]

        unassigned                                    

    MgmtEth0/3/CPU0/1      [Up/Up]

        unassigned                                    

    MgmtEth0/3/CPU0/2      [Down/Down]

        unassigned                                    

    GigabitEthernet0/4/0/0 [Up/Up]

        unassigned                                    

    GigabitEthernet0/4/0/1 [Up/Up]

        unassigned                                    

    GigabitEthernet0/4/0/2 [Up/Up]

        unassigned                                    

    GigabitEthernet0/4/0/3 [Up/Up]

        unassigned                                    

    POS0/7/0/0             [Up/Up]

        fe80::a5e2:caff:fea7:39d1                     

        2001:10:19:20::20                             

    POS0/7/0/1             [Up/Up]

        unassigned                                    

    POS0/7/0/2             [Up/Up]

        unassigned                                    

    POS0/7/0/3             [Down/Down]

        unassigned                                    

    RP/0/3/CPU0:XR2#show run

    Mon Sep 30 09:44:15.560 UTC

    Building configuration...

    !! IOS XR Configuration 3.9.1

    !! Last configuration change at Mon Sep 30 09:08:10 2013 by xr2

    !

    ! 2s, 09302013.024714

    ! Config load start: iewb.sp.vol1-v3.0-IPv4_and_IPv6, rack sprack7, device xr2

    !=== Read from database: bubs.sp_template_devices, iewb.sp.vol1-v3.0-IPv4_and_IPv6, xr2

    ! iewb.sp.vol1-v3.0-IPv4_and_IPv6 xr2

    ! Service Provider Workbook I version 3.0 - IPv4 and IPv6

    ! Copyright (c) 2012 INE, Inc., all rights reserved

    hostname XR2

    banner login "Note: XR2 default login/password is xr2/cisco"

    username xr2

     group root-lr

     password 7 045802150C2E

    !

    cdp

    line console

     exec-timeout 0 0

    !

    interface Loopback0

     ipv4 address 20.20.20.20 255.255.255.255

     ipv6 address 2001::20:20:20:20/128

    !

    interface GigabitEthernet0/4/0/0

     cdp

    !

    interface GigabitEthernet0/4/0/1

     cdp

    !

    interface GigabitEthernet0/4/0/2

     cdp

    !

    interface GigabitEthernet0/4/0/3

     cdp

    !

    interface POS0/7/0/0

     cdp

     ipv4 address 10.19.20.20 255.255.255.0

     ipv6 address 2001:10:19:20::20/64

    !

    router isis 1

     is-type level-2-only

     net 49.0001.0000.0000.0020.00

     address-family ipv6 unicast

      single-topology

     !

     interface Loopback0

      passive

      address-family ipv4 unicast

      !

      address-family ipv6 unicast

      !

     !

     interface POS0/7/0/0

      address-family ipv4 unicast

      !

      address-family ipv6 unicast

      !

     !

    !

    end

    RP/0/3/CPU0:XR2#traceroute 1.1.1.1

    Mon Sep 30 09:44:42.538 UTC

    Type escape sequence to abort.

    Tracing the route to 1.1.1.1

     1  10.19.20.19 6 msec  5 msec  3 msec 

     2  20.5.19.5 3 msec  2 msec  2 msec 

     3  20.4.5.4 1 msec  3 msec  3 msec 

     4  20.2.4.2 3 msec  3 msec  2 msec 

     5  10.1.2.1 2 msec  *  2 msec 

    RP/0/3/CPU0:XR2#traceroute 2001::1:1:1:1  

    Mon Sep 30 09:45:07.974 UTC

    Type escape sequence to abort.

    Tracing the route to 2001::1:1:1:1

     1  2001:10:19:20::19 7 msec 4 msec 3 msec

     2  2001:20:6:19::6 2 msec 3 msec 3 msec

     3  2001:20:4:6::4 4 msec 3 msec 2 msec

     4  2001:20:4:2::2 2 msec 3 msec 3 msec

     5  2001:10:1:2::1 4 msec 3 msec 3 msec

    RP/0/3/CPU0:XR2#

    Just want to show that the path is configured for 1:1 bases IPv4/IPv6

    R2#show run | include interface Fast|isis|net|passive|is-

    interface FastEthernet0/0

    interface FastEthernet0/0.23

     ip router isis 

     ipv6 router isis 

    interface FastEthernet0/0.24

     ip router isis 

     ipv6 router isis 

    interface FastEthernet1/0

     ip router isis 

     ipv6 router isis 

    router isis

     net 49.0001.0000.0000.0002.00

     is-type level-2-only

     passive-interface Loopback0

    R3#show run | include interface Fast|isis|net|passive|is-

    interface FastEthernet0/0

    interface FastEthernet0/0.23

     ip router isis 

     ipv6 router isis 

    interface FastEthernet0/0.34

     ip router isis 

     ipv6 router isis 

    interface FastEthernet0/0.36

     ip router isis 

     ipv6 router isis 

    interface FastEthernet0/1

    interface FastEthernet1/0

    router isis

     net 49.0001.0000.0000.0003.00

     is-type level-2-only

     passive-interface Loopback0

    R4#show run | include interface Fast|isis|net|passive|is-

    interface FastEthernet0/0

    interface FastEthernet0/0.24

     ip router isis 

     ipv6 router isis 

    interface FastEthernet0/0.34

     ip router isis 

     ipv6 router isis 

    interface FastEthernet0/0.45

     ip router isis 

     ipv6 router isis 

    interface FastEthernet0/0.46

     ip router isis 

     ipv6 router isis 

    interface FastEthernet1/0

    router isis

     net 49.0001.0000.0000.0004.00

     is-type level-2-only

     passive-interface Loopback0

    R5#show run | include interface Fast|isis|net|passive|is-

    interface FastEthernet0/0

    interface FastEthernet0/0.45

     ip router isis 

     ipv6 router isis 

    interface FastEthernet0/0.56

     ip router isis 

     ipv6 router isis 

    interface FastEthernet0/0.519

     ip router isis 

     ipv6 router isis 

    interface FastEthernet1/0

    router isis

     net 49.0001.0000.0000.0005.00

     is-type level-2-only

     passive-interface Loopback0

    R6#show run | include interface Fast|isis|net|passive|is-

    interface FastEthernet0/0

    interface FastEthernet0/0.36

     ip router isis 

     ipv6 router isis 

    interface FastEthernet0/0.46

     ip router isis 

     ipv6 router isis 

    interface FastEthernet0/0.56

     ip router isis 

     ipv6 router isis 

    interface FastEthernet0/0.619

     ip router isis 

     ipv6 router isis 

    interface FastEthernet1/0

    router isis

     net 49.0001.0000.0000.0006.00

     is-type level-2-only

     passive-interface Loopback0


    RP/0/0/CPU0:XR1#show run

    Mon Sep 30 10:27:44.234 UTC

    Building configuration...

    !! IOS XR Configuration 3.9.1

    !! Last configuration change at Mon Sep 30 09:23:20 2013 by xr1

    !

    ! 2s, 09302013.024714

    ! Config load start: iewb.sp.vol1-v3.0-IPv4_and_IPv6, rack sprack7, device xr1

    !=== Read from database: bubs.sp_template_devices, iewb.sp.vol1-v3.0-IPv4_and_IPv6, xr1

    ! iewb.sp.vol1-v3.0-IPv4_and_IPv6 xr1

    ! Service Provider Workbook I version 3.0 - IPv4 and IPv6

    ! Copyright (c) 2012 INE, Inc., all rights reserved

    hostname XR1

    banner login "Note: XR1 default login/password is xr1/cisco"

    username xr1

     group root-lr

     password 7 060506324F41

    !

    cdp

    line console

     exec-timeout 0 0

    !

    interface Loopback0

     ipv4 address 19.19.19.19 255.255.255.255

     ipv6 address 2001::19:19:19:19/128

    !

    interface GigabitEthernet0/1/0/0

     cdp

    !

    interface GigabitEthernet0/1/0/0.519

     ipv4 address 20.5.19.19 255.255.255.0

     ipv6 address 2001:20:5:19::19/64

     dot1q vlan 519

    !

    interface GigabitEthernet0/1/0/0.619

     ipv4 address 20.6.19.19 255.255.255.0

     ipv6 address 2001:20:6:19::19/64

     dot1q vlan 619

    !

    interface GigabitEthernet0/1/0/1

     cdp

    !

    interface GigabitEthernet0/1/0/2

     cdp

    !

    interface GigabitEthernet0/1/0/3

     cdp

    !

    interface POS0/6/0/0

     cdp

     ipv4 address 10.19.20.19 255.255.255.0

     ipv6 address 2001:10:19:20::19/64

    !

    router isis 1

     is-type level-2-only

     net 49.0001.0000.0000.0019.00

     address-family ipv6 unicast

      single-topology

     !

     interface Loopback0

      passive

      address-family ipv4 unicast

      !

      address-family ipv6 unicast

      !

     !

     interface GigabitEthernet0/1/0/0.519

      address-family ipv4 unicast

      !

      address-family ipv6 unicast

      !

     !

     interface GigabitEthernet0/1/0/0.619

      address-family ipv4 unicast

      !

      address-family ipv6 unicast

      !

     !

     interface POS0/6/0/0

      address-family ipv4 unicast

      !

      address-family ipv6 unicast

      !

     !

    !

    end

     

    RP/0/0/CPU0:XR1#

  • I don't think I'm best placed to answer this but I find it hard to keep my mouth shut :D

    For all intents and purposes the control plane is the same but the forwarding plane is not.  If there are mulitple equal cost paths to a destination ISIS isn't going to do the data plane forwarding, the FIB needs to look after that I would think. So if you have 8 destinations and 8 paths to the destinations then you may have each flow over a unique physical path depending on hashing algorythms.

    If the LSDB is the same on each device then the paths are the same, right?, from each devices perspective. CEF chosing one over another is not a decision the link state protocol needs to make if it is supporting multiple paths.

  • Thanks. I believe i kinda understand, but will have to go back and do a deeper dive on CEF. Thanks again for you help.

Sign In or Register to comment.