WB Lab 4 Task 4.1

Sorry for the double post, it seems like not many people check the workbook forum as they do the technical forum:

 

I'm having a weird issue that i can't seem to put my finger on what's wrong.  Everything is working except for XR2 advertising it's own loopback (within the VRF) to R4:

RP/0/5/CPU0:XR2#sh bgp vpnv4 uni neigh 10.0.0.4 ad
Sun Dec 15 06:12:45.853 UTC
Network            Next Hop        From             AS Path
Route Distinguisher: 10.0.0.2:1
172.16.0.2/32      10.0.0.2        10.0.0.2         i
Route Distinguisher: 10.0.0.5:1
172.16.0.5/32      10.0.0.5        10.0.0.5         i
Route Distinguisher: 10.0.0.19:1
172.16.0.19/32     10.0.0.19       10.0.0.19        i

It IS advertising it within AS 1000:

RP/0/5/CPU0:XR2#sh bgp vpnv4 uni neigh 10.0.0.2 ad
Sun Dec 15 06:15:43.414 UTC
Network            Next Hop        From             AS Path
Route Distinguisher: 10.0.0.1:1
172.16.0.1/32      10.0.0.1        10.0.0.4         2000 i
Route Distinguisher: 10.0.0.2:1
172.16.0.2/32      10.0.0.20       10.0.0.2         i
Route Distinguisher: 10.0.0.3:1
172.16.0.3/32      10.0.0.3        10.0.0.4         2000 i
Route Distinguisher: 10.0.0.4:1
172.16.0.4/32      10.0.0.4        10.0.0.4         2000 i
Route Distinguisher: 10.0.0.5:1
172.16.0.5/32      10.0.0.5        10.0.0.5         i
Route Distinguisher: 10.0.0.19:1
172.16.0.19/32     10.0.0.19       10.0.0.19        i
Route Distinguisher: 10.0.0.20:1
172.16.0.20/32     10.0.0.20       Local            i

I can't think of what could be causing this behavior as it's sending all other routes except it's own.  I've attached what i think is the applicable configs below, if anyone has any ideas i'd appreciate it!

XR2:

vrf FOO
 address-family ipv4 unicast
  import route-target
   1000:1
   2000:1
  !
  export route-target
   1000:1
  !
 !

router bgp 1000


 address-family vpnv4 unicast
 !
 neighbor 10.0.0.2
  remote-as 1000
  update-source Loopback0
  address-family ipv4 unicast
  !
  address-family vpnv4 unicast
   route-reflector-client
  !
 !
 neighbor 10.0.0.4
  remote-as 2000
  ebgp-multihop 5
  update-source Loopback0
  address-family vpnv4 unicast
   route-policy PASS in
   route-policy PASS out
   next-hop-unchanged
  !
 !
 neighbor 10.0.0.5
  remote-as 1000
  update-source Loopback0
  address-family vpnv4 unicast
   route-reflector-client
  !
 !
 neighbor 10.0.0.19
  remote-as 1000
  update-source Loopback0
  address-family vpnv4 unicast
   route-reflector-client
  !
 vrf FOO
  rd 10.0.0.20:1
  address-family ipv4 unicast
   network 172.16.0.20/32
  !
 !
!

R4:

vrf definition FOO
 rd 10.0.0.4:1
 !
 address-family ipv4
 route-target export 2000:1
 route-target import 1000:1
 route-target import 2000:1
 exit-address-family
 !
router bgp 2000
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 10.0.0.20 remote-as 1000
 neighbor 10.0.0.20 ebgp-multihop 5
 neighbor 10.0.0.20 update-source Loopback0
 !
 address-family vpnv4
  neighbor 10.0.0.20 activate
  neighbor 10.0.0.20 send-community both
  neighbor 10.0.0.20 next-hop-unchanged
 exit-address-family
 !
 address-family ipv4 vrf FOO
  no synchronization
  network 172.16.0.4 mask 255.255.255.255
 exit-address-family

Comments

  • XR2 won't pass on routes learned from AS 3000 either (in task 4.2).  I've tried rolling back the configs and what not.  created a new loopback in the VRF and it wouldn't advertise that to R4 either.  I'm sure there's some rule i'm forgetting that's accounting for this behavior but i'm drawing a complete blank :-(

  • If i remove "next-hop-unchanged" from the XR2 peering towards R4, i now advertise all routes.  so in summation:  WTF?

  • Aaannnddd now it's getting weirder.  With "next-hop-unchanged" set on R4 my LFIB looks like this:

    RP/0/5/CPU0:XR2#sh mpls for
    Mon Dec 16 04:15:03.472 UTC
    Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes
    Label  Label       or ID              Interface                    Switched
    ------ ----------- ------------------ ------------ --------------- ------------
    16000  Pop         10.0.0.19/32       PO0/3/0/0.1920 10.19.20.19     2400      
    16001  Pop         10.0.195.0/24      PO0/3/0/0.1920 10.19.20.19     0         
    16002  16          10.0.0.5/32        Gi0/1/0/0.220 10.0.220.2      1843
    16003  Pop         10.0.0.2/32        Gi0/1/0/0.220 10.0.220.2      2430
    16004  Pop         10.0.25.0/24       Gi0/1/0/0.220 10.0.220.2      0
    16006  16008       10.0.0.4/32        PO0/3/0/0.1920 10.19.20.19     680       
    16007  Unlabelled  172.16.0.7/32[V]   Gi0/1/0/0.207 172.16.207.7    0
    16008  16009       10.0.0.3/32        PO0/3/0/0.1920 10.19.20.19     0         
    16009  16010       10.0.0.1/32        PO0/3/0/0.1920 10.19.20.19     0         
    16010  Aggregate   FOO: Per-VRF Aggr[V]  
                                          FOO                          0
    16011  Unlabelled  172.16.78.0/24[V]  Gi0/1/0/0.207 172.16.207.7    0
    16012  Aggregate   172.16.207.0/24[V] FOO                          0

    and without it, it now looks like this:

    RP/0/5/CPU0:XR2#sh mpls for
    Mon Dec 16 04:15:57.247 UTC
    Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes
    Label  Label       or ID              Interface                    Switched
    ------ ----------- ------------------ ------------ --------------- ------------
    16000  Pop         10.0.0.19/32       PO0/3/0/0.1920 10.19.20.19     4094      
    16001  Pop         10.0.195.0/24      PO0/3/0/0.1920 10.19.20.19     0         
    16002  16          10.0.0.5/32        Gi0/1/0/0.220 10.0.220.2      3475
    16003  Pop         10.0.0.2/32        Gi0/1/0/0.220 10.0.220.2      4168
    16004  Pop         10.0.25.0/24       Gi0/1/0/0.220 10.0.220.2      0
    16006  Pop         10.0.0.4/32        PO0/3/0/0.1920 10.19.20.19     1010      
    16007  Unlabelled  172.16.0.7/32[V]   Gi0/1/0/0.207 172.16.207.7    0
    16008  16009       10.0.0.3/32        PO0/3/0/0.1920 10.19.20.19     0         
    16009  16010       10.0.0.1/32        PO0/3/0/0.1920 10.19.20.19     0         
    16010  Aggregate   FOO: Per-VRF Aggr[V]  
                                          FOO                          0
    16011  Unlabelled  172.16.78.0/24[V]  Gi0/1/0/0.207 172.16.207.7    0
    16012  Aggregate   172.16.207.0/24[V] FOO                          0
    16017  21          10.0.0.2:1:172.16.0.2/32  
                                                       10.0.0.2        0
    16018  21          10.0.0.5:1:172.16.0.5/32  
                                                       10.0.0.5        0
    16019  16011       10.0.0.19:1:172.16.0.19/32  
                                                       10.0.0.19       0

    Why would removing "next-hop-unchanged" change the label assignments on XR2?  I have confirmed that XR1 is still assigning the same label value to the route, and it's the next hop.  Also why would "next-hop-unchanged" allow or prevent the vpn routes from being added to the LFIB?

    i'm very very confused.

  • Why would removing "next-hop-unchanged" change the label assignments on XR2?  I have confirmed that XR1 is still assigning the same label value to the route, and it's the next hop.  Also why would "next-hop-unchanged" allow or prevent the vpn routes from being added to the LFIB?

    i'm very very confused.

    I hit this same issue:

    Look here:

    http://ieoc.com/forums/t/27055.aspx

     

     

     

  • Needless to say, you did check that your route-policy is set up correctly right? =) 

    I also had an issue very similar to this. It was a matter of doing "commit replace" on XR2, then rolling back the config. 

    Have you looked at debugs on R4? "deb bgp vpnv4 uni up" ?

  • Interesting.  For the label issue, I will see if i still have SmartNET on this GSR and open a TAC case to see if this is a known issue.  I suspect the answer will be "upgrade your code" though.  I'm glad that someone else had this part of my issue cause i could not wrap my head around what the heck is going on.

    I'm assuming though you had no issues with XR2 sending full vpnv4 routes to R4 (with next-hop-unchanged set), which makes me wonder what madness or voodoo i've done to make that part not work.

  • I off-loaded the RR functionality to XR1 (because it was preventing me from continuing with the lab) and XR1 now exhibits the same problem XR2 did:

    RP/0/4/CPU0:XR1#sh bgp vpnv4 uni neigh 10.0.0.4 ad
    Mon Dec 16 20:29:40.852 UTC
    Network            Next Hop        From             AS Path
    Route Distinguisher: 10.0.0.2:1
    172.16.0.2/32      10.0.0.2        10.0.0.2         i
    Route Distinguisher: 10.0.0.5:1
    172.16.0.5/32      10.0.0.5        10.0.0.5         i
    Route Distinguisher: 10.0.0.20:1
    172.16.0.7/32      10.0.0.20       10.0.0.20        3000 i
    172.16.0.8/32      10.0.0.20       10.0.0.20        3000 i
    172.16.0.20/32     10.0.0.20       10.0.0.20        i
    172.16.78.0/24     10.0.0.20       10.0.0.20        3000 i
    172.16.207.0/24    10.0.0.20       10.0.0.20        3000 i
    172.16.208.0/24    10.0.0.20       10.0.0.20        3000 i

    I can't tell if i've run into a bug with XR (this is the same GSR, SDR'd out to two logical routers) or if i've got config somewhere hosing me. 

  • I did not have SmartNET (I was using the INE racks) but someone else on this forum did. They basically came back and said that the Inter-AS option C design MUST have "next-hop unchanged". They did not really offer much more help besides this. Hopefully you will get a better answer from them =) 

    Another thing that you should try is this on XR2 towards R4:

    "ebgp multihop mpls"

    There is very little documentation about this command, but it worked for me. 

     

  • unfortunately "ebgp multihop mpls" didn't change the vpnv4 behavior i'm seeing.  Thanks for the sugestion though!

  • I just compared the config you posted to what I have (and was working without issues when I did Lab 4 on Saturday). There are actually no differences at all, but one thing I have that you don't is static assignment of BGP router-id.

    I can't really see why it should happen, but one thing to check is if BGP is picking up the wrong router-id, or perhaps that XR is more sensitive to not having a static router-id configured.

    Feel free to PM me if you'd like to "share configs". [:)]

    /Mark

  • Actually after i pasted that config i did set the router-id as a "hail mary".  it didn't pan out for me :-(  i'm leaning towards is a bug, but i ended up moving on from it.  I had to offload the RR functionality to XR1 in order to proceed with the lab since XR2 was peering with AS 3000.  In retrospect i probably should have opened a TAC case on it.  Thanks for confirming my config looked good though, i was afraid i was missing some stupid line somewhere and the accuracy of the solutions in lab 4 is not awesome.

     

    I just compared the config you posted to what I have (and was working without issues when I did Lab 4 on Saturday). There are actually no differences at all, but one thing I have that you don't is static assignment of BGP router-id.

    I can't really see why it should happen, but one thing to check is if BGP is picking up the wrong router-id, or perhaps that XR is more sensitive to not having a static router-id configured.

    Feel free to PM me if you'd like to "share configs". Smile

    /Mark

     

  • Ohh yeah, i did 3 different "PASS" route-policies to make sure i didn't add a space or was tired and didn't hit the "pass" syntax right.  I also did a commit replace/rollback thinking the same thing.  Debugs on R4 just reflected what XR2 was saying (that it's not advertising it's own routes), I think i posted the output in the workbook thread but it didn't reveal anything that would explain this behavior.  At this point i'm guessing it's got something to do with the GSR i'm running the SDR instances on, i'd do a full reload on the thing but i'm terrified i'll lose some of my linecards on reload!

     

    Needless to say, you did check that your route-policy is set up correctly right? =) 

    I also had an issue very similar to this. It was a matter of doing "commit replace" on XR2, then rolling back the config. 

    Have you looked at debugs on R4? "deb bgp vpnv4 uni up" ?

     

Sign In or Register to comment.